2004-12-31  Andreas Jaeger  <aj@suse.de>

	* testsuite/lib/libjava.exp (libjava_find_gij): Handle multilibs.

2004-12-20  Tom Tromey  <tromey@redhat.com>

	* java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault):
	Re-enable duplicate class registration error.

	* testsuite/libjava.jar/jar.exp (gcj_jar_interpret): Updated.
	* testsuite/libjava.verify/verify.exp (gcj_verify_run): Updated.
	* testsuite/libjava.jni/jni.exp (gcj_jni_test_one): Updated.
	* testsuite/lib/libjava.exp (libjava_find_spec): Don't use
	get_multilibs.
	(libjava_find_gij): Likewise.  Changed return result if gij not
	found.
	(test_libjava_from_javac): Updated.

	PR java/15001
	* testsuite/libjava.jni/iface.c: New file.
	* testsuite/libjava.jni/iface.out: New file.
	* testsuite/libjava.jni/iface.java: New file.

2004-12-19  Kelley Cook  <kcook@gcc.gnu.org>

	* include/config.h.in: Regenerate.

2004-12-10  Andrew Haley  <aph@redhat.com>

	PR java/15001
	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Look up
	abstract methods by name.

2004-12-08  Ranjit Mathew  <rmathew@hotmail.com>

	* java/util/IdentityHashMap.java (put): Replace mistaken use
	of "<<" by "*".

2004-12-06  Tom Tromey  <tromey@redhat.com>

	For PR java/14853:
	* testsuite/libjava.compile/PR14853.java: New file.
	* testsuite/libjava.compile/PR14853.xfail: New file.

2004-12-03  Richard Sandiford  <rsandifo@redhat.com>

	PR libgcj/7305
	* configure.ac: Use TL_AC_GXX_INCLUDE_DIR.
	* Makefile.am (install-data-local): Install headers into
	$(gxx_include_dir) rather than $(includedir).
	(AM_MAKEFLAGS): Pass down gxx_include_dir.
	* gcj/Makefile.am (gcjdir): Set to $(gxx_include_dir)/gcj.
	* include/Makefile.am (tool_include__HEADERS): Define this...
	(include_HEADERS): ...instead of this.
	* configure, aclocal.m4, Makefile.in, gcj/Makefile.in: Regenerate.
	* include/Makefile.in, testsuite/Makefile.in: Regenerate.

2004-12-02  Tom Tromey  <tromey@redhat.com>

	For PR java/16675:
	* testsuite/libjava.compile/PR16675.java: New file.

2004-12-02  Richard Sandiford  <rsandifo@redhat.com>

	* configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
	* configure, aclocal.m4, Makefile.in, gcj/Makefile.in: Regenerate.
	* include/Makefile.in, testsuite/Makefile.in: Regenerate.

2004-12-01  Tom Tromey  <tromey@redhat.com>

	* include/no-threads.h (_Jv_ThreadDestroyData): Removed argument
	name.
	(_Jv_ThreadRegister): Likewise.
	(_Jv_MutexCheckMonitor): Likewise.

	* link.cc: Include limits.h.

2004-12-01  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/18699
	* testsuite/libjava.lang/PR18699.java,
	testsuite/libjava.lang/PR18699.out: New test.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java (drawImage variants):
	Update image observer.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (createImage):
	Start image production.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java (setMenuBar): Protect
	against negative menu bar widths.
	(setBounds): Likewise.
	(postConfigureEvent): Likewise.
	* gnu/java/awt/peer/gtk/GtkImage.java (imageComplete): Don't
	remove consumer unless only a single frame has completed.
	* gnu/java/awt/peer/gtk/GtkImagePainter.java (GtkImagePainter):
	Add observer parameter.
	(setPixels): Update image observer.
	(imageComplete): Likewise.
	* java/applet/Applet.java (width): New field.
	(height): Likewise.
	(setStub): Set size if width or height field has been set.
	(resize): If stub is null save width and height values.
	* java/awt/Component.java (reshape): Protect against null
	parent.
	* java/awt/image/MemoryImageSource.java
	(MemoryImageSource(int,int,ColorModel,byte[],int,int)):
	Document.
	(MemoryImageSource(int,int,ColorModel,int[],int,int)):
	Likewise.
	(MemoryImageSource(int,int,ColorModel,byte[],int,int,Hashtable)):
	Reference pixel array directly, rather than creating a local
	copy.
	(MemoryImageSource(int,int,ColorModel,int[],int,int,Hashtable)):
	Likewise.
	(newPixels(int,int,int,int)): Fix for loop and array copy
	bounds.
	(newPixels(int,int,int,int,boolean)): Likewise.
	(startProduction): If animated call imageComplete with
	SINGLEFRAME.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c: Uncomment
	gdk_flush lines.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c
	(drawPixels): Return if g is null or g->drawable is not a gdk
	drawable.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/DefaultSingleSelectionModel.java,
	javax/swing/JPasswordField.java,
	javax/swing/tree/AbstractLayoutCache.java:
	Reformatted and javadocs cleaned up.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/Component.java:
	Fixed argument names to match javadocs.
	(setFont): Rewritten set property first and then fire event.
	(setLocale): Likewise.
	* javax/swing/text/JTextComponent.java
	(setEditable): Likewise.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Button.java
	(AccessibleAWTButton.getAccessibleActionDescription): Explain the
	source of 'click'.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Checkbox.java: Remove stub comments.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Button.java
	(AccessibleAWTButton.getAccessibleActionDescription): Return
	'click'.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/CardLayout.java:
	Made some constants static.
	(serialVersionUID): Made private.
	(addLayoutComponent): Simplified code.
	* java/awt/event/InputEvent.java
	(getModifiersEx): Added missing @param tag.
	* java/awt/image/RGBImageFilter.java
	(filterRGBPixels): Reformatted, removed wrong @param tag.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/FieldView.java,
	javax/swing/text/JTextComponent.java:
	Removed debug code.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/BorderFactory.java
	(BorderFactory): Added private constructor.
	* javax/swing/SwingUtilities.java
	(SwingUtilities): Likewise.
	(computeStringWidth): New method.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/color/ICC_Profile.java
	(icSigNamedColorTag): Removed.
	* java/awt/datatransfer/DataFlavor.java
	(isMimeTypeEqual): Made final.
	* java/awt/image/AffineTransformOp.java:
	Reworked javadocs.
	(TYPE_BICUBIC): Added @since tag.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Checkbox.java (AccessibleAWTCheckBox): Remove todo
	comments.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Checkbox.java (itemStateChanged): Implement function.
	(getAccessibleContext): Add AccessibleAWTCheckBox to item listeners.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* java/awt/Polygon.java (contains): Reimplemented.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/print/PrinterJob.java: Reformatted.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/image/AffineTransformOp.java,
	java/awt/image/ColorConvertOp.java,
	java/awt/image/LookupOp.java,
	java/awt/image/RescaleOp.java:
	Added final keywords where they belong.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/CardLayout.java,
	java/awt/Component.java,
	java/awt/Font.java,
	java/awt/image/SinglePixelPackedSampleModel.java:
	Fixed javadocs and argument names all over.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/image/DataBufferShort.java: Fixed file header.
	* java/awt/image/DataBufferUShort.java: Likewise.
	(DataBufferUShort): Throw NullPointerException if dataArray is null.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* java/awt/geom/Arc2D.java
	(setAngleStart): Corrected (wrong sign on atan2 y parameter).
	(setAngles): Likewise.
	(containsAngle): Return false on zero extent, don't include
	final angle.
	(contains): Treat OPEN-type arcs like CHORD ones, not as PIE
	ones.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* java/awt/geom/AffineTransform.java,
	(inverseTransform): Fixed bug and simplified code.
	(createTransformedShape): Return null on null parameter.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/color/ICC_ColorSpace.java,
	java/awt/color/ICC_Profile.java,
	java/awt/color/ICC_ProfileGray.java,
	java/awt/color/ICC_ProfileRGB.java:
	Re-indent copyright header to be standardish.
	* java/awt/datatransfer/StringSelection.java:
	Reformatted.
	* java/awt/geom/Area.java
	(EPSILON): Made static.
	(RS_EPSILON): Likewise.
	(PE_EPSILON): Likewide.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* javax/swing/SwingUtilities.java:
	(computeDifference): Implemented
	(computeIntersection): Likewise
	(computeUnion): Likewise
	(isRectangleContainingRectangle): Likewise

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/BasicStroke.java,
	java/awt/Button.java,
	java/awt/Canvas.java,
	java/awt/CheckboxMenuItem.java,
	java/awt/Container.java,
	java/awt/EventQueue.java,
	java/awt/FileDialog.java,
	java/awt/FlowLayout.java,
	java/awt/FontMetrics.java,
	java/awt/Graphics.java,
	java/awt/GridLayout.java,
	java/awt/KeyboardFocusManager.java,
	java/awt/Label.java,
	java/awt/LayoutManager2.java,
	java/awt/List.java,
	java/awt/MenuBar.java,
	java/awt/Scrollbar.java,
	java/awt/Toolkit.java,
	java/awt/Window.java,
	java/awt/datatransfer/DataFlavor.java,
	java/awt/datatransfer/FlavorTable.java,
	java/awt/event/ActionListener.java,
	java/awt/event/HierarchyBoundsAdapter.java,
	java/awt/geom/Arc2D.java,
	java/awt/geom/Rectangle2D.java,
	java/awt/geom/RectangularShape.java,
	java/awt/im/spi/InputMethod.java,
	java/awt/image/ByteLookupTable.java,
	java/awt/image/ColorModel.java,
	java/awt/image/DirectColorModel.java,
	java/awt/image/ShortLookupTable.java,
	java/awt/print/Book.java:
	Fixed javadocs and method argument names all over.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(buildString): Optimise String building.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/TextArea.java (AccessibleAWTTextArea,
	getAccessibleContext): Implement.
	* java/awt/TextField.java (AccessibleAWTTextField,
	getAccessibleContext): Implement.

2004-11-30  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.lo):
	Fixed typo.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Menu.java (AccessibleAWTMenu, getAccessibleContext):
	Implement.
	* java/awt/PopupMenu.java (AccessibleAWTMenu, getAccessibleContext):
	Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/print/PrinterJob.java (lookupPrintServices,
	getPrintService, setPrintService): Implement.
	(lookupStreamPrintServices): Add commented out implementation.
	(printer): New field.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* javax/swing/ToolTipManager.java (mouseMoved): Set currentComponent
	when not yet set.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* java/awt/geom/GeneralPath.java (evaluateCrossings):
	Fixed epsilon value, should always be nonzero.

2004-11-30  Paul Jenner  <psj.home@ntlworld.com>

	* java/awt/image/Raster.java
	(createPackedRaster): Implemented.

2004-11-30  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/plaf/basic/BasicTextUI.java:
	Listen to focus events, indicate focus via caret.
	* javax/swing/text/GapContent.java (getString): Return substring.
	* javax/swing/text/PlainDocument.java (reindex): New method.
	(createDefaultRoot): Call it.
	(insertUpdate): Likewise.
	(removeUpdate): Likewise.
	* javax/swing/text/Utilities.java (drawTabbedText): Always advance
	on tab and newline, even if no painting happens.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am: List peer JNI header: Java source file
	dependencies explicitly.  Likewise for JNI .lo: JNI header
	dependencies.
	* Makefile.in: Regenerate.

2004-11-30  Graydon Hoare  <graydon@redhat.com>

	* Makefile.am: Add entry for BasicTextPaneUI.java
	* Makefile.in: Regenerate.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(GdkGraphics2D): Set clip after transform.
	(drawImage): Protect against null image.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java
	(setIconImage): Protect against non-GtkImage args.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(checkImage): Protect against non-GtkImage args.
	* java/awt/print/PrinterJob.java:
	(print): Add variant taking PrintRequestAttributeSet.
	(printDialog): Likewise.
	* javax/swing/JComponent.java:
	(transferHandler): New field.
	(getComponentGraphics): Build new Graphics for each sub-paint.
	(getTransferHandler): New method.
	(setTransferHandler): New method.
	* javax/swing/JDesktopPane.java
	(setDragMode): Force LIVE_DRAG_MODE.
	* javax/swing/JMenuItem.java
	(menuSelectionChanged): Protect against null parent.
	* javax/swing/JTable.java (setDefaultRenderer): New method.
	* javax/swing/JTree.java: Get basic ctors and UI working.
	* javax/swing/JViewport.java (JViewport): Set scroll mode.
	* javax/swing/RepaintManager.java
	(addDirtyRegion): Skip empty regions.
	* javax/swing/ScrollPaneLayout.java (minimumLayoutSize): Do not
	bound scrollpane minimum by central view minimum.
	* javax/swing/ToolTipManager.java
	(showTip): Guard against null component.
	* javax/swing/TransferHandler.java: Stub out.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Add entry for TextPaneUI, change Tree icons to pngs.
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(installDefaults): Set text position and alignment.
	(paintMenuItem): Layout icon with normal compound function.
	* javax/swing/plaf/basic/BasicTableHeaderUI.java:
	(getMaximumSize): Delete.
	(getMinimumSize): Delete.
	(getPreferredSize): Use column model's total width.
	* javax/swing/plaf/basic/BasicTextPaneUI.java: New file.
	* javax/swing/plaf/basic/BasicTextUI.java
	(modelChanged): Make resilient against nulls.
	* javax/swing/plaf/basic/BasicTreeUI.java:
	Add some simplistic config / painting functions.
	* javax/swing/plaf/basic/BasicViewportUI.java
	(paintSimple): Add new non-backingstore paint mode.
	(paintBackingStore): Split out backing store code.
	(paint): Switch on painting mode.
	* javax/swing/text/SimpleAttributeSet.java
	(SimpleAttributeSet): Resist nulls.
	* javax/swing/tree/DefaultTreeCellRenderer.java: Implement.
	* javax/swing/tree/DefaultTreeModel.java: Partially implement.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c (setFont):
	Set pango context's description and language.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* java/awt/image/LookupOp.java: Comments and indentation fixes.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Checkbox.java (AccessibleAWTCheckBox): Implement.
	(getAccessibleContext): Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/TextComponent.java (AccessibleAWTTextComponent):
	Implement.
	(getIndexAtPoint, getCharacterBounds): New methods.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Button.java (AccessibleAWTButton): Implement.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(filenameFilterCallback): Made static.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(cairoShowGlyphs) Removed.

2004-11-30  Sven de Marothy <sven@physto.se>

	* gnu/java/awt/color/RgbProfileConverter.java (RgbProfileConverter):
	Don't invert matrix when reverse CLUT is available.
	* gnu/java/awt/color/LinearRGBConverter.java: Documentation update.
	* java/awt/color/ICC_ColorSpace.java: Likewise.
	* java/awt/color/ICC_Profile.java: Likewise.
	* java/awt/color/ICC_ProfileGray.java: Likewise.
	* java/awt/color/ICC_ProfileRGB.java: Likewise.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/MenuItem.java (AccessibleAWTMenuItem): Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Choice.java (AccessibleAWTChoice): Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/BandedSampleModel.java (scanlineStride): Remove
	field hiding ComponentSampleModel.scanlineStride.

2004-11-30  Noa Resare  <noa@resare.com>

	* java/awt/geom/GeneralPath.java (currentSegment):
	Fix typo in transform.transform() invocation.

2004-11-30  Sven de Marothy <sven@physto.se>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(createImage): Created bitmap should be filled with bg color

2004-11-30  Noa Resare  <noa@resare.com>

	* java/awt/Choice.java (add):
	Implement correct selection behavior when peer == null.
	(insert): Likewise.
	(remove): Likewise.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkChoicePeer.java (GtkChoicePeer):
	Call select() when Choice has a selected item.

2004-11-30  Michael Koch  <address@bogus.example.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c:
	Fixed method names to start at begin of line. This is desired by GNU
	coding style guide.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(gtkWidgetSetVisible): Unused. Removed.
	(connectJObject): Likewise.
	* gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
	(gtkScrolledWindowSetScrollPosition): Commented out.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	(Java_gnu_java_awt_peer_gtk_GdkTextLayout_setText): Installed and
	renamed from Java_gnu_java_awt_peer_gtk_GdkGlyphVector_setText.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	(Java_gnu_java_awt_peer_gtk_GdkGlyphVector_setText): Removed.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
	(init_dpi_conversion_factor): Correct prototype.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* java/awt/image/ConvolveOp.java: Added missing
	copyright notice.

2004-11-30  Robert Schuster  <theBohemian@gmx.net>

	Fixes bug #10908
	* gnu/java/beans/IntrospectionIncubator.java:
	(addMethod): static methods are discarded now, too.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (awt_java_source_files): Add new gnu/java/awt/color
	java source files.
	* Makefile.in: Regenerated.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/color/CieXyzConverter.java,
	gnu/java/awt/color/GrayScaleConverter.java,
	gnu/java/awt/color/SrgbConverter.java,
	gnu/java/awt/color/ClutProfileConverter.java,
	gnu/java/awt/color/LinearRGBConverter.java,
	gnu/java/awt/color/TagEntry.java,
	gnu/java/awt/color/ColorLookUpTable.java,
	gnu/java/awt/color/ProfileHeader.java,
	gnu/java/awt/color/ToneReproductionCurve.java,
	gnu/java/awt/color/ColorSpaceConverter.java,
	gnu/java/awt/color/PyccConverter.java,
	gnu/java/awt/color/GrayProfileConverter.java,
	gnu/java/awt/color/RgbProfileConverter.java:
	New files.
	* java/awt/color/ICC_ColorSpace.java,
	java/awt/color/ICC_Profile.java,
	java/awt/color/ICC_ProfileGray.java,
	java/awt/color/ICC_ProfileRGB.java:
	Implemented (sans PhotoYCC color space).

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/AffineTransformOp.java (filter):  Implement
	bilinear interpolation for Rasters.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/IndexColorModel.java (IndexColorModel): Actually
	use the provided colormap.  Throw documented exceptions.  Document
	exceptions.

2004-11-30  Paul Jenner  <psj.home@ntlworld.com>

	* java/awt/image/IndexColorModel.java (IndexColorModel): Fix
	constructor.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/AffineTransformOp.java: Add TYPE_BICUBIC.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/AffineTransformOp.java (filter): Implement Raster
	filtering.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ComponentSampleModel.java (getDataElements,
	setDataElements): Implement SHORT, FLOAT, and INT transfer types.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Font.java (name): New field.
	(size): Likewise.
	(style): Likewise.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/Raster.java (createBandedRaster): Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ConvolveOp.java: New class.
	* Makefile.am: Add ConvolveOp.
	* Makefile.in: Regenerate.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/RescaleOp.java (BandCombineOp, ColorConvertOp,
	LookupOp, RescaleOp): Fix loop bounds.

2004-11-30  jlquinn  <jlquinn@optonline.net>

	* Makefile.am: Fix typo in BandCombineOp.
	* Makefile.in: Regenerate.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/BandCombineOp.java: New class.
	* Makefile.am: Add BandCombineOp.
	* Makefile.in: Regenerate.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/LookupOp.java: New class.
	* Makefile.am: Add LookupOp.
	* Makefile.in: Regenerate.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/SampleModel.java (createSubsetSampleModel): Add
	javadocs.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ColorModel.java (cloneColorModel): Fix line
	wrap.  Use Boolean.valueOf.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(releasePeerGraphicsResource): Fixed typo in method name.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(finalize): Fixed typo in releasePeerGraphicsResource.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/font/TextAttribute.java
	(RUN_DIRECTION_LTR): Initialie with static value instead of
	calculating it.
	(RUN_DIRECTION_RTL): Likewise.
	(STRIKETHROUGH_ON): Likewise.
	(SWAP_COLORS_ON): Likewise.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ColorConvertOp.java: New class.
	* java/awt/image/ColorModel.java (cloneColorModel): New method.
	* Makefile.am: Add ColorConvertOp.
	* Makefile.in: Regenerate.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/DefaultKeyboardFocusManager.java (dispatchEvent):
	Track Window focus owner on FOCUS_GAINED events.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
	(nativeSetIconImage): Rename to nativeSetIconImageFromDecoder.

2004-11-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c
	(Java_gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_nativeRun):
	Fix pointer warning.

2004-11-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFilenameFilter):
	Fix pointer warning.

	* jni/gtk-peer/gtkpeer.h: Introduce widget_union to fix type punned
	warnings.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect): Use widget_union
	to fix type punned pointer warning.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (pre_event_handler):
	Likewise.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(window_get_new_state): Introduce unions to fix warnings as above.
	(window_property_changed_cb): Likewise.
	(window_active_state_change_cb): Mark unused variables unused.
	(window_focus_state_change_cb): Likewise.
	(window_focus_in_cb): Likewise.
	(window_focus_out_cb): Likewise.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Convert
	PangoFontMap correctly with PANGO_FT2FONT_MAP macro.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JMenuBar.java
	(updateUI): Simplified.
	* javax/swing/tree/DefaultTreeSelectionModel.java:
	Reorganized import statements.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/font/TextAttribute.java,
	javax/swing/JComponent.java,
	javax/swing/JInternalFrame.java,
	javax/swing/table/TableColumn.java,
	javax/swing/text/StyleConstants.java:
	Replaced "new Boolean(boolean)" with "Boolean.valueOf(boolean)".

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/tree/DefaultTreeCellEditor.java,
	javax/swing/tree/DefaultTreeModel.java,
	javax/swing/tree/DefaultTreeSelectionModel.java:
	Jalopied.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/tree/DefaultTreeCellEditor.java
	(EditorContainer.EditorContainer): Fixed arguments.
	(EditorContainer.EditorContainer): New method.
	(DefaultTextField.DefaultTextField): Fixed arguments, implemented.
	(DefaultTextField.getBorder): Implemented.
	(listenerList): New field.
	(addCellEditorListener): Implemented.
	(removeCellEditorListener): Implemented.
	(getCellEditorListeners): New method.
	* javax/swing/tree/DefaultTreeModel.java
	(addTreeModelListener): Fixed javadoc.
	(removeTreeModelListener): Likewise.
	(getTreeModelListeners): New method.
	(fireTreeNodesChanged): Implemented.
	(fireTreeNodesInserted): Likewise.
	(fireTreeNodesRemoved): Likewise.
	(fireTreeStructureChanged): Likewise.
	(getListeners): Fixed javadoc.
	* javax/swing/tree/DefaultTreeSelectionModel.java
	(addTreeSelectionListener): Implemented.
	(removeTreeSelectionListener): Likewise.
	(fireValueChanged): Likewise.
	(getListeners): Likewise.
	(addPropertyChangeListener): Likewise.
	(removePropertyChangeListener): Likewise.
	(getTreeSelectionListeners): New method.
	(getPropertyChangeListeners): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(maximumThumbSize): Removed static keyword.
	(minimumThumbSize): Likewise.
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(CloseAction): Made public.
	(IconifyAction): Likewise.
	(MaximizeAction): Likewise.
	(MoveAction): Likewise.
	(RestoreAction): Likewise.
	(SizeAction): Likewise.
	(SystemMenuBar): Likewise.
	* javax/swing/plaf/basic/BasicSliderUI.java
	(TrackListener): Likewise.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(KeyboardDownRightHandler): Likewise.
	(KeyboardEndHandler): Likewise.
	(KeyboardHomeHandler): Likewise.
	(KeyboardResizeToggleHandler): Likewise.
	(KeyboardUpLeftHandler): Likewise.
	(PropertyHandler): Likewise.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(PropertyChangeHandler): Likewise.
	(TabSelectionHandler): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/JTextComponent.java
	(getKeymap): Made public.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JEditorPane.java
	(getStream): Throws IOException.
	(read): Likewise.
	* javax/swing/JRootPane.java
	(createContentPane): Fixed return type.
	* javax/swing/JSpinner.java
	(commitEdit): Throws ParseException.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(serialVersionUID): New field.
	* javax/swing/table/TableColumn.java
	(resizedPostingDisableCount): Added @deprecated tag.
	(disableResizedPosting): Likewise.
	(enableResizedPosting): Likewise.
	* javax/swing/text/Document.java
	(TitleProperty): Fixed value.
	* javax/swing/tree/TreeCellEditor.java
	(TreeCellEditor): Extends CellEditor.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JWindow.java
	javax/swing/SpinnerModel.java
	javax/swing/Timer.java
	javax/swing/event/MenuKeyEvent.java
	javax/swing/plaf/basic/BasicButtonUI.java
	javax/swing/plaf/basic/BasicIconFactory.java
	javax/swing/plaf/basic/BasicTabbedPaneUI.java
	javax/swing/text/AttributeSet.java
	javax/swing/text/Highlighter.java
	javax/swing/text/StyleConstants.java
	javax/swing/tree/TreeCellEditor.java:
	Removed redundant and reordered modifiers.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicToolTipUI.java:
	Reformatted copyright header.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractAction.java,
	javax/swing/AbstractButton.java,
	javax/swing/AbstractCellEditor.java,
	javax/swing/AbstractListModel.java,
	javax/swing/AbstractSpinnerModel.java,
	javax/swing/ActionMap.java,
	javax/swing/BorderFactory.java,
	javax/swing/Box.java,
	javax/swing/ButtonModel.java,
	javax/swing/CellEditor.java,
	javax/swing/CellRendererPane.java,
	javax/swing/DefaultBoundedRangeModel.java,
	javax/swing/DefaultButtonModel.java,
	javax/swing/DefaultCellEditor.java,
	javax/swing/DefaultDesktopManager.java,
	javax/swing/DefaultListCellRenderer.java,
	javax/swing/DefaultListSelectionModel.java,
	javax/swing/DefaultSingleSelectionModel.java,
	javax/swing/GrayFilter.java,
	javax/swing/InputMap.java,
	javax/swing/JApplet.java,
	javax/swing/JCheckBoxMenuItem.java,
	javax/swing/JColorChooser.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/JRadioButtonMenuItem.java,
	javax/swing/JRootPane.java,
	javax/swing/JSpinner.java,
	javax/swing/JSplitPane.java,
	javax/swing/JTabbedPane.java,
	javax/swing/JTable.java,
	javax/swing/JTextArea.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/ListModel.java,
	javax/swing/LookAndFeel.java,
	javax/swing/MenuSelectionManager.java,
	javax/swing/ProgressMonitorInputStream.java,
	javax/swing/RepaintManager.java,
	javax/swing/RootPaneContainer.java,
	javax/swing/ScrollPaneLayout.java,
	javax/swing/SpringLayout.java,
	javax/swing/SwingUtilities.java,
	javax/swing/Timer.java,
	javax/swing/ToolTipManager.java,
	javax/swing/UIDefaults.java,
	javax/swing/UIManager.java,
	javax/swing/border/MatteBorder.java,
	javax/swing/colorchooser/AbstractColorChooserPanel.java,
	javax/swing/colorchooser/ColorSelectionModel.java,
	javax/swing/colorchooser/DefaultColorSelectionModel.java,
	javax/swing/colorchooser/DefaultHSBChooserPanel.java,
	javax/swing/colorchooser/DefaultPreviewPanel.java,
	javax/swing/colorchooser/DefaultRGBChooserPanel.java,
	javax/swing/colorchooser/DefaultSwatchChooserPanel.java,
	javax/swing/event/AncestorEvent.java,
	javax/swing/event/HyperlinkEvent.java,
	javax/swing/event/InternalFrameEvent.java,
	javax/swing/event/MenuDragMouseEvent.java,
	javax/swing/event/TableColumnModelEvent.java,
	javax/swing/event/TableModelEvent.java,
	javax/swing/event/TreeExpansionEvent.java,
	javax/swing/event/TreeModelEvent.java,
	javax/swing/event/TreeSelectionEvent.java,
	javax/swing/event/TreeWillExpandListener.java,
	javax/swing/event/UndoableEditEvent.java,
	javax/swing/filechooser/FileView.java,
	javax/swing/plaf/BorderUIResource.java,
	javax/swing/plaf/ComponentUI.java,
	javax/swing/plaf/FileChooserUI.java,
	javax/swing/plaf/IconUIResource.java,
	javax/swing/plaf/ListUI.java,
	javax/swing/plaf/PopupMenuUI.java,
	javax/swing/plaf/SplitPaneUI.java,
	javax/swing/plaf/TabbedPaneUI.java,
	javax/swing/plaf/TextUI.java,
	javax/swing/plaf/TreeUI.java,
	javax/swing/plaf/basic/BasicArrowButton.java,
	javax/swing/plaf/basic/BasicBorders.java,
	javax/swing/plaf/basic/BasicButtonUI.java,
	javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.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/BasicIconFactory.java,
	javax/swing/plaf/basic/BasicInternalFrameTitlePane.java,
	javax/swing/plaf/basic/BasicInternalFrameUI.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/BasicPopupMenuSeparatorUI.java,
	javax/swing/plaf/basic/BasicPopupMenuUI.java,
	javax/swing/plaf/basic/BasicProgressBarUI.java,
	javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java,
	javax/swing/plaf/basic/BasicRootPaneUI.java,
	javax/swing/plaf/basic/BasicScrollBarUI.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/BasicTextUI.java,
	javax/swing/plaf/basic/BasicToolBarSeparatorUI.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/basic/ComboPopup.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/text/AbstractDocument.java,
	javax/swing/text/Caret.java,
	javax/swing/text/DefaultCaret.java,
	javax/swing/text/DefaultEditorKit.java,
	javax/swing/text/DefaultHighlighter.java,
	javax/swing/text/EditorKit.java,
	javax/swing/text/JTextComponent.java,
	javax/swing/text/LayeredHighlighter.java,
	javax/swing/text/PasswordView.java,
	javax/swing/text/SimpleAttributeSet.java,
	javax/swing/text/StyleConstants.java,
	javax/swing/text/StyleContext.java,
	javax/swing/text/StyledEditorKit.java,
	javax/swing/text/TextAction.java,
	javax/swing/text/View.java,
	javax/swing/tree/AbstractLayoutCache.java,
	javax/swing/tree/DefaultTreeCellRenderer.java,
	javax/swing/tree/DefaultTreeModel.java,
	javax/swing/tree/DefaultTreeSelectionModel.java,
	javax/swing/tree/FixedHeightLayoutCache.java,
	javax/swing/tree/TreeCellRenderer.java,
	javax/swing/tree/TreeSelectionModel.java,
	javax/swing/tree/VariableHeightLayoutCache.java,
	javax/swing/undo/AbstractUndoableEdit.java,
	javax/swing/undo/UndoableEditSupport.java:
	Imports cleaned up.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/Container.java,
	java/awt/Font.java,
	java/awt/font/TextLayout.java:
	Imports cleaned up.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractButton.java
	(getLabel): Added @deprecated tag.
	(setLabel): Likewise.
	* javax/swing/FocusManager.java
	(disableSwingFocusManager): Likewise.
	(isFocusManagerEnabled): Likewise.
	* javax/swing/JComponent.java
	(isManagingFocus): Added version to @deprecated tag.
	(getNextFocusableComponent): Moved @deprecated tag to bottom of
	javadoc.
	(getConditionForKeyStroke): Likewise.
	(getActionForKeyStroke): Likewise.
	* javax/swing/JDesktopPane.java
	(LIVE_DRAG_MODE): Added @specnote tag.
	(OUTLINE_DRAG_MODE): Likewise.
	* javax/swing/JInternalFrame.java
	(MENU_BAR_PROPERTY): Fixed value.
	(getMenuBar): Added @deprecated tag.
	(setMenuBar): Likewise.
	* javax/swing/JViewport.java
	(isBackingStoreEnabled): Likewise.
	(setBackingStoreEnabled): Likewise.
	* javax/swing/plaf/basic/BasicDesktopPaneUI.java
	(closeKey): Likewise.
	(maximizeKey): Likewise.
	(minimizeKey): Likewise.
	(navigateKey): Likewise.
	(navigateKey2): Likewise.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(openMenuKey): Likewise.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(keyboardDownRightListener): Likewise.
	(keyboardEndListener): Likewise.
	(keyboardHomeListener): Likewise.
	(keyboardResizeToggleListener): Likewise.
	(keyboardUpLeftListener): Likewise.
	(dividerResizeToggleKey): Likewise.
	(downKey): Likewise.
	(endKey): Likewise.
	(homeKey): Likewise.
	(leftKey): Likewise.
	(rightKey): Likewise.
	(upKey): Likewise.
	(createKeyboardUpLeftListener): Likewise.
	(createKeyboardDownRightListener): Likewise.
	(createKeyboardHomeListener): Likewise.
	(createKeyboardEndListener): Likewise.
	(createKeyboardResizeToggleListener): Likewise.
	(getDividerBorderSize): Likewise.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(downKey): Likewise.
	(leftKey): Likewise.
	(rightKey): Likewise.
	(upKey): Likewise.

2004-11-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create): Use the
	GTK_TEXT_VIEW macro.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(connect_awt_hook_cb): Mark unused variable unused.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c (selection_get):
	Do the cast right.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
	(Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create): According to
	the gtk API gtk_combo_box_new_text actually returns a GtkWidget.
	Remove unused var menu.
	(selection_changed): Remove unused value.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkButtonPeer_setNativeBounds): Fix pointer
	warning with using an intermediate variable.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
	(area_updated): Fix unused var warning for BE archs.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_connectSignals): Remove unused
	var.
	(realize_cb): Mark unused variable unused.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c
	(seek_glyphstring_idx): Fix a C90 warning.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c
	(Java_gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_nativeRun):
	Mark unused arguments unused.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c
	(Java_gnu_java_awt_peer_gtk_GdkGlyphVector_initState),
	(Java_gnu_java_awt_peer_gtk_GdkGlyphVector_setGlyphCodes),
	(Java_gnu_java_awt_peer_gtk_GdkGlyphVector_glyphCharIndex),
	(Java_gnu_java_awt_peer_gtk_GdkGlyphVector_glyphIsHorizontal):
	Likewise.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c
	(Java_gnu_java_awt_peer_gtk_GdkFontMetrics_getPeerFontMetrics),
	(Java_gnu_java_awt_peer_gtk_GdkFontMetrics_getPeerTextMetrics):
	Likewise.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFilenameFilter):
	Likewise.
	(filenameFilterCallback): Remove unused var.
	(handle_response): Declare str_fileName and remove last else statement.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c:
	New File.
	(nativeGetNumFontsFamilies) New function.
	(nativeGetFontFamilies) Likewise.
	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
	(getAvailableFontFamilyNames): Implement.
	* Makefile.am (gtk_c_source_files): Add GdkGraphicsEnvironment.c.
	* Makefile.in: Regenerate.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/ClasspathFontPeer.java
	(setStandardAttributes(String,Map)): If size attribute doesn't
	exist, default to size 12.  Clamp size value to a minimum of 1.

2004-11-30  Jeroen Frijters  <jeroen@frijters.net>

	* javax/swing/JDialog.java
	(decorated): Likewise.
	* javax/swing/JFrame.java
	(defaultLookAndFeelDecorated): Likewise.

2004-11-30  Jeroen Frijters  <jeroen@frijters.net>

	* javax/swing/plaf/basic/BasicToolBarUI.java
	(offset, regular): Made final.
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(DECREASE_HIGHLIGHT, INCREASE_HIGHLIGHT, NO_HIGHLIGHT,
	POSITIVE_SCROLL, NEGATIVE_SCROLL): Made final.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/BitwiseXORComposite.java,
	gnu/java/awt/ClasspathToolkit.java,
	gnu/java/awt/image/XBMDecoder.java,
	gnu/java/awt/peer/GLightweightPeer.java,
	gnu/java/awt/peer/gtk/GdkGlyphVector.java:
	Reorganized import statements.

2004-11-30  Jeroen Frijters  <jeroen@frijters.net>

	* java/awt/Button.java
	(next_button_number): Removed useless initializer.
	* java/awt/Frame.java
	(next_frame_number): Likewise.
	* java/awt/Panel.java
	(next_panel_number): Likewise,
	* java/awt/Scrollbar.java
	(next_scrollbar_number): Likewise.
	* java/awt/TextArea.java
	(next_text_number): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/image/ByteLookupTable.java
	(ByteLookupTable) :Fixed HTML entities in javadocs.
	(lookupPixel): Fix case when dst is null.
	* java/awt/image/ShortLookupTable.java
	(ShortLookupTable) :Fixed HTML entities in javadocs.
	(lookupPixel): Fix case when dst is null.
	* 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:
	Fix initialization of bankData in constructors.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkButtonPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(setNativeBounds): Set GtkEventBox, GtkButton and GtkLabel size
	requests.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(setNativeBounds): Make package private.  Set size request even
	if GTK parent is NULL.
	* gnu/java/awt/peer/gtk/GtkLabelPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
	(setNativeBounds): Set GtkEventBox and GtkLabel size requests.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	Workaround for bug #17952.
	*  jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(request_frame_extents): Check window->window != NULL.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* jni/gtk-peer/gdkfont.h: Include gtkpeer.h not gtkcairopeer.h.

2004-11-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c: Use
	native_text_layout_state_table here.

	* jni/gtk-peer/gdkfont.h: Mark native_text_layout_state_table extern.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c
	(setChars): Only call pango_itemize() when vec->glyphitems != NULL.
	Only call pango_shape() when gi->glyphs->num_glyphs > 0.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GtkToolkit.java:
	Merged import statements.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(isBufferedImageGraphics): Simplified.

2004-11-30  Paul Jenner  <psj.home@ntlworld.com>

	* javax/swing/JTree.java
	(isRootVisible): Fixed typo in method name.
	* javax/swing/JScrollBar.java
	(setValues): Likewise.
	* javax/swing/JScrollPane.java
	(createScrollListener): Call JScrollBar.setValues.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkContainerPeer.java (endValidate):
	Don't call setParentAndBounds on GtkWindowPeers.

	* java/awt/Component.java (static): Don't set default keyboard
	focus manager.
	* java/awt/KeyboardFocusManager.java
	(getCurrentKeyboardFocusManager): If current keyboard focus
	manager is null set a default.

	* gnu/java/awt/peer/gtk/GtkButtonPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(gtkWidgetSetBackground): New method.
	(block_expose_events_cb): New function.
	(connectSignals): Block the AWT's expose event processing on
	button press and release.
	(gtkSetLabel): Set text on proper widget.
	(gtkWidgetModifyFont): Modify font on proper widget.
	(gtkWidgetSetBackground): Set normal, active and prelight
	colours.
	(gtkWidgetSetForeground): Set forground colour of proper widget.
	(gtkActivate): Activate the correct widget.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (clearRect):
	Only clear rectangle if the backing component is not an event
	box.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
	(beginNativeRepaintID): New variable.
	(endNativeRepaintID): Likewise.
	(gtkInit): Initialize new fields with method IDs.
	* jni/gtk-peer/gtkpeer.h (beginNativeRepaintID): Declare extern.
	(endNativeRepaintID): Likewise.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/swing/JList.java (init): Revert accidental commit.

	* gnu/java/awt/peer/gtk/GdkGraphics.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (GdkGraphics):
	Call initComponentGraphics or connectSignals depending on
	component's realization status.
	(realize_cb): New function.
	(initComponentGraphics): New method.
	(connectSignals): New method.
	(clipRect): Return immediately if component is not realized.
	(setClip): Likewise.
	(translate): Likewise.
	(drawImage variants): Return false immediately if component is
	not realized.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(connectSignals): New method.
	(GdkGraphics2D): Call initComponentGraphics2D or connectSignals
	depending on component's realization status.  Move other
	initialization calls to ...
	(initComponentGraphics2D): New method.
	(realize_cb): New function.
	(cairoSetMatrix): Return immediately if gr is NULL.
	(cairoNewPath): Likewise.
	(cairoRectangle): Likewise.
	(cairoClip): Likewise.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(gtkWidgetRepaintArea): Remove method.
	(isRealized): New method.
	(GtkComponentPeer): Move setParent, connectJObject and setCursor
	calls to setParentAndBounds.  Call setParentAndBounds.
	(setParentAndBounds): New method.
	(setComponentBounds): Return immediately if bounds are all zero.
	(repaint): Remove call to gtkWidgetRepaintArea.  Return
	immediately if requested paint region is 0x0.
	(setCursor): New method.
	(gtkWidgetSetParent): Only set widget's parent if its parent is
	currently NULL.
	(setNativeBounds): Only set widget's bounds if it has a parent.
	(connectSignals): Don't call gtk_widget_realize.  Connect
	"realize" signal to connect_awt_hook_cb handler.
	* gnu/java/awt/peer/gtk/GtkContainerPeer.java (isValidating):
	New field.
	(beginValidate): Set isValidating true.
	(endValidate): Set parents and bounds for children first, then
	for this.  Set isValidating false.
	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(connectJObject): Remove method.
	(connectSignals): Don't call gtk_widget_realize.
	* gnu/java/awt/peer/gtk/GtkListPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
	(connectJObject): Remove method.
	(connectSignals): Don't call gtk_widget_realize.
	* gnu/java/awt/peer/gtk/GtkPanelPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c
	(connectJObject): Remove method.
	* gnu/java/awt/peer/gtk/GtkScrollbarPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c
	(connectJObject): Remove method.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(create): Don't call gtk_widget_realize.
	(connectJObject): Remove method.
	(connectSignals): Don't call gtk_widget_realize.  Connect
	"realize" signal to connect_awt_hook_cb handler.
	(nativeSetBounds): Don't attempt to move GDK window if it is
	NULL.
	* java/awt/Container.java (addImpl): Don't call comp.addNotify
	if peer is not null.
	(validateTree): Create peers for all children before calling
	doLayout.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(connectSignals): Don't call gtk_widget_realize.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(connect_awt_hook_cb): New function.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
	(initComponentGraphicsID): New variable.
	(initComponentGraphics2DID): Likewise.
	(setCursorID): Likewise.
	(gtkInit): Initialize new fields with method IDs.
	* jni/gtk-peer/gtkpeer.h (initComponentGraphicsID): Declare
	extern.
	(initComponentGraphics2DID): Declare extern.
	(setCursorID): Likewise.
	(connect_awt_hook_cb): Declare function.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java,
	gnu/java/awt/peer/gtk/GdkGlyphVector.java,
	gnu/java/awt/peer/gtk/GdkGraphics2D.java,
	gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
	gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
	gnu/java/awt/peer/gtk/GtkButtonPeer.java,
	gnu/java/awt/peer/gtk/GtkClipboard.java,
	gnu/java/awt/peer/gtk/GtkDialogPeer.java,
	gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
	gnu/java/awt/peer/gtk/GtkFontPeer.java,
	gnu/java/awt/peer/gtk/GtkListPeer.java,
	gnu/java/awt/peer/gtk/GtkMenuItemPeer.java,
	gnu/java/awt/peer/gtk/GtkToolkit.java,
	gnu/java/awt/peer/gtk/GtkWindowPeer.java:
	Import statements reworked.  Some little reformattings.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/image/AffineTransformOp.java
	(TYPE_BILINEAR): Initialize with 2.
	* java/awt/print/Printable.java: Jalopied.
	(PAGE_EXISTS): Initialize with 0;
	(NO_SUCH_PAGE): Initialized with 1.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* Makefile.am: Add BufferedImageFilter.java.
	* Makefile.in: Regenerate.

2004-11-30  Graydon Hoare  <graydon@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(install_font_peer): Minor bug fixes to track cairo font semantics.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/BufferedImageFilter.java: Implement.

2004-11-30  Graydon Hoare  <graydon@redhat.com>

	* Makefile.am
	(jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c)
	(jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c)
	(gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java)
	(gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.java): Remove.
	(jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c)
	(jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c)
	(gnu/java/awt/peer/gtk/GdkTextLayout.java)
	(gnu/java/awt/peer/gtk/GdkFontPeer.java)
	(gnu/java/awt/peer/ClasspathTextLayoutPeer.java): Add
	* Makefile.in: Regenerate.
	* gnu/awt/xlib/XToolkit.java
	(getClasspathTextLayoutPeer): Add stub.
	* gnu/java/awt/ClasspathToolkit.java
	(getClasspathTextLayoutPeer) Add.
	* gnu/java/awt/peer/ClasspathFontPeer.java
	(copyStyleToAttrs)
	(copySizeToAttrs): Make public.
	* gnu/java/awt/peer/ClasspathTextLayoutPeer.java: New file.
	* gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java: Remove.
	* gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.java: Remove.
	* gnu/java/awt/peer/gtk/GdkFontMetrics.java: Rewrite.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java: New file.
	* gnu/java/awt/peer/gtk/GdkGlyphVector.java: Adjust type names.
	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(getFontPeer): New function.
	(drawString): Pass font peer to native side.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(cairoSetFont)
	(cairoShowGlyphs)
	(PainterThread): Remove.
	(GdkGraphics2D): Set hints during construction.
	(shifted)
	(walkPath)
	(draw)
	(setRenderingHint)
	(setRenderingHints): Reimplement normalization logic.
	(getDefaultHints)
	(updateBufferedImage)
	(isBufferedImageGraphics)
	(updateImagePixels)
	(drawImage): Make final.
	(drawImage): Always paint synchronously.
	(drawString)
	(drawGlyphVector): Rewrite.
	(releasePeerGraphicResource)
	(getPeerTextMetrics)
	(getPeerFontMetrics)
	(drawGdkGlyphVector)
	(drawGdkTextLayout)
	(cairoDrawGdkGlyphVector)
	(cairoDrawGdkTextLayout)
	(cairoDrawString)
	(getFontPeer): New functions.
	* gnu/java/awt/peer/gtk/GdkTextLayout.java: New file.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(getFontMetrics): Get metrics via toolkit, to hit cache.
	* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java: Use getFontMetrics.
	* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (LRUCache): New class.
	(fontCache)
	(metricsCache)
	(imageCache): New members.
	(getFontMetrics)
	(getImage)
	(getClasspathFontPeer): Use caches.
	(getFontPeer): Route through getClasspathFontPeer.
	* java/awt/Font.java (attrsToMap): Remove, adjust ctors.
	* java/awt/font/TextLayout.java: Implement in terms of peer.
	* javax/swing/plaf/basic/BasicSliderUI.java
	(paintThumb): Use polyline rather than polygon.
	* javax/swing/plaf/basic/BasicGraphicsUtils.java:
	Update comment but, alas, still do not switch to using TextLayouts.
	* javax/swing/text/Utilities.java (drawTabbedText):
	Draw text run-at-a-time, not char-at-a-time.
	* jni/gtk-peer/gdkfont.h: Publicize some of the font interface, add
	layout table.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c:
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c:
	Remove files.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c: Rewrite to
	incorporate brains of old GdkClasspathFontPeerMetrics.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c: Rewrite to
	incorporate brains of old GdkClasspathFontPeer.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c: New file.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(drawString): Rewrite to use persistent layout in peer font.
	Comment out extraneous gdk_flush calls.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(metrics_cairo)
	(metrics_surface): New static variables.
	(paint_glyph_run)
	(install_font_peer): New helper functions.
	(releasePeerGraphicResource)
	(getPeerTextMetrics)
	(getPeerFontMetrics)
	(cairoDrawGdkTextLayout)
	(cairoDrawGdkGlyphVector): New native methods.
	(cairoDrawString): Rewrite, leaving layout-based version
	commented out for the time being.
	* jni/gtk-peer/gtkpeer.h (graphics): Add fields for pango stuff.

2004-11-30  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/geom/AffineTransform.java:
	Fixed javadocs overall.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ComponentColorModel.java: Remove FIXME comment since
	it's correct.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/IndexColorModel.java: Fix use of immutable
	BigIntegers.

2004-11-30  Tom Tromey  <tromey@redhat.com>

	* javax/swing/plaf/basic/BasicOptionPaneUI.java (MessageIcon):
	Renamed from 'messageIcon'.
	(errorIcon, infoIcon, warningIcon, questionIcon): Updated.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/RescaleOp.java: Fix formatting.

2004-11-30   Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/plaf/basic/BasicComboPopup.java
	(SCROLL_DOWN): made final.
	(SCROLL_UP): made final.

2004-11-30   Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/plaf/basic/BasicComboPopup.java:
	Added javadocs for undocumented fields.
	(show): scroll down to the selected item and
	highlight selected item.
	(startAutoScrolling): Implemented.
	(stopAutoScrolling): Implemented.
	(autoScrollUp): Implemented.
	(autoScrollDown): Implemented.
	(InvocationMouseHandler.mouseReleased): Implemented.
	(InvocationMouseMotionHandler.mouseDragged): Implemented.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/RescaleOp.java: Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/IndexColorModel.java (getRGBs,
	convertToIntDiscrete): Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/IndexColorModel.java: Add class docs.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/IndexColorModel.java (isValid, getValidPixels):
	Implement.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/MenuBar.java,
	java/awt/peer/MenuBarPeer.java:
	Revert accidentally commited changes.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/AWTKeyStroke.java,
	java/awt/Canvas.java,
	java/awt/CardLayout.java,
	java/awt/CheckboxMenuItem.java,
	java/awt/Component.java,
	java/awt/Container.java,
	java/awt/DefaultKeyboardFocusManager.java,
	java/awt/EventDispatchThread.java,
	java/awt/FileDialog.java,
	java/awt/FlowLayout.java,
	java/awt/Font.java,
	java/awt/Frame.java,
	java/awt/Graphics2D.java,
	java/awt/GraphicsEnvironment.java,
	java/awt/GridBagConstraints.java,
	java/awt/GridBagLayout.java,
	java/awt/GridLayout.java,
	java/awt/Image.java,
	java/awt/KeyboardFocusManager.java,
	java/awt/Label.java,
	java/awt/List.java,
	java/awt/MediaTracker.java,
	java/awt/Menu.java,
	java/awt/MenuBar.java,
	java/awt/MenuComponent.java,
	java/awt/Panel.java,
	java/awt/PopupMenu.java,
	java/awt/ScrollPane.java,
	java/awt/Scrollbar.java,
	java/awt/SystemColor.java,
	java/awt/TextArea.java,
	java/awt/TextField.java,
	java/awt/Toolkit.java,
	java/awt/Window.java,
	java/awt/color/ICC_Profile.java,
	java/awt/datatransfer/DataFlavor.java,
	java/awt/datatransfer/StringSelection.java,
	java/awt/datatransfer/SystemFlavorMap.java,
	java/awt/dnd/Autoscroll.java,
	java/awt/dnd/DropTarget.java,
	java/awt/dnd/DropTargetContext.java,
	java/awt/dnd/DropTargetDragEvent.java,
	java/awt/dnd/peer/DropTargetContextPeer.java,
	java/awt/event/AdjustmentEvent.java,
	java/awt/event/InputEvent.java,
	java/awt/event/InvocationEvent.java,
	java/awt/event/KeyEvent.java,
	java/awt/event/MouseEvent.java,
	java/awt/font/TextLayout.java,
	java/awt/geom/GeneralPath.java,
	java/awt/geom/Point2D.java,
	java/awt/im/InputContext.java,
	java/awt/im/spi/InputMethodContext.java,
	java/awt/image/AffineTransformOp.java,
	java/awt/image/BufferedImage.java,
	java/awt/image/ColorModel.java,
	java/awt/image/ComponentColorModel.java,
	java/awt/image/CropImageFilter.java,
	java/awt/image/DirectColorModel.java,
	java/awt/image/MemoryImageSource.java,
	java/awt/image/PackedColorModel.java,
	java/awt/image/PixelGrabber.java,
	java/awt/image/RasterOp.java,
	java/awt/peer/MenuBarPeer.java:
	Some fixes for checkstyle. Import statement and modifier order
	redordering.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTable.java
	(setModel): Reimplemented.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTextArea.java
	(append): Re-implemented.
	(insert): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JSpinner.java
	(serialVersionUID): New static field.
	* javax/swing/JToggleButton.java
	(JToggleButton): Fixed email addresses.
	* javax/swing/SpinnerNumberModel.java
	(serialVersionUID): Added javadoc.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTextArea.java:
	Don't use JTextComponent.doc directly. GCJ from java-gui-branch has a
	bug here which is fixed in HEAD ...

2004-11-30  Andrew John Hughes  <address@hidden>

	* javax/swing/JTextArea.java: Added additional
	documentation.

2004-11-30  Andrew John Hughes  <address@hidden>

	* javax/swing/JRadioButton.java:
	Implemented additional constructors and accessibility
	classes.  Added documentation and fixed a typo in
	AbstractButton.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/IndexColorModel.java (IndexColorModel): Implement
	missing constructor.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ComponentColorModel.java (ComponentColorModel):
	Implement missing 1.4 constructor.

2004-11-30  Andrew John Hughes  <address@hidden>

	* javax/swing/JToggleButton.java:
	Implemented additional constructors and accessibility
	classes.  Added documentation and fixed a typo in
	AbstractButton.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ColorModel.java (getDataElement,
	getDataElements): Document since 1.4.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/BandedSampleModel.java: Implement.
	* Makefile.am: Add java/awt/image/BandedSampleModel.java.
	* Makefile.in: Regenerated.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/Window.java: Fixed whitespace difference with GNU
	classpath.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* Makefile.am: Add javax/swing/SpinnerListModel.java.
	* Makefile.in: Regenerated.

2004-11-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/swing/SpinnerListModel.java, javax/swing/SpinnerModel.java
	Implemented SpinnerListModel.  Added documentation to
	SpinnerModel.

2004-11-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
	(init_dpi_conversion_factor): Apply the patch from main correctly.
	2004-06-26  Andreas Tobler  <a.tobler@schweiz.ch>

2004-11-30  Tom Tromey  <tromey@redhat.com>

	Bug 9948.
	* javax/swing/JDesktopPane.java (LIVE_DRAG_MODE): Now final.
	(OUTLINE_DRAG_MODE): LIVE_DRAG_MODE.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(NON_CONTINUOUS_DIVIDER): Now final.  Initialize.

2004-11-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/awt/Canvas.java
	(AccessibleAWTCanvas): added serialization UID
	* java/awt/Label.java
	(AccessibleAWTLabel): added serialization UID
	* javax/swing/JRootPane.java
	(AccessibleJRootPane): added comment to existing UID
	* javax/swing/JSpinner.java
	(DefaultEditor): added serialization UID
	(NumberEditor): added serialization UID
	* javax/swing/text/html/HTML.java
	(UnknownTag): added serialization UID

2004-11-30  Jeroen Frijters  <jeroen@frijters.net>

	* javax/swing/JInternalFrame.java
	(CONTENT_PANE_PROPERTY,FRAME_ICON_PROPERTY,GLASS_PANE_PROPERTY,
	IS_CLOSED_PROPERTY,IS_ICON_PROPERTY,IS_MAXIMUM_PROPERTY,
	IS_SELECTED_PROPERTY,LAYERED_PANE_PROPERTY,MENU_BAR_PROPERTY,
	ROOT_PANE_PROPERTY,TITLE_PROPERTY): Made final as per API spec.
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(CLOSE_CMD,ICONIFY_CMD,MAXIMIZE_CMD,MOVE_CMD,RESTORE_CMD,SIZE_CMD):
	Made final as per API spec.

2004-11-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* jni/gtk-peer/gtkpeer.h: Remove duplicated copyright string.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* java/awt/geom/Arc2D.java: Reformatted.
	(setArc): Correct documentation to say 'upper left corner'.
	(setArcByTangent,contains,intersects): Implemented.
	(containsAngle): Corrected to handle negative extents.
	(ArcIterator): Set to private.
	(ArcIterator): Corrected for CHORD-type arcs, negative extents.
	(intersects): Fix: Now checks the arc segment.
	(contains): Cleaned up.
	* java/awt/geom/CubicCurve2a.javaD: Fix insideness-test. Reindent.
	(contains): Implemented.
	(intersects): Implemented.
	* java/awt/geom/QuadCurve2D.java: Fix insideness-test. Reindent.
	* java/awt/geom/GeneralPath: Fix insideness-test. Reindent and
	document.  Fully (re)implemented using separate xpoints and ypoints
	float[] coords.

2004-11-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.ac: Introduce AC_C_BIGENDIAN_CROSS for WORDS_BIGENDIAN.
	* configure: Regenerate.
	* include/config.h.in: Likewise.
	* jni/gtk-peer/gtkpeer.h (SWAPU32): Introduce macro to swap pixels.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c: Moved SWAPU32
	macro to gtkpeer.h.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getImagePixels): Convert
	pixels from  0xBBGGRRAA to 0xAARRGGBB only on Little Endian
	architectures.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c (area_updated):
	Likewise.

2004-11-30  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/SystemColor.java: Fix @link doc entries.

2004-11-30  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/RenderingHints.java: Documented.
	(RenderingHints): Accept null init Map.
	(putAll): Preprocess map to generate appropriate exceptions.
	(remove): Cast object to Key and remove from hintMap.

2004-11-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/awt/MenuComponent.java, java/awt/MenuBar.java:
	Implementation of accessibility classes and methods
	for these two components.

2004-11-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/awt/KeyboardFocusManager.java:
	Added missing documentation.

2004-11-30  Andrew John Hughes <gnu_andrew@member.fsf.org>

	* java/awt/Label.java, java/awt/Canvas.java:
	Added accessibility classes to AWT Label and Canvas,
	as well as additional documentation for Canvas.

2004-11-30  David Gilbert  <address@bogus.example.com>

	* java/awt/image/DataBuffer.java: Update API documentation.
	* java/awt/image/DataBufferByte.java: Likewise.
	* java/awt/image/DataBufferDouble.java: Likewise.
	* java/awt/image/DataBufferFloat.java: Likewise.
	* java/awt/image/DataBufferInt.java: Likewise.
	* java/awt/image/DataBufferShort.java: Likewise.
	* java/awt/image/DataBufferUShort.java: Likewise.

2004-11-30  Dalibor Topic  <robilad@kaffe.org>

	* java/awt/Component.java (postEvent):
	Only delegate to parent if a parent exists.
	Reported by: Stephane Meslin-Weber <steph@tangency.co.uk>

2004-11-30  Sven de Marothy  <sven@physto.se>

	*java/awt/AWTEventMulticaster.java,
	java/awt/Adjustable.java,
	java/awt/Point.java,
	java/awt/Polygon.java,
	java/awt/Rectangle.java,
	java/awt/Shape.java,
	java/awt/geom/Area.java,
	java/awt/geom/Ellipse2D.java,
	java/awt/geom/PathIterator.java,
	java/awt/geom/Point2D.java,
	java/awt/geom/Rectangle2D.java,
	java/lang/Comparable.java,
	java/util/Arrays.java:
	Fixed documentation errors

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ComponentSampleModel.java: Add documentation.


2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ComponentSampleModel.java (constructor):
	Initialize numBanks when figuring out the max bank index.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/Raster.java (createPackedRaster): Implement
	MultiPixelPackedSampleModel codepath.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/MultiPixelPackedSampleModel.java: Implement.
	* Makefile.am: Add MultiPixelPackedSampleModel.java.
	* Makefile.in: Regenerate.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/Raster.java (getNumBands): Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/Raster.java
	(createPackedRaster(int,int,int,int,int,Point)): Implement for
	bands>1.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/SinglePixelPackedSampleModel.java
	(SinglePixelPackedSampleModel): Throw exception for unsupported
	datatype.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ColorModel.java (getDataElement): Implemented.
	Update javadoc.
	(getDataElements): Add missing version.  Remove bogus version.
	Update javadoc.

2004-11-30  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java:
	(paintCurrentValue): Pass correct parameters to
	getListCellRendererComponent().
	(ListDataHandler.intervalRemoved): Implemented.
	(PropertyChangeHandler.propertyChange): Handle changes in
	MODEL_CHANGED_PROPERTY of the JComboBox
	* javax/swing/plaf/basic/BasicComboPopup.java:
	(BasicComboPopup): Moved code that configures popup to
	configurePopup() and call it instead.
	(firePopupMenuWillBecomeVisible): Implemented.
	(firePopupMenuWillBecomeInvisible): Likewise.
	(firePopupMenuCanceled): Likewise.
	(configureList): Set list's visibleRowCount same as
	comboBox's visibleRowCount.
	(configurePopup): Implemented.
	(getPopupHeightForRowCount): Get item's from JComboBox's model and
	not from model of the JList.
	(ListMouseMotionHandler.mouseMoved): Implemented.
	(PropertyChangeHandler.propertyChange): Handles change in the
	JComboBox's model.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JComponent.java
	(isMaximumSizeSet): New method.
	(isMinimumSizeSet): Likewise.
	(isPreferredSizeSet): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JSpinner.java:
	Some Re-formatting.
	(spinner): New field.
	(DefaultEditor): New method.
	(getSpinner): Likewise.
	(NumberEdito): Likewise.
	(getModel): Likewise

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/InputVerifier.java:
	Re-formatted.
	* javax/swing/JComponent.java
	(inputVerifier): New property field.
	(getInputVerifier): New method.
	(setInputVerifier): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JComponent.java
	(JComponent): Added javadoc comment.
	(setBorder): Fire property change eventr.
	(setEnabled): Likewise.
	(setMaximumSize): Likewise.
	(setMinimumSize): Likewise.
	(setPreferredSize): Likewise.
	(setOpaque): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTextField.java
	(action): New field.
	(actionCommand): Likewise.
	(actionPropertyChangeListener): Likewise.
	(setHorizontalAlignment): Abort soon if new value == old value. Fire
	event before repainting.
	(postActionEvent): New method.
	(getAction): Likewise.
	(setAction): Likewise.
	(getActionCommand): Likewise.
	(setActionCommand): Likewise.
	(createActionPropertyChangeListener): Likewise.
	(configurePropertiesFromAction): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/DebugGraphics.java:
	Re-formatted. Fixed some javadocs.
	* javax/swing/JApplet.java
	(rootPaneCheckingEnabled): Renamed from checking.
	* javax/swing/JCheckBox.java
	(BORDER_PAINTED_FLAT_CHANGED_PROPERTY): New statif field.
	* javax/swing/JFrame.java:
	Re-formatted a bit and reordered some methods.
	(rootPaneCheckingEnabled): Renamed from checking.
	(getPreferredSize): Simplified.
	* javax/swing/JTextArea.java
	(getColumnWidth): New method.
	(getLineCount): Likewise.
	(getLineStartOffset): Likewise.
	(getLineEndOffset): Likewise.
	(getLineOfOffset): Likewise.
	(getRowHeight): Likewise.
	(insert): Likewise.
	(replaceRange): Likewise.
	* javax/swing/JTextField.java
	(scrollOffset): new field.
	(getScrollOffset): New method.
	(setScrollOffset): Likewise.
	(getColumnWidth): Likewise.
	* javax/swing/JTree.java
	(ANCHOR_SELECTION_PATH_PROPERTY): New static field.
	(CELL_EDITOR_PROPERTY): Likewise.
	(CELL_RENDERER_PROPERTY): Likewise.
	(EDITABLE_PROPERTY): Likewise.
	(EXPANDS_SELECTED_PATHS_PROPERTY): Likewise.
	(INVOKES_STOP_CELL_EDITING_PROPERTY): Likewise.
	(LARGE_MODEL_PROPERTY): Likewise.
	(LEAD_SELECTION_PATH_PROPERTY): Likewise.
	(ROOT_VISIBLE_PROPERTY): Likewise.
	(ROW_HEIGHT_PROPERTY): Likewise.
	(SCROLLS_ON_EXPAND_PROPERTY): Likewise.
	(SELECTION_MODEL_PROPERTY): Likewise.
	(SHOWS_ROOT_HANDLES_PROPERTY): Likewise.
	(TOGGLE_CLICK_COUNT_PROPERTY): Likewise.
	(TREE_MODEL_PROPERTY): Likewise.
	(VISIBLE_ROW_COUNT_PROPERTY): Likewise.
	(cellEditor): New field.
	(invokesStopCellEditing): Likewise.
	(largeModel): Likewise.
	(rowHeight): Likewise.
	(scrollsOnExpand): Likewise.
	(selectionModel): Likewise.
	(toggleClickCount): Likewise.
	(visibleRowCount): Likewise.
	(setShowsRootHandles): Fixed typo in method name.
	(getCellEditor): New method.
	(setCellEditor): Likewise.
	(getSelectionModel): Likewise.
	(setSelectionModel): Likewise.
	(getVisibleRowCount): Likewise.
	(setVisibleRowCount): Likewise.
	(isLargeModel): Likewise.
	(setLargeModel): Likewise.
	(getRowHeight): Likewise.
	(setRowHeight): Likewise.
	(getInvokesStopCellEditing): Likewise.
	(setInvokesStopCellEditing): Likewise.
	(getToggleClickCount): Likewise.
	(setToggleClickCount): Likewise.
	(getScrollsOnExpand): Likewise.
	(setScrollsOnExpand): Likewise.
	* javax/swing/table/DefaultTableColumnModel.java
	(addColumnModelListener): Fixed javadoc.
	(removeColumnModelListener): Implemented. Fixed javadoc.
	(getColumnModelListeners): New method.
	* javax/swing/table/JTableHeader.java
	(columnModel): Made protected.
	(draggedColumn): Likewise.
	(draggedDistance): Likewise.
	(reorderingAllowed): Likewise.
	(resizingAllowed): Likewise.
	(resizingColumn): Likewise.
	(table): Likewise.
	(updateTableInRealTime): Likewise.
	(createDefaultColumnModel): Renamed from
	createDefaultTableColumnModel.
	(setDefaultRenderer): New method.
	* javax/swing/table/TableColumn.java
	(getPropertyChangeListeners): New method.
	* javax/swing/text/DefaultHighlighter.java
	(drawsLayeredHighlights): New field.
	(getDrawsLayeredHighlights): New method.
	(setDrawsLayeredHighlights): Likewise.
	* javax/swing/text/DocumentFilter.java
	(FilterBypass): New inner class.
	(insertString): New method.
	(remove): Likewise.
	(replace): Likewise.
	* javax/swing/text/JTextComponent.java
	(dragEnabled): New field.
	(getSelectedText): New method.
	(getDragEnabled): Likewise.
	(setDragEnabled): Likewise.
	(replaceSelection): Reimplemented.
	* javax/swing/text/NavigationFilter.java
	(FilterBypass): New inner class.
	(NavigationFilter): New method.
	(moveDot): Likewise.
	(setDot): Likewise.
	* javax/swing/text/SimpleAttributeSet.java
	(EMPTY): Made public final.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/SpinnerNumberModel.java
	(getMinimum): New method.
	(setMinimum): Likewise.
	(getMaximum): Likewise.
	(setMaximum): Likewise.
	(getStepSize): Likewise.
	(setStepSize): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JMenu.java
	(getMenuListeners): New method.
	(fireMenuSelected): Simplified.
	* javax/swing/JRootPane.java
	(NONE): New static field.
	(FRAME): Likewise.
	(PLAIN_DIALOG): Likewise.
	(INFORMATION_DIALOG): Likewise.
	(ERROR_DIALOG): Likewise.
	(COLOR_CHOOSER_DIALOG): Likewise.
	(FILE_CHOOSER_DIALOG): Likewise.
	(QUESTION_DIALOG): Likewise.
	(WARNING_DIALOG): Likewise.
	(defaultButton): New field.
	(getDefaultButton): New method.
	(setDefaultButton): Likewise.
	* javax/swing/JScrollPane.java
	(getUI): New method.
	(setUI): Likewise.
	* javax/swing/JTable.java
	(getUI): Javadoc added.
	(setUI): New method.
	* javax/swing/JViewport.java
	(getUI): New method.
	(setUI): Likewise.
	* javax/swing/UIDefaults.java
	(removePropertyChangeListener): Made public.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JApplet.java, javax/swing/JFrame.java:
	Re-indented.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractButton.java:
	Little re-formatting.
	(changeEvent): Made protected.
	(fireStateChanged): Removed argument.
	(setHorizontalAlignment): Abort method when old value is equal too new
	value.
	(setHorizontalTextPosition): Likewise.
	(setVerticalAlignment): Likewise.
	(setVerticalTextPosition): Likewise.
	(setBorderPainted): Likewise.
	(setIcon): Likewise.
	(setText): Likewise.
	(setIconTextGap): Likewise.
	(setMargin): Likewise.
	(setPressedIcon): Likewise.
	(setFocusPainted): Likewise.
	(setDisabledSelectedIcon): Likewise.
	(setRolloverIcon): Likewise.
	(setRolloverSelectedIcon): Likewise.
	(setSelectedIcon): Likewise.
	(setContentAreaFilled): Likewise.

2004-11-30  Kim Ho  <kho@redhat.com>

	* javax/swing/plaf/basic/BasicArrowButton.java:
	Jalopy. Reimplement.
	* javax/swing/plaf/basic/BasicScrollBarUI.java:
	Jalopy.
	(arrowIcon, upIcon, downIcon, leftIcon,
	rightIcon): Removed.
	(createIncreaseButton): Use BasicArrowButton.
	(createDecreaseButton): Ditto.
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java:
	(createRightOneTouchButton): Remove button border.
	(createLeftOneTouchButton): Ditto.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JSpinner.java
	(setModel): New method.
	* javax/swing/SpringLayout.java
	(Constraints): May not be final.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GtkClipboard.java,
	java/awt/datatransfer/Clipboard.java,
	java/awt/datatransfer/ClipboardOwner.java:
	Reformated to make it use our coding standard.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/SpinnerNumberModel.java
	(SpinnerNumberModel): Implements java.io.Serializable.
	(serialVersionUID): New field.
	(SpinnerNumberModel): Added missing @throws tags to javadocs.
	* javax/swing/UIManager.java
	(get): New method.
	(getBoolean): Likewise.
	(getBorder): Likewise.
	(getColor): Likewise.
	(getDimension): Likewise.
	(getFont): Likewise.
	(getIcon): Likewise.
	(getInsets): Likewise.
	(getInt): Likewise.
	(getString): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JPasswordField.java:
	Reformated. Implemented construtors.
	* javax/swing/plaf/basic/BasicPasswordFieldUI.java
	(create): New method.
	* javax/swing/text/PlainView.java
	(selectedColor): Made package-private to allow access from sub-classes
	in same package too.
	(unselectedColor): Likewise.
	(font): Likewise.
	(drawSelectedText): Make protected.
	(drawUnselectedText): Likewise.
	* javax/swing/text/PasswordView.java: New file.
	* Makefile.am: Added javax/swing/text/PasswordView.java.
	* Makefile.in: Regenerated.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java (setMenuBar): Set menu
	bar's width.
	* gnu/java/awt/peer/gtk/GtkMenuBarPeer.java (nativeSetHelpMenu):
	Add FIXME comment.
	(addHelpMenu): Elide call to nativeSetHelpMenu.
	* java/awt/Menu.java (isTearOff): Rename to tearOff.
	(menuSerializedDataVersion): Initialize to 1.
	(separatorLabel): Mark transient.
	(insert(MenuItem,int)): Implement.
	* java/awt/MenuBar.java (setHelpMenu): Call getPeer to retrieve
	peer.
	(countMenus): Count help menu.
	* java/awt/MenuComponent.java (nameExplicitlySet, newEventsOnly,
	accessibleContext): Add fields.
	* java/awt/MenuItem.java: Remove event mask FIXME.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
	(gtkWidgetModifyFont): Only set font if label is non-NULL.
	(setLabel): Don't treat "-" specially.

2004-11-30  Kim Ho  <kho@redhat.com>

	* javax/swing/colorchooser/DefaultHSBChooserPanel.java:
	(stateChanged): Only update the image and the track if
	the values are not being adjusted.
	(updateChooser): Grab the new mouse point from the
	spinner values. Update the image and track only if
	the values are not being adjusted.
	(getHSBValues): New method.
	* javax/swing/colorchooser/DefaultRGBChooserPanel.java:
	(SliderHandler::stateChanged): Changed internalChange
	to updateChange. Set sliderChange.
	(SpinnerHandler::stateChanged): Ditto. Set spinnerChange.
	(spinnerChange): New variable.
	(sliderChange): Ditto.
	(updateChange): Renamed from internalChange.
	(updateChooser): Do not update sliders if the sliders
	were the original source of the change. Ditto for spinners.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java:
	(mousePress): Don't scroll the JViewport if there will
	be extra space at the end of the run. Change layout() to
	revalidate().
	(calculateSize): Use the component's width/height unless
	it is smaller than the max tab width/height.
	(calculateTabRects): Subtract the tab run overlay.
	(rotateTabRuns): Don't rotate if there's only one run.
	(layoutContainer): Reuse the viewport point.
	(createLayoutManager): Set the viewport to use no layout.
	(paintTabArea): Don't paint the tabs that are not visible
	to the JViewport.
	(paintContentBorderTopEdge): Check for scroll tab layout before
	looking for gap.
	(paintContentBorderLeftEdge): Ditto.
	(paintContentBorderBottomEdge): Ditto.
	(paintContentBorderRightEdge): Ditto.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkButtonPeer.java (gtkWidgetSetFont):
	Rename ...
	(gtkWidgetModifyFont): New method.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
	(setMenuBarWidth): New method.
	(setBounds): Set the menu bar width.
	(postConfigureEvent): Set the menu bar width if the window's
	width has changed.
	* gnu/java/awt/peer/gtk/GtkMenuBarPeer.java (GtkMenuBarPeer):
	Don't call create.
	(setFont): New method.
	* gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java (create): New
	method.
	(setFont): Likewise.
	(GtkMenuComponentPeer): Call create and setFont.
	* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
	(connectSignals): Make package private.
	(gtkWidgetModifyFont): New method.
	(create): Likewise.
	(GtkMenuItemPeer): Don't call create.
	(setFont): New method.
	* java/awt/CheckboxMenuItem.java (addNotify): Fix peer == null
	condition.
	* java/awt/Container.java (validateTree): Fix comment typos.
	* java/awt/MenuComponent.java (getFont): Return parent's font if
	our font is null.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c
	(create): Remove call to deprecated
	gtk_check_menu_item_set_show_toggle function.

2004-11-30  Hans Boehm <Hans.Boehm@hp.com>

	* java/lang/natObject.cc (LOCK_LOG, LOG): Add debug tracing.
	(Almost everywhere): add LOG calls, fix, add comments.
	(_Jv_MonitorEnter): Replace masking of LOCKED bit with assertion.
	Add explicit check for LOCKED bit in slow case (PR 16662).
	(_Jv_MonitorExit): Add casts in debug-only code.
	Always release LOCKED bit before throwing exception.
	(_Jv_ObjectCheckMonitor): Lock may be held if lightweight lock
	isn't.  Handle easy cases without lock acquisition.
	(Object::wait): Use NotifyAll for lock inflation.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
	(gtkFixedMove): Remove method.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* java/awt/geom/Area.java: Implemented.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* java/awt/geom/Arc2D.java (ArcIterator): Make package private.

2004-11-30 Sven de Marothy <sven@physto.se>

	* java/awt/geom/Arc2D.java
	Reformatted.
	(setArc): Correct documentation to say 'upper left corner'.
	(setArcByTangent,contains,intersects): Implemented.
	(containsAngle): Corrected to handle negative extents.
	(ArcIterator): Set to private.
	(ArcIterator): Corrected for CHORD-type arcs, negative extents.
	* java/awt/geom/Ellipse2D.java
	Documented.
	(contains,intersects): Implemented.
	* java/awt/geom/Line2D.java
	(linesIntersect): Correct handling of special cases.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkGraphics.java (setColor): Use
	Color.BLACK if c == null, don't create new Color object each time.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (comp): New private
	field.
	(setColor): Use Color.BLACK when argument null.
	(setComposite): Set this.comp field.
	(getComposite): Return this.comp, or AlphaComposite.SrcOver when null.
	(DrawState.comp): New private field.
	(DrawState.save): Save Composite.
	(DrawState.restore): Restore comp field.
	* java/awt/FontMetrics.java (gRC): New static final private field.
	(getLineMetrics(String, Graphics)): New method.
	(getLineMetrics(String, int, int, Graphics)): Likewise.
	(getLineMetrics(char[], int, int, Graphics)): Likewise.
	(getLineMetrics(CharacterIterator, int, int, Graphics)): Likewise.
	* javax/swing/JMenu.java (JMenu(String, boolean)): Ignore tearoff
	argument. PR SWING/17294.
	* javax/swing/plaf/basic/BasicGraphicsUtils.java (): Always use
	the fall-back code since none of the TextArea methods are really
	implemented now. PR SWING/17296.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c
	(GdkGlyphVector_setChars): Replace assert() with if block when
	pango_itemize() returns null. PR AWT/17295.
	(GdkGlyphVector_allInkExtents): Likewise when vec->glyphitems is null.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am (gtk_c_source_files): Add
	gnu_java_awt_peer_gtk_GtkFramePeer.c.
	* Makefile.in: Regenerate.
	* gnu/java/awt/peer/gtk/GdkGraphics.java (getClipBounds): Remove
	comment.
	* gnu/java/awt/peer/gtk/GtkButtonPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(create): Pack GtkButton in GtkEventBox.
	(connectJObject): Remove.
	(focus_in_cb): New function.
	(focus_out_cb): Likewise.
	(connectSignals): Connect focus-in-event and focus-out-event
	signals.
	(gtkSetFont): Rename to ...
	(gtkWidgetModifyFont): New method.
	(gtkWidgetRequestFocus): New method.
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(gtkSetFont): Rename to ...
	(gtkWidgetModifyFont): New method.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(isInRepaint): New field.
	(gtkSetFont): Remove method.
	(addExposeFilter): Likewise.
	(removeExposeFilter): Likewise.
	(gtkWidgetQueueDrawArea): Rename to ...
	(gtkWidgetRepaintArea): New method.
	(beginNativeRepaint): New method.
	(endNativeRepaint): New method.
	(setComponentBounds): Move implementation here from
	GtkComponentPeer.
	(paint): Remove implementation.
	(repaint): Wrap call to gtkWidgetRepaintArea with calls to
	beginNativeRepaint and endNativeRepaint.
	(setBounds): Use menu bar height in bounds calculation.
	(postExposeEvent): Only post paint event if we're not doing a
	native repaint.
	(gtkWidgetSetParent): Replace gtk_layout_put with gtk_fixed_put.
	(setNativeBounds): Replace gtk_layout_move with gtk_fixed_move.
	(find_gtk_layout): Remove function.
	(filter_expose_event_handler): Likewise.
	* gnu/java/awt/peer/gtk/GtkDialogPeer.java (postExposeEvent):
	Likewise.
	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
	(setComponentBounds): Call GtkComponentPeer's
	setComponentBounds.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java (getMenuBarHeight):
	New method.
	(moveLayout): Rename to ...
	(gtkFixedMove): New method.
	(gtkLayoutSetVisible): Rename to ...
	(gtkFixedSetVisible): New method.
	(setMenuBar): Rearrange, to make the three separate cases
	clearer.
	(postExposeEvent): Only post paint event if we're not doing a
	native repaint.
	* gnu/java/awt/peer/gtk/GtkGenericPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
	(gtkWidgetModifyFont): New method.
	* gnu/java/awt/peer/gtk/GtkImagePainter.java
	(GtkImagePainter(GtkImage,GdkGraphics,int,int,int,int,Color)):
	Call run directly, rather than spawning a new thread.
	(GtkImagePainter(GtkImage,GdkGraphics,int,int,int,int,int,int,int,int,Color)):
	Likewise.
	* gnu/java/awt/peer/gtk/GtkLabelPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c (gtkSetFont):
	Rename to ...
	(gtkWidgetModifyFont): New method.
	(create): Rename ebox to eventbox.
	* gnu/java/awt/peer/gtk/GtkListPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c (gtkSetFont):
	Rename to ...
	(gtkWidgetModifyFont): New method.
	* gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
	(GtkMenuComponentPeer): Set the default font.
	* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
	(gtkSetFont): Rename to ...
	(gtkWidgetModifyFont): New method.
	* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c: Likewise.
	* java/awt/Component.java (locale): Initialize to default
	locale.
	* java/awt/Container.java (invalidateTree): Make
	package-private.
	(paint): Paint self first.
	(setMenuBar): Call invalidateTree.
	* java/awt/Panel.java (dispatchEventImpl): Remove method.
	* java/awt/Window.java (show): Call no-parameter variant of
	requestFocusInWindow.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (initState):
	Remove special case for window widget.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(grab_current_drawable): Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c
	(create): Replace GtkLayout with GtkFixed.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(pre_event_handler): Remove special cases for GDK_EXPOSE events.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c: New file.
	Move all GtkFramePeer native method implementations here from
	gnu_java_awt_peer_gtk_GtkWindowPeer.c.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c (create):
	Replace GtkLayout with GtkFixed.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(find_layout): Remove function.
	(create): Replace GtkLayout with GtkFixed.
	(connectSignals): Remove find_layout call.
	(toBack): Replace XFlush with gdk_flush.
	(toFront): Replace XFlush with gdk_flush.
	Move GtkFramePeer native method implementations to
	gnu_java_awt_peer_gtk_GtkFramePeer.c.
	* jni/gtk-peer/gtkpeer.h: Remove declaration of find_gtk_layout.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTextArea.java
	(lineWrap): Renamed from "wrapping".
	(wrapStyleWord): NEw field.
	(getLineWrap): Re-edited javadoc comment.
	(setLineWrap): Likewise.
	(getWrapStyleWord): New method.
	(setWrapStyleWord): Likewise.

2004-11-29  Kelley Cook  <kcook@gcc.gnu.org>

	* configure: Regenerate for libtool change.

2004-11-29  Tom Tromey  <tromey@redhat.com>

	* gnu/gcj/tools/gcj_dbtool/Main.java (main): Mention gcj-dbtool.
	Recognize --help and --version.
	(usage): Mention gcj-dbtool.  Added "out" argument.
	(insist): Updated.

2004-11-29  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* link.cc (link_symbol_table): Do not use intptr_t.

2004-11-28  Mark Wielaard  <mark@klomp.org>

	* mauve-libgcj: Disable SpinnerListModel, SwingUtilities and
	XMLDecoder tests which currently don't compile.

2004-11-27  Andrew Haley  <aph@redhat.com>

	* link.cc (ensure_class_linked): Conditionally compile
	_Jv_IsInterpretedClass on INTERPRETER.
	(print_class_loaded): Likewise.
	(wait_for_state): Likewise.
	* include/jvm.h (ROUND): Move to here from include/java-interp.h.
	* include/java-interp.h (ROUND): Remove.

2004-11-25  Tom Tromey  <tromey@redhat.com>

	* gnu/gcj/util/natDebug.cc (getField): Don't qualify name.
	* java/lang/Class.h (_Jv_Linker): Declare.
	(Class): Fix names of friends.
	(_Jv_getInterfaceMethod): Declare.

2004-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* testsuite/lib/libjava.exp (libjava_arguments): Add new global
	variable libjava_ld_library_path.
	(gcj_invoke, libjava_invoke): Use it to set ld_library_path.

2004-11-25  Bryce McKinlay  <mckinlay@redhat.com>

	* java/util/ResourceBundle.java (BundleKey): Don't implement
	Cloneable.
	(BundleKey.clone): Removed.
	(getBundle): Copy BundleKey using constructor, not clone().

2004-11-25  Kelley Cook  <kcook@gcc.gnu.org>

	* configure: Regenerate for libtool reversion.

2004-11-25  Michael Koch  <konqueror@gmx.de>

	* Makefile.am: Added most of javax.print again.
	* Makefile.in: Regenerated.

2004-11-25  Michael Koch  <konqueror@gmx.de>

	* Makefile.am: Added most of javax.print again.
	* Makefile.in: Regenerated.

2004-11-24  Tom Tromey  <tromey@redhat.com>

	* Merged gcj-abi-2-dev-branch to trunk.

2004-11-16  Tom Tromey  <tromey@redhat.com>

	* include/java-interp.h (_Jv_DefineClass): Updated.
	* java/lang/natVMClassLoader.cc (defineClass): Pass protection
	domain to class reader.
	* defineclass.cc (parse): Use print_class_loaded.
	Include ProtectionDomain.h.
	(_Jv_DefineClass): Added ProtectionDomain argument.
	(_Jv_ClassReader): Likewise.
	* include/jvm.h (_Jv_Linker::print_class_loaded): Declare.
	* link.cc: Include CodeSource.h.
	(print_class_loaded): New function.
	(wait_for_state): Use it.

2004-11-16  Andrew Haley  <aph@redhat.com>

	* gnu/gcj/util/Debug.java (print): Add RawDataManaged.

2004-11-16  Andrew Haley  <aph@redhat.com>

	* configure.ac (LIBGCJ_LD_SYMBOLIC): AC_SUBST this definition.
	* configure.host: Define libgcj_ld_symbolic for Linux hosts.
	* Makefile.am (lib_*_la_LDFLAGS): Add LIBGCJ_LD_SYMBOLIC.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2004-11-15  Andrew Haley  <aph@redhat.com>

	* boehm.cc (_Jv_GCRegisterDisappearingLink): Check that *objp is a
	gc-allocated object.

2004-11-15  Andrew Haley  <aph@redhat.com>

	* java/net/URLClassLoader.java
	(URLLoader.getClassPath): New method.
	(JarURLLoader.JarURLLoader): Read mainfest to parse "Class-Path"
	attribute and add URLs for each entry.
	(JarURLLoader.classPath): New field.
	(JarURLLoader.getClassPath): New method.
	(addURLImpl): Scan through the list of extraUrls in the new
	loader, adding them to our urlinfos.
	(definePackage, findURLResource, findResources): Use
	urlinfos.size(), not urls.size().

2004-11-11  Tom Tromey  <tromey@redhat.com>

	* gnu/gcj/runtime/natSharedLibLoader.cc (ensureSupersLinked): New
	method.
	* gnu/gcj/runtime/SharedLibHelper.java (findClass): Ensure supers
	linked.
	(ensureSupersLinked): Declare.
	* java/lang/natVMClassLoader.cc (loadClass): Ensure supers
	linked.

2004-11-10  Tom Tromey  <tromey@redhat.com>

	* gij.cc (main): Treat -verbose the same as -verbose:class.
	(help): Document -verbose and -verbose:class.

	* link.cc (verbose_class_flag): Declare.
	(wait_for_state): Print message when handling precompiled class.
	* java/lang/natClass.cc (verbose_class_flag): Moved to link.cc.

2004-11-09  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.lang/assign2.out: New file.
	* testsuite/libjava.lang/assign2.java: New file.

	* java/lang/natRuntime.cc (insertSystemProperties): Set
	java.version to 1.4.2 and java.specification.version to 1.4.  Set
	java.runtime.version.

2004-11-08  Tom Tromey  <tromey@redhat.com>

	* java/lang/natClass.cc (_Jv_IsAssignableFromSlow): Ensure
	supers installed.
	* link.cc (verify_type_assertions): Don't link supers.

	* include/jvm.h (_Jv_Linker::search_method_in_class): Declare.
	* include/java-interp.h (class _Jv_InterpClass)
	<_Jv_PrepareMissingMethods>: No longer `friend'.
	* java/lang/Class.h (_Jv_SearchMethodInClass): No longer
	`friend'.
	(_Jv_PrepareMissingMethods, _Jv_PrepareCompiledClass,
	_Jv_GetInterfaces, _Jv_GenerateITable, _Jv_FindIIndex,
	_Jv_AppendPartialITable, _Jv_LinkSymbolTable,
	_Jv_LayoutInterfaceMethods, _Jv_SetVTableEntries, _Jv_MakeVTable,
	_Jv_linkExceptionClassTable, _Jv_WaitForState): Likewise.
	* link.cc (search_method_in_class): Renamed from
	_Jv_SearchMethodInClass.
	(resolve_pool_entry): Updated.

	* include/jvm.h (_Jv_CheckAssignment): Removed.
	* java/lang/natClass.cc (_Jv_CheckAssignment): Removed.

2004-11-05  Tom Tromey  <tromey@redhat.com>

	* link.cc (verify_type_assertions): Ensure classes have supers
	linked.  Strip off array types first.

2004-11-05  Bryce McKinlay  <mckinlay@redhat.com>

	* link.cc: Include VerifyError.h.
	(_Jv_Linker::verify_type_assertions): New. Read and evaluate entries
	in the type assertion table.
	* include/execution.h (_Jv_CompiledEngine::do_verify): Use
	verify_type_assertions.
	* include/jvm.h (_Jv_Linker::verify_type_assertions): declare.
	* java/lang/Class.h (JV_ASSERT_END_OF_TABLE,
	JV_ASSERT_TYPES_COMPATIBLE, JV_ASSERT_IS_INSTANTIABLE): Declare
	assertion code values.
	(struct _Jv_TypeAssertion): Declare.
	(assertion_table): New class field.
	(verify): Remove class field.

2004-11-05  Andrew Haley  <aph@redhat.com>

	* Makefile.am: Move jv_dbtool.java to
	gnu/gcj/tools/gcj_dbtool/Main.java.
	* Makefile.in: Rebuild.
	* java/lang/VMCompiler.java: Rename property
	"gnu.gcj.precompiled.db" to "gnu.gcj.precompiled.db.path".
	* gnu/gcj/tools/gcj_dbtool/Main.java: moved here from
	jv_dbtool.java.

2004-11-05  Andrew Haley  <aph@redhat.com>

	* jv_dbtool.java (main): Allow the user to specify the size of the
	database.  Display the capacity and the size.
	(usage): Show the new option.

2004-11-04  Tom Tromey  <tromey@redhat.com>

	* include/jvm.h (_Jv_Linker::set_vtable_entries): Updated.
	* link.cc (make_vtable): Use correct index when searching for
	missing method's name.  Don't use `flags'.
	(set_vtable_entries): Removed `flags' argument.  Don't recurse
	into superclasses.
	(link_symbol_table): Ensure target class method table is
	complete.  Ensure target fields are laid out before entering
	loop.

	* java/lang/natClass.cc (_Jv_getInterfaceMethod): Indentation
	fix.

	* interpret.cc (do_verify): Don't verify abstract methods.

2004-11-01  Tom Tromey  <tromey@redhat.com>

	* link.cc (wait_for_state): Call verify_class.

	* verify.cc (state::check_no_uninitialized_objects): Removed.
	(push_jump): Updated.
	(push_exception_jump): Likewise.
	(handle_ret_insn): Likewise.
	(handle_jsr_insn): Likewise.

2004-10-28  Andrew Haley  <aph@redhat.com>

	* gnu/gcj/runtime/PersistentByteMap.java: New file.
	* jv_dbtool.java: New file.
	* Makefile.am (bin_PROGRAMS): Add jv-dbtool
	(jv_dbtool_SOURCES, jv_dbtool_LDFLAGS, jv_dbtool_LINK)
	(jv_dbtool_LDADD, jv_dbtool_DEPENDENCIES): New.
	* Makefile.in: Regenerate,
	* java/lang/VMCompiler.java: Import NoSuchAlgorithmException,
	Enumeration, StringTokenizer, Vector, PersistentByteMap.
	(precompiledMapFiles): New variable.
	(VMCompiler static intializer): Read "gnu.gcj.precompiled.db" to
	initialize precompiledMapFiles.
	(compileClass): Look at the database of precompiled class files
	before firing up gcj.

	* gnu/gcj/runtime/VMClassLoader.java (findClass): Fix comment.

2004-10-27  Andrew Haley  <aph@redhat.com>

	* java/lang/VMCompiler.java (compileClass): try looking for
	precompiledMapFiles.
	* gnu/gcj/runtime/PersistentByteMap.java: New file.

2004-10-27  Tom Tromey  <tromey@redhat.com>

	* link.cc (ensure_class_linked): Only resolve classes for
	compiled classes.
	(add_miranda_methods): Ensure interface supers are installed.
	(resolve_pool_entry): Better error message.

2004-10-25  Tom Tromey  <tromey@redhat.com>

	* boehm.cc (_Jv_MarkObj): Test aux_info before dereferencing it.

	* java/util/ResourceBundle.java (tryBundle): Use
	Class.isAssignableFrom rather than catching ClassCastException.

	* java/util/zip/InflaterInputStream.java (fill): Don't throw an
	exception if we hit EOF of `in'.
	(read): Handle case where inflating returns -1.

	* gnu/java/text/WordBreakIterator.java (WordBreakIterator): Don't
	initialize `iter'.
	* gnu/java/text/SentenceBreakIterator.java
	(SentenceBreakIterator): Don't initialize `iter'.
	* gnu/java/text/LineBreakIterator.java (LineBreakIterator): Don't
	initialize `iter'.
	* gnu/java/text/CharacterBreakIterator.java
	(CharacterBreakIterator): Don't initialize `iter'.
	* gnu/java/text/BaseBreakIterator.java (BaseBreakIterator): New
	constructor.
	* java/text/BreakIterator.java: Updated documentation.

2004-10-20  Tom Tromey  <tromey@redhat.com>

	* java/util/ResourceBundle.java (tryBundle): Also ignore
	ClassCastException.

2004-10-18  Tom Tromey  <tromey@redhat.com>

	* interpret.cc (do_post_miranda_hook): New method.
	* include/execution.h (_Jv_ExecutionEngine::post_miranda_hook):
	New field.
	(_Jv_CompiledEngine::do_post_miranda_hook): New method.
	(_Jv_CompiledEngine): Initialize new field.
	(_Jv_InterpreterEngine::do_post_miranda_hook): Declare.
	(_Jv_InterpreterEngine): Initialize new field.
	* link.cc (resolve_pool_entry): Put Miranda methods in target
	class.
	(ensure_method_table_complete): Call post_miranda_hook.
	* java/lang/natVMClassLoader.cc (defineClass): Don't set class'
	aux_info.
	* defineclass.cc (read_one_method_attribute): Use _Jv_AllocBytes.
	(parse): Set class' aux_info here.

	* boehm.cc (_Jv_MarkObj): Mark `throws'.

	* boehm.cc: Re-merged with trunk.

2004-10-18  Andrew Haley  <aph@redhat.com>

	PR java/18036:
	* gnu/gcj/runtime/natStackTrace.cc (fillInStackTrace): Reorganize
	and correct logic used to find interpreter.

2004-10-13  Andrew Haley  <aph@redhat.com>

	* interpret.cc (_Jv_InterpMethod::run): Initialize
	_Jv_StartOfInterpreter.
	(_Jv_StartOfInterpreter, _Jv_EndOfInterpreter): Functions removed.
	(_Jv_StartOfInterpreter, _Jv_EndOfInterpreter): New variables.
	* gnu/gcj/runtime/natStackTrace.cc (fillInStackTrace): Use
	_Unwind_FindEnclosingFunction to discover whether PC is within the
	interpreter.

2004-10-13  Tom Tromey  <tromey@redhat.com>

	* link.cc (find_iindex): Copy correct number of slots to new
	ioffsets.

2004-10-12  Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.loader/loader.exp (gcj_object_file_name): New
	proc.
	(gcj_loader_test_one): Use it.
	(gcj_loader_run): Likewise.

	* prims.cc: Don't include FirstThread.h.

2004-10-06  Tom Tromey  <tromey@redhat.com>

	* link.cc (ensure_method_table_complete): Ensure superclass
	Miranda methods installed.

	* include/java-interp.h (class _Jv_JNIMethod): Added
	JV_MARKOBJ_DECL as a friend.
	* interpret.cc (ncode): Allocate jni_arg_types field with GC.
	* boehm.cc (_Jv_MarkObj): Skip abstract methods when marking
	interpreter method structures.  Mark jni_arg_types of JNI
	methods.

	* defineclass.cc (parse): Use JV_STATE_READ.
	* java/lang/Class.h (JV_STATE_READ): New enum value.

2004-10-05  Tom Tromey  <tromey@redhat.com>

	* link.cc (resolve_pool_entry): Add signature info to missing
	method's information.

	* gnu/gcj/util/Debug.java (Debug(int,boolean)): New constructor.
	* gnu/gcj/util/natDebug.cc (_Jv_StaticDeepDebug): New function.

2004-10-04  Tom Tromey  <tromey@redhat.com>

	* boehm.cc (_Jv_MarkObj): Correctly indicate base pointer when
	marking IDT.

2004-09-29  Tom Tromey  <tromey@redhat.com>

	* Makefile.am (libgcj_la_SOURCES): Mention link.cc, not
	resolve.cc.
	* include/jvm.h (class _Jv_Linker): Renamed from _Jv_Resolver.
	* jni.cc: Use _Jv_Linker.
	* interpret.cc: Use _Jv_Linker.
	* java/lang/reflect/natField.cc (getType): Use _Jv_Linker.
	* java/lang/natClassLoader.cc: Use _Jv_Linker.
	* java/lang/natVMClassLoader.cc (resolveClass): Use _Jv_Linker.
	* java/lang/Class.h: Use _Jv_Linker.
	* java/lang/natClass.cc (initializeClass): Use _Jv_Linker.
	* resolve.cc: Renamed ...
	* link.cc: ... here.  Use _Jv_Linker.
	* defineclass.cc (checkExtends): Use _Jv_Linker.

2004-09-17  Tom Tromey  <tromey@redhat.com>

	* defineclass.cc (handleCodeAttribute): Don't reference
	`deferred'.
	(handleMethodsEnd): Likewise.
	* include/java-interp.h (_Jv_MethodBase::deferred): Removed
	field.
	(_Jv_Defer_Resolution): Don't declare or define.
	* interpret.cc (do_create_ncode): Don't resolve deferred method
	pointers.
	* java/lang/Class.h (_Jv_Defer_Resolution): Don't declare.
	* resolve.cc (link_symbol_table): No need to defer resolution.

2004-09-14  Tom Tromey  <tromey@redhat.com>

	* boehm.cc (MAYBE_MARK): Remove unused `Exit' argument.
	(_Jv_MarkObj): Updated.
	(_Jv_MarkArray): Likewise.

	* include/jvm.h (StringClass): Removed.
	* jni.cc (_Jv_JNI_ThrowNew): Don't use StringClass.
	* interpret.cc (_Jv_InitField): Don't use StringClass.
	* java/lang/natString.cc (_Jv_StringFindSlot): Don't use
	StringClass.
	(rehash): Likewise
	(intern): Likewise.
	(_Jv_FinalizeString): Likewise.
	(_Jv_NewStringUtf8Const): Likewise.
	(equals): Likewise.
	* prims.cc (JvConvertArgv): Don't use StringClass.

	* gcj/field.h (struct _Jv_Field): Don't mention COMPACT_FIELDS.
	* resolve.cc (ensure_fields_laid_out): Don't mention
	COMPACT_FIELDS.
	* defineclass.cc (handleField): Don't mention COMPACT_FIELDS.
	* boehm.cc (_Jv_MarkObj): Don't mention COMPACT_FIELDS.

	* java/lang/reflect/natField.cc (getType): Use resolve_field.
	* java/lang/natVMClassLoader.cc (resolveClass): New native
	implementation.
	(linkClass0): Removed.
	(markClassErrorState0): Likewise.
	* java/lang/natClassLoader.cc: Include execution.h.  Moved class
	preparation code to resolve.cc.
	(_Jv_RegisterClassHookDefault): Set class's execution engine if
	not already set.
	(_Jv_FindClass): Use wait_for_state.
	(_Jv_NewArrayClass): Likewise.  Simplified permissions setting.
	* java/lang/natClass.cc (_Jv_IsInstanceOf): Include execution.h.
	Moved interface table and class preparation code to resolve.cc.
	(finalize): Rewrote.
	(initializeClass): Simplified locking and class preparation.
	* java/lang/VMClassLoader.java (linkClass0): Removed.
	(markClassErrorState0): Likewise.
	(resolveClass): Now native.
	(transformException): New method.
	* java/lang/Class.h (getSuperclass): Don't try to resolve super
	reference.
	(getInterface): Likewise.
	(size): Likewise.
	(set_state): New method.
	(Class): Updated friend declarations.
	(verify): Field now private.
	(engine): New field.
	* include/jvm.h (class _Jv_Resolver): New class declaration.
	(_Jv_ResolveField): Removed declaration.
	(_Jv_CheckAccessNoInit): Likewise.
	(_Jv_isBinaryCompatible): Removed.
	* include/java-interp.h (class _Jv_MethodBase): Updated friend
	declarations.
	(class _Jv_InterpMethod): Likewise.
	(class _Jv_InterpClass): Likewise.
	(class _Jv_JNIMethod): Likewise.
	* include/execution.h: New file.
	* gnu/gcj/runtime/natSharedLibLoader.cc: Include execution.h.
	(_Jv_sharedlib_register_hook): Set `engine' on loaded class.
	Register class after setting fields.
	* resolve.cc: Include execution.h, VerifyError.h.  Moved
	interpreter-specific code to interpret.cc.
	(uaddr): New location.
	(struct aligner): Likewise.
	(ALIGNOF): Likewise.
	(INITIAL_IOFFSETS_LEN): Interface dispatch code moved here.
	(INITIAL_IFACES_LEN): Likewise.
	(null_idt): Likewise.
	(_Jv_GetMethodString): Likewise.
	(_Jv_ThrowNoSuchMethodError): Likewise.
	(_Jv_abstractMethodError): Likewise.
	(_Jv_Resolver::get_alignment_from_class): Renamed.
	(_Jv_Resolver::resolve_field): Likewise.
	(_Jv_Resolver::resolve_pool_entry): Likewise.
	(_Jv_Resolver::resolve_class_ref): Likewise.
	(_Jv_Resolver::prepare_constant_time_tables): Likewise.
	(_Jv_Resolver::indexof): Likewise.
	(_Jv_Resolver::get_interfaces): Likewise.
	(_Jv_Resolver::generate_itable): Likewise.
	(_Jv_Resolver::append_partial_itable): Likewise.
	(_Jv_Resolver::find_iindex): Likewise.
	(_Jv_Resolver::link_symbol_table): Likewise.
	(_Jv_Resolver::link_exception_table): Likewise.
	(_Jv_Resolver::layout_interface_methods): Likewise.
	(_Jv_Resolver::layout_vtable_methods): Likewise.
	(_Jv_Resolver::set_vtable_entries): Likewise.
	(_Jv_Resolver::make_vtable): Likewise.
	(_Jv_Resolver::ensure_fields_laid_out): Likewise.
	(_Jv_Resolver::ensure_class_linked): Likewise.
	(_Jv_Resolver::ensure_supers_installed): Likewise.
	(_Jv_Resolver::add_miranda_methods): Likewise.
	(_Jv_Resolver::ensure_method_table_complete): Likewise.
	(_Jv_Resolver::verify_class): Likewise.
	(_Jv_Resolver::wait_for_state): Likewise.
	* prims.cc (_Jv_soleCompiledEngine): New global.
	(_Jv_CheckAccess): Use _Jv_IsAssignableFromSlow.
	(_Jv_CheckAccessNoInit): Removed.
	* jni.cc (_Jv_JNI_GetAnyFieldID): Use resolve_field.
	* interpret.cc: Include platform.h, ClassFormatError.h,
	Modifier.h, execution.h.
	(_Jv_soleInterpreterEngine): New global.
	(compile): Use resolve_pool_entry.
	(run): Likewise.
	(_Jv_InitField): New location.
	(skip_one_type): Likewise.
	(get_ffi_type_from_signature): Likewise.
	(_Jv_count_arguments): Likewise.
	(init_cif): Likewise.
	(ncode_closure): Likewise.
	(ffi_closure_fun): Likewise.
	(ncode): Likewise.
	(throw_class_format_error): Likewise.
	(throw_class_format_error): Likewise.
	(_Jv_InterpreterEngine::do_verify): New method.
	(_Jv_InterpreterEngine::do_create_ncode): Likewise.
	(_Jv_InterpreterEngine::do_allocate_static_fields): Likewise.
	(_Jv_InterpreterEngine::do_resolve_method): Likewise.
	* defineclass.cc: Include execution.h.
	(_Jv_ClassReader): Initialize size_in_bytes, vtable_method_count,
	engine.
	(checkExtends): Ensure superclass has supers installed.
	(_Jv_ClassNameSamePackage): Clarify usage constraints.
	* boehm.cc (GC_enable, GC_disable): Declare at top of file.
	(_Jv_MarkObj): Unconditionally mark vtable.  Mark interface
	dispatch tables.

2004-09-13  Tom Tromey  <tromey@redhat.com>

	* mauve-libgcj: List some classes we don't have.

2004-09-10  Andrew Haley  <aph@redhat.com>

	* java/lang/Class.h (_Jv_getInterfaceMethod(): new friend.
	* java/lang/natClass.cc (initializeClass): Check itable.
	(_Jv_getInterfaceMethod): New.
	(_Jv_LinkSymbolTable): Rewrite code that handles inerface calls.
	Check that an interface method isn't called with invokevirtual.

	* java/lang/natClass.cc (_Jv_LayoutVTableMethods): Make sure
	super_meth is virtual.

2004-09-01  Tom Tromey  <tromey@redhat.com>

	* java/lang/Class.h (_Jv_CheckAccessNoInit): Declare as friend.
	* java/lang/natClass.cc (_Jv_LayoutVTableMethods): Use
	_Jv_CheckAccessNoInit.
	* include/jvm.h (_Jv_CheckAccessNoInit): Declare.
	* prims.cc (_Jv_CheckAccessNoInit): New method.

	* java/lang/reflect/natMethod.cc (invoke): Check access against
	declaring class, not object's class.
	* java/lang/natClass.cc (_Jv_LookupDeclaredMethod): Added another
	argument.
	(_Jv_LayoutVTableMethods): Perform checks of accessibility of
	overridden method.
	* java/lang/Class.h (_Jv_LookupDeclaredMethod): Added another
	argument.

2004-08-30  Andrew Haley  <aph@redhat.com>

	* java/lang/natClass.cc (_Jv_CheckAssignment): Catch
	ClassNotFoundException.
	Throw NoClassDefFoundError.

	* java/lang/natClassLoader.cc (_Jv_FindClassInCache): Remove call
	to klass->verify() from here ...
	(_Jv_PrepareCompiledClass): ...and put it here.

2004-08-27  Andrew Haley  <aph@redhat.com>

	* java/lang/natClassLoader.cc (_Jv_FindClassInCache): Call
	klass->verify().
	* java/lang/natClass.cc (_Jv_LinkSymbolTable): Add debugging.
	(_Jv_LinkSymbolTable): Call Jv_LayoutClass on target class.

2004-08-27  Tom Tromey  <tromey@redhat.com>

	* java/lang/Class.h (_Jv_IsAssignableFromSlow): Declare as
	friend.
	* java/lang/natClass.cc (_Jv_CheckAssignment): New function.
	(_Jv_IsAssignableFromSlow): New function.
	Include VerifyError.h.
	* include/jvm.h (_Jv_CheckAssignment): Declare.

2004-08-18  Andrew Haley  <aph@redhat.com>

	* java/lang/VMCompiler.java (loadSharedLibrary): Add className
	argument.  Pass it to findClass instead of fileName.
	(compileClass): Pass class name to loadSharedLibrary.

2004-06-22  Andrew Haley  <aph@redhat.com>

	* testsuite/libjava.compile/compile.exp: Force indirect dispatch.

2004-06-15  Andrew Haley  <aph@redhat.com>

	* java/lang/natSystem.cc (getenv0): Don't assume environment
	variable is Latin 1 coded.

2004-06-07  Andrew Haley  <aph@redhat.com>

	* java/lang/System.java: (getenv0): New method.
	(getenv): Add security check.  Do the right thing.
	* java/lang/natSystem.cc (getenv0): New method.

2004-04-19    Andrew Haley  <aph@redhat.com>

	* gnu/gcj/runtime/NameFinder.java: Call waitFor() on the processes
	we destroy.

	* gnu/java/net/natPlainSocketImplPosix.cc (read): The value byte
	is returned as an int in the range 0 to 255.

2004-08-13  Tom Tromey  <tromey@redhat.com>

	* java/lang/natClass.cc (_Jv_LinkSymbolTable): Prepare the target
	class if it is interpreted.

2004-08-12  Tom Tromey  <tromey@redhat.com>

	* java/lang/natClassLoader.cc (_Jv_WaitForState): Updated.
	* java/lang/Class.h (_Jv_ResolveClassRef): Updated declaration.
	(Class::getSuperclass): Updated.
	(Class::getInterfaces): Likewise.
	(Class::size): Updated.
	(_Jv_LayoutClass): Updated declaration.
	* java/lang/natClass.cc (_Jv_ResolveClassRef): Changed interface.
	Synchronize on class.
	(_Jv_LayoutClass): Changed interface.
	(initializeClass): Updated.
	(_Jv_LinkSymbolTable): Likewise.

	* java/lang/Class.h (Class::_Jv_isBinaryCompatible): Declare as
	friend.
	* java/lang/natClassLoader.cc (_Jv_WaitForState): Use
	_Jv_isBinaryCompatible.
	* java/lang/natClass.cc (initializeClass): Use
	_Jv_isBinaryCompatible.
	(_Jv_LinkSymbolTable): Likewise.
	* include/jvm.h (_Jv_isBinaryCompatible): New function.

2004-08-11  Tom Tromey  <tromey@redhat.com>

	* gcj/javaprims.h: Regenerated.
	* java/lang/natClassLoader.cc (getClassLoader0): Removed.
	(_registerClass): Likewise.
	* Makefile.in: Rebuilt.
	* Makefile.am (core_java_source_files): Added VMCompiler.
	* java/lang/Compiler.java: Rewrote in terms of VMCompiler.
	* java/lang/VMCompiler.java: New file.
	* gnu/gcj/runtime/SharedLibHelper.java (findClass): Removed
	`verbose' code.
	(copyFile): Don't use fully-qualified name.
	(h): Removed.
	* java/lang/natVMClassLoader.cc: Include VMCompiler.h.
	(defineClass): Use VMCompiler.
	* java/lang/ClassLoader.java (defineClass): Removed jit
	compilation code and `verbose' code.
	(getClassLoader0): Removed.
	(_registerClass): Likewise.
	(SharedLibHelpers): Removed.

2004-08-10  Tom Tromey  <tromey@redhat.com>

	* java/net/URLClassLoader.java (URLLoader(URLClassLoader, URL,
	URL)): New constructor.
	(SoURLLoader): Likewise.
	(JarURLLoader): Create SoURLLoader with override URL.

2004-08-10  Mark Wielaard  <mark@klomp.org>

	* Makefile.in: Rebuilt.
	* Makefile.am (interpret.lo): New rule.

2004-08-05  Andrew Haley  <aph@redhat.com>

	* java/net/URLClassLoader.java (JarURLLoader.JarURLLoader): Look
	aside for "GCJLIBS" in directory where jarfiles are loaded.
	(JarURLLoader.getClass): New method.
	(JarURLLoader.toString):  New method.
	(FileResource.toString):  New method.
	* java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault):
	Remove "Duplicate class registration: " bug.
	(_registerClass): New method.
	* java/lang/natClass.cc (_Jv_LinkSymbolTable): Check method index.
	(_Jv_LinkSymbolTable): Call _Jv_LayoutClass().
	Add debugging.
	(_Jv_LayoutClass): Use getSuperclass() rather than directly
	accessing the field.
	* java/lang/ClassLoader.java (SharedLibHelpers): New variable.
	(defineClass): Call gcj to JIT-compile a class.
	(_registerClass): New method.
	* gnu/gcj/runtime/SharedLibHelper.java (findHelper): A shared
	library name can refer to more than one loaded library, so use a
	Set of SharedLibHelpers.
	If a shared library is already loaded, take a copy.
	(copyFile): New function.

	* testsuite/libjava.compile/compile.exp: Force
	-findirect-dispatch.

	* java/security/BasicPermission.java: Remove bogus checks.

	* java/lang/System.java (getenv0): New method.
	* java/lang/natSystem.cc (getenv0): New method.

2004-05-24  Andrew Haley  <aph@redhat.com>

	* java/lang/natClass.cc (_Jv_LayoutClass): Remove warning message.

2004-04-20  Bryce McKinlay  <mckinlay@redhat.com>

	* Merged with HEAD as of 20040514. Diff against
	gcj-abi-2-merge-20040514.

2004-04-16  Andrew Haley  <aph@redhat.com>

	* java/lang/natClassLoader.cc (_Jv_WaitForState): Call
	_Jv_LayoutClass.
	(_Jv_PrepareCompiledClass): Cast address to uaddr for comparison.
	(_Jv_PrepareCompiledClass): If we throw an exception during
	preparation, restore state.
	(ClassLoader::getClassLoader0): New method.

	* java/lang/natClass.cc (get_alignment_from_class): Moved here
	from resolve.cc.
	(ALIGNOF): Use offsetof, not __alignof__.
	(_Jv_ResolveClassRef): Resolve a reference to a class in a
	constant pool.
	(getInterfaces): Emit debug output if interface hasn't been
	resolved.
	(initializeClass): Call _Jv_LayoutClass.
	(_Jv_LinkSymbolTable): Add debugging output.
	(_Jv_LinkSymbolTable): NoClassDefFoundError if target_class isn't
	found.
	(_Jv_LinkSymbolTable): Call _Jv_PrepareClass.
	(_Jv_LinkSymbolTable): Pass the real class loader to
	_Jv_FindClass.
	(_Jv_linkExceptionClassTable): Don't throw if we fail to find an
	exception class.
	(_Jv_LinkSymbolTable): Assert if we find a static field reference
	to an interpreted class.
	(_Jv_LayoutVTableMethods): Use klass->getSuperclass to get the
	superclass.
	(_Jv_LayoutClass): Moved here; it was part of _Jv_PrepareClass in
	resolve.cc.

	* java/lang/VMSecurityManager.java: Check for the system class
	loader as well as loader != null.

	* java/lang/SecurityManager.java (checkPermission): Remove
	security check.
	(checkRead): Likewise.
	(checkConnect): Likewise.

	* java/lang/ClassLoader.java (loadClass): Include all class
	loaders in stack trace string.
	Look for class in "gcjlib.so" in the same directory.
	(getSystemClassLoader) Use getClassLoader0.
	(getClassLoader0): New native method.

	* java/lang/Class.h (getSuperclass): New method.
	(getInterface): New method.
	(size): Lay out class if needed.
	(firstMethodIndex): New method.
	(Jv_ResolveClassRef): New declaration.
	(_Jv_LinkSymbolTable): New declaration.

	* java/io/ObjectOutputStream.java: Add DEBUG statements
	everywhere.
	(dumpElementln): New method.
	(depth): New field.
	* java/io/ObjectInputStream.java (MyIOException): new, for
	debugging.
	Everywhere: use MyIOException rather than IOException.
	Indent debugging output to make nesting visible.
	(currentClassLoader): Make native
	(callersClassLoader): New field.
	(depth): New field.
	* java/io/natObjectInputStream.cc (getCallersClassLoader): New
	method.

	(readObject): ENDBLOCKDATA is generated if the class has a write
	method, not if it has a read method.

	* include/jvm.h (_Jv_CallAnyMethodA): Add new arg, iface.

	* gnu/javax/rmi/CORBA/DelegateFactory.java: Use the
	getContextClassLoader form the current thread after our own class
	loader.

	* gnu/gcj/runtime/SharedLibHelper.java (findClass): Class loader
	debugging.
	(toString): New method.

	* verify.cc (class _Jv_BytecodeVerifier): Don't directly access
	interfaces array.

	* resolve.cc (_Jv_PrepareMissingMethods): If interface looks like
	a constant pool entry, resolve it now.
	(_Jv_PrepareClass): Break out part of this function to Jv_LayoutClass
	in natClass.cc.
	Move get_alignment_from_class to natClass.cc.

	* prims.cc (_Jv_AllocObjectNoFinalizer): Use size field from class.
	(_Jv_AllocObjectNoInitNoFinalizer): Likewise.

	* defineclass.cc (checkExtends): Don't access superclass field
	directly.

	* Makefile.in: regenerate.

	* gnu/gcj/util/natDebug.cc: New
	* gnu/gcj/util/Debug.java: New.

	* Makefile.am (java/io/ObjectInputStream.lo): Use
	-fno-optimize-sibling-calls.

	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Use
	_Jv_LookupInterfaceMethodIdx to calculate the address of a method
	in an interface.
	* include/jvm.h (_Jv_CallAnyMethodA): Add new arg: iface.

2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>

	* configure: Regenerate for libtool change.

2004-11-24  Michael Koch  <konqueror@gmx.de>

	* gnu/java/security/PolicyFile.java: New file.
	* Makefile.am: Added gnu/java/security/PolicyFile.java.
	* Makefile.in: Regenerated.

2004-11-24  Michael Koch  <konqueror@gmx.de>

	* java/lang/Character.java, scripts/unicode-blocks.pl:
	Reorder "final static" to "static final".

2004-11-24  Michael Koch  <konqueror@gmx.de>

	* java/util/ResourceBundle.java: Reformatted.
	(tryBundle): Fixed javadoc.

2004-11-24  Jeroen Frijters  <jeroen@frijters.net>

	* java/text/MessageFormat.java
	(formatInternal): Made private.

2004-11-24  Michael Koch  <konqueror@gmx.de>

	* java/nio/DirectByteBufferImpl.java
	(ReadWrite.ReadWrite): New constructor.
	(DirectByteBufferImpl): Likewise.
	* jni.cc (_Jv_JNI_NewDirectByteBuffer):
	Use DirectByteBufferImpl.ReadWrite.
	* Makefile.am:
	Generate java/nio/DirectByteBufferImpl$ReadWrite.h.
	* Makefile.in: Rgenerated.

2004-11-24  Jeroen Frijters  <address@bogus.example.com>

	* java/nio/DirectByteBufferImpl.java
	(ReadOnly): New inner subclass.
	(ReadWrite): New inner subclass.
	(owner): Made final and private.
	(address): Made final.
	(DirectByteBufferImpl(int)): New constructor.
	(DirectByteBufferImpl(Object,RawData,int,int,int)): New constructor.
	(DirectByteBufferImpl(Object,RawData,int,int,int,boolean)): Removed.
	(allocate): Modified to instantiate ReadWrite subclass.
	(finalize): Fixed to only free the buffer, if we own it.
	(put): Removed read-only check.
	(slice, duplicate): Modified to instantiate appropriate subclass.
	(isReadOnly): Removed.
	* java/nio/MappedByteBufferImpl.java
	(slice, duplicate): Modified to instantiate appropriate
	DirectByteBufferImpl subclass.

2004-11-24  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/NIOServerSocket.java: Added email to @author tag.
	* java/nio/DirectByteBufferImpl.java:
	Moved native methods to java.nio.VMDirectByteBuffer class.
	* java/nio/MappedByteBufferImpl.java:
	Use native methods from java.nio.VMDirectByteBuffer class.
	* java/nio/VMDirectByteBuffer.java: New file,
	* java/nio/natDirectByteBufferImpl.cc:
	Moved all methods into java.nio.VMDirectByteBuffer class.
	* java/nio/channels/spi/AbstractSelectableChannel.java
	(register): Only re-use valid keys.
	* Makefile.am: Added java/nio/VMDirectByteBuffer.java.
	* Makefile.in: Regenerated.

2004-11-24  Michael Koch  <konqueror@gmx.de>

	* java/nio/DirectByteBufferImpl.java,
	java/nio/MappedByteBufferImpl.java:
	Reformatted.

2004-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* testsuite/lib/libjava.exp,
	testsuite/libjava.jacks/jacks.exp: Use new procs in target-libpath.exp.

2004-11-23  Richard Sandiford  <rsandifo@redhat.com>

	* configure.host: Enable the interpreter for mips*-*-linux*.

2004-11-23  Michael Koch  <konqueror@gmx.de>

	* java/lang/String.java (rehash): Removed.
	* java/lang/natString.cc (rehash): Made static.
	(_Jv_NewStringUtf8Const): Use static rehash method.

2004-11-23  Michael Koch  <konqueror@gmx.de>

	* Makefile.in, aclocal.m4, configure, gcj/Makefile.in,
	include/Makefile.in, testsuite/Makefile.in: Regenerated.

2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/18444
	* configure.ac (threading): Accept 'posix95'.
	* configure: Regenerate.

2004-11-22  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/SocketChannelImpl.java
	(read): Made check for blocking un-ambiguous.
	Removed wrong check for data array length.

2004-11-21  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/SocketChannelImpl.java
	(read): Only return 0 when no bytes for reading available in
	non-blocking mode.
	* java/nio/channels/SocketChannel.java:
	Added some missing @return tags.

2004-11-21  Michael Koch  <konqueror@gmx.de>

	* java/beans/PropertyChangeSupport.java
	(propertyChangeSupportSerializedDataVersion): Made static.
	* java/beans/VetoableChangeSupport.java
	(propertyChangeSupportSerializedDataVersion): Likewise.

2004-11-18  Jeroen Frijters  <jeroen@frijters.net>

	* java/net/URLStreamHandler.java
	(parseURL): Fixed file path canonicalisation.

2004-11-18  Jeroen Frijters  <jeroen@frijters.net>

	* java/net/URLStreamHandler.java
	(parseURL): Fixed file path canonicalisation.

2004-11-18  Michael Koch  <konqueror@gmx.de>

	* java/net/URLClassLoader.java: Whitespace cleanup.

2004-11-18  Robert Schuster <address@bogus.example.com>

	Complete 1.4 support
	* java/beans/PropertyDescriptor.java:
	(setReadMethod): New method
	(setWriteMethod): New method
	(equals): Implemented (1.4)
	(checkMethods): operates on arguments now (private)


2004-11-18  Mattias Rehnberg  <Mattias.Rehnberg@home.se>

	* java/net/Inet6Address.java (getHostAddress): Fix textual
	representation of IPv6 address with embedded zeroes
	to conform to RFC 2373.

2004-11-18  Jeroen Frijters  <address@bogus.example.com>

	* java/lang/StackTraceElement.java: Made final.
	* java/nio/channels/Channels.java: Added private constructor.
	* java/rmi/Naming.java: Added private constructor.
	* java/rmi/registry/LocateRegistry.java: Added private constructor.
	* java/rmi/server/RMIClassLoader.java: Added private constructor.
	* java/security/KeyPairGeneratorSpi.java
	(clone): Made protected and simplified implementation.
	* java/text/DateFormat.java
	(allFields): Made package accessible.
	* java/text/DecimalFormat.java
	(formatInternal): Made private.
	* java/text/Format.java
	(formatInternal): Made private.
	* java/util/logging/Handler.java: Made constructor protected.
	* java/util/regex/Matcher.java: Made final.
	* java/util/regex/Pattern.java: Made final.
	* javax/crypto/CipherInputStream.java
	(mark): Corrected mark parameter type (from long to int).
	* javax/crypto/ExemptionMechanism.java
	(finalize): Added.
	* javax/crypto/Mac.java
	(getMacLength): Made final.
	(clone): Made final.
	* javax/imageio/ImageIO.java: Added private constructor.
	* javax/imageio/stream/ImageInputStreamImpl.java
	(checkClosed): Made final.
	* javax/net/ssl/SSLPermission.java: Made final.
	* javax/print/DocFlavor.java
	(hostEncoding): Added work-around to prevent the field from being
	a compile time constant.
	* javax/print/attribute/AttributeSetUtilities.java: Added private
	constructor.
	(UnmodifiableDocAttributeSet): Made private.
	(UnmodifiablePrintJobAttributeSet): Made private.
	(UnmodifiablePrintRequestAttributeSet): Made private.
	(UnmodifiablePrintServiceAttributeSet): Made private.
	(SynchronizedAttributeSet): Made private.
	(SynchronizedDocAttributeSet): Made private.
	(SynchronizedPrintJobAttributeSet): Made private.
	(SynchronizedPrintRequestAttributeSet): Made private.
	(SynchronizedPrintServiceAttributeSet): Made private.
	* javax/security/auth/PrivateCredentialPermission.java: Made final.

2004-11-18  Craig Black  <craig.black@aonix.com>

	* gnu/java/beans/BeanInfoEmbryo.java: Use TreeMap for proper sorting.

2004-11-18  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* Makefile.am: Correct friend function declaration.
	* Makefile.in: Regenerated.
	* include/boehm-gc.h (JV_MARKOBJ_DECL, JV_MARKARRAY_DECL): Add
	scope to function names.  Declare functions directly.
	* libjava/java/lang/Class.h
	(java::lang::Class): Correct friend class declaration.
	(_Jv_InitClass, _Jv_GetArrayClass): Move definition to global
	scope.
	* libjava/java/lang/Class.h
	(java::lang::Object): Correct friend class declaration.

2004-11-17  David Daney  <ddaney@avtrex.com>

	* java/io/BufferedInputStream.java (skip): Return zero on EOF.

2004-11-17  Michael Koch  <konqueror@gmx.de>

	* java/net/Socket.java (getPort): Return 0 in error case.

2004-11-17  Michael Koch  <konqueror@gmx.de>

	*  java/nio/DirectByteBufferImpl.java
	(owner): Updated comment.
	(allocate): New method.

2004-11-17  Michael Koch  <konqueror@gmx.de>

	* java/net/URL.java (URL): Handle case when argument is null.

2004-11-17  Michael Koch  <konqueror@gmx.de>

	* java/beans/Beans.java,
	java/beans/PropertyChangeEvent.java,
	java/beans/PropertyEditorSupport.java:
	Fixed javadocs.

2004-11-17  Michael Koch  <konqueror@gmx.de>

	* java/util/Timer.java (DEFAULT_SIZE): Made static.

2004-11-17  Michael Koch  <konqueror@gmx.de>

	* java/net/InetAddress.java (getCanonicalHostName):
	Support IPv6 addresses.

2004-11-16  Michael Koch  <konqueror@gmx.de>

	* java/lang/Object.java: Added javadocs all over (merged from GNU
	classpath).

2004-11-16  Andreas Tobler  <a.tobler@schweiz.ch>

	* java/security/Security.java (Security): Silence the warning about no
	providers found in the no debug case.

2004-11-16  Michael Koch  <konqueror@gmx.de>

	* java/net/InetAddress.java
	(toString): Merged from GNU classpath.

2004-11-16  Michael Koch  <konqueror@gmx.de>

	* java/awt/geom/doc-files/Area-1.png,
	java/awt/geom/doc-files/Ellipse-1.png,
	java/awt/geom/doc-files/GeneralPath-1.png:
	New files.

2004-11-16  Michael Koch  <konqueror@gmx.de>

	* java/util/Currency.java (cache): Fix modifier order.

2004-11-16  Michael Koch  <konqueror@gmx.de>

	* java/io/BufferedReader.java,
	java/io/FileInputStream.java,
	java/io/FileOutputStream.java,
	java/io/FileWriter.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/PushbackInputStream.java,
	java/io/RandomAccessFile.java,
	java/io/Reader.java,
	java/io/StreamTokenizer.java,
	java/io/StringReader.java,
	java/net/NetworkInterface.java,
	java/net/URLClassLoader.java,
	java/nio/ByteOrder.java,
	java/nio/channels/Channel.java:
	Fixed javadocs all over.

2004-11-16  Andreas Tobler  <a.tobler@schweiz.ch>

	* Makefile.am: Add imported files.
	* Makefile.in: Regenerate.

	2004-10-24  Casey Marshall  <csm@gnu.org>

	* javax/security/auth/login/LoginContext.java: Implemented.
	* javax/security/auth/login/Configuration.java (getConfig): New method.
	* javax/security/auth/spi/LoginModule.java,
	* gnu/java/security/action/GetSecurityPropertyAction.java: New files.

2004-11-15  Andreas Tobler  <a.tobler@schweiz.ch>

	Import/Merge the X.509 certificate code from Classpath.

	* Makefile.am: Add imported files.
	* Makefile.in: Regenerate.

	2004-11-07  Casey Marshall  <csm@gnu.org>

	* gnu/java/security/provider/Gnu.java(<init>): Add entries in a
	priviliged action. Add new algorithms.
	* gnu/java/security/provider/X509CertificateFactory.java
	(engineGenerateCertificate): Chain exceptions.
	(engineGenerateCertificates): Likewise.
	(engineGenerateCRL): Likewise.
	(engineGenerateCRLs): Likewise.
	(engineGenerateCertPath): New methods.
	(generateCert): Throw exception if 'inStream' is null.
	(generateCRL): Likewise.
	* gnu/java/security/x509/X500DistinguishedName.java: Replaced with
	version from GNU Crypto CVS.
	* gnu/java/security/x509/X509CRL.java: Likewise.
	* gnu/java/security/x509/X509CRLEntry.java: Likewise.
	* gnu/java/security/x509/X509Certificate.java: Likewise.
	* java/security/cert/TrustAnchor.java: Call 'toString' and not
	toRFC2253.
	* gnu/java/security/provider/CollectionCertStoreImpl.java,
	* gnu/java/security/provider/EncodedKeyFactory.java,
	* gnu/java/security/provider/GnuDHPublicKey.java,
	* gnu/java/security/provider/GnuRSAPrivateKey.java,
	* gnu/java/security/provider/GnuRSAPublicKey.java,
	* gnu/java/security/provider/MD2withRSA.java,
	* gnu/java/security/provider/MD4withRSA.java,
	* gnu/java/security/provider/MD5withRSA.java,
	* gnu/java/security/provider/PKIXCertPathValidatorImpl.java,
	* gnu/java/security/provider/RSA.java,
	* gnu/java/security/provider/RSAKeyFactory.java,
	* gnu/java/security/provider/SHA1withRSA.java,
	* gnu/java/security/x509/GnuPKIExtension.java,
	* gnu/java/security/x509/PolicyNodeImpl.java,
	* gnu/java/security/x509/Util.java,
	* gnu/java/security/x509/X509CRLSelectorImpl.java,
	* gnu/java/security/x509/X509CertPath.java,
	* gnu/java/security/x509/X509CertSelectorImpl.java,
	* gnu/java/security/x509/ext/AuthorityKeyIdentifier.java,
	* gnu/java/security/x509/ext/BasicConstraints.java,
	* gnu/java/security/x509/ext/CRLNumber.java,
	* gnu/java/security/x509/ext/CertificatePolicies.java,
	* gnu/java/security/x509/ext/ExtendedKeyUsage.java,
	* gnu/java/security/x509/ext/Extension.java,
	* gnu/java/security/x509/ext/GeneralNames.java,
	* gnu/java/security/x509/ext/IssuerAlternativeNames.java,
	* gnu/java/security/x509/ext/KeyUsage.java,
	* gnu/java/security/x509/ext/PolicyConstraint.java,
	* gnu/java/security/x509/ext/PolicyMappings.java,
	* gnu/java/security/x509/ext/PrivateKeyUsagePeriod.java,
	* gnu/java/security/x509/ext/ReasonCode.java,
	* gnu/java/security/x509/ext/SubjectAlternativeNames.java,
	* gnu/java/security/x509/ext/SubjectKeyIdentifier.java: New files.

	2004-11-07  Casey Marshall  <csm@gnu.org>

	* gnu/java/security/x509/X509CRL.java:
	Missed import statements in previous checkin.

	2004-11-07  Casey Marshall  <csm@gnu.org>

	* gnu/java/security/x509/X509CertPath.java (parse): Fixed reference
	to 'X509CertificateImpl' from previous checkin.

2004-11-12  Andrew Pinski  <pinskia@physics.uc.edu>

	PR other/14264
	* testsuite/lib/libjava.exp: Set LC_ALL and LANG to C.

2004-11-11  Casey Marshall  <csm@gnu.org>

	* gnu/java/nio/FileLock.java (isValid): locks are valid if the
	channel is open.
	* gnu/java/nio/channels/natFileChannelPosix.cc (lock): use
	'F_RDLCK' for shared locks, 'F_WRLCK' for exclusive locks.

2004-11-11  Robert Schuster <thebohemian@gmx.net>

	Fixed regression:
	* gnu/java/beans/IntrospectionIncubator.java:
	(addMethod): Corrected classification of normal and property methods.
	(capitalize): Added documentation.
	(DoubleKey): [class] Added documentation.

2004-11-09  Tom Tromey  <tromey@redhat.com>

	* include/jni.h: Added FIXME.

2004-11-08  Tom Tromey  <tromey@redhat.com>

	* java/util/GregorianCalendar.java: Removed unused imports.
	* java/util/Vector.java: Removed unused import.

2004-11-07  Michael Koch  <konqueror@gmx.de>

	* java/lang/Process.java:
	Import cleanups.

2004-11-07  Jeroen Frijters  <jeroen@frijters.net>

	* java/util/zip/ZipEntry.java
	(KNOWN_SIZE, KNOWN_CSIZE, KNOWN_CRC, KNOWN_TIME): Made final.

2004-11-07  Robert Schuster  <theBohemian@gmx.net>

	Fixes bug #10908
	* gnu/java/beans/IntrospectionIncubator.java:
	(addMethod): static methods are discarded now, too.

2004-11-07  Andrew John Hughes <gnu_andrew@member.fsf.org>

	* java/util/GregorianCalendar.java
	Added/amended documentation.

2004-11-07  Andrew John Hughes <gnu_andrew@member.fsf.org>

	* java/util/Collections.java
	Added documentation.
	* java/util/SortedMap.java
	Clarified some method examples.
	* java/util/SortedSet.java
	Clarified some method examples.

2004-11-07  Andrew John Hughes <gnu_andrew@member.fsf.org>

	* java/util/Currency.java
	Documented variables and methods more fully.
	Caches the currency instances, so that a request
	for a locale, l, only ever returns the same
	instance (i.e. successive calls to getInstance(l)
	are reference equivalent (==)).

2004-11-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Date.java
	Added missing documentation.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* java/util/zip/CheckedInputStream.java,
	java/util/zip/InflaterInputStream.java,
	java/util/zip/ZipFile.java,
	java/util/zip/ZipInputStream.java:
	Import cleanups.

2004-11-06  Tom Tromey  <tromey@redhat.com>

	* gnu/java/rmi/server/UnicastConnectionManager.java (clients): Now
	package-private.
	(connections): Likewise.
	(scavenger): Likewise.
	* gnu/java/rmi/server/ConnectionRunnerPool.java (freelist): Now
	package-private.
	* gnu/java/rmi/server/UnicastRemoteCall.java (vec): Now
	package-private.
	(ptr): Likewise.
	* gnu/classpath/ServiceFactory.java (log): Now package-private.

2004-11-06  Tom Tromey  <tromey@redhat.com>

	* javax/naming/directory/BasicAttributes.java (attributes): Now
	package-private.
	* javax/imageio/spi/ServiceRegistry.java (categories): Now
	package-private.

2004-11-06  Tom Tromey  <tromey@redhat.com>

	* java/net/URLClassLoader.java (URLClassLoader): Now
	package-private.
	* java/nio/charset/CoderResult.java (CoderResult): Now
	package-private.
	(get): Likewise.
	(Cache): Likewise.  Don't synchronize on `this'.
	* java/rmi/server/RMIClassLoader.java (MyClassLoader): Now
	package-private.
	* java/util/TimeZone.java (timezones): Now package-private.

2004-11-06  Tom Tromey  <tromey@redhat.com>

	* java/security/Permissions.java (perms): Now package-private.
	* java/security/UnresolvedPermission.java (permissions): Now
	package-private.

2004-11-06  Tom Tromey  <tromey@redhat.com>

	* java/io/FilePermission.java: Reindented.

2004-11-06  Tom Tromey  <tromey@redhat.com>

	* java/io/ObjectOutputStream.java (currentObjectStreamClass): Now
	package-private.
	(setBlockDataMode): Likewise.

2004-11-06  Tom Tromey  <tromey@redhat.com>

	* gnu/java/nio/charset/ISO_8859_1.java (Decoder): Now
	package-private.
	(Encoder): Likewise.
	* gnu/java/nio/charset/UTF_8.java (Decoder): Now package-private.
	(Encoder): Likewise.
	* gnu/java/nio/charset/US_ASCII.java (Decoder): Now
	package-private.
	(Encoder): Likewise.

2004-11-06  Mark Wielaard  <mark@klomp.org>

	* Makefile.am: Add new javax.imageio files.
	* Makefile.in: Regenerated.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/event/IIOReadProgressListener.java,
	javax/imageio/event/IIOReadUpdateListener.java,
	javax/imageio/event/IIOReadWarningListener.java,
	javax/imageio/event/IIOWriteProgressListener.java,
	javax/imageio/event/IIOWriteWarningListener.java,
	javax/imageio/metadata/IIOMetadataFormat.java,
	javax/imageio/stream/FileCacheImageInputStream.java,
	javax/imageio/stream/FileCacheImageOutputStream.java,
	javax/imageio/stream/ImageInputStreamImpl.java:
	Import cleanup.
	* javax/imageio/metadata/package.html: New file.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/spi/ImageReaderSpi.java
	(isOwnReader): New method.
	* javax/imageio/spi/ImageWriterSpi.java
	(isOwnWriter): Likewise.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/ImageWriter.java
	(convertImageMetadata): New abstract method.
	(convertStreamMetadata): Likewise.
	(write): Likewise.
	* javax/imageio/stream/FileCacheImageInputStream.java
	(close): Fixed setting of stream to null.
	(checkStreamClosed): Throws IOException.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/stream/FileCacheImageInputStream.java,
	javax/imageio/stream/FileCacheImageOutputStream.java,
	javax/imageio/stream/FileImageInputStream.java,
	javax/imageio/stream/FileImageOutputStream.java,
	javax/imageio/stream/MemoryCacheImageInputStream.java,
	javax/imageio/stream/MemoryCacheImageOutputStream.java:
	New files.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/metadata/IIOInvalidTreeException.java,
	javax/imageio/metadata/IIOMetadataFormatImpl.java,
	javax/imageio/metadata/IIOMetadataNode.java:
	New stub files.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/stream/ImageInputStreamImpl.java,
	javax/imageio/stream/ImageOutputStreamImpl.java:
	New files.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/ImageIO.java:
	Added much new methods.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/ImageReader.java,
	javax/imageio/ImageWriter.java,
	javax/imageio/spi/ImageWriterSpi.java:
	Add SOME new methods.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/IIOParam.java,
	javax/imageio/ImageReadParam.java,
	javax/imageio/ImageReader.java,
	javax/imageio/ImageWriter.java:
	Mostly implemented.
	* javax/imageio/spi/ImageReaderSpi.java,
	javax/imageio/spi/ImageWriterSpi.java:
	New files.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/ImageWriteParam.java,
	javax/imageio/metadata/IIOMetadataFormat.java:
	Implemented.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/ImageTypeSpecifier.java:
	Mostly implemented.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/metadata/IIOMetadata.java:
	Mostly implemented.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/IIOImage.java,
	javax/imageio/ImageReadParam.java,
	javax/imageio/metadata/IIOMetadataController.java,
	javax/imageio/metadata/IIOMetadataFormat.java:
	New files.
	* javax/imageio/stream/ImageOutputStream.java:
	Implemented.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/IIOParam.java,
	javax/imageio/IIOParamController.java,
	javax/imageio/ImageTypeSpecifier.java,
	javax/imageio/ImageWriteParam.java,
	javax/imageio/metadata/IIOMetadata.java:
	New files.
	* javax/imageio/ImageTranscoder.java:
	Implemented.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/spi/ImageInputStreamSpi.java,
	javax/imageio/spi/ImageOutputStreamSpi.java:
	Reworked import startments.
	* javax/imageio/spi/ServiceRegistry.java:
	Reworked import startments. Fixed XHTML in javadocs.
	(ServiceRegistry): Added @param tag to javadoc.
	* javax/imageio/stream/ImageInputStream.java
	(mark): Doesn't throws IOException;

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/ImageIO.java:
	New file.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/spi/IIORegistry.java
	(static): Don't register ImageReaderSpi.class and
	ImageWriterSpi.class yet.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/spi/IIORegistry.java:
	New file.

2004-11-06  Noa Resare  <noa@resare.com>

	* java/net/Socket.java (getPort): Return 0 instead of -1 on
	unconnected sockets.

2004-11-06  Michael Koch  <konqueror@gmx.de>

	* java/lang/StringBuffer.java,
	java/lang/Throwable.java,
	java/security/spec/DSAParameterSpec.java,
	java/util/zip/ZipEntry.java,
	java/util/zip/ZipFile.java,
	java/util/zip/ZipInputStream.java,
	java/util/zip/ZipOutputStream.java:
	Removed redundant and reordered modifiers.

2004-11-06  Mattias Rehnberg  <Mattias.Rehnberg@home.se>

	* java/io/Vector.java
	(writeObject): New function to serialized output thread safe.

	* java/io/ObjectOutputStream.java
	(writeObject): Move the assignment of the class handle to after
	the assignment of class descriptor handle.

2004-11-06  Robert Schuster <thebohemian@gmx.net>

	Fixes documentation and indentation
	* java/beans/PropertyEditorSupport.java:
	reworked initial API doc
	(value): changed name from val

2004-11-06  Robert Schuster <thebohemian@gmx.net>

	Updates to 1.5
	* java/beans/PropertyEditorSupport.java
	(PropertyEditorSupport()): Changed modifier to public
	(PropertyEditorSupport(Object): Changed modifier to public
	(setSource): New method
	(getSource): New method

2004-11-06  Robert Schuster <thebohemian@gmx.net>

	Fixes bug #10799
	* java/beans/PropertyEditorSupport.java
	(setValue): Fire property change event

2004-11-03  Tom Tromey  <tromey@redhat.com>

	* jni.cc (_Jv_JNI_NewObjectArray): Fixed return type.
	* include/jni.h (struct JNINativeInterface) <NewObjectArray>: Now
	returns jobjectArray.
	(_Jv_JNIEnv::NewObjectArray): Likewise.

2004-11-01  Tom Tromey  <tromey@redhat.com>

	* verify.cc (state::check_no_uninitialized_objects): Removed.
	(push_jump): Updated.
	(push_exception_jump): Likewise.
	(handle_ret_insn): Likewise.
	(handle_jsr_insn): Likewise.

2004-10-30  Mark Wielaard  <mark@klomp.org>

	PR libgcj/18234
	* java/lang/Runtime.java (static): Call init().
	(Runtime): Remove call to init().
	(init): Make static.

2004-10-28  David Daney  <ddaney@avtrex.com>

	* gnu/gcj/convert/Output_UnicodeLittleUnmarked.java: New file.
	* Makefile.am: Build it.
	* Makefile.in: Regenerate.

2004-10-27  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

	PR libgcj/18104
	* Makefile.am (CLASSPATH_SEPARATOR): Use instead of a
	colon.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (CLASSPATH_SEPARATOR): Define.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.
	* testsuite/lib/libjava.exp (libjava_arguments): Fix
	CLASSPATH separator handling for Windows.

2004-10-26  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/protocol/http/Connection.java
	(getOutputStream): Implicitely switch to POST method.

2004-10-26  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>

	* libjava/java/lang/Class.h
	(java::lang::Class): Correct friend class declaration.

2004-10-25  Geoffrey Keating  <geoffk@apple.com>

	* Makefile.am (DARWIN_CRT_SRC): New.
	(libgcj_la_SOURCES): Use it.
	* configure.ac: Define USING_DARWIN_CRT when on Darwin.
	* darwin.cc: New file.
	* include/jvm.h (_Jv_RegisterClasses): Constify.
	(_Jv_RegisterClasses_Counted): New prototype.
	* java/lang/Class.h: Include stddef.h.
	(_Jv_RegisterClasses): Constify.
	(_Jv_RegisterClasses_Counted): New prototype.
	(Object): Make '_Jv_RegisterClasses_Counted' a friend.
	* java/lang/natClassLoader.cc (_Jv_RegisterClasses): Constify.
	(_Jv_RegisterClasses_Counted): New function.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

2004-10-25  Tom Tromey  <tromey@redhat.com>

	* java/util/ResourceBundle.java (tryBundle): Use
	Class.isAssignableFrom rather than catching ClassCastException.

2004-10-25  Tom Tromey  <tromey@redhat.com>

	* gnu/java/text/WordBreakIterator.java (WordBreakIterator): Don't
	initialize `iter'.
	* gnu/java/text/SentenceBreakIterator.java
	(SentenceBreakIterator): Don't initialize `iter'.
	* gnu/java/text/LineBreakIterator.java (LineBreakIterator): Don't
	initialize `iter'.
	* gnu/java/text/CharacterBreakIterator.java
	(CharacterBreakIterator): Don't initialize `iter'.
	* gnu/java/text/BaseBreakIterator.java (BaseBreakIterator): New
	constructor.
	* java/text/BreakIterator.java: Updated documentation.

2004-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR other/18138
	* testsuite/lib/libjava.exp: Accept more than one multilib libgcc.

2004-10-23  Michael Koch  <konqueror@gmx.de>

	* javax/print/DocFlavor.java,
	javax/print/attribute/standard/JobStateReason.java,
	javax/print/attribute/standard/MultipleDocumentHandling.java:
	Added missing constants.

2004-10-22  Tom Tromey  <tromey@redhat.com>

	* gnu/java/net/protocol/http/Connection.java (sendRequest): Fix
	typo.

2004-10-22  Michael Koch  <konqueror@gmx.de>

	PR libjava/14009
	* gnu/java/net/protocol/http/Connection.java
	(sendRequest): Handle case when url.getFile() returns an empty string.

2004-10-22  Michael Koch  <konqueror@gmx.de>

	* java/lang/Math.java,
	java/lang/StackTraceElement.java,
	java/nio/Buffer.java,
	java/nio/ByteBuffer.java,
	java/nio/CharBuffer.java,
	java/nio/DoubleBuffer.java,
	java/nio/FloatBuffer.java,
	java/nio/IntBuffer.java,
	java/nio/LongBuffer.java,
	java/nio/ShortBuffer.java,
	java/nio/charset/Charset.java,
	java/rmi/server/RMIClassLoader.java,
	java/rmi/server/RMISocketFactory.java,
	java/security/Policy.java,
	java/text/ChoiceFormat.java,
	java/text/CollationElementIterator.java,
	java/text/DateFormat.java,
	java/text/DecimalFormat.java,
	java/text/DecimalFormatSymbols.java,
	java/text/MessageFormat.java,
	java/text/NumberFormat.java,
	java/text/RuleBasedCollator.java,
	java/text/SimpleDateFormat.java,
	java/util/BitSet.java,
	java/util/Calendar.java,
	java/util/Collections.java,
	java/util/IdentityHashMap.java,
	java/util/Locale.java,
	java/util/TreeMap.java,
	java/util/logging/LogRecord.java,
	java/util/logging/XMLFormatter.java,
	java/util/prefs/AbstractPreferences.java,
	java/util/prefs/Preferences.java,
	javax/crypto/interfaces/DHPrivateKey.java,
	javax/crypto/interfaces/DHPublicKey.java,
	javax/crypto/interfaces/PBEKey.java,
	javax/net/ssl/HandshakeCompletedEvent.java,
	javax/security/auth/Subject.java:
	Removed redundant and reordered modifiers.

2004-10-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* gnu/java/net/natPlainSocketImplPosix.cc
	(gnu::java::net::PlainSocketImpl::available): Call FIONREAD ioctl
	with 'int *' argument instead of 'long *'.

2004-10-21  Michael Koch  <konqueror@gmx.de>

	* java/net/NetworkInterface.java,
	java/text/Format.java,
	javax/security/auth/x500/X500Principal.java,
	javax/security/auth/x500/X500PrivateCredential.java,
	javax/security/cert/X509CertBridge.java,
	javax/security/sasl/Sasl.java,
	javax/sql/XAConnection.java:
	Import cleanup.

2004-10-21  Michael Koch  <konqueror@gmx.de>

	* javax/net/ssl/HandshakeCompletedEvent.java,
	javax/net/ssl/KeyManagerFactory.java,
	javax/net/ssl/SSLContext.java,
	javax/net/ssl/SSLServerSocketFactory.java,
	javax/net/ssl/SSLSession.java,
	javax/net/ssl/SSLSocketFactory.java,
	javax/net/ssl/TrustManagerFactory.java:
	Import cleanup.

2004-10-21  Michael Koch  <konqueror@gmx.de>

	* javax/naming/directory/BasicAttribute.java,
	javax/naming/directory/BasicAttributes.java,
	javax/naming/directory/InitialDirContext.java,
	javax/naming/event/NamingEvent.java,
	javax/naming/ldap/ControlFactory.java,
	javax/naming/ldap/ExtendedRequest.java,
	javax/naming/ldap/InitialLdapContext.java,
	javax/naming/ldap/LdapReferralException.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/StateFactory.java:
	Import cleanup.

2004-10-21  Michael Koch  <konqueror@gmx.de>

	* javax/crypto/Cipher.java,
	javax/crypto/EncryptedPrivateKeyInfo.java,
	javax/crypto/ExemptionMechanism.java,
	javax/crypto/KeyAgreement.java,
	javax/crypto/KeyGenerator.java,
	javax/crypto/Mac.java,
	javax/crypto/SecretKeyFactory.java,
	javax/crypto/SecretKeyFactorySpi.java,
	javax/crypto/spec/SecretKeySpec.java:
	Import cleanup.

2004-10-21  Michael Koch  <konqueror@gmx.de>

	* java/security/AlgorithmParameterGenerator.java,
	java/security/AlgorithmParameters.java,
	java/security/AlgorithmParametersSpi.java,
	java/security/AllPermission.java,
	java/security/BasicPermission.java,
	java/security/Certificate.java,
	java/security/CodeSource.java,
	java/security/DigestInputStream.java,
	java/security/DigestOutputStream.java,
	java/security/GuardedObject.java,
	java/security/KeyFactory.java,
	java/security/KeyFactorySpi.java,
	java/security/KeyPairGenerator.java,
	java/security/KeyStore.java,
	java/security/KeyStoreSpi.java,
	java/security/Permissions.java,
	java/security/Security.java,
	java/security/Signature.java,
	java/security/UnresolvedPermission.java,
	java/security/cert/CertPathBuilder.java,
	java/security/cert/CertPathValidator.java,
	java/security/cert/CertStore.java,
	java/security/cert/Certificate.java,
	java/security/cert/CertificateFactory.java,
	java/security/cert/PolicyQualifierInfo.java,
	java/security/cert/TrustAnchor.java,
	java/security/cert/X509CRL.java,
	java/security/cert/X509CRLSelector.java,
	java/security/cert/X509CertSelector.java:
	Import cleanup.

2004-10-21  Michael Koch  <konqueror@gmx.de>

	* java/rmi/MarshalledObject.java,
	java/rmi/Naming.java,
	java/rmi/activation/Activatable.java,
	java/rmi/activation/ActivationGroup.java,
	java/rmi/activation/ActivationGroupDesc.java,
	java/rmi/activation/ActivationInstantiator.java,
	java/rmi/activation/ActivationMonitor.java,
	java/rmi/activation/ActivationSystem.java,
	java/rmi/activation/Activator.java,
	java/rmi/registry/LocateRegistry.java,
	java/rmi/registry/Registry.java,
	java/rmi/server/LogStream.java,
	java/rmi/server/ObjID.java,
	java/rmi/server/RMIClientSocketFactory.java,
	java/rmi/server/RMIServerSocketFactory.java,
	java/rmi/server/RMISocketFactory.java,
	java/rmi/server/RemoteCall.java,
	java/rmi/server/RemoteServer.java,
	java/rmi/server/ServerRef.java,
	java/rmi/server/UID.java,
	java/rmi/server/UnicastRemoteObject.java:
	Import cleanup.

2004-10-21  Tom Tromey  <tromey@redhat.com>

	* java/util/zip/InflaterInputStream.java (fill): Don't throw an
	exception if we hit EOF of `in'.
	(read): Handle case where inflating returns -1.

2004-10-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* gnu/java/nio/channels/natFileChannelPosix.cc
	(FileChannelImpl::available): Call FIONREAD ioctl with 'int *'
	argument instead of 'long *'.

2004-10-21  Tom Tromey  <tromey@redhat.com>

	* java/util/ResourceBundle.java (tryBundle): Also ignore
	ClassCastException.

2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>

	* configure.ac (SIGNAL_HANDLER): Set to include/sh-signal.h
	for all sh*-*-linux* targets.
	* configure: Regenerate.
	* include/sh-signal.h: New file.

2004-10-21  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* java/lang/ieeefp.h: Add m32r support.

2004-10-20  Andreas Schwab  <schwab@suse.de>

	* java/lang/natClass.cc (_Jv_LayoutVTableMethods): Cast pointers
	to uaddr, not int.
	* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass):
	Likewise.

2004-10-20  Michael Koch  <konqueror@gmx.de>

	* 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/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/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/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/PrinterStateReason.java,
	javax/print/attribute/standard/PrinterStateReasons.java,
	javax/print/attribute/standard/PrinterURI.java,
	javax/print/attribute/standard/ReferenceUriSchemesSupported.java,
	javax/print/attribute/standard/RequestingUserName.java:
	Reorganized imports and removed redundant final modifiers.

2004-10-20  Michael Koch  <konqueror@gmx.de>

	* javax/security/sasl/SaslClient.java,
	javax/security/sasl/SaslClientFactory.java,
	javax/security/sasl/SaslException.java,
	javax/security/sasl/SaslServer.java,
	javax/security/sasl/SaslServerFactory.java:
	Remvoed CVS tags.

2004-10-20  Michael Koch  <konqueror@gmx.de>

	* javax/security/auth/login/NullConfiguration.java,
	javax/security/auth/x500/X500Principal.java,
	javax/security/cert/X509Certificate.java,
	javax/security/sasl/AuthenticationException.java,
	javax/security/sasl/AuthorizeCallback.java,
	javax/security/sasl/RealmCallback.java,
	javax/security/sasl/RealmChoiceCallback.java,
	javax/security/sasl/Sasl.java,
	javax/security/sasl/SaslClient.java,
	javax/security/sasl/SaslClientFactory.java,
	javax/security/sasl/SaslException.java,
	javax/security/sasl/SaslServer.java,
	javax/security/sasl/SaslServerFactory.java:
	Cleaned up import statements and copyright notices.

2004-10-20  Michael Koch  <konqueror@gmx.de>

	* gnu/java/rmi/rmic/RMIC.java: Reformatted.

2004-10-20  Michael Koch  <konqueror@gmx.de>

	* java/sql/Timestamp.java,
	java/text/AttributedCharacterIterator.java,
	java/text/AttributedString.java,
	java/util/zip/CheckedOutputStream.java,
	java/util/zip/DeflaterOutputStream.java,
	java/util/zip/ZipFile.java,
	javax/crypto/Cipher.java,
	javax/crypto/ExemptionMechanismException.java,
	javax/crypto/SecretKey.java,
	javax/crypto/SecretKeyFactory.java,
	javax/naming/directory/ModificationItem.java,
	javax/naming/directory/SearchControls.java,
	javax/naming/event/NamingListener.java,
	javax/naming/ldap/Control.java,
	javax/naming/ldap/ExtendedResponse.java,
	javax/net/ssl/SSLSocketFactory.java:
	Reorganized imports and fixed copyright headers.

2004-10-20  Michael Koch  <konqueror@gmx.de>

	* java/util/logging/ConsoleHandler.java,
	java/util/logging/ErrorManager.java,
	java/util/logging/FileHandler.java,
	java/util/logging/Filter.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/LoggingPermission.java,
	java/util/logging/MemoryHandler.java,
	java/util/logging/SimpleFormatter.java,
	java/util/logging/SocketHandler.java,
	java/util/logging/StreamHandler.java,
	java/util/logging/XMLFormatter.java:
	Standardized copyrigth header.

2004-10-20  Michael Koch  <konqueror@gmx.de>

	* java/security/AlgorithmParameterGenerator.java,
	java/security/AlgorithmParameters.java,
	java/security/DigestInputStream.java,
	java/security/Identity.java,
	java/security/KeyFactory.java,
	java/security/KeyPairGenerator.java,
	java/security/KeyStore.java,
	java/security/MessageDigest.java,
	java/security/MessageDigestSpi.java,
	java/security/Policy.java,
	java/security/SecureRandom.java,
	java/security/Security.java,
	java/security/Signature.java,
	java/security/SignatureSpi.java,
	java/security/cert/CertPathBuilder.java,
	java/security/cert/CertPathValidator.java,
	java/security/cert/CertStore.java,
	java/security/cert/Certificate.java,
	java/security/cert/CertificateFactory.java,
	java/security/cert/PolicyQualifierInfo.java,
	java/security/cert/TrustAnchor.java,
	java/security/cert/X509CRL.java,
	java/security/cert/X509CRLEntry.java,
	java/security/cert/X509Certificate.java,
	java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java:
	Import statements reorganized, some little formatting issues,
	used java-style array declarations, added comments in empty catch
	blocks.

2004-10-18  Jeroen Frijters  <jeroen@frijters.net>

	* java/security/Security.java
	(static): Use AccessController.doPrivileged to get system property.

2004-10-18  Sven de Marothy  <sven@physto.se>

	* java/nio/ByteBufferHelper.java
	(putDouble): Use Double.toRawLongBits instead.

2004-10-18  Mark Wielaard  <mark@klomp.org>
	Andrew Haley  <aph@redhat.com>

	* testsuite/libjava.lang/ExtraClassLoader.java: New.

2004-10-18  Andrew Haley  <aph@redhat.com>

	PR java/18036:
	* gnu/gcj/runtime/natStackTrace.cc (fillInStackTrace): Reorganize
	and correct logic used to find interpreter.

2004-10-18  Jeroen Frijters  <jeroen@frijters.net>

	* java/util/logging/LogManager.java
	(findAncestor): Fixed IndexOutOfBoundsException.

2004-10-18  Michael Koch  <konqueror@gmx.de>

	* java/io/BufferedInputStream.java: Fixed @author tag.
	(read): Simplified expression.
	(read): Merged javadoc a bit more.
	(read): Renamed 'remain' to 'totalBytesRead'.
	* java/io/DataInputStream.java,
	java/io/DataOutputStream.java,
	java/io/ObjectInputStream.java,
	java/io/ObjectOutputStream.java:
	Reworked modifier order.

2004-10-18  Michael Koch  <konqueror@gmx.de>

	* java/net/Inet4Address.java: Merged file header and javadocs.
	* java/net/Inet6Address.java: Likewise.
	* java/net/InetAddress.java
	(getCanonicalHostName): Create Inet4Address object instead of
	InetAddress and add comment regarding IPv6.
	(toString): Simplified.

2004-10-18  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/protocol/http/Connection.java,
	java/nio/MappedByteBufferImpl.java,
	java/text/RuleBasedCollator.java,
	java/util/ResourceBundle.java:
	Reworked import statements.

2004-10-18  Jeroen Frijters  <jeroen@frijters.net>

	* java/security/IdentityScope.java
	(systemScope): Removed useless initializer.
	* java/security/Policy.java
	(currentPolicy): Likewise.

2004-10-18  Michael Koch  <konqueror@gmx.de>

	* java/lang/System.java: Revert accidential change.

2004-10-18  Michael Koch  <konqueror@gmx.de>

	* java/lang/Math.java,
	java/lang/Package.java,
	java/lang/Runtime.java,
	java/lang/StrictMath.java,
	java/lang/System.java,
	java/lang/Thread.java,
	java/lang/ThreadLocal.java,
	java/lang/Void.java:
	Reworked import statements, HTML in javadocs and modifier orders.

2004-10-18  Jeroen Frijters  <jeroen@frijters.net>

	* java/util/Timer.java
	(nr): Removed useless initializer.
	* java/util/logging/LogRecord.java
	(lastSeqNum): Likewise.
	* javax/naming/spi/NamingManager.java
	(icfb, ofb): Likewise.

2004-10-18  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/PlainDatagramSocketImpl.java:
	Reworked import statements.
	* gnu/java/security/provider/DSAParameters.java:
	Fixed copyrigth years.
	* java/net/JarURLConnection.java:
	Fixed HTML in @author tags.


2004-10-18  Michael Koch  <konqueror@gmx.de>

	* java/rmi/activation/ActivationSystem.java
	(SYSTEM_PORT): Initialize with correct port number.

2004-10-18  Michael Koch  <konqueror@gmx.de>

	* java/lang/reflect/Proxy.java: Improved javadocs.

2004-10-18  Michael Koch  <konqueror@gmx.de>

	* java/lang/reflect/AccessibleObject.java
	(checkPermission): Removed redundant final modifier.
	(secureSetAccessible): Likewise.
	* java/lang/reflect/Proxy.java:
	Reworked import statements.
	(generate): Removed redundant final modifier.
	* java/lang/reflect/ReflectPermission.java:
	Reorder package declaration and import statement.

2004-10-18  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/reflect/Proxy.java
	(count): Removed useless initializer.

2004-10-17  Michael Koch  <konqueror@gmx.de>

	* java/net/BindException.java,
	java/net/ConnectException.java,
	java/net/ContentHandler.java,
	java/net/ContentHandlerFactory.java,
	java/net/DatagramPacket.java,
	java/net/DatagramSocket.java,
	java/net/DatagramSocketImpl.java,
	java/net/DatagramSocketImplFactory.java,
	java/net/FileNameMap.java,
	java/net/HttpURLConnection.java,
	java/net/MalformedURLException.java,
	java/net/MulticastSocket.java,
	java/net/NetworkInterface.java,
	java/net/NoRouteToHostException.java,
	java/net/PasswordAuthentication.java,
	java/net/PortUnreachableException.java,
	java/net/ProtocolException.java,
	java/net/ServerSocket.java,
	java/net/Socket.java,
	java/net/SocketException.java,
	java/net/SocketImpl.java,
	java/net/SocketImplFactory.java,
	java/net/SocketOptions.java,
	java/net/SocketPermission.java,
	java/net/SocketTimeoutException.java,
	java/net/URI.java,
	java/net/URISyntaxException.java,
	java/net/URL.java,
	java/net/URLDecoder.java,
	java/net/URLEncoder.java,
	java/net/URLStreamHandler.java,
	java/net/URLStreamHandlerFactory.java,
	java/net/UnknownHostException.java,
	java/net/UnknownServiceException.java:
	Big import statement and @author tag cleanup.

2004-10-17  Michael Koch  <konqueror@gmx.de>

	* gnu/java/security/OID.java,
	gnu/java/security/provider/DSAParameters.java,
	gnu/java/security/provider/DSASignature.java,
	gnu/java/security/x509/X500DistinguishedName.java,
	gnu/java/security/x509/X509CRL.java:
	Import statements cleaned up.

2004-10-16  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/NIODatagramSocket.java,
	gnu/java/nio/ServerSocketChannelImpl.java:
	Reorganized import statements.

2004-10-16  Michael Koch  <konqueror@gmx.de>

	* gnu/java/rmi/RMIMarshalledObjectOutputStream.java
	gnu/java/rmi/rmic/RMIC.java,
	gnu/java/rmi/server/RMIHashes.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/UnicastRemoteCall.java,
	gnu/java/rmi/server/UnicastServer.java,
	gnu/java/rmi/server/UnicastServerRef.java,
	java/rmi/MarshalledObject.java,
	java/rmi/Naming.java,
	java/rmi/RMISecurityManager.java,
	java/rmi/Remote.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/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/RMIClassLoaderSpi.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/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/SkeletonMismatchException.java,
	java/rmi/server/UID.java,
	java/rmi/server/UnicastRemoteObject.java,
	java/rmi/server/Unreferenced.java:
	File headers and import statements cleaned up.

2004-10-16  Michael Koch  <konqueror@gmx.de>

	* libjava/gnu/java/nio/charset/UTF_16.java,
	libjava/gnu/java/nio/charset/UTF_16BE.java,
	libjava/gnu/java/nio/charset/UTF_16LE.java,
	libjava/java/nio/ByteOrder.java,
	libjava/java/nio/MappedByteBuffer.java,
	libjava/java/nio/channels/Channels.java,
	libjava/java/nio/channels/spi/SelectorProvider.java,
	libjava/java/nio/charset/Charset.java:
	Cleanup.

2004-10-16  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/charset/UTF_16Encoder.java
	(UTF_16Encoder): Fixed maxBytesPerChar handling.

2004-10-16  Michael Koch  <konqueror@gmx.de>

	* java/math/BigDecimal.java, java/math/BigInteger.java:
	Reorganized import statements, removed redundant and
	reorganized modifiers.

2004-10-16  Michael Koch  <konqueror@gmx.de>

	* gnu/java/beans/ExplicitBeanInfo.java:
	Explicitely import java.awt.Image.
	(getIcon): Fixed off-by-one error.

2004-10-15  Andrew Haley  <aph@redhat.com>

	* Makefile.am (nat_files, xlib_nat_files): New.
	* Makefile.in: Regenerate.

2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* jni.cc (_Jv_JNIMethod::call): Use ffi_java_raw_call instead of
	ffi_raw_call if FFI_NATIVE_RAW_API is not defined.

2004-10-13  Andrew Haley  <aph@redhat.com>

	* interpret.cc (_Jv_InterpMethod::run): Initialize
	_Jv_StartOfInterpreter.
	(_Jv_StartOfInterpreter, _Jv_EndOfInterpreter): Functions removed.
	(_Jv_StartOfInterpreter, _Jv_EndOfInterpreter): New variables.
	* gnu/gcj/runtime/natStackTrace.cc (fillInStackTrace): Use
	_Unwind_FindEnclosingFunction to discover whether PC is within the
	interpreter.

2004-10-12  Rutger Ovidius  <ovidr@users.sourceforge.net>

	PR libgcj/17903:
	* testsuite/libjava.lang/md5test.java: New file.
	* testsuite/libjava.lang/md5test.out: Likewise.
	* testsuite/libjava.lang/shatest.java: Likewise.
	* testsuite/libjava.lang/shatest.out: Likewise.

2004-10-11  Richard Henderson  <rth@redhat.com>

	* include/posix-threads.h <__alpha__> (_Jv_ThreadId_t): Use void*.
	(_Jv_ThreadSelf): Use __builtin_thread_pointer.

2004-10-08  Bryce McKinlay  <mckinlay@redhat.com>

	* java/util/Calendar.java (set): Invalidate DST_OFFSET
	field as a DST boundary may have been crossed.
	* java/util/GregorianCalendar.java (add): Throw
	IllegalArgumentException on attempt to add to DST_OFFSET or
	ZONE_OFFSET fields. Update javadoc.

2004-10-09  Michael Koch  <konqueror@gmx.de>

	* java/io/CharArrayWriter.java
	(resize): Removed redundant 'final' modifier.
	* java/io/DataInputStream.java
	(readFully): Throw IndexOutOfBoundsException of len < 0.
	* java/io/FileDescriptor.java,
	java/io/FileInputStream.java,
	java/io/FileOutputStream.java,
	java/io/ObjectOutputStream.java,
	java/io/ObjectStreamClass.java,
	java/io/PipedInputStream.java,
	java/io/RandomAccessFile.java:
	Reorganized import statements.

2004-10-09  Michael Koch  <konqueror@gmx.de>

	* gnu/java/rmi/rmic/RMIC.java,
	gnu/java/rmi/server/RMIHashes.java,
	gnu/java/rmi/server/RMIObjectInputStream.java,
	gnu/java/rmi/server/UnicastConnection.java,
	gnu/java/rmi/server/UnicastConnectionManager.java,
	gnu/java/rmi/server/UnicastRemoteCall.java,
	gnu/java/rmi/server/UnicastServerRef.java:
	Reworked import statements and fixed file headers.

2004-10-04  Loren J. Rittle  <ljrittle@acm.org>

	* configure.ac (*-*-freebsd[[1234]]*): Refine error message
	emission rule.
	* configure: Rebuilt.

2004-09-30  Tom Tromey  <tromey@redhat.com>

	* java/text/MessageFormat.java (Field): Constructor now
	protected.

2004-09-30  Tom Tromey  <tromey@redhat.com>

	* javax/crypto/MacSpi.java: Fixed typo.

2004-09-30  Michael Koch  <konqueror@gmx.de>

	* java/net/InetAddress.java: Reformatted.
	(loopback): Initialize with Inet4Address object.
	(static): Initialize ANY_IF with Inet4Address object.
	(InetAddress): Removed unused package-private constructor.

2004-09-30  Michael Koch  <konqueror@gmx.de>

	* java/beans/Beans.java,
	java/beans/EventHandler.java,
	java/beans/EventSetDescriptor.java,
	java/beans/Introspector.java,
	java/beans/PropertyEditorManager.java,
	java/beans/beancontext/BeanContext.java,
	java/beans/beancontext/BeanContextChild.java,
	java/beans/beancontext/BeanContextChildSupport.java,
	java/beans/beancontext/BeanContextMembershipEvent.java:
	Reordered import statements and removed redundant modifiers.

2004-09-29  Tom Tromey  <tromey@redhat.com>

	PR libgcj/17715:
	* Makefile.in: Rebuilt.
	* Makefile.am (libgcj-@gcc_version@.jar): Include properties
	files.
	(all_property_files): New macro.

	* Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Re-sorted.
	(libgcj.la): Moved to old location near lib-gnu-awt-xlib.la.

2004-09-28  Tom Tromey  <tromey@redhat.com>

	* jni.cc (_Jv_JNI_RegisterNatives): Formatting fixlets.

	PR libgcj/17222:
	* Makefile.am (libgcj.la): Restored.
	* Makefile.in: Rebuilt.

2004-09-28  Michael Koch  <konqueror@gmx.de>

	* java/net/URLConnection.java: Reformatted.
	* java/net/URLClassLoader.java: Reformatted.
	(getContent): Reordered return of content.
	(getContentHandler): Don't check for null explicitely.

2004-09-27  Michael Koch  <konqueror@gmx.de>

	* java/io/BufferedInputStream.java
	(BufferedInputStream): Added Jeroen Frijters to authors.
	(count): Don't explicitely initialize with default value.
	(pos): Likewise.
	(marklimit): Likewise.
	(read): Changed boolean expression to match GNU classpath' version.
	(reset): Add proper message to exception.
	(skip): Check for closed stream.
	(refill): Likewise.

2004-09-26  Per Bothner  <per@bothner.com>

	* prims.cc (unblock_signal): Annotate signum with __unused__ to
	avoid warnings in the non-POSIX_VERSION case.
	Also, we only need this function if either HANDLE_SEGV or HANDLE_FPE,
	so place it inside an #if block.
	* include/default-signal.h (SIGNAL_HANDLER): Parameters are __unused__.
	* include/i386-signal.h (SIGNAL_HANDLER):  Likewise
	* include/mips-signal.h (SIGNAL_HANDLER):  Likewise
	* include/sparc-signal.h (SIGNAL_HANDLER):  Likewise

2004-09-26  Per Bothner  <per@bothner.com>

	* prims.cc (process_gcj_properties):  Optimization.

2004-09-26  Per Bothner  <per@bothner.com>

	* java/util/Collections.java (sort):  Copy from array in forwards
	order, rather than reverse order which may be much less efficient.

2004-09-26  Mark Wielaard  <mark@klomp.org>

	* java/lang/System.java (properties): Make package private.
	* java/lang/Throwable.java (StaticData.nl): Initialize through
	directly accessing System.properties.getProperty().

	* java/lang/Throwable.java (nl): Remove static field.
	(StaticData): New private static inner class.
	(stackTraceStringBuffer): Use StaticData.nl.

2004-09-26  Casey Marshall <csm@gnu.org>

	* java/security/ProtectionDomain.java
	(<init>(CodeSource,PermissionCollection)): set `staticBinding' to
	`true'.

	* java/security/SecureClassLoader.java
	(defineClass): make protection domain dynamically bound.
	(getPermissions): call `getCurrentPolicy' to avoid permission
	check.

2004-09-25  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (core_java_source_files): Add VMTimeZone.java.
	(nat_source_files): Rename natTimeZone.cc to natVMTimeZone.cc.
	* Makefile.in: Regenerated.

	* gcj/javaprims.h: Regenerated.

	* java/util/TimeZone.java (defaultZone): Use VMTimeZone.
	(getDefaultTimeZone): Make package private. Check that GMToffset
	contains at least one digit.
	(getDefaultTimeZoneId, readTimeZoneFile, readtzFile): (Re)Moved to
	VMTimeZone.
	* util/VMTimeZone.java: New file with above methods.

	* java/util/natTimeZone.cc: Removed (renamed).
	* java/util/natVMTimeZone.cc: Added (renamed).

2004-09-25  Jeroen Frijters  <jeroen@frijters.net>

	* java/util/TimeZone.java
	(getDefaultTimeZone): Fixed test to distinguish between hours and
	minutes in specified timezone.

2004-09-25  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/reflect/Proxy.java (getPackage, ClassFactory): Fixed
	handling of default package. (generate): Removed confused comments
	and code about making Method and Field accessible.

2004-09-25  Tom Tromey  <tromey@redhat.com>

	PR java/17500:
	* testsuite/libjava.compile/pr17500.java: New file.

2004-09-25  Shashank Bapat  <shashankbapat@yahoo.com>
	    Mark Wielaard  <mark@klomp.org>

	* gnu/regexp/RE.java (initialize): Add RETokenLookAhead support.
	* gnu/regexp/RETokenLookAhead.java: New file.

	* Makefile.am (ordinary_java_source_files): Add RETokenLookAhead.java.
	* Makefile.in: Regenerated.

2004-09-25  Michael Koch  <konqueror@gmx.de>

	* java/io/ObjectStreamField.java:
	Removed unused import statement.

2004-09-24  Tom Tromey  <tromey@redhat.com>

	PR java/15656:
	* testsuite/libjava.compile/pr15656.xfail: New file.
	* testsuite/libjava.compile/pr15656.java: new file.

	PR java/16789:
	* testsuite/libjava.lang/pr16789.out: New file.
	* testsuite/libjava.lang/pr16789.java: New file.

2004-09-24  Andrew Haley  <aph@redhat.com>

	PR java/16927
	* testsuite/libjava.compile/AssertBug.java: New file.

2004-09-24  Casey Marshall <csm@gnu.org>

	* java/util/PropertyPermissionCollection.java
	(implies): avoid infinite loop.

2004-09-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/security/auth/PrivateCredentialPermission.java
	(PrivateCredentialPermission): added serialization UID


2004-09-24  Ilya Perminov  <iperminov@logicalsoft.com>

	* gnu/java/rmi/server/UnicastServer.java
	(incomingMessageCall): Added code to handle Errors.
	* gnu/java/rmi/server/UnicastServerRef.java
	(incomingMessageCall): Added code to handle Errors.


2004-09-24  Tom Tromey  <tromey@redhat.com>

	* java/lang/ClassLoader.java (loadedClasses): Declare as HashMap.
	(definedPackages): Likewise.

2004-09-24  Michael Koch  <konqueror@gmx.de>

	* java/io/ObjectInputStream.java:
	Re-ordered imports.

2004-09-24  Casey Marshall <csm@gnu.org>

	* java/io/ObjectInputStream.java (callReadMethod): re-throw
	`ClassNotFoundException'.

2004-09-24  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/ObjectInputStream.java (readObject): Delegate instantation
	of Externalizable classes to ObjectStreamClass.
	* java/io/ObjectStreamClass.java (newInstance): New method to
	instantiate Externalizable (while ignoring the accessibility of
	the constructor). (constructor): New field to cache the constructor.

2004-09-24  Mark Wielaard  <mark@klomp.org>

	* java/net/URL.java (systemClassLoader): New static field.
	(getURLStreamHandler): Always use system/application classloader
	for finding URLStreamhandler. Remove unecessary instanceof checks.

2004-09-24  Guilhem Lavaux <guilhem@kaffe.org>

	* java/net/URL.java
	(set): This method now matches the behaviour of the JDK.
	(DEFAULT_SEARCH_PATH): Added "gnu.inet".

2004-09-24  Guilhem Lavaux  <guilhem@kaffe.org>

	* java/net/URL.java (URL): Delete whitespaces in the protocol string.

2004-09-24  Jeroen Frijters  <jeroen@frijters.net>

	* java/net/URL.java (URL(String,String,int,String,URLStreamHandler):
	Don't set authority if host isn't specified.

2004-09-24  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/PipeImpl.java: Use VMPipe for native stuff.
	* gnu/java/nio/SelectorImpl.java: Use VMSelector for native stuff.
	* gnu/java/nio/VMPipe.java,
	gnu/java/nio/VMSelector.java:
	New files.
	* gnu/java/nio/natPipeImplEcos.cc,
	gnu/java/nio/natPipeImplPosix.cc,
	gnu/java/nio/natPipeImplWin32.cc:
	Ported to VMPipe.
	* gnu/java/nio/natSelectorImplEcos.cc,
	gnu/java/nio/natSelectorImplPosix.cc,
	gnu/java/nio/natSelectorImplWin32.cc:
	Ported to VMSelector.
	* Makefile.am: Added new files gnu/java/nio/VMPipe.java and
	gnu/java/nio/VMSelector.java.
	* Makefile.in: Regenerated.

2004-09-24  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/StackTraceElement.java
	(className): Renamed field to declaringClass to be compatible
	with Sun serialization format.

2004-09-23  Michael Koch  <konqueror@gmx.de>

	* java/applet/AppletContext.java,
	java/applet/Applet.java,
	java/applet/AppletStub.java,
	java/applet/AudioClip.java:
	Jalopied and checkstyle clean.

	* javax/swing/JCheckBox.java: Reformated.
	(JCheckBox): Fixed all constructors.
	(isBorderPaintedFlat): New method.
	(setBorderPaintedFlat): New method.
	* javax/swing/JEditorPane.java
	(createEditorKitForContentType): Made public.
	(scrollToReference): Likewise.
	* javax/swing/JTextArea.java
	(setLineWrap): Fire property change.
	* javax/swing/JToggleButton.java
	(JToggleButton): New constructor.
	(JToggleButton): Simplified.
	* javax/swing/text/AttributeSet.java
	(FontAttribute): Renamed from FontCharacterAttribute.
	* javax/swing/text/JTextComponent.java
	(KeyBinBinding): Added javadoc.
	(JTextComponent): Likewise.
	(getAccessibleContext): Fixed javadoc.
	* javax/swing/text/View.java
	(View): Added javadoc.
	* javax/swing/text/TabableView.java: New file.
	* Makefile.am: Added javax/swing/text/TabableView.java.
	* Makefile.in: Regenerated.
2004-09-23  Mark Wielaard  <mark@klomp.org>

	* java/util/Collections.java
	(binarySearch(List, Object, Comparator)): Explicitly
	reverse direction in list iterator.
	(rotate): Just return when list is empty.

2004-09-23  Tom Tromey  <tromey@redhat.com>

	PR java/17329:
	* testsuite/libjava.compile/pr17329.java: New file.

	PR java/17380:
	* testsuite/libjava.jacks/jacks.xfail: Added 9.2-implicit-6 and
	9.2-implicit-7.

2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.am: Run aclocal with -I ../config
	* acinclude.m4: Delete macros picked up from ../config and tidy.
	(AM_ICONV,AM_LC_MESSAGES, PKG_CHECK_MODULES): Delete.
	* aclocal.m4, configure, Makefile.in, gcj/Makefile.in: Regenerate.
	* include/Makefile.in, testsuite/Makefile.in: Regenerate.

2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>

	* aclocal.m4: Regenerate with aclocal 1.9.2.
	* configure: Regenerate.
	* Makefile.in, gcj/Makefile.in: Regenerate with automake 1.9.2.
	* include/Makefile.in, testsuite/Makefile.in: Likewise.

2004-09-22  David Daney  <ddaney@avtrex.com>

	PR libgcj/17623
	* java/net/URL.java (URL): Copy userInfo from context.
	(getUserInfo): Return cached userInfo if present.

2004-09-22  Tom Tromey  <tromey@redhat.com>

	PR libgcj/6182:
	* mauve-libgcj: Enable java.lang.Character tests.

2004-09-22  Andreas Tobler  <a.tobler@schweiz.ch>

	* Makefile.am (lib_org_ietf_jgss_la_DEPENDENCIES): Add missing
	dependencies.
	(lib_org_ietf_jgss_la_LIBADD): Likewise.
	* Makefile.in: Regenerated.

2004-09-22  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.ac: Introduce AC_C_BIGENDIAN_CROSS for WORDS_BIGENDIAN.
	* configure: Regenerate.
	* include/config.h.in: Likewise.
	* jni/gtk-peer/gtkpeer.h (SWAPU32): Introduce macro to swap pixels.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c: Moved SWAPU32
	macro to gtkpeer.h.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getImagePixels): Convert
	pixels from  0xBBGGRRAA to 0xAARRGGBB only on Little Endian
	architectures.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c (area_updated):
	Likewise.

2004-09-22  Tom Tromey  <tromey@redhat.com>

	PR libgcj/14446:
	* java/util/zip/GZIPInputStream.java (read): Avoid sign extension
	when comparing CRCs.
	* java/util/zip/InflaterInputStream.java (onebytebuffer): New
	field.
	(read()): New overload.

2004-09-21  Tom Tromey  <tromey@redhat.com>

	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA):
	Indentation fix.

2004-09-21  Michael Koch  <konqueror@gmx.de>

	* java/net/Socket.java
	(getLocalAddress): Return InetAddress.ANY_IF if not bound yet.

2004-09-21  Casey Marshall  <csm@gnu.org>

	* javax/crypto/MacSpi.java (clone): Provide meaningful
	implementation.

2004-09-21  Tom Tromey  <tromey@redhat.com>

	PR libgcj/16869:
	* Makefile.in: Rebuilt.
	* Makefile.am (MOSTLYCLEANFILES): Removed.
	(mostlyclean-local): Remove header files.

2004-09-21  Casey Marshall  <csm@gnu.org>

	* java/security/cert/X509CRLSelector.java:
	(match): remove unreachable try-catch clauses.
	Reported by: Dalibor Topic <robilad@kaffe.org>

2004-09-21  Mark Wielaard  <mark@klomp.org>

	* java/util/TreeMap.java (root): Don't initialize.
	(TreeMap(Comparator)): Call fabricateTree(0).
	(fabricateTree): Initialize root and size when count is 0.

2004-09-21  Sven de Marothy <sven@physto.se>

	* java/nio/ByteBuffer.java (hashCode): Implemented.
	* java/nio/CharBuffer.java: Likewise.
	* java/nio/DoubleBuffer.java: Likewise.
	* java/nio/FloatBuffer.java: Likewise.
	* java/nio/LongBuffer.java: Likewise.
	* java/nio/IntBuffer.java: Likewise.
	* java/nio/ShortBuffer.java: Likewise.

2004-09-21  Andreas Tobler  <a.tobler@schweiz.ch>

	* javax/security/auth/x500/X500Principal.java: Fix some merge glitches.

2004-09-21  Michael Koch  <konqueror@gmx.de>

	* javax/net/ssl/SSLServerSocket.java:
	Removed comment about "Do not edit this file, it's generated.".

2004-09-21  Andreas Tobler  <a.tobler@schweiz.ch>

	Import the big Crypto/Jessie/Security merge from Classpath.

	* Makefile.am: Add imported files.
	* Makefile.in: Regenerate.

	2004-08-14  Casey Marshall <csm@gnu.org>

	The Big Crypto Merge of 2004.

	* javax/security/auth/x500/X500Principal.java: Replaced with GNU
	Crypto's version.

	Files imported from GNU Crypto.
	* javax/crypto/BadPaddingException.java
	* javax/crypto/Cipher.java
	* javax/crypto/CipherInputStream.java
	* javax/crypto/CipherOutputStream.java
	* javax/crypto/CipherSpi.java
	* javax/crypto/EncryptedPrivateKeyInfo.java
	* javax/crypto/ExemptionMechanism.java
	* javax/crypto/ExemptionMechanismException.java
	* javax/crypto/ExemptionMechanismSpi.java
	* javax/crypto/IllegalBlockSizeException.java
	* javax/crypto/KeyAgreement.java
	* javax/crypto/KeyAgreementSpi.java
	* javax/crypto/KeyGenerator.java
	* javax/crypto/KeyGeneratorSpi.java
	* javax/crypto/Mac.java
	* javax/crypto/MacSpi.java
	* javax/crypto/Makefile.am
	* javax/crypto/NoSuchPaddingException.java
	* javax/crypto/NullCipher.java
	* javax/crypto/NullCipherImpl.java
	* javax/crypto/SealedObject.java
	* javax/crypto/SecretKey.java
	* javax/crypto/SecretKeyFactory.java
	* javax/crypto/SecretKeyFactorySpi.java
	* javax/crypto/ShortBufferException.java
	* javax/crypto/interfaces/DHKey.java
	* javax/crypto/interfaces/DHPrivateKey.java
	* javax/crypto/interfaces/DHPublicKey.java
	* javax/crypto/interfaces/PBEKey.java
	* javax/crypto/spec/DESKeySpec.java
	* javax/crypto/spec/DESedeKeySpec.java
	* javax/crypto/spec/DHGenParameterSpec.java
	* javax/crypto/spec/DHParameterSpec.java
	* javax/crypto/spec/DHPrivateKeySpec.java
	* javax/crypto/spec/DHPublicKeySpec.java
	* javax/crypto/spec/IvParameterSpec.java
	* javax/crypto/spec/PBEKeySpec.java
	* javax/crypto/spec/PBEParameterSpec.java
	* javax/crypto/spec/RC2ParameterSpec.java
	* javax/crypto/spec/RC5ParameterSpec.java
	* javax/crypto/spec/SecretKeySpec.java
	* javax/security/auth/AuthPermission.java
	* javax/security/auth/DestroyFailedException.java
	* javax/security/auth/Destroyable.java
	* javax/security/auth/Policy.java
	* javax/security/auth/PrivateCredentialPermission.java
	* javax/security/auth/RefreshFailedException.java
	* javax/security/auth/Refreshable.java
	* javax/security/auth/Subject.java
	* javax/security/auth/SubjectDomainCombiner.java
	* javax/security/auth/callback/Callback.java
	* javax/security/auth/callback/CallbackHandler.java
	* javax/security/auth/callback/ChoiceCallback.java
	* javax/security/auth/callback/ConfirmationCallback.java
	* javax/security/auth/callback/LanguageCallback.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/callback/UnsupportedCallbackException.java
	* javax/security/auth/login/AccountExpiredException.java
	* javax/security/auth/login/AppConfigurationEntry.java
	* javax/security/auth/login/Configuration.java
	* javax/security/auth/login/CredentialExpiredException.java
	* javax/security/auth/login/FailedLoginException.java
	* javax/security/auth/login/LoginContext.java
	* javax/security/auth/login/LoginException.java
	* javax/security/auth/login/NullConfiguration.java
	* javax/security/auth/x500/X500PrivateCredential.java
	* javax/security/sasl/AuthenticationException.java
	* javax/security/sasl/AuthorizeCallback.java
	* javax/security/sasl/RealmCallback.java
	* javax/security/sasl/RealmChoiceCallback.java
	* javax/security/sasl/Sasl.java
	* javax/security/sasl/SaslClient.java
	* javax/security/sasl/SaslClientFactory.java
	* javax/security/sasl/SaslException.java
	* javax/security/sasl/SaslServer.java
	* javax/security/sasl/SaslServerFactory.java
	* org/ietf/jgss/ChannelBinding.java
	* org/ietf/jgss/GSSContext.java
	* org/ietf/jgss/GSSCredential.java
	* org/ietf/jgss/GSSException.java
	* org/ietf/jgss/GSSManager.java
	* org/ietf/jgss/GSSName.java
	* org/ietf/jgss/MessageProp.java
	* org/ietf/jgss/Oid.java
	* org/ietf/jgss/MessagesBundle.properties

	Files imported from Jessie <http://www.nongnu.org/jessie/>
	* javax/net/ServerSocketFactory.java
	* javax/net/SocketFactory.java
	* javax/net/VanillaServerSocketFactory.java
	* javax/net/VanillaSocketFactory.java
	* javax/net/ssl/HandshakeCompletedEvent.java
	* javax/net/ssl/HandshakeCompletedListener.java
	* javax/net/ssl/HostnameVerifier.java
	* javax/net/ssl/HttpsURLConnection.java
	* javax/net/ssl/KeyManager.java
	* javax/net/ssl/KeyManagerFactory.java
	* javax/net/ssl/KeyManagerFactorySpi.java
	* javax/net/ssl/ManagerFactoryParameters.java
	* javax/net/ssl/SSLContext.java
	* javax/net/ssl/SSLContextSpi.java
	* javax/net/ssl/SSLException.java
	* javax/net/ssl/SSLHandshakeException.java
	* javax/net/ssl/SSLKeyException.java
	* javax/net/ssl/SSLPeerUnverifiedException.java
	* javax/net/ssl/SSLPermission.java
	* javax/net/ssl/SSLProtocolException.java
	* javax/net/ssl/SSLServerSocket.java
	* javax/net/ssl/SSLServerSocketFactory.java
	* javax/net/ssl/SSLSession.java
	* javax/net/ssl/SSLSessionBindingEvent.java
	* javax/net/ssl/SSLSessionBindingListener.java
	* javax/net/ssl/SSLSessionContext.java
	* javax/net/ssl/SSLSocket.java
	* javax/net/ssl/SSLSocketFactory.java
	* javax/net/ssl/TrivialHostnameVerifier.java
	* javax/net/ssl/TrustManager.java
	* javax/net/ssl/TrustManagerFactory.java
	* javax/net/ssl/TrustManagerFactorySpi.java
	* javax/net/ssl/X509KeyManager.java
	* javax/net/ssl/X509TrustManager.java
	* javax/security/cert/Certificate.java
	* javax/security/cert/CertificateEncodingException.java
	* javax/security/cert/CertificateException.java
	* javax/security/cert/CertificateExpiredException.java
	* javax/security/cert/CertificateNotYetValidException.java
	* javax/security/cert/CertificateParsingException.java
	* javax/security/cert/X509CertBridge.java
	* javax/security/cert/X509Certificate.java

	2004-08-20  Casey Marshall  <csm@gnu.org>

	* java/security/cert/X509CRLSelector.java: New file.
	* java/security/cert/X509CertSelector.java: New file.

2004-09-15  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/protocol/file/Handler.java
	(openConnection): Don't throw exception if host part for file: URI is
	present. setURL() keeps file: protocol if ftp: protocol is not
	available.

2004-09-14  Richard Henderson  <rth@redhat.com>

	* java/lang/natPosixProcess.cc (waitForSignal): Ignore return
	value of sigsuspend.

2004-09-12  Tom Tromey  <tromey@redhat.com>

	* javax/naming/CompoundName.java (CompoundName): Don't check for
	separator in "flat" case.

2004-09-12  Michael Koch  <konqueror@gmx.de>

	* libltdl/configure.ac: Fixed AM_INIT_AUTOMAKE usage and replaces
	AM_CONFIG_HEADER by AC_CONFIG_FILES.
	* libltdl/Makefile.in, libltdl/aclocal.m4, libltdl/configure:
	Regenerate.

2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>

	PR libgcj/14751
	* win32-threads.cc (_Jv_ThreadInitData): Zero out thread
	handle in newly-allocated _Jv_Thread_t.
	(_Jv_ThreadDestroyData): Close thread handle.
	(_Jv_ThreadStart): Remove obsolete comment.
	Store handle of newly-created thread in _Jv_Thread_t.
	* include/win32-threads.h: #define WIN32_LEAN_AND_MEAN
	before including <windows.h>
	#define _Jv_HaveCondDestroy

2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>

	* java/lang/natThread.cc (finalize_native): Destroy
	join conditional variable and mutex if these destroy
	operations are supported.

2004-09-10  Dalibor Topic <robilad@kaffe.org>

	* gnu/java/net/protocol/file/Connection.java (permission): New field.
	(DEFAULT_PERMISSION): New constant.
	(Connection): Create a FilePermission with permission to read file.

2004-09-10  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/protocol/file/Connection.java
	(getLastModified): Moved around.
	(getPermission): Return stored permission.

2004-09-10  Michael Koch  <konqueror@gmx.de>

	* Makefile.in: Regenerate.

2004-09-10  Michael Koch  <konqueror@gmx.de>

	* Makefile.am: Reverted accidently commited stuff.
	* configure: Regenerated.

2004-09-10  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/protocol/file/Connection.java
	(lineSeparator): Made non-final.
	(static): Removed.
	(connect): Initialize lineSeparator lazily. Use ByteArrayInputStream
	instead of StringBufferInputStream.

2004-09-10  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/protocol/file/Connection.java
	(connect): Handle file is a directory case.

2004-09-10  Michael Koch  <konqueror@gmx.de>

	* Makefile.am
	(xlib_includes): Removed.
	(AM_CPPFLAGS): Renamed from INCLUDES.
	(lib_gnu_awt_xlib_la_CPPFLAGS): New automake variable.
	* Makefile.in: Regenerate.

2004-09-09  Michael Koch  <konqueror@gmx.de>

	* java/security/ProtectionDomain.java,
	* java/util/PropertyPermissionCollection.java:
	Fixed javadocs all over.

2004-09-09  Sven de Marothy  <sven@physto.se>

	Patch from David Gilbert <david.gilbert@object-refinery.com>
	* java/lang/Comparable.java: Fixed documentation errors.
	* java/util/Arrays.java: Likewise.

2004-09-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/net/Inet4Address.java
	(Inet4Address): Added comment to serialization UID.
	* java/text/Format.java
	(Format): Added comment to serialization UID.

2004-09-09  Michael Koch  <konqueror@gmx.de>

	* java/lang/System.java
	(err): Fixed javadoci to point to setErr() and not setOut().

2004-09-09  Jeroen Frijters  <jeroen@frijters.net>

	(normalizePath): Added special case for windows systems.

2004-09-09  Michael Koch  <konqueror@gmx.de>

	* java/io/File.java
	(dupSeparator): Made private.
	(File(URI)): New constructor.
	(getParentFile): Fixed javadoc.
	(createTempFile): Reformated.
	(setReadOnly): Added comment.
	(deleteOnExit): Merged javadoc with classpath version.

2004-09-09  Michael Koch  <konqueror@gmx.de>

	* Makefile.am: Don't try to include deps.mk.
	* Makefile.in: Regenerated.

2004-09-08  Bryce McKinlay  <mckinlay@redhat.com>

	* configure.ac (AC_CONFIG_COMMANDS): Don't create subdirectories and
	.d files.
	* configure: Rebuilt.

2004-09-04  Mohan Embar  <gnustuff@thisiscool.com>

	* java/net/natNetworkInterfaceWin32.cc (getRealNetworkInterfaces):
	Changed pfn from static local to local.

2004-09-03  Bryce McKinlay  <mckinlay@redhat.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR libgcj/17290
	* Makefile.am (GCJCOMPILE): Remove definition.
	(AM_CFLAGS): Add -fclasspath and -fbootclasspath flags.
	Use LTGCJCOMPILE, not GCJCOMPILE, to build .lo targets.
	* Makefile.in: Rebuilt.

2004-09-03  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.ac (enable-gc-debug): Update help for new syntax.
	* configure: Regenerate.

2004-09-03  David Daney  <ddaney@avtrex.com>

	* include/mips-signal.h: Update copyright.

2004-09-03  David Daney  <ddaney@avtrex.com>

	* configure.host: Use -fno-use-divide-subroutine for mips*-*-linux*.
	* include/mips-signal.h: Added HANDLE_FPE support.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicTextAreaUI.java
	(create): New method.
	* javax/swing/text/DefaultHighlighter.java
	(DefaultHighlightPainter.debugRect): Removed.
	* javax/swing/text/StyleContext.java
	(DEFAULT_STYLE): New field.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Add keybindings for selection.backward and
	selection-forward for text components.
	* javax/swing/plaf/basic/BasicTextUI.java
	(paintSafely): Paint highlight only when something is actually
	selected.
	* javax/swing/text/DefaultCaret.java
	(handleHighlight): New method.
	(setSelectionVisible): Don't do anything when nothing changes.
	Handle highlight.
	(moveDot): Reimplemented. Handle highlight.
	(setDot): Set mark too. Handle highlight.
	(getSelectionPainter): New method.
	* javax/swing/text/DefaultEditorKit.java
	(defaultActions): Added new actions for text selection.
	* javax/swing/text/DefaultHighlighter.java
	(DefaultHighlightPainter): New inner class.
	(DefaultPainter): New field.
	(paint): Implemented.
	* javax/swing/text/PlainView.java
	(paint): Don't draw background here again.
	* javax/swing/text/Utilities.java
	(getTabbedTextWidth): Use width of ' ' instead of 'm' for tabsize.
	(drawTabbedText): Likewise.

2004-08-31  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/JComponent.java
	(resetKeyboardActions): Add null checks.

2004-08-31  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/DefaultButtonModel.java:
	Skip group notification when no group is set.

2004-08-31  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/JColorChooser.java:
	Make a couple inner classes static, for jikes.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicTextUI.java
	(RottView.modelToView): New method.
	(UpdateHandler): Renamed from EventHandler.
	(updateHandler): Renamed from eventHandler.
	(modelToView): Implemented.
	* javax/swing/text/AbstractDocument.java
	(BranchElement.getElement): Return null for non-existing indeces.
	(BranchElement.getElementIndex): Return 0 in some corner cases.
	* javax/swing/text/FieldView.java
	(modelToView): New method.
	* javax/swing/text/PlainView.java
	(modelToView): Made public.

2004-08-31  Kim Ho  <kho@redhat.com>

	* Makefile.am: New files.
	* Makefile.in: Regenerate.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* java/awt/Color.java: Fix documentation.
	(RGBtoHSB): Use floats for conversions.
	* javax/swing/ButtonGroup.java: Run Jalopy.
	(setSelected): Reimplement.
	* javax/swing/DefaultButtonModel.java: Run Jalopy.
	(changeState): Let ButtonGroup know that the button
	is changing state.
	* javax/swing/JColorChooser.java: Implement.
	* javax/swing/JLabel.java: Run Jalopy.
	* javax/swing/JSpinner.java: Run Jalopy.
	(setValue): New method.
	* javax/swing/JTabbedPane.java: Run Jalopy.
	(removeTabAt): Call correct remove method.
	* javax/swing/SpinnerNumberModel.java: Run Jalopy.
	(getPreviousValue): Compare minimum value.
	* javax/swing/Timer.java: Run Jalopy.
	(run): Comment out println.
	* javax/swing/ToolTipManager.java:
	(mouseMoved): Get new tooltip text for location.
	* javax/swing/colorchooser/AbstractColorChooserPanel.java:
	Jalopy and Javadoc.
	* javax/swing/colorchooser/ColorChooserComponentFactory.java:
	Implement.
	* javax/swing/colorchooser/DefaultColorSelectionModel.java:
	Run Jalopy.
	(setSelectedColor): Fire ChangeEvent.
	* javax/swing/colorchooser/DefaultHSBChooserPanel.java:
	New file. Implement.
	* javax/swing/colorchooser/DefaultPreviewPanel.java:
	Ditto.
	* javax/swing/colorchooser/DefaultRGBChooserPanel.java:
	Ditto.
	* javax/swing/colorchooser/DefaultSwatchChooserPanel.java:
	Ditto.
	* javax/swing/plaf/basic/BasicArrowButton.java:
	(getArrow): Fix size of upward pointing button.
	* javax/swing/plaf/basic/BasicColorChooserUI.java:
	Implement.
	* javax/swing/plaf/basic/BasicSliderUI.java:
	(getWidthOfWidestLabel): Use preferred dimensions.
	(getHeightOfTallestLabel): Ditto.
	* javax/swing/plaf/basic/BasicSpinnerUI.java:
	Run Jalopy.
	(mousePressed): Disable changes to spinner if it is not enabled.
	* testsuite/Makefile.in: Regenerate.


2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicTableHeaderUI.java,
	javax/swing/plaf/basic/BasicTableUI.java:
	Added copyright notice.

2004-08-31  Olga Rodimina  <rodimina@redhat.com>

	* Makefile.am: Added new files.
	* Makefile.in: Regenerate.
	* javax/swing/ComboBoxEditor.java: Added javadocs.
	* javax/swing/ComboBoxModel.java: Likewise.
	* javax/swing/DefaultComboBoxModel.java: Implemented.
	* javax/swing/DefaultListCellRenderer.java: Added javadocs
	and ran through jalopy to fix formatting style.
	(getListCellRendererComponent): Use appropriate border
	if renderer has focus and use noFocusBorder when it doesn't.
	* javax/swing/JComboBox.java: Implemented.
	* javax/swing/JList.java:
	(locationToIndex): New Method. Implemented.
	(indexToLocation): New Method.
	* javax/swing/JPopupMenu.java:
	(visible): New field.
	(isVisible): Changed to use new field above.
	(setVisible): Likewise.
	* javax/swing/MutableComboBoxModel.java: Added javadocs.
	* javax/swing/plaf/basic/BasicArrowButton.java:
	(shadow): Changed default color to Color.gray.
	* javax/swing/plaf/basic/BasicComboBoxUI.java: New File.
	UI delegate for JComboBox.
	* javax/swing/plaf/basic/BasicComboPopup.java: New File.
	Popup menu containing list of JComboBox's items.
	* javax/swing/plaf/basic/BasicComboBoxEditor.java: New File.
	* javax/swing/plaf/basic/BasicComboBoxRenderer.java: New File.
	* javax/swing/plaf/basic/BasicComboBoxUI.java: New File.
	* javax/swing/plaf/basic/BasicComboPopup.java: New File.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java:
	(popupMenuWillBecomeVisible): Set selected path to the first
	element only if it is of type MenuElement. Also fix formatting
	style.
	* javax/swing/plaf/basic/ComboPopup.java: Added javadocs and missing
	methods signatures.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/AbstractDocument.java
	(createBranchElement): Use new constructor of BranchElement.
	(createLeafElement): Renamed arguments.
	(getRootElements): Implemented.
	(BranchElement.start): Removed.
	(BranchElement.end): Likewise.
	(BranchElement.BranchElement): Fixed arguments.
	(BranchElement.getEndOffset): Reimplemented.
	(BranchElement.getStartOffset): Likewis.
	* javax/swing/text/DefaultCaret.java
	(paint): Draw simple vertical line as caret instead of a rectangle.
	* javax/swing/text/JTextComponent.java
	(setText): Use doc directly.
	* javax/swing/text/PlainView.java
	(nextTabStop): Implemented.
	* javax/swing/text/Utilities.java
	(drawTabbedText): nextTabStop() returns an absolute x position.
	(getTabbedTextWidth): Likewise.

2004-08-31  Graydon Hoare  <graydon@redhat.com>

	* java/awt/Component.java
	(isFocusTraversable): Predicate on isLightweight()
	(setFocusable): Set isFocusTraversableOverridden.
	(requestFocus): Predicate peer dispatch on !isLightweight()
	(requestFocusInWindow): Likewise.
	(dispatchEventImpl): Coordinate with KeyboardFocusManager.
	* java/awt/Container.java
	(dispatchEventImpl): Predicate on event mask.
	(LightweightDispatcher): Remove focus machinery.
	* java/awt/DefaultFocusTraversalPolicy.java
	(accept): Expand predicate to include isFocusable().
	* java/awt/DefaultKeyboardFocusManager.java:
	Globally change c.dispatchEvent(e) to redispatchEvent(c,e)
	* java/awt/KeyboardFocusManager.java
	(redispatchEvent): Synchronize on event to prevent feedback.
	* javax/swing/AbstractButton.java
	(ButtonFocusListener): Remove class.
	(init): Set focusPainted, focusable.
	* javax/swing/ActionMap.java (get): Check parent for null.
	* javax/swing/InputMap.java (get): Likewise.
	* javax/swing/JComponent.java
	(inputMap_whenFocused): New InputMap.
	(inputMap_whenAncestorOfFocused): Likewise.
	(inputMap_whenInFocusedWindow): Likewise.
	(getActionForKeyStroke): Rewrite.
	(getConditionForKeystroke): Likewise.
	(ActionListenerProxy): New private class.
	(setInputMap): Implement.
	(getInputMap): Likewise.
	(setActionMap): Likewise.
	(getActionMap): Likewise.
	(processComponentKeyEvent): New empty method.
	(processKeyEvent): Implement.
	(processKeyBinding): Likewise.
	(resetKeyboardActions): Rewrite.
	* javax/swing/KeyStroke.java: Rewrite.
	* javax/swing/SwingUtilities.java
	(notifyAction): Implement.
	(replaceUIActionMap): Likewise.
	(replaceUIInputMap): Likewise.
	* javax/swing/plaf/basic/BasicButtonListener.java
	(focusGained): Implement.
	(focusLost): Repaint if focusPainted().
	(installKeyboardActions): Install pressed / released actions.
	(uninstallKeyboardActions): Implement.
	* javax/swing/plaf/basic/BasicButtonUI.java
	(focusColor): New field.
	(installDefaults): Load focus color, install input map.
	(installKeyboardActions): Implement.
	(uninstallKeyboardActions): Likewise.
	(paintFocus): Rewrite.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(Button.focus): New default, midPurple.
	* javax/swing/plaf/basic/BasicTextUI.java
	(kit): Make static.
	(installUI): Get doc from kit, load defaults.
	(getKeymapName): Implement.
	(createKeymap): Likewise.
	(installKeyboardActions): Likewise.
	(getInputMap): Likewise.
	(getActionMap): Likewise.
	(createActionMap): Likewise.
	* javax/swing/text/AbstractDocument.java
	(getStartPosition): Implement.
	(getEndPosition): Likewise.
	* javax/swing/text/DefaultEditorKit.java
	(CopyAction): New class.
	(CutAction): Likewise.
	(DefaultKeyTypedAction): Likewise.
	(InsertBreakAction): Likewise.
	(InsertContentAction): Likewise.
	(InsertTabAction): Likewise.
	(PasteAction): Likewise.
	(defaultActions): New static table.
	(createCaret): Implement.
	(getActions): Likewise.
	* javax/swing/text/JTextComponent.java
	(KeymapWrapper): New private class.
	(KeymapActionMap): Likewise.
	(DefaultKeymap): New class.
	(keymaps): New static table.
	(keymap): New field.
	(getKeymap): Implement.
	(removeKeymap): Likewise.
	(addKeymap): Likewise.
	(setKeymap): Likewise.
	(loadKeymap): Likewise.
	(getActions): Likewise.
	(margin): New field.
	(JTextComponent): Build and install default keymap.
	* javax/swing/text/TextAction.java
	(textAction): Call super properly.
	(getTextComponent): Implement.
	* javax/swing/text/Utilities.java
	(drawTabbedText): Adjust position by ascent.

2004-08-31  David Jee  <djee@redhat.com>

	PR AWT/17156

	* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
	(setEnabled): Make it a native method.
	* java/awt/DefaultKeyboardFocusManager.java
	(postProcessKeyEvent): Only post event if the menu item
	is active.
	* java/awt/MenuItem.java:
	Private field 'enabled' should be true by default.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
	(setEnabled): New function.

2004-08-31  David Jee  <djee@redhat.com>

	PR AWT/17059

	* gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
	(nativeSetHelpMenu): New native method declaration.
	(addHelpMenu): Call nativeSetHelpMenu().
	(addMenu): Remove.
	* java/awt/MenuBar.java
	(setHelpMenu): Call addNotify() on the new help menu.
	(add): Call addNotify() on the new menu.
	(addNotify): Set the help menu if one exists.
	* java/awt/peer/MenuBarPeer.java
	(addMenu): Remove.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c
	(nativeSetHelpMenu): New method.

2004-08-31  Graydon Hoare  <graydon@redhat.com>

	* Makefile.am: Add new files.
	* Makefile.in: Regenerate.
	* javax/swing/Box.java: Fix setting of layout in ctor.
	* javax/swing/JScrollPane.java: Scroll headers as well.
	* javax/swing/JTable.java: Reimplement.
	* javax/swing/JViewPort.java: Only add non-null children.
	* javax/swing/ScrollPaneLayout.java: Correct header calculations.
	* javax/swing/Timer.java: Fix stopping null waker.
	* javax/swing/plaf/basic/BasicTableHeaderUI.java: New file.
	* javax/swing/plaf/basic/BasicTableUI.java: New file.
	* javax/swing/table/DefaultTableCellRenderer.java: Configure.
	* javax/swing/table/DefaultTableColumnModel.java: Flesh out.
	* javax/swing/table/DefaultTableModel.java: Clean up.
	* javax/swing/table/JTableHeader.java: Implement.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JSpinner.java (getChangeListeners): Remove double
	semi-colon.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c:
	Declare variables at top of functions/block.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c: Likewise.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* java/lang/Rectangle.java (intersects): Check r.width and r.height
	first.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/PlainView.java
	(selectedColor): New field.
	(unselectedColor): Likewise.
	(font): Likewise.
	(updateMetrics): New method.
	(lineToRect): Likewise.
	(modelToView): Likewise.
	(drawSelectedText): Use color from JTextComponent ad draw with
	Utilities class.
	(drawUnselectedText): Likewise.
	(paint): Initialize helper fields.
	* javax/swing/text/View.java
	(getChildAllocation): New method.
	(getViewIndex): Likewise.
	(getToolTipText): Likewise.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/Utilities.java
	(drawTabbedText): Reimplemented.
	(getTabbedTextWidth): Likewise.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicTextUI.java
	(installDefaults): Install caret and highlighter.
	(modelToView): Use Bias.Forward when calling sibling.
	* javax/swing/text/AbstractDocument.java
	(ElementEdit): Implements DocumentEvent.ElementChange.
	(ElementEdit.ElementEdit): New method.
	(ElementEdit.getChildrenAdded): Likewise.
	(ElementEdit.getChildrenRemoved): Likewise.
	(ElementEdit.getElement): Likewise.
	(ElementEdit.getIndex): Likewise.
	* javax/swing/text/DefaultCaret.java
	(color): Removed.
	(textComponent): Renamed from parent, made private.
	(selectionVisible): Renamed from vis_sel, made private.
	(blinkRate): Renamed from blink, made private.
	(magicCaretPosition): Renamed from magic, made private.
	(visible): Renamed from vis, made private.
	(dot): Made private.
	(mark): Likewise.
	(deinstall): Remove as MouseMotionListener.
	(install): Initialize textComponent first. Add as MouseMotionListener.
	(paint): Reimplemented.
	* javax/swing/text/JTextComponent.java
	(setCaret): Deinstall old caret, install new one and fire property
	change after setting property.
	(setHighlighter): Deinstall old highlighter, install new one and fire
	property change after setting property.
	(setCaretColor): Fire property change after setting property.
	(setDisabledTextColor): Likewise.
	(setSelectedTextColor): Likewise.
	(setSelectionColor): Likewise.
	(modelToView): New method.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/AbstractDocument.java
	(getText): Simplified.
	* javax/swing/text/Segment.java
	(current): New field.
	(current): Reimplemented.
	(first): Likewise.
	(getIndex): Likewise.
	(last): Likewise.
	(next): Likewise.
	(previous): Likewise.
	(setIndex): Likewise.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(defaultTextIconGap): Made protected.
	(defaultTextShiftOffset): Likewise.
	(textShiftOffset): New field.
	(clearTextShiftOffset): New method.
	(getTextShiftOffset): Likewise.
	(setTextShiftOffset): Likewise.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicTextUI.java
	(installUI): Add eventHandler as property listener.
	(uninstallUI): remove eventHandler as propert listener.
	(installDefaults): Added comment.
	(installListeners): Likewise.
	(installKeyboardActions): Likewise.
	(uninstallDefaults): Likewise.
	(uninstallListeners): Likewise.
	(uninstallKeyboardActions): Likewise.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/AbstractDocument.java:
	Fixed some typos in comments.
	(insertString): Reimplemented.
	(remove): Likewise.
	(replace): New method.
	(children): Dont use fully qualified class name.
	(DefaultDocumentEvent.offset): Renamed from off.
	(DefaultDocumentEvent.length): Renamed from len.
	(DefaultDocumentEvent.type): New field.
	(DefaultDocumentEvent.DefaultDocumentEvent): New constructor.
	(DefaultDocumentEvent.getType): Implemented.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.textComponent): Removed.
	(RootView.RootView): Don't initialize textComponent.
	(RootView.getViewFactory): New method.
	(EventHandler): New inner class.
	(rootView): Initialize at instance creation.
	(eventHandler): New field.
	(installUI): Don't create view hierarchy directly,
	call modelChanged() instead.
	(modelChanged): New method.
	* javax/swing/text/JTextComponent.java
	(setDocument): Fire property change event.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.paint): Removed debug output.
	(paintSafely): Draw highlighter before text.
	(paintBackground): Use background color of text component.
	* javax/swing/plaf/basic/BasicToggleButtonUI.java:
	Reformatted.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicToolBarUI.java
	(BasicToolBarUI): Fixed arguments for constructor.
	(createUI): Fixed creation of object.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/DefaultListSelectionModel.java
	(fireValueChanged): Renamed from fireSelectionValueChanged,
	made protected.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/TabSet.java
	(TabSet): Implements java.io.Serializable.
	* javax/swing/text/TabStop.java
	(TabStop): Implements java.io.Serializable.
	(TabStop): Made public.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JComponent.java
	(setUI): Fire PropertyChange.
	* javax/swing/JLabel.java
	(text): Renamed from labelText.
	(horizontalAlignment): New default vlaue.
	(icon): Renamed from activeIcon.
	(displayedMnemonic): Renamed from mnemonicKey, added default value.
	(displayedMnemonicIndex): Renamed from underlineChar.
	(setDisplayedMnemonic): Reimplemented.
	* javax/swing/JRadioButton.java
	(JRadioButton): New constructors.
	* javax/swing/JTextField.java
	(JTextField): Throw exception if colums < 0, initialitialz
	this.columns directly and initialize document with text conditionally.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicFormattedTextFieldUI.java,
	javax/swing/plaf/basic/BasicPasswordFieldUI.java,
	javax/swing/plaf/basic/BasicTextAreaUI.java: New files.
	* javax/swing/text/FieldView.java
	(paint): Just call super method for now.
	* Makefile.am: Added new files.
	* Makefile.in: Regenerated.

2004-08-31  Ka-Hing Cheung  <kahing@javabsp.org>

	* javax/swing/AbstractSpinnerModel.java,
	javax/swing/JSpinner.java,
	javax/swing/SpinnerNumberModel.java,
	javax/swing/plaf/basic/BasicSpinnerUI.java:
	New files.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initClassDefaults): Added defaults for BasicSpinnerUI.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* Makefile.am: Added new files.
	* Makefile.in: Regenerated.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/TransferHandler.java,
	javax/swing/plaf/basic/ComboPopup.java: New files
	* Makefile.am: Added javax/swing/TransferHandler.java and
	javax/swing/plaf/basic/ComboPopup.java
	* Makefile.in: Regenerated.

2004-08-31  Roman Kennke  <roman@ontographics.com>

	* javax/swing/text/Utilities.java: New file.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* Makefile.am: Added javax/swing/text/Utilities.java.
	* Makefile.in: Regenerated.

2004-08-31  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/text/SimpleAttributeSet.java: New file.
	* javax/swing/text/StyleConstants.java: New file.
	* javax/swing/text/StyleContext.java: New file.
	* javax/swing/text/TabSet.java: New file.
	* javax/swing/text/TabStop.java: New file.
	* javax/swing/text/AbstactDocument.java:
	(AbstractElement): Implement attribute support.
	* javax/swing/text/AttributeSet.java
	(NameAttribute): New static field.
	(ResolveAttribute): New static field.
	* Makefile.am: Update for new files.
	* Makefile.in: Regenerate.

2004-08-31  Craig Black  <craig.black@aonix.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(drawImage): Add support for scaling pixmaps.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(copyAndScalePixmap): New native method.

2004-08-31  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR AWT/16121
	* jni/gtk-peer/gthread-jni.c: Include stdio.h.  Eliminate
	type-punning compiler warnings using unions.
	(throw): Replace bzero with memset.

2004-08-31  Andreas Tobler  <a.tobler@schweiz.ch>
	    Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c: Move
	NSA_PB macros to gtkpeer.h.  Include gtkpeer.h.
	* jni/gtk-peer/gtkpeer.h: Move NSA_PB macros here.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(nativeSetIconImageFromDecoder): Use NSA_GET_PB_PTR macro.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c:
	#include gdk.h, not gtk.h. #include jni.h, native_state.h, string.h
	and stdlib.h, not gtkpeer.h.
	(*vm): New static variable.
	(areaPreparedID): Make static.
	(areaUpdatedID): Likewise.
	(area_prepared): Get and use JNIEnv through stored JavaVM *vm.
	(area_prepared): Likewise.
	(area_updated): Likewise.
	(closed): Likewise.
	(initStaticState): Initialize *vm javaVM.
	(pumpBytes): Use given env, not global gdk_env.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* java/awt/geom/CubicCurve2D.java (solveCubic): Removed duplicate
	comments.

2004-08-31  Sven de Marothy  <sven@physto.se>

	* java/awt/geom/CubicCurve2D.java: Reindent.
	(contains): Implemented.
	(intersects): Implemented.
	* java/awt/geom/QuadCurve2D.java: Likewise.
	* java/awt/geom/GeneralPath.java: Reindent and document.
	Fully (re)implemented using separate xpoints and ypoints
	float[] coords.
	* java/awt/geom/RoundRectangle2D.java: Several bugfixes (Bug #6007).

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JMenuItem.java
	(getMenuDragMouseListeners): New method.
	(getMenuKeyListeners): Likewise.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractButton.java
	(model): Made protected.
	(actionListener): Likewise.
	(changeListener): Likewise.
	(itemListener): Likewise.
	(multiClickThreshhold): New field.
	(getActionListeners): New method.
	(getChangeListeners): Likewise.
	(getItemListeners): Likewise.
	(fireItemStateChanged): Simplified implementation.
	(fireActionPerformed): Likewise.
	(fireStateChanged): Likewise.
	(getMultiClickThreshhold): New method.
	(setMultiClickThreshhold): Likewise.

2004-08-31  Tom Tromey  <tromey@redhat.com>

	* java/awt/image/Kernel.java (clone): Use super.clone().

2004-08-31  David Jee  <djee@redhat.com>

	PR AWT/16682
	* gnu/java/awt/peer/gtk/GtkFramePeer.java
	(nativeSetIconImage): Rename to nativeSetIconImageFromDecoder.
	(nativeSetIconImageFromData): New native method declaration.
	(setIconImage): Handle images not produced from GdkPixbufDecoder.
	* gnu/java/awt/peer/gtk/GtkImage.java
	(getPixelCache): New method.
	(getColorModel): New method.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(nativeSetIconImage): Rename to nativeSetIconImageFromDecoder.
	(free_pixbuf_data): New helper function.
	(nativeSetIconImageFromData): New function.

2004-08-31  Graydon Hoare  <graydon@redhat.com>

	PR SWING/16576
	* javax/swing/JLayeredPane.java
	(setLayer): Permit changing layer after addition.
	(setPosition): Permit over-length positions.
	(layerToRange): Compare intValue()s.
	* javax/swing/Box.java (createHorizontalBox): Implement.
	(createRigidArea): Likewise.
	(createVerticalBox): Likewise.

2004-08-31  Kim Ho  <kho@redhat.com>

	* java/awt/Component.java:
	(processMouseEvent): Consume event after
	listeners process it.
	(processMouseMotionEvent): ditto.
	(processMouseWheelEvent): ditto.
	* java/awt/Container.java:
	(acquireComponentForMouseEvent):
	Do not dispatch to events that have been
	removed from the Container.
	(handleEvent): Consume the MouseEvents.
	* javax/swing/RepaintManager.java:
	(paintDirtyRegions): Do not add to list of
	damaged areas if the component has no root.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicMenuItemUI.java: Clean ip imports.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkToolkit.java (getFontPeer): Don't return
	null when a MissingResourceException is thrown. Should never happen.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* java/awt/EventQueue.java (postEvent): Throw NullPointerException
	when argument is null.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_addExposeFilter):
	Define hid at start of function.
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_removeExposeFilter):
	Likewise.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/EmbeddedWindow.java: Reindent.
	* javax/swing/JButton.java: Reindent.
	* javax/swing/JCheckBox.java: Reindent.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (gtk_c_source_files): Added
	jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c.
	(gtk_awt_peer_sources): Added
	gnu/java/awt/peer/gtk/GThreadMutex.java and
	gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java.
	* Makefile.in: Regenerated.

2004-08-31  Archie Cobbs  <archie@dellroad.org>

	* jni/gtk-peer/gthread-jni.c: don't #include nonexistent files

2004-08-31  Steven Augart  <augart@watson.ibm.com>

	* jni/gtk-peer/gthread-jni.c (c-font-lock-extra-types):
	Added jfieldID, jmethodID.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
	(Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkInit): Initialize
	gdk_env before calling any gdk or gtk function.

	* gnu/java/awt/peer/gtk/GtkMainThread.java (gtkInitCalled): New field.
	(GtkMainThread): Call wait() in while loop waiting for gtkInitCalled.
	(run): Set gtkInitCalled.

2004-08-31  Steven Augart  <augart@watson.ibm.com>

	* gnu/java/awt/peer/gtk/GtkMainThread.java (run): Pass the value of
	the gnu.classpath.awt.gtk.portable.native.sync system property to C.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
	(Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkInit): New argument,
	portableNativeSync.  Delegate PORTABLE_NATIVE_SYNC work to
	init_glib_threads.
	(init_glib_threads): New function.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* jni/gtk-peer/gthread-jni.c: Define MIN_, MAX_ and NORM_
	PRIORITY when not already defined in header file.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* jni/gtk-peer/gthread-jni.c (setup_cache): Call
	ExceptionOccurred, not ExceptionCheck, when we don't have JNI 1.2.

2004-08-31  Steven Augart  <augart@watson.ibm.com>

	* gnu/native/jni/gtk-peer/gthread-jni.c: Indentation fixes.
	Implemented missing functions for GTK2.
	Added error handling.
	Renamed static functions out of the g_ namespace.
	Added TRACE_API_CALLS, EXPLAIN_TROUBLE, EXPLAIN_BROKEN,
	EXPLAIN_BADLY_BROKEN, and DELETE_LOCAL_REFS options.
	Rewrote global-reference code.
	Eliminated cascading errors.
	(mutex_trylock_jni_impl) Fully implemented.
	(cond_timed_wait_jni_impl) Went from millisecond to microsecond
	resolution.
	(setup_cache) New function.
	(mutex_cond_wait_jni_impl, mutex_cond_timed_wait_jni_impl) Fixed
	bug where they were not unlocking the GMutex associated with the
	condition variable during the wait on that condition variable.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c,
	native/jni/gtk-peer/gthread-jni.c,
	native/jni/gtk-peer/gthread-jni.h
	(g_thread_jni_functions): Renamed to ...
	(portable_native_sync_jni_functions): this name.
	(gdk_vm): Renamed to...
	(the_vm): this name.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
	(gdk_vm): Removed duplicate definition.
	(gtkInit): Removed stray message to stdout.
	(gtkInit): Use g_malloc and g_free instead of malloc and free.
	(gtkInit): Fix a const assignment bug.
	(gtkInit): Simplified code.

	* gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.h,
	gnu/java/awt/peer/gtk/GThreadMutex.java:
	New files.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* javax/swing/Box.java: Put FIXME comment above class declaration.
	* javax/swing/JButton.java: Remove illegal L&F HTML from comments.
	* javax/swing/JCheckBox.java: Likewise.
	* javax/swing/JDialog.java: Likewise.
	* javax/swing/JRadioButton.java: Likewise.
	* javax/swing/JToggleButton.java: Likewise.
	* javax/swing/UIManager.java: Likewise.
	* javax/swing/border/TitledBorder.java: Likewise.
	* javax/swing/plaf/basic/BasicLabelUI.java: Likewise.
	* javax/swing/plaf/basic/BasicLookAndFeel.java: Likewise.
	* javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java: Likewise.
	* javax/swing/plaf/basic/BasicProgressBarUI.java: Likewise.
	* javax/swing/plaf/basic/BasicScrollBarUI.java: Likewise.
	* javax/swing/plaf/basic/BasicSeparatorUI.java: Likewise.
	* javax/swing/text/JTextComponent.java: Likewise.

2004-08-31  David Jee  <djee@redhat.com>

	PR AWT/16682
	* gnu/java/awt/peer/gtk/GtkFramePeer.java
	(setIconImage): Add a FIXME for unhandled cases.

2004-08-31  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR AWT/16040
	* gnu/awt/LightweightRedirector.java: Call getModifiersEx, not
	getModifiers.  Replace old button masks with new ones.
	* gnu/awt/xlib/XEventLoop.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkButtonPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c: Likewise.
	* gnu/java/awt/peer/gtk/GtkListPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java: Likewise.
	* java/awt/AWTKeyStroke.java: Remove old modifier masks.
	* java/awt/Component.java: Replace old modifier	masks with new
	ones.
	* java/awt/Container.java: Call getModifiersEx, not
	getModifiers.
	* java/awt/DefaultKeyboardFocusManager.java: Likewise.  Remove
	old modifier masks.
	* javax/swing/JMenuItem.java: Replace old button masks with new
	ones.
	* javax/swing/KeyStroke.java: Call getModifiersEx, not
	getModifiers.
	* javax/swing/SwingUtilities.java: Likewise.
	* javax/swing/plaf/basic/BasicButtonListener.java: Likewise.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c: Replace old
	mask macros with new ones.
	* jni/gtk-peer/gtkpeer.h: Replace old button and modifier mask
	macros with new ones representing new masks.

2004-08-31  Craig Black  <craig.black@aonix.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(drawRoundRect): Implemented.
	(fillRoundRect): Implemented.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(drawRoundRect): Reimplemented to match GdkGraphics.
	(fillRoundRect): Reimplemented to match GdkGraphics.

2004-08-31  Mark Wielaard  <mark@klomp.org>

	* Makefile.in: Regenerated.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/EmbeddedWindow.java
	(addNotify): Use AccessController to allow execution of privileged
	code.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/EmbeddedWindow.java
	(static): Removed.
	(addNotify): Set peer via reflection.
	(setWindowPeer): Removed.
	* gnu/java/awt/natEmbeddedWindow.cc: Removed.
	* Makefile.am (nat_source_files):
	Removed gnu/java/awt/natEmbeddedWindow.cc.

2004-08-31  Bryce McKinlay  <mckinlay@redhat.com>

	* Makefile.am: Add  gnu/java/security/action/GetPropertyAction.java
	and gnu/java/security/action/SetAccessibleAction.java.

2004-08-31  Bryce McKinlay  <mckinlay@redhat.com>

	* gnu/java/security/action/GetPropertyAction.java (setParameters):
	Renamed from 'setName'. New 2-argument form with default value.
	(run): Pass default 'value' parameter to System.getProperty().
	* gnu/java/security/action/SetAccessibleAction.java: Fix javadoc
	typos.

2004-08-31  Bryce McKinlay  <mckinlay@redhat.com>

	* gnu/java/security/action/GetPropertyAction.java: New class.
	* gnu/java/security/action/SetAccessibleAction.java: New class.

2004-08-31  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java
	(setIconImage): Check if image is null.

2004-08-31  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java
	(create): Set the icon image.
	(nativeSetIconImage): New native method declaration.
	(setIconImage): Implement.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(nativeSetIconImage): New function.

2004-08-31  Dalibor Topic <robilad@kaffe.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(filenameFilterCallback): Declare local variable accepted before use.

2004-08-31  Dalibor Topic <robilad@kaffe.org>

	* gnu/java/awt/ComponentDataBlitOp.java:
	Cleaned up imports.

2004-08-31  Tom Tromey  <tromey@redhat.com>

	* gnu/java/awt/peer/GLightweightPeer.java,
	gnu/java/awt/peer/gtk/GdkGraphics2D.java,
	gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	javax/swing/JScrollPane.java: Removed
	redundant imports.

2004-08-31  David Jee  <djee@redhat.com>

	* java/awt/DefaultKeyboardFocusManager.java
	(postProcessKeyEvent): Only activate MenuShortcuts on KEY_PRESSED
	event.  Fix shift modifier checking.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
	(accel_attach): Remove.
	(setupAccelGroup): Remove calls to accel_attach.

2004-08-31  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkArg.java: Remove file.
	* gnu/java/awt/peer/gtk/GtkArgList.java: Remove file.

	* Makefile.am (gtk_awt_peer_sources): Remove GtkArg.java and
	GtkArgList.java.
	(gtk_c_files): Use CAIRO_CFLAGS and PANGOFT2_CFLAGS, not _LIBS.
	* Makefile.in: Regenerate.
	* gnu/java/awt/peer/gtk/GtkButtonPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(create(String)): New method.
	(create): Call new create method.
	(getArgs): Remove method.
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(nativeCreate): Rename to create.
	(gtkSetLabel): Rename to gtkButtonSetLabel.
	(gtkToggleButtonSetActive): New method.
	(create): Call gtkToggleButtonSetActive and gtkButtonSetLabel.
	(setState): Replace set call with gtkToggleButtonSetActive.
	(setLabel): Replace gtkSetLabel call with gtkButtonSetLabel.
	(getArgs): Remove method.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(gtkWidgetSetSensitive): New method.
	(gtkWidgetSetParent): Likewise.
	(GtkComponentPeer): Call setParent, setComponentBounds and
	setVisibleAndEnabled.
	(setParent): New method.
	(setComponentBounds): New method.
	(setVisibleAndEnabled): New method.
	(setEnabled): Call gtkWidgetSetSensitive.
	(getArgs): Remove method.
	Remove all set methods.
	* gnu/java/awt/peer/gtk/GtkDialogPeer.java (create): Call
	gtkWindowSetModal, setTitle and setResizable.
	(getArgs): Remove method.
	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
	(setComponentBounds): New method.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java (setResizable):
	Replace set call with gtkWindowSetResizable.
	(getArgs): Remove method.
	(create): Call setTitle and setResizable.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(gtkWindowSetTitle): New method.
	(gtkWindowSetResizable): New method.
	(gtkWindowSetModal): New method.
	(setParent): New method.
	(setVisibleAndEnabled): New method.
	(getArgs): Remove method.
	(setTitle): Call gtkWindowSetTitle.
	(setResizable): Call gtkWindowSetResizable.
	* jni/gtk-peer/gtkpeer.h [DEBUG_LOCKING]: New define to turn on
	and off locking instrumentation.

2004-08-31  Kim Ho  <kho@redhat.com>

	* Makefile.am: Add new file.
	* Makefile.in: Regenerate.
	* gcj/Makefile.in: Regenerate
	* include/Makefile.in:
	* java/awt/Container.java:
	(acquireComponentForMouseEvent): Respect
	the event mask when looking for candidate.
	* javax/swing/JComponent.java:
	Remove toolTip field.
	(createToolTip): Create a tooltip on demand.
	(setToolTipText): Register with the ToolTipManager.
	(getToolTipText(MouseEvent)): Return getToolTipText().
	* javax/swing/JToolTip.java: Implement.
	* javax/swing/Timer.java: Jalopy.
	(restart): Call stop, then start.
	(stop): Interrupt the timer rather than wait for
	the timer to come to a stop naturally.
	* javax/swing/ToolTipManager.java: Implement.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Change ToolTip.background color.
	* javax/swing/plaf/basic/BasicToolTipUI.java:
	Implement.
	* testsuite/Makefile.in: Regenerate

2004-08-31  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/DirectColorModel.java (DirectColorModel): Fix
	constructor param comments.

2004-08-31  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Component.java: Document AWT 1.0 event handler
	methods.

2004-08-31  Roman Kennke  <roman@ontographics.com>

	* javax/swing/Box.java:
	(createGlue): Implemented
	(createHorizontalGlue): Implemented
	(createHorizontalStrut): Implemented
	(createVerticalGlue): Implemented
	(createVerticalStrut): Implemented

2004-08-31  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkChoicePeer.java
	(GtkChoicePeer): Do not automatically select first item.
	(getHistory): Remove.
	(nativeGetSelected): New method.
	(nativeRemoveAll): New method.
	(add): Use nativeGetSelected() instead of getHistory().
	(remove): Likewise.
	(removeAll): Call nativeRemoveAll().
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
	(create): Migrate to GtkComboBox.
	(append): Likewise.
	(nativeAdd): Likewise.
	(nativeRemove): Likewise.
	(select): Likewise.
	(nativeRemoveAll): New method.
	(nativeGetSelected): New method.
	(selection_changed): New method.
	(getHistory): Remove.
	(item_activate): Remove.
	(item_removed): Remove.
	(connect_choice_item_selectable_hook): Remove.

2004-08-31  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java (create): Use tf
	variable in setEditable call.

	* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
	(gtkWidgetSetBackground): New method.
	(gtkWidgetSetForeground): Likewise.
	(create): Set peer's editable state based on awtComponent's.

	* java/awt/Button.java (Button()): Use empty string rather than
	null in no-label constructor.

2004-08-31  Roman Kennke  <roman@ontographics.com>

	* javax/swing/BoxLayout.java: Reimplement.

2004-08-31  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java,
	gnu_java_awt_peer_gtk_GdkGraphics.c
	(initState(GtkComponentPeer)): Don't return array of colour
	values.
	(GdkGraphics(int,int)): Set default font to size 12.
	(GdkGraphics(GtkComponentPeer)): Set graphics colour to
	component's foreground colour.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java,
	gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(initState(GtkComponentPeer)): Don't return array of colour
	values.
	(GdkGraphics2D(GtkComponentPeer)): Set foreground and background
	colours to component's colours.
	(current_colors_of_widget): Remove function.
	* gnu/java/awt/peer/gtk/GtkOffScreenImage.java (getGraphics):
	Return a new graphics object.
	* java/awt/Font.java (toString): Fix format.
	* java/awt/Graphics.java (toString): Likewise.

2004-08-31  Craig Black  <craig.black@aonix.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
	(addTearOff): New function.
	* gnu/java/awt/peer/gtk/GtkMenuPeer.java (addTearOff):
	New native method.
	(init): Call addTearOff() when menu.isTearOff().

2004-08-31  Bryce McKinlay  <mckinlay@redhat.com>

	* gnu/java/awt/ClasspathToolkit.java (createImageProducer): New.
	Default implementation.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (createImageProducer): New.
	Implement using GdkPixbufDecoder.

2004-08-31  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(GtkComponentPeer): Use gtkWidgetGetPreferredDimensions() for
	setting the size of GtkFileDialogPeers.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(gtkWidgetGetPreferredDimensions): For widgets extending GtkWindow,
	use their default sizes rather than their natural requisitions.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JFormattedTextField.java
	(JFormattedTextField): Implemented.
	* javax/swing/text/DefaultEditorKit.java
	(BeepAction): New inner class.
	* javax/swing/text/Segment.java
	(partialReturn): New field.
	(setPartialReturn): New method.
	(isPartialReturn): Likewise.
	* javax/swing/text/View.java
	(createFragment): Fixed typo.
	(getStartOffset): New method.
	(getEndOffset): Likewise.

2004-08-31  Michael Koch  <konqueror@gmx.de>

	* javax/swing/table/DefaultTableColumnModel.java
	(serialVersionUID): Made private.
	(listenerList): Initialize.
	(changeEvent): Initialize.
	* javax/swing/table/JTableHeader.java
	(JTableHeader): New constructors.
	(createDefaultColumnModel): New method.
	* javax/swing/table/TableColumn.java
	(setHeaderRenderer): Simplified code.
	(setCellRenderer): Likewise.
	(setWidth): Likewise.

2004-08-31  Tom Tromey  <tromey@redhat.com>

	* java/text/AttributedString.java (AttributedString): Use
	ArrayList to build array of attribute ranges.  Don't use
	`attribs' before it is set.

2004-08-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* HACKING: Remove reference to special automake. No longer needed.

2004-08-30  Tom Tromey  <tromey@redhat.com>

	* gnu/java/security/util/Prime.java (generateRandomPrime): Use
	return result from `add'.

2004-08-30  Tom Tromey  <tromey@redhat.com>

	* java/rmi/server/UID.java (UID): Read `nextCount', not count.

2004-08-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* gnu/java/security/der/DEREncodingException.java: Remove whitespaces.

2004-08-30  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/File.java File(String,String): Fixed handling of empty
	path.

2004-08-30  Casey Marshall  <csm@gnu.org>

	Author e-mail updated for all files.
	* gnu/java/security/OID.java (equals): Test if the aurgment is an
	instance of OID.
	(compareTo): Use `equals'.
	* gnu/java/security/der/BitString.java (equals): Test if the
	argument is an instance of BitString.
	* gnu/java/security/der/DERReader.java: Removed NIO imports.  Made
	class final. Made fields private.
	(<init>): New constructor.
	(skip): New method.
	(makeString): Made static; don't use NIO.
	(fromIso88591, fromUtf16Be, fromUtf8): New methods.
	* gnu/java/security/der/DERWriter.java: Fixed imports.
	(writeString): Don't use NIO.
	(toIso88591, toUtf16Be, toUtf8): New methods.
	* gnu/java/security/der/DERValue.java: Formatting changes only.
	* gnu/java/security/der/DER.java: Likewise.

2004-08-30  Tom Tromey  <tromey@redhat.com>

	* java/nio/CharBuffer.java (put): Fix typo.
	* java/nio/DoubleBuffer.java (put): Fix typo.
	* java/nio/FloatBuffer.java (put): Fix typo.
	* java/nio/IntBuffer.java (put): Fix typo.
	* java/nio/LongBuffer.java (put): Fix typo.
	* java/nio/ShortBuffer.java (put): Fix typo.

2004-08-30  Florian Weimer  <fw@deneb.enyo.de>

	* java/nio/ByteBuffer.java (put): Fix typo.

2004-08-30  Casey Marshall  <csm@gnu.org>

	* java/security/DummyKeyPairGenerator.java (clone): Removed
	useless instanceof check.
	* java/security/DummyMessageDigest.java (clone): Likewise.
	* java/security/DummySignature.java (clone): Likewise.
	* java/security/MessageDigest.java (clone): Remove useless
	instanceof check.
	* java/security/MessageDigestSpi.java (clone): Likewise.
	* java/security/Signature.java (clone): Provide meaningful
	implementation.
	* java/security/SignatureSpi.java (clone): Likewise.

2004-08-29  Mark Wielaard  <mark@klomp.org>

	* java/util/Arrays.java
	(sort(byte[], int, int)): Check fromIndex < 0.
	(sort(char[], int, int)): Likewise.
	(sort(short[], int, int)): Likewise.
	(sort(int[], int, int)): Likewise.
	(sort(long[], int, int)): Likewise.
	(sort(float[], int, int)): Likewise.
	(sort(double[], int, int)): Likewise.
	(sort(Object[], int, int, Comparator)): Likewise.
	(qsort(byte[], int, int)): Honor lower bound from in insertion sort.
	(qsort(char[], int, int)): Likewise.
	(qsort(short[], int, int)): Likewise.
	(qsort(int[], int, int)): Likewise.
	(qsort(long[], int, int)): Likewise.
	(qsort(float[], int, int)): Likewise.
	(qsort(double[], int, int)): Likewise.

2004-08-29  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/AbstractCollection.java, java/util/AbstractList.java,
	java/util/AbstractMap.java, java/util/AbstractSequentialList.java,
	java/util/ArrayList.java, java/util/Arrays.java,
	java/util/BitSet.java, java/util/Calendar.java,
	java/util/Collection.java, java/util/ListIterator.java,
	java/util/Map.java, java/util/SortedSet.java:
	Added additional exceptions to documentation, along
	with some additions and corrections.

2004-08-27  Hans Boehm  <Hans.Boehm@hp.com>

	* configure.ac: Handle --enable-gc-debug.
	* configure: Regenerate.
	* include/config.h.in (LIBGCJ_GC_DEBUG): Add.
	* boehm.cc: Include gc_mark.h, javaxfc.h, but no GC private files.
	Rearrange include file order.
	(GC_DEBUG): Set if LIBGCJ_GC_DEBUG is set.
	(GC_finalize_all, GC_debug_generic_malloc): Don't declare.
	(disable_gc_mutex): Delete along with all references.
	(_Jv_MarkObj, _Jv_MarkArray): Use public types,
	adjust for debug header size.
	(_Jv_AllocObj, _Jv_allocPtrFreeObj): Define out of line for
	debug case.
	(_Jv_AllocArray): Declare min_heap_addr only if needed.
	(gcj_describe_type_fn): New.
	(_Jv_InitGC): Use GC_new_free_list, GC_new_proc, and GC_new_kind.
	Register gcj_describe_type_fn.
	* include/boehm-gc.h:
	(_Jv_AllocObj, _Jv_allocPtrFreeObj):
	Don't define, but declare, for debug case.
	* java/lang/natObject.cc:
	(GC_DEBUG): Define if LIBGCJ_GC_DEBUG is set.

2004-08-26  Mark Wielaard  <mark@klomp.org>

	Fixes PR libgcj/17002:
	* java/util/TimeZone.java (defaultZone): Try a couple of ways to get
	a TimeZoneId string and then try to convert that to a TimeZone with
	getDefaultSystemTimeZone(String).
	(timezones0): Changed type from Hashtable to HashMap.
	(timezones): Create HashMap, not Hashtable.
	(getDefaultTimeZone): New method, rewritten from CNI version.
	(readTimeZoneFile): New method.
	(readtzFile): Likewise.
	(skipFully): Likewise.
	* java/util/natTimeZone.cc (getSystemTimeZone): Renamed to
	getDefaultTimeZoneId and rewritten.
	(getDefaultTimeZoneId): Rewritten in java.

2004-08-25  David Daney  <daney@avtrex.com>

	* Makefile.am (AM_GCJFLAGS):  Add LIBGCJ_JAVAFLAGS.
	* Makefile.in: Regenerated.

2004-08-23  Bryce McKinlay  <mckinlay@redhat.com>

	* prims.cc (JVMPI_NOTIFY_ALLOC): New macro. Call jvmpi_notify_alloc
	only if jvmpi is enabled.
	(jvmpi_notify_alloc): Don't check if jvmpi is enabled here.
	(_Jv_AllocObjectNoFinalizer): Use JVMPI_NOTIFY_ALLOC.
	(_Jv_AllocString): Likewise.
	(_Jv_AllocPtrFreeObject): Likewise.

2004-08-23  Hans Boehm  <Hans.Boehm@hp.com>

	* defineclass.cc: Include <stdio.h>.
	* java/lang/natClassLoader.cc: Include <stdio.h>.

2004-08-21  Andreas Tobler  <a.tobler@schweiz.ch>
	    Michael Koch  <konqueror@gmx.de>

	* Makefile.am (lib_gnu_java_awt_peer_gtk_la_LINK): Added.
	* Makefile.in: Regenerated.

2004-08-20  Michael Koch  <konqueror@gmx.de>

	* configure.ac: Replaced all AC_TRY_COMPILE macros with
	AC_COMPILE_IFELSE macros.

2004-08-20  Michael Koch  <konqueror@gmx.de>

	* configure.in: Renamed to configure.ac.
	* configure.ac: New file.
	* configure, Makefile.in, gcj/Makefile.in, include/Makefile.in
	include/config.h.in, testsuite/Makefile.in: Regenerated.

2004-08-20  Michael Koch  <konqueror@gmx.de>

	* configure.in: Rewrote some obsolete stuff for autoconf 2.59.
	* aclocal.m4, configure: Regenerated.

2004-08-19  Thomas Fitzsimmons  <fitzsim@redhat.com>
	    Michael Koch  <konqueror@gmx.de>

	* configure.in,	Makefile.am: Ported to automake 1.9.
	* Makefile.in, aclocal.m4, configure, gcj/Makefile.in,
	include/Makefile.in, testsuite/Makefile.in, include/config.h.in:
	Regenerated.

2004-08-19  Tom Tromey  <tromey@redhat.com>

	* java/net/DatagramSocket.java: Fixed typo.

2004-08-18  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/17081
	* java/net/URI.java (string): New field. Make all other fields
	transient.
	(readObject): Implemented.
	(writeObject): Implemented.
	(URI): Set 'string'.

2004-08-18  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/17079
	* java/util/logging/Handler.java (isLoggable): Accept record if its
	log level equals the threshold level. From Robin Green.

2004-08-18  David Daney  <ddaney@avtrex.com>

	* java/lang/natPosixProcess.cc (waitForSignal): Use sigsuspend
	instead of sigwait.

2004-08-17  Michael Koch  <konqueror@gmx.de>

	* Makefile.am (AM_CXXFLAGS): Reformatted to make it more ease to read.
	* Makefile.in: Regenerated.

2004-08-16  Tom Tromey  <tromey@redhat.com>

	PR java/8473:
	* testsuite/libjava.jacks/jacks.xfail: Removed passing test.

2004-08-16  Michael Koch  <konqueror@gmx.de>

	* Makefile.am
	(math_c_files): Renamed from c_files.
	(math_c_source_files): Renamed from c_source_files.
	* Makefile.in,
	gcj/Makefile.in,
	include/Makefile.in,
	testsuite/Makefile.in: Regenerated.

2004-08-16  Bryce McKinlay  <mckinlay@redhat.com>

	* configure.in (AC_CONF_SUBDIRS): Use literal for ltdl directory
	to avoid autoconf warning.
	* configure: Rebuilt.

2004-08-14  Andreas Tobler  <a.tobler@schweiz.ch>

	* java/net/natInetAddressPosix.cc (lookup): Reflect rename of
	localhostAddress to loopbackAddress.
	* java/net/natInetAddressWin32.cc (lookup): Likewise.

2004-08-13  Bryce McKinlay  <mckinlay@redhat.com>

	* configure.in (GCINCS): Don't use "boehm-cflags". Instead, -I
	boehm-gc's include dirs.
	* configure: Rebuilt.
	* include/boehm-gc.h: Include gc_config.h.

2004-08-13  Bryce McKinlay  <mckinlay@redhat.com>

	* java/net/InetAddress.java (loopbackAddress): Renamed from
	localhostAddress.
	(getByName): Return loopback address for null hostname, without
	security check. Use lookup(), not getAllByName.
	(getAllByName): Return loopback address for null hostname, without
	security check.
	* java/net/natInetAddressPosix.cc (lookup): Don't perform security
	check here.

2004-08-13  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/17020
	Reported by Robin Green.
	* defineclass.cc (handleField): Don't throw exception on unrecognised
	modifier. Add FIXME comments for spec compliance.
	(handleMethod): Likewise.

2004-08-10  Hans Boehm <Hans.Boehm@hp.com>

	PR libgcj/16662
	* java/lang/natObject.cc (LOCK_LOG, LOG): Add debug tracing.
	(Almost everywhere): add LOG calls, fix, add comments.
	(_Jv_MonitorEnter): Replace masking of LOCKED bit with assertion.
	Add explicit check for LOCKED bit in slow case (PR 16662).
	(_Jv_MonitorExit): Add casts in debug-only code.
	Always release LOCKED bit before throwing exception.
	(_Jv_ObjectCheckMonitor): Lock may be held if lightweight lock
	isn't.  Handle easy cases without lock acquisition.
	(Object::wait): Use NotifyAll for lock inflation.

2004-08-12  David Daney  <ddaney@avtrex.com>

	* testsuite/libjava.lang/Process_1.java: New test.
	* testsuite/libjava.lang/Process_2.java: New test.
	* testsuite/libjava.lang/Process_3.java: New test.
	* testsuite/libjava.lang/Process_4.java: New test.
	* testsuite/libjava.lang/Process_5.java: New test.
	* testsuite/libjava.lang/Process_6.java: New test.
	* testsuite/libjava.lang/Process_1.out: Expected result.
	* testsuite/libjava.lang/Process_2.out: Expected result.
	* testsuite/libjava.lang/Process_3.out: Expected result.
	* testsuite/libjava.lang/Process_4.out: Expected result.
	* testsuite/libjava.lang/Process_5.out: Expected result.
	* testsuite/libjava.lang/Process_6.out: Expected result.

2004-08-12  David Daney  <ddaney@avtrex.com>

	PR libgcj/11801
	* java/lang/PosixProcess.java: Rewrote.
	* java/lang/natPosixProcess.cc: Rewrote.
	* java/lang/Runtime.java (execInternal): Declare throws IOException.
	* gcj/javaprims.h (ConcreteProcess$ProcessManager): Declare.
	* posix-threads.cc (block_sigchld) New function.
	(_Jv_ThreadRegister) Use it.
	(_Jv_ThreadStart) Use it.
	* configure.in (PLATFORM_INNER_NAT_HDRS): New AC_SUBST() used in...
	* Makefile.am: ... to specify extra native headers.
	* configure: Regenerated.
	* include/config.h: Regenerated.
	* Makefile.in: Regenerated.
	* gcj/Makefile.in: Regenerated.
	* include/Makefile.in: Regenerated.
	* testsuite/Makefile.in: Regenerated.

2004-08-12  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/16867
	* testsuite/libjava.lang/PR16867.java: New test.

2004-08-09  Per Bothner  <per@bothner.com>

	* gcj/javaprims.h (_Jv_Utf8Const): Change struct to a class,
	with private fields and access methods.
	(_Jv_NewStringUTF, _Jv_hashUtf8String): New function declarations.
	* gcj/cni.h (_Jv_NewStringUTF): Move to javaprims.h.
	* prims.cc (_Jv_Utf8COnst::init): New method implementation.
	( _Jv_makeUtf8Const): Rewrite using new constructors.
	(hashUtf8String): Rename to +_Jv_hashUtf8String and make non-static.
	* defineclass.cc: Use new _Utf8Const access/convenience methods.
	* jni.cc: Likewise.
	* resolve.cc: Likewise.
	* gcj/field.h: Likewise.
	* include/jvm.h: Likewise.
	* java/lang/Class.h: Likewise.
	* java/lang/natClass.cc: Likwise.
	* java/lang/natClassLoader.cc: Likewise
	* java/lang/reflect/natMethod.cc: Likewise
	* verify.cc: Likewise.
	(_Jv_BytecodeVerifier::make_utf8_const):  Optimize.
	(~_Jv_BytecodeVerifier):  Don't need second _Jv_Free call.

2004-08-10  Andrew Haley  <aph@redhat.com>

	* testsuite/libjava.lang/err14.java: New file.
	* testsuite/libjava.lang/err14.out: New file.

2004-08-05  Andreas Tobler  <a.tobler@schweiz.ch>

	* Makefile.am: Fix missing rename from x_nat_headers to
	xlib_nat_headers.
	* Makefile.in: Regenerated.

2004-08-04  Andrew Haley  <aph@redhat.com>

	* java/security/BasicPermission.java: Don't check wildcards.

2004-08-04  Thomas Fitzsimmons <fitzsim@redhat.com>
	    Michael Koch  <konqueror@gmx.de>

	* acinclude.m4: Correctly quote PKG_CHECK_MODULES.
	* configure.in: Replaced all usages of AC_LINK_FILES by
	AC_CONFIG_LINKS.
	* aclocal.m4,
	configure: Regenerated.

2004-08-04  Thomas Fitzsimmons  <fitzsim@redhat.com>
	    Michael Koch  <konqueror@gmx.de>

	* acconfig.h: Removed.
	* Makefile.am: Rename variables for xlib peer to include xlib and
	gtk_c_headers to gtk_jni_headers.
	* Makefile.in: Regenerated.

2004-08-04  Andrew Haley  <aph@redhat.com>

	* testsuite/lib/libjava.exp (bytecompile_file): Byte compile with
	debugging.

2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Eliminate uses of changequote (mostly by quoting []).
	Replace most top level 'dnl' comments with '#' comments, conforming
	to new autoconf style.  Use AS_HELP_STRING throughout; improve a few
	help strings.
	* configure: Rebuilt.

2004-07-17  Nathanael Nerode  <neroden@gcc.gnu.org>

	* acinclude.m4: Include no-executables.m4.
	* aclocal.m4: Rebuild.
	* configure.in: Convert to the autoconf 2.59 version of
	of the no-executables hack, and also of the nonstandard CXX
	hack and the multilibbed CC and CXX hack.  Change prerequisite
	to autoconf 2.59.
	* configure: Rebuild with autoconf 2.59.  (Woo-hoo!)
	* Makefile.in, gcj/Makefile.in, include/Makefile.in,
	testsuite/Makefile.in: Regenerate.

2004-08-03  Tom Tromey  <tromey@redhat.com>

	* jni.cc: Reindented.

2004-08-02  Bryce McKinlay  <mckinlay@redhat.com>

	* java/sql/Timestamp.java (valueOf): Synchronize access to dateFormat.

2004-08-02  Bryce McKinlay  <mckinlay@redhat.com>

	* testsuite/libjava.compile/PR16701.java: New test.

2004-08-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Collection.java, java/util/List.java,
	java/util/Map.java, java/util/Set.java,
	java/util/SortedMap.java, java/util/SortedSet.java:
	Added additional exceptions to documentation.

2004-08-01  Danny Smith  <dannysmith@users.sourceforge.net>

	PR libgcj/16814
	* configure.in [host *mingw*] (SYSTEMSPEC): Remove -lwsock32.
	* configure. Regenerate.
	* include/win32.h: Explicitly include winsock2.h
	* win32.cc (_Jv_platform_initialize): Require version 2.2 of
	Winsock api.

2004-07-30  Michael Koch  <konqueror@gmx.de>

	* java/util/zip/GZIPInputStream.java
	(GZIPInputStream): Increase buffer size to 4k.
	* java/util/zip/GZIPOutputStream.java
	(GZIPOutputStream): Likewise.
	* java/util/zip/Inflater.java
	(setInput): Merged formating with GNU classpath.
	* java/util/zip/InflaterInputStream.java
	(InflaterInputStream): Increase buffer size to 4k.
	(fill): Throw exception if stream ends early.
	(read): Merged endless-loop with GNU classpath.
	(skip): Increase buffer size to 2k.

2004-07-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/EmbeddedWindow.java
	(addNotify): Use AccessController to allow execution of privileged
	code.

2004-07-29  Michael Koch  <konqueror@gmx.de>

	* gnu/java/lang/MainThread.java:
	Explicitely import used classes.
	(args): Make it type String[].

2004-07-29 Dalibor Topic <robilad@kaffe.org>

	* gnu/java/awt/ComponentDataBlitOp.java,
	gnu/java/beans/ExplicitBeanInfo.java,
	gnu/java/beans/IntrospectionIncubator.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/io/ClassLoaderObjectInputStream.java,
	gnu/java/io/decode/Decoder.java,
	gnu/java/io/encode/Encoder.java,
	gnu/java/lang/ClassHelper.java,
	gnu/java/locale/Calendar.java,
	gnu/java/locale/Calendar_de.java,
	gnu/java/locale/Calendar_en.java,
	gnu/java/locale/Calendar_nl.java,
	gnu/java/locale/LocaleInformation_de.java,
	gnu/java/locale/LocaleInformation_en.java,
	gnu/java/locale/LocaleInformation_nl.java:
	Cleaned up imports.

2004-07-28  Bryce McKinlay  <mckinlay@redhat.com>

	* README: Remove obsolete info. Update bug URL.
	* THANKS: Updated.
	* NEWS: Updated with news up to GCC 3.4 release.

2004-07-28  Bryce McKinlay  <mckinlay@redhat.com>

	* gnu/java/security/action/GetPropertyAction.java (setParameters):
	Renamed from 'setName'. New 2-argument form with default value.
	(run): Pass default 'value' parameter to System.getProperty().
	* gnu/java/security/action/SetAccessibleAction.java: Fix javadoc
	typos.
	* gnu/java/net/protocol/http/Connection.java: Use 'setParameters'
	not 'setName'.

2004-07-28  Bryce McKinlay  <mckinlay@redhat.com>

	* configure.in: Check for minimum GTK version 2.4 requirement.
	* configure: Rebuilt.

2004-07-27  Bryce McKinlay  <mckinlay@redhat.com>

	* testsuite/libjava.lang/TLtest.java: Reduce sleep time.
	* testsuite/libjava.lang/Thread_Alive.java: Remove old email address.
	Reduce sleep time.
	* testsuite/libjava.lang/Thread_HoldsLock.java: Modify to work around
	compiler bug.
	* testsuite/libjava.lang/Thread_Interrupt.java: Remove old email
	address. Reduce sleep times. Synchronize with target threads before
	attempting to interrupt them. Don't try to calibrate yeild count,
	instead, always loop for a fixed time.
	* testsuite/libjava.lang/Thread_Join.java: Remove old email address.
	* testsuite/libjava.lang/Thread_Monitor.java: Likewise.
	* testsuite/libjava.lang/Thread_Wait.java: Likewise.
	* testsuite/libjava.lang/Thread_Wait_2.java: Likewise.
	* testsuite/libjava.lang/Thread_Wait_Interrupt.java: Likewise.
	* testsuite/libjava.lang/pr179.java: Likewise.
	* testsuite/libjava.lang/Thread_Sleep.java: Likewise. Reduce sleep
	time. Remove upper bounds check on sleep time.

2004-07-27  Bryce McKinlay  <mckinlay@redhat.com>

	* testsuite/libjava.lang/Thread_HoldsLock.java: New test case.
	* testsuite/libjava.lang/Thread_HoldsLock.out: New.

2004-07-27  Bryce McKinlay  <mckinlay@redhat.com>

	* java/io/File.java (toURI): Throw RuntimeException, not
	InternalError.
	* java/lang/Runtime.java (exit): Qualify static sleep() call with
	class name, not instance.

2004-07-24  Bryce McKinlay  <mckinlay@redhat.com>

	* Makefile.am: Add gnu/java/security/action/GetPropertyAction.java
	and gnu/java/security/action/SetAccessibleAction.java.
	* Makefile.in: Rebuilt.

2004-07-23  Bryce McKinlay  <mckinlay@redhat.com>

	* prims.cc (_Jv_InitPrimClass): Don't create an array class.
	(_Jv_CreateJavaVM): Don't pass array vtable parameter to
	_Jv_InitPrimClass.
	(DECLARE_PRIM_TYPE): Don't declare array vtables.
	* include/jvm.h (struct _Jv_ArrayVTable): Removed.
	* java/lang/Class.h (_Jv_InitPrimClass): Update friend declaration.

2004-07-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am: Replace jar, rmic and rmiregistry references with
	gjar, grmic and grmiregistry.
	* configure.in: Likewise.
	* Makefile.in: Regenerate.
	* configure: Likewise.
	* gcj/Makefile.in: Likewise.
	* include/Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.

2004-07-23  Bryce McKinlay  <mckinlay@redhat.com>

	* gnu/java/net/protocol/http/Connection.java: Use GetPropertyAction
	for privileged getProperty calls.
	* java/io/ObjectOutputStream.java (getField): No longer static. Use
	SetAccessibleAction instead of anonymous class for doPrivileged call.
	(getMethod): Likewise.
	(setAccessible): New field. PrivilegedAction object to use when
	calling setAccessible.
	* java/io/ObjectStreamClass.java (calculateOffsets): Use
	SetAccessibleAction instead of anonymous class for diPrivileged call.
	(setFields): Likewise.
	(getClassUID): Likewise.
	(findMethod): Likewise.
	* gnu/java/security/action/GetPropertyAction.java: New class.
	* gnu/java/security/action/SetAccessibleAction.java: New class.

2004-07-23  Bryce McKinlay  <mckinlay@redhat.com>

	* java/io/ObjectStreamField (ObjectStreamField): Don't unset 'toset'
	for final fields.
	* testsuite/libjava.lang/Serialization.java: New test.
	* testsuite/libjava.lang/Serialization.out: New.

2004-07-23  Bryce McKinlay  <mckinlay@redhat.com>

	* gnu/java/net/DefaultContentHandlerFactory.java: Check in real file
	missed in last commit.

2004-07-23  Mark Wielaard  <mark@klomp.org>

	* java/lang/System.java (static): Set http.agent system property when
	not yet set.
	* gnu/java/net/protocol/http/Connection.java (static): Get httpAgent
	from system property inside AccessController.doPrivileged() call.
	(proxyPort): Made package private.
	(proxyInUse): Likewise.
	(proxyHost): Likewise.
	(userAgent): Likewise.

2004-07-23  Mark Wielaard  <mark@klomp.org>

	* gnu/java/net/DefaultContentHandlerFactory.java: New dummy
	implementation.

2004-07-22  Bryce McKinlay  <mckinlay@redhat.com>

	* Makefile.am (ordinary_java_source_files): Add
	DefaultContentHandlerFactory.java.
	* Makefile.in: Rebuilt.
	* java/net/URLConnection.java (defaultFactory): New field.
	(getContent):
	(getContentHandler): Renamed from 'setContentHandler'. Try
	defaultFactory after user-set factory, if any. Search for content
	handler implementations in gnu.java.net.content, not gnu.gcj.content.
	* gnu/java/net/protocol/file/Connection.java (getHeaderField):
	Implemented.
	(getLastModified): Implemented.
	(getPermission): Create file permission here, instead of in
	constructor.
	* gnu/java/net/protocol/gcjlib/Connection.java (getHeaderField):
	Implemented.
	* gnu/java/net/protocol/jar/Connection.java (getHeaderField):
	Implemented.
	(getLastModified): Implemented.
	* gnu/java/awt/ClasspathToolkit.java (createImageProducer): New.
	Default implementation.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (createImageProducer): New.
	Implement using GdkPixbufDecoder.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTextArea.java
	(setLineWrap): Fire property change event after new value is set.
	(setTabSize): Likewise.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTable.java
	(autoCreateColumnsFromModel): New field.
	(autoResizeMode): Likewise.
	(cellEditor): Likewise.
	(cellSelectionEnabled): Likewise.
	(columnModel): Likewise.
	(dataModel): Likewise.
	(defaultEditorsByColumnClass): Likewise.
	(defaultRenderersByColumnClass): Likewise.
	(editingColumn): Likewise.
	(editingRow): Likewise.
	(gridColor): Likewise.
	(preferredViewportSize): Likewise.
	(rowHeight): Likewise.
	(rowMargin): Likewise.
	(rowSelectionAllowed): Likewise.
	(selectionBackground): Likewise.
	(selectionForeground): Likewise.
	(selectionModel): Likewise.
	(showHorizontalLines): Likewise.
	(showVerticalLines): Likewise.
	(tableHeader): Likewise.
	(JTable): Implemented.
	(getColumnModel): Likewise.
	(getSelectedRow): Likewise.
	(getSelectionModel): Likewise.
	(setModel): Likewise.
	(setSelectionModel): Likewise.
	(createScrollPaneForTable): New method.
	(createDefaultDataModel): Likewise.
	(createDefaultListSelectionModel): Likewise.
	(getModel): Likewise.
	(getTableHeader): Likewise.
	(setTableHeader): Likewise.
	(getColumnSelectionAllowed): Likewise.
	(setColumnSelectionAllowed): Likewise.
	(getRowSelectionAllowed): Likewise.
	(setRowSelectionAllowed): Likewise.
	(getAutoResizeMode): Likewise.
	(setAutoResizeMode): Likewise.
	(getColumnCount): Likewise.
	(getRowCount): Likewise.
	(getCellRenderer): Likewise.
	* javax/swing/JTree.java
	(cellRenderer): New field.
	(editable): Likewise.
	(rootVisible): Likewise.
	(showsRootHandles): Likewise.
	(getModel): New method.
	(setModel): Likewise.
	(isEditable): Likewise.
	(setEditable): Likewise.
	(isRootVisbile): Likewise.
	(setRootVisible): Likewise.
	(getShowsRootHandles): Likewise.
	(setShowRootHandles): Likewise.
	(getCellRenderer): Likewise.
	(setCellRenderer): Likewise.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JFormattedTextField.java
	(setDocument): Implemented.
	* javax/swing/JRootPane.java:
	Fixed javadocs.
	* javax/swing/JTable.java
	(getDefaultRenderer): New method.
	* javax/swing/JTextField.java
	(setFont): Likewise.
	(getPreferredSize): Likewise.
	* javax/swing/JToggleButton.java
	(getAccessibleContext): Fix javadoc.
	* javax/swing/JTree.java:
	Add some javadocs.
	* javax/swing/JViewport.java:
	Likewise.

2004-07-21  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java:
	Collect all native method declaration at the top.
	(create): Set the filename filter if necessary.
	(setDirectory): Call nativeSetDirectory().
	(setFilenameFilter): Implement.
	(filenameFilterCallback): New method.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(create): Configure dialog to show hidden files.
	(filenameFilterCallback): New function.
	(nativeSetFilenameFilter): New function.
	(nativeSetDirectory): New function.

2004-07-21  Kim Ho  <kho@redhat.com>

	* javax/swing/plaf/basic/BasicSliderUI.java:
	Ran Jalopy.
	(paintTrack): Fill the track before painting
	the borders.

2004-07-21  Graydon Hoare  <graydon@redhat.com>

	patch from Roman Kennke <roman@ontographics.com>
	* javax/swing/Spring.java: New file.
	* javax/swing/SpringLayout.java: New file.
	* Makefile.am: Add new files.
	* Makefile.in: Regenerate.

2004-07-21  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/plaf/basic/BasicSplitPaneUI.java: Minor layout fixes.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java: Likewise.
	* javax/swing/ScrollPaneLayout.java: Likewise.

2004-07-21  Kim Ho  <kho@redhat.com>

	* javax/swing/DefaultDesktopManager.java:
	(findMinimum): Removed.
	(resizeFrame): Trust the UI to pass valid
	bounds.
	* javax/swing/JOptionPane.java:
	Implemented showInternalXXXDialog methods.
	(startModal): New method.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java:
	(BorderListener::mouseDragged): Verify that the new
	bounds are valid before passing them to the DesktopManager.
	(preferredLayoutSize): Delegate
	to getSize.
	(minimumLayoutSize): Ditto.
	(getSize): New method.
	(GlassPaneDispatcher): Reimplemented by copying
	a stripped down LightweightDispatcher from Container.
	(getMinimumSize): Call minimumLayoutSize.
	* javax/swing/plaf/basic/BasicOptionPaneUI.java:
	Ran Jalopy.
	(mousePressed): Add ability to properly close
	JInternalFrames.
	* javax/swing/plaf/basic/BasicToolBarUI.java:
	(DragWindow): Set owner for DragWindow.

2004-07-21  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ShortLookupTable.java: New file.
	* java/awt/image/ByteLookupTable.java: New file.
	* Makefile.am: Added new files.
	* Makefile.in: Regenerated.

2004-07-21  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
	(create(GtkContainerPeer)): New native method.
	(create()): Call native create(), passing in the parent frame
	as the paramter. Natively set the current file and directory.
	(setFile): Construct an absolute filename before passing it to
	the native peer.
	(nativeGetDirectory): New method.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(window_closed): Removed.
	(ok_clicked): Likewise.
	(cancel_clicked): Likewise.
	(handle_response): New method.
	(create): Use GtkFileChooserDialog.
	(connectSignals): Connect to handle_response.
	(nativeGetDirectory): New method.
	(nativeSetFile): Use GtkFileChooserDialog.

2004-07-21  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/LookupTable.java: New file.
	* Makefile.am: Added new file.
	* Makefile.in: Regenerated.

2004-07-21  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/Kernel.java: New file.
	* Makefile.am: Added new file.
	* Makefile.in: Regenerated.

2004-07-21  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/JCheckBoxMenuItem.java: Fixed Javadocs.
	* javax/swing/JMenu.java: Likewise.
	* javax/swing/JMenuBar.java: Likewise.
	(MARGIN_CHANGED_PROPERTY): New property.
	(setMargin): Implemented.
	* javax/swing/JMenuItem.java: Fixed javadocs.
	* javax/swing/JPopupMenuUI.java: Fixed javadocs.
	(LABEL_CHANGED_PROPERTY): New property.
	(add): changed to use createActionComponent.
	(createActionComponent): Implemented.
	(setLabel): Fire PropertyChangeEvent if label property
	changes.
	* javax/swing/JRadioButtonMenuItem.java: Fixed javadocs.
	* javax/swing/plaf/basic/BasicMenuBarUI.java: Likewise.
	(ContainerHandler): Repaint if margin property has changed.
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(installUI): Call installComponents().
	(uninstallUI): Call uinstallComponents().
	* javax/swing/plaf/basic/BasicMenuUI.java:
	Fixed javadocs.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java:
	Likewise.

2004-07-21  Kim Ho  <kho@redhat.com>

	* javax/swing/plaf/basic/BasicToolBarUI.java:
	(DragWindow): Use the right constructor.

2004-07-21  Kim Ho  <kho@redhat.com>

	* javax/swing/JToolBar.java:
	(layoutContainer): Use getComponents.
	* javax/swing/plaf/basic/BasicToolBarUI.java:
	(DragWindow): Don't use SwingUtilities'
	getOwnerFrame
	(ToolBarDialog): ditto.

2004-07-21  Kim Ho  <kho@redhat.com>

	* javax/swing/JRootPane.java:
	Ran jalopy.
	(layoutContainer): Set the glasspane's size to
	be the same as the content pane.
	(createGlassPane): Set opaque property to false.

2004-07-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Component.java (requestFocus()): Don't handle Panels
	specially.
	(requestFocus(boolean)): Likewise.
	(requestFocusInWindow(boolean)): Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c (create):
	Set GTK_CAN_FOCUS flag.

2004-07-21  Kim Ho  <kho@redhat.com>

	* Makefile.am: Added new file.
	* Makefile.in: Regenerated.
	* gcj/Makefile.in: Regenerated.
	* include/Makefile.in: Regenerated.
	* javax/swing/AbstractButton.java:
	Add rollOverEnabled property.
	(setRolloverEnabled): Use new property.
	(isRolloverEnabled): Use new property.
	* javax/swing/JTabbedPane.java:
	(setComponent): Remove useless JTabbedPane.this.
	* javax/swing/JToolBar.java: Finish implementation.
	* javax/swing/plaf/basic/BasicArrowButton.java:
	(paint): Moved border painting to a border.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Change JToolBar look and feel defaults.
	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(actionPerformed): Return Integer index instead of name.
	(addButtonComponents): Check to see if component is
	JButton last.
	(createMessageArea): Don't use components that are not
	completed yet.
	(getIconForType): Use temporary icons.
	* javax/swing/plaf/basic/BasicSliderUI.java:
	(mousePressed): Do not return if it's on thumb.
	(paintMinorTickForHorizSlider): Use BLACK to paint ticks.
	(paintMinorTickForVertSlider): ditto.
	(paintMajorTickForHorizSlider): ditto.
	(paintMajorTickForVertSlider): ditto.
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java:
	Add a border around the SplitPaneDivider.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java:
	Remove comments.
	* javax/swing/plaf/basic/BasicToolBarSeparatorUI.java:
	New file. Implemented.
	* javax/swing/plaf/basic/BasicToolBarUI.java:
	Implemented.
	* testsuite/Makefile.in: Regenerated.

2004-07-21  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/Timer.java (run): Queue events each time cycle.

2004-07-21  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkImagePainter.java
	(imageComplete): Call image.imageComplete().
	* java/awt/image/MemoryImageSource.java:
	Reimplement consumers as a Vector instead of a Hashtable.  This is
	because enumeration on a Hashtable is not thread-safe.
	(addConsumer): Adapt to Vector consumers.
	(isConsumer): Adapt to Vector consumers.
	(removeConsumer): Adapt to Vector consumers.
	(startProduction): Adapt to Vector consumers. Call imageComplete()
	with STATICIMAGEDONE flag instead of SINGLEFRAME flag.
	(newPixels): Adapt to Vector consumers.
	(sendPicture): Set the color model of the image consumer.
	(newPixels(IIII)): Adapt to Vector consumers.
	(newPixels(IIIIB)): Adapt to Vector consumers.

2004-07-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Component.java (deliverEvent): Implement.
	(postEvent): Implement.
	(handleEvent): Implement.
	(translateEvent): New method.
	(dispatchEventImpl): Document.  Add AWT 1.0 event handling.
	* java/awt/Container.java (deliverEvent): Implement.
	* java/awt/Event.java (paramString): Fix formatting.
	* java/awt/Font.java (toString): Likewise.
	* java/awt/Window.java (postEvent): Implement.

2004-07-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/DefaultKeyboardFocusManager.java (dispatchEvent):
	Set window's focus owner upon receiving a FOCUS_LOST event.
	* java/awt/Window.java (Window()): Refocus the previously
	focused component within the window when the window regains the
	top-level focus.
	(setFocusOwner): New method.
	* java/awt/Component.java (requestFocus): Add FIXME.

	* libgcj.pc.in: Remove library flags.

2004-07-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkPanelPeer.java (handleEvent): Handle
	MOUSE_PRESSED event.
	* java/awt/Component.java (requestFocus()): Handle Panel
	specially.  Post FOCUS_LOST event on opposite component.
	(requestFocus(boolean)): Likewise.
	(requestFocusInWindow(boolean)): Likewise.
	(paramString): Reorder dimension fields.
	* java/awt/Container.java (paramString): Fix string format.
	* java/awt/DefaultKeyboardFocusManager.java (dispatchEvent):
	Handle FOCUS_LOST events.  Don't handle Windows specially.  Only
	process key events if the focus owner is non-null.
	(dispatchKeyEvent): Likewise.
	* java/awt/Frame.java (paramString): Fix formatting.
	(generateName): New method.
	(getUniqueLong): Likewise.
	* java/awt/KeyboardFocusManager.java (getFocusOwner): Check if
	the temporary focus owner is null.  If so, return the permanent
	focus owner.
	* java/awt/Panel.java (generateName): New method.
	(getUniqueLong): Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c: Rework
	signal handling to make callbacks more specific.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/Position.java
	(Bias): Implemented.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/LookAndFeel.java
	(provideErrorFeedback): New method.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTextArea.java
	(tabSize): New field.
	(getTabSize): New method.
	(setTabSize): Likewise.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/ActionMap.java:
	Fixed javadocs all over.
	(serialVersionUID): Made private.
	(parent): Don't explicitely initialize with default value.
	(get): SImplified.
	(keys): Reimplemented.
	(allKeys): Likewise.
	(convertSet): Removed.
	* javax/swing/ComponentInputMap.java:
	Fixed javadocs all over.
	(ComponentInputMap): Implemented.
	(put): Likewise.
	(clear): Likewise.
	(remove): Likewise.
	(SetParent): Likewise.
	(getComponent): Likewise.
	* javax/swing/InputMap.java:
	Fixed javadocs all over.
	(serialVersionUID): Made private.
	(parent): Don't explicitely initialize with default value.
	(get): SImplified.
	(keys): Reimplemented.
	(allKeys): Likewise.
	(convertSet): Removed.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/ActionMap.java,
	javax/swing/ComponentInputMap.java,
	javax/swing/InputMap.java,
	javax/swing/table/DefaultTableColumnModel.java,
	javax/swing/table/TableColumn.java,
	javax/swing/table/TableColumnModel.java,
	javax/swing/table/TableModel.java,
	javax/swing/text/AbstractDocument.java,
	javax/swing/text/TextAction.java:
	Reformated.

2004-07-21  Graydon Hoare  <graydon@redhat.com>

	* gnu/java/awt/peer/gtk/GtkToolkit.java (bufferedImageOrError):
	Make method non-static.
	* javax/swing/AbstractButton.java:
	Rename fields to match property names where possible.
	(iconTextGap): New property.
	* javax/swing/JCheckBox.java: Match AbstractButton changes.
	(init) New method, call from after various constructors.
	* javax/swing/JComponent.java (revalidate):
	Invalidate before queueing repair.
	* javax/swing/JList.java (getPreferredScrollableViewportSize):
	Reimplement in terms of visibleRowCount property.
	* javax/swing/JMenuButton.java: Match AbstractButton changes.
	* javax/swing/JScrollPane.java (createScrollListener):
	Remove tracing chatter.
	* javax/swing/JToggleButton.java: Match AbstractButton changes.
	* javax/swing/RepaintManager.java (addInvalidComponent):
	Don't invalidate.
	* javax/swing/ScrollPaneLayout.java: Various corrections to layout
	calculations.
	* javax/swing/SwingUtilities.java (layoutCompoundLabel):
	Mimic sun behavior on top left/right positioning.
	* javax/swing/ViewportLayout.java (preferredLayoutSize):
	Remove mistaken use of preferredScrollableViewportSize here.
	(layoutContainer): Use view's preferred size as basis.
	* javax/swing/plaf/basic/BasicButtonUI.java:
	Set, get, and use textIconGap property.
	(paint) Paint text returned from layout (with ellipsis).
	* javax/swing/plaf/basic/BasicListUI.java:
	Remove tracing chatter, correct various minor calculations.
	(getCellBounds): Update layout state before calculating.
	* javax/swing/plaf/basic/BasicLookAndFeel.java (Button.Margin):
	Use margin default similar to sun's.
	* javax/swing/plaf/basic/BasicScrollBarUI.java (ArrowIcon):
	(createIncreaseIcon): Center icon, minimize margins.
	(createDecreaseIcon): Likewise.
	* javax/swing/plaf/basic/BasicScrollPaneUI.java (installDefaults):
	Implement.
	(installUI): Call it.
	(uninstallDefaults): Implement.
	(uninstallUI): Call it.
	* javax/swing/plaf/basic/BasicToolBarUI.java (DragWindow):
	Call existing Window constructor.
	* javax/swing/plaf/basic/BasicViewportUI.java (paint):
	Set clip before painting.

2004-07-21  Olga Rodimina <rodimina@redhat.com>

	* javax/swing/JMenuItem.java:
	(processMouseEvent): Reimplemented to deal with
	mouse drag events.
	(createMenuDragMouseEvent): New private helper method.
	Creates MenuDragMouseEvent.
	* javax/swing/MenuSelectionManager.java
	(componentForPoint): Implemented.
	(isComponentPartOfCurrentMenu): Made public.
	(processMouseEvent): Reimplemented to deal with
	mouse drag events.
	(setSelectedPath): Corrected small mistake that caused
	path to be set incorrectly.
	(getPath): If given component is JMenu then also add this
	menu's popup menu to the selected path.
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(getPath): Ditto.
	(getPreferredSize): Call getPreferredMenuItemSize().
	(getPreferredItemSize): Moved code from getPreferredSize to here.
	(installListeners): Install MouseMotionListeners.
	(MouseInputHandler): Pass mouse release event to MenuSelectionManager
	if mouse wasn't released in the bounds of this menu item.
	(MenuDragMouseHandler): Implemented.
	* javax/swing/plaf/basic/BasicMenuUI.java:
	(installListeners): Install MouseMotionListener and
	MenuDrageMouseListener.
	(MenuDragMouseHandler): Implemented.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java:
	(uninstallListeners): Implemented.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JCheckBox.java: Reformated.
	(JCheckBox): Fixed all constructors.
	(isBorderPaintedFlat): New method.
	(setBorderPaintedFlat): New method.
	* javax/swing/JEditorPane.java
	(createEditorKitForContentType): Made public.
	(scrollToReference): Likewise.
	* javax/swing/JTextArea.java
	(setLineWrap): Fire property change.
	* javax/swing/JToggleButton.java
	(JToggleButton): New constructor.
	(JToggleButton): Simplified.
	* javax/swing/text/AttributeSet.java
	(FontAttribute): Renamed from FontCharacterAttribute.
	* javax/swing/text/JTextComponent.java
	(KeyBinBinding): Added javadoc.
	(JTextComponent): Likewise.
	(getAccessibleContext): Fixed javadoc.
	* javax/swing/text/View.java
	(View): Added javadoc.
	* javax/swing/text/TabableView.java: New file.
	* Makefile.am: Added javax/swing/text/TabableView.java.
	* Makefile.in: Regenerated.

2004-07-21  Graydon Hoare  <graydon@redhat.com>

	* java/awt/image/BufferedImage.java (getSource): Remove tracing chatter.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(GtkErrorImage): New helper class.
	(bufferedImageOrError): New helper method.
	(createImage): Use it.

2004-07-21  David Jee  <djee@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c
	(setCaretPosition): Scroll the text view so the new caret position
	is visible on screen.

2004-07-21  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkContainerPeer.java
	(setBounds): Do not validate awtComponent here.
	* gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
	(getPreferredSize): New method.
	* java/awt/ScrollPane.java
	(ScrollPane): Set default size to 100x100.
	(addNotify): If child is not a Panel, wrap it with a new Panel.
	(paramString): Implement.

2004-07-21  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/JMenu.java:
	(setSelected): Display popup menu only if this menu
	is showing on the screen.
	* javax/swing/JPopupMenu.java:
	(processMouseEvent): Added comment.
	(processKeyEvent): Likewise.
	* javax/swing/MenuSelectionManager.java:
	(clearSelectedPath): Only fireStateChanged() after
	selected path was changed, not before.
	(setSelectedPath): Likewise.
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(paintMenuItem): Corrected position of menu item's
	icon.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java:
	(installUI): Correct setDefaultLightWeightPopupEnabled call.
	(popupMenuCanceled): Reimplemented.
	(popupMenuWillBecomeVisible): Select first menu item by default
	when displaying free floating popup menus.
	(TopWindowListener): Reimplemented.

2004-07-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Panel.java (dispatchEventImpl): Override to prevent
	Panel from being painted twice when it is first shown.

2004-07-21  Olga Rodimina  <rodimina@redhat.com>

	* java/awt/Window.java: Reverted changes from my
	previous patch for creating window without an owner.
	* javax/swing/SwingUtilities.java:
	(SwingUtilities.OwnerFrame): made static.
	(OwnerFrame.setVisible): New method. Overridden with
	empty implementation.
	(OwnerFrame.isShowing): New method. Ovverridden
	to return always true.

2004-07-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(GtkComponentPeer): Remove temporary try/catch block.
	(setVisible): Call show and hide.
	(show): Make native.
	(hide): Likewise.
	(getArgs): Don't add "visible" argument.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(property_notify_predicate): Return Bool instead of int.
	(find_layout): New function.
	(connectJObject): Call find_layout.
	(connectSignals): Likewise.
	(moveLayout): Likewise.
	(gtkLayoutSetVisible): Likewise.

2004-07-21  Mark Wielaard  <mark@klomp.org>

	* java/awt/event/InvocationEvent.java (dispatch): Synchronize
	on notifier object before calling notifyAll().

2004-07-21  Olga Rodimina  <rodimina@redhat.com>

	* java/awt/Window.java: Changed constructors to use new
	method that is described below. Constructors call this
	methods only if newly created window should have an owner.
	(setWindowOwner): New method. Implementation for
	this method is moved from this(owner,configuration).
	* javax/swing/JWindow.java:
	(JWindow): Reimplement to use SwingUtilities.ownerFrame
	instead of owner.
	* javax/swing/SwingUtilities.java:
	(ownerFrame): Change type of this field to OwnerFrame.
	(getOwnerFrame): Changed to return object of type OwnerFrame.
	(SwingUtilities.OwnerFrame): New class. Represents owner
	of a Window that is not provided with one.

2004-07-21  Olga Rodimina  <rodimina@redhat.com>

	*  javax/swing/AbstractButton.java:
	(configurePropertiesFromAction): Set action command
	to button's text by default if action command is not
	explicitely specified.
	* javax/swing/JMenu.java: Remove unnecessary listener
	and methods relevant to it.
	(setSelected): Reimplemented.
	(menuSelectionChanged): Moved most part of implementation to
	setSelected() and call it instead.
	* javax/swing/JMenuItem.java:
	(init): Comment out statement that sets paint_border to false.
	(configurePropertiesFromAction): Do not set accelerator
	for JMenu.
	(menuSelectionChanged): Change selected index in the selection
	model of menu item's parent.
	* javax/swing/JPopupMenu.java:
	(remove): Set constraints.fill field to GridBagConstraints.BOTH
	instead of GridBagConstraints.HORIZONTAL.
	(insert): Likewise.
	(createActionChangeListener): Implemented.
	(setVisible): Correct location of HeavyWeightMenu and
	don't firePopupMenuCanceled().
	(menuSelectionChanged): Implemented.
	(ActionChangeListener): New Listener. Implemented.
	* javax/swing/plaf/basic/BasicMenuBarUI.java:
	(BasicMenuBarUI.ContainerHandler): Implemented.
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(paintMenuItem): Uncommented out code that paints
	icon, now that icons are working properly.
	(PropertyChangeListener): Implemented.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java:
	Added javadocs.
	(topWindowListener): New field.
	(Constructor): initialize topWindowListener.
	(BasicPopupMenuUI.TopWindowListener): Implemented.
	(BasicPopupMenuUI.PopupMenuHandler): Implemented.
	(BasicPopupMenuUI.TopWindowListener): New ComponentListener.
	Implemented.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(paintFocus): Fixed method signature.
	(paintButtonPressed): Likewise.
	(paintButtonNormal): Likewise.
	(paintText): New method.
	* javax/swing/plaf/basic/BasicLabelUI.java
	(paint): Re-indented.
	* javax/swing/plaf/basic/BasicTextUI.java
	(installUI): Set parent textComponent to opaque.
	* javax/swing/text/DefaultHighlighter.java
	(checkPositions): New helper method.
	(addHighlight): Throws BadLocationException, check positions.
	(changeHighlight): Likewise.
	* javax/swing/text/EditorKit.java
	(EditorKit): Implements Serializable.
	* javax/swing/text/JTextComponent.java
	(getUI): Added javadoc.
	(setUI): Likewise.
	(upadteUI): Added javadoc, don't revalidate and repaint.

2004-07-21  David Jee  <djee@redhat.com>

	* java/awt/GridBagLayout.java
	(ArrangeGrid): Use PREFERREDSIZE instead of MINSIZE.
	* javax/swing/AbstractButton.java
	(setText): Reindent.
	* javax/swing/RepaintManager.java
	(addInvalidComponent): Find the first ancestor that isValidateRoot().

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JFormattedTextField.java
	(value): New field.
	(JFormattedTextField): Implemented.
	(getValue): Likewise.
	(setValue): Likewise.
	* javax/swing/LookAndFeel.java
	(getSupportsWindowDecorations): New method.
	* javax/swing/UIDefaults.java:
	Use java.beans.PropertyChangeSupport instead of doing all ourself.
	(addPropertyChangeListener): Made public.
	(addResourceBundle): Likewise.
	(removeResourceBundle): Likewise.
	(setDefaultLocale): Likewise.
	* javax/swing/plaf/basic/BasicRootPaneUI.java
	(BasicRootPaneUI): Implements PropertyChangeListener.
	(propertyChange): New method.
	* javax/swing/plaf/basic/BasicTextUI.java
	(BasicHighlighter): New inner class.
	(createHighlighter): New method.
	* javax/swing/plaf/basic/BasicToolBarUI.java
	(DragWindow): Extends java.awt.Window.
	* javax/swing/text/JTextComponent.java
	(getDocument): Removed debug output.
	* javax/swing/plaf/basic/BasicTextFieldUI.java,
	javax/swing/text/DefaultHighlighter.java,
	javax/swing/text/FieldView.java,
	javax/swing/text/PlainView.java: New files.
	* Makefile.am: Added new files.
	* Makefile.in: Regenerated.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JEditorPane.java
	(createDefaultEditorKit): Use javax.swing.text.DefaultEditorKit.
	(createEditorKitForContentType): Likewise.
	* javax/swing/text/DefaultEditorKit.java
	(serialVersionUID): Added constant field.
	(EndOfLineStringPropery): Fixed typo.
	(DefaultEditorKit): New constructor.
	* javax/swing/text/Segment.java:
	Import java.text.CharacterIterator.
	* javax/swing/text/CharacterIterator.java,
	javax/swing/text/PlainEditorKit.java: Removed.
	* Makefile.am: Removed javax/swing/text/CharacterIterator.java and
	javax/swing/text/PlainEditorKit.java.
	* Makefile.in: Regenerated.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JButton.java,
	javax/swing/text/DefaultEditorKit.java,
	javax/swing/text/EditorKit.java,
	javax/swing/text/Segment.java,
	javax/swing/text/StyledEditorKit.java:
	Reformatted.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/ImageIcon.java
	(file): Removed.
	(description): Renamed from descr.
	(ImageIcon): Added missing constructors.
	(setParent): Removed.
	(setImageObserver): New method.
	(getImageObserver): New method.
	(paintIcon): Handle observer = null.
	* javax/swing/JButton.java
	(removeNotify): Fixed javadoc.
	(updateUI): Simplified.
	* javax/swing/JRootPane.java
	(serialVersionUID): New constant field.
	* javax/swing/UIManager.java:
	Fixed javadocs all over.
	(setLookAndFeel): Throws UnsupportedLookAndFeelException.
	* javax/swing/text/AbstractDocument.java
	(createPosition): Throws BadLocationException.
	(getText): Likewise.
	(remove): Likewise.
	* javax/swing/text/ComponentView.java
	(modelToView): Likewise.
	* javax/swing/text/DefaultEditorKit.java:
	Made all public methods public.
	(read): Throws BadLocationException and IOException.
	(write): Likewise.
	* javax/swing/text/EditorKit.java:
	Made all public methods public.
	(serialVersionUID): New constant field.
	(clone): New method.
	(read): Throws BadLocationException and IOException.
	(write): Likewise.
	* javax/swing/text/Segment.java
	(array): Made public.
	(count): Likewise.
	(offset): Likewise.
	(Segment): New constructors.
	(clone): Reimplemented.
	* javax/swing/text/StyledEditorKit.java
	(serialVersionUID): New constant field.

2004-07-21  Graydon Hoare  <graydon@redhat.com>

	* java/awt/image/BufferedImage.java
	(getSource): Implement.
	* javax/swing/ImageIcon.java
	(ImageIcon): Implement ctor.
	* javax/swing/ScrollPaneLayout.java
	(preferredLayoutSize): Be more careful about nulls.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/AttributeSet.java
	(CharacterAttribute): New interface
	(ColorAttribute): Likewise.
	(FontCharacterAttribute): Likewise.
	(ParagraphAttribute): Likewise.
	* javax/swing/text/DefaultCaret.java
	(moveCaret): New method.
	(positionCaret): Likewise.
	(repaint): Made protected.
	* javax/swing/text/JTextComponent.java
	(KeyBinding): Made it static.
	* javax/swing/text/View.java
	(getContainer): Honor parent == null.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/AbstractDocument.java:
	Reformatted.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicRootPaneUI.java:
	Import javax.swing.UIManager explicitely.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(ScrollingButton): Made it static.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/UIDefaults.java
	(ActiveValue): Made public.
	(LazyValue): Likewise.
	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView): Reintroduced.
	(view): Removed.
	(rootView): New field.
	(installUI): Create document if needed, initialize rootView.
	(uninstallUI): Hanle rootView.
	(paint): Likewise.
	(getRootView): Likewise.
	(setView): Likewise.
	* javax/swing/text/DefaultCaret.java:
	Renamed all "evt" variables to "event".

2004-07-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* libgcj.spec.in: Add -l-java-util-logging.

2004-07-21  Andreas Tobler  <a.tobler@schweiz.ch>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
	(init_dpi_conversion_factor): Check for int_dpi < 0 in case
	gtk-xft-dpi can no calculate the right value.
	(dpi_changed_cb): Mark *pspec as unsused.

2004-07-21  David Jee  <djee@redhat.com>

	* java/awt/Component.java
	(move): Delegate to setBounds().
	(resize): Likewise.
	(reshape): Fix so it repaints parent and self only when necessary.

2004-07-21  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(GtkComponentPeer): Revert previous patch from 2004-06-22.
	(setVisible): Likewise.
	(show): Likewise.
	(hide): Likewise.
	(getArgs): Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(property_notify_predicate): Likewise.
	(find_layout): Likewise.
	(connectJObject): Likewise.
	(connectSignals): Likewise.
	(moveLayout): Likewise.
	(gtkLayoutSetVisible): Likewise.

2004-07-21  Graydon Hoare  <graydon@redhat.com>

	* Makefile.am
	(jv_convert_LDADD):
	(gij_LDADD):
	(rmic_LDADD):
	(rmiregistry_LDADD): Add lib-java-util-logging.la
	* Makefile.in: Regenerate.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/AbstractDocument.java
	(replace): Dont use protected method of java.util.Vector directly.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicTextUI.java
	(installUI): Call specialized install methods.
	(installDefaults): New method.
	(installListeners): Likewise.
	(installKeyboardActions): Likewise.
	(uninstallUI): Likewise.
	(uninstallDefaults): New method.
	(uninstallListeners): Likewise.
	(uninstallKeyboardActions): Likewise.
	(getPropertyPrefix): New abstract method.
	(paint): Made final, just call paintSafely().
	(paintSavely): New method.
	(paintBackground): Likewise.
	(getVisibleEditorRect): Likewise.
	* javax/swing/text/LayeredHighlighter.java,
	javax/swing/text/TabExpander.java: New files.
	* Makefile.am: Added javax/swing/text/LayeredHighlighter.java
	and javax/swing/text/TabExpander.java.
	* Makefile.in: Regenerated.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicTextUI.java
	(BasicTextUI): Made abstract.
	(BasicCaret): New inner class.
	(view): Don't explicitely initialize with "null".
	(textComponent): New field.
	(textColor): Removed.
	(disabledTextColor): Removed.
	(normalBackgroundColor): Removed.
	(RootView): Removed commented out inner class.
	(createUI): Removed.
	(createCaret): New method.
	(getComponent): Likewise.
	(installUI): Initialize textComponent only.
	(getPreferredSize): Use installed JTextComponent.
	(setView): New method.
	(create): Likewise.
	* javax/swing/text/JTextComponent.java
	(highlighter): New field.
	(caretColor): Likewise.
	(disabledTextColor): Likewise.
	(seletedTextColor): Likewise.
	(selectionColor): Likewise.
	(setUI): New method.
	(getCaretColor): Likewise.
	(setCaretColor): Likewise.
	(getDisabledColor): Likewise.
	(setDisabledColor): Likewise.
	(getSelectedTextColor): Likewise.
	(setSelectedTextColor): Likewise.
	(getSelectionColor): Likewise.
	(setSelectionColor): Likewise.
	(getHighlighter): Likewise.
	(setHighlighter): Likewise.
	(replaceSelection): Likewise.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(BasicScrollPaneUI): Implements ScrollPaneConstants.
	* javax/swing/plaf/basic/BasicToolBarUI.java
	(BasicToolBarUI): Implements SwingConstants.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JPopupMenu.java: Removed CVS tags.
	* javax/swing/UIDefaults.java: Reformatted.
	* javax/swing/plaf/basic/BasicRootPaneUI.java:
	Explicitely import used classes.

2004-07-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(GtkComponentPeer): Remove temporary try/catch block.
	(setVisible): Call show and hide.
	(show): Make native.
	(hide): Likewise.
	(getArgs): Don't add "visible" argument.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(property_notify_predicate): Return Bool instead of int.
	(find_layout): New function.
	(connectJObject): Call find_layout.
	(connectSignals): Likewise.
	(moveLayout): Likewise.
	(gtkLayoutSetVisible): Likewise.

2004-07-21  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/AbstractButton.java:
	(setDisplayedMnemonicIndex): Check if button
	text is not null before checking its length.
	* javax/swing/JMenuItem.java:
	(processMouseEvent): Disarm menu item if mouse has
	exited it.
	* javax/swing/plaf/basic/BasicMenuUI.java:
	(MouseInputHandler.mouseEntered): Do not raise
	popup menu if this menu is already selected.
	(MouseInputHandler.mousePressed): Do not fire
	MenuEvents.
	(MenuHandler): Implemented.

2004-07-21  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/JCheckBoxMenuItem.java: Added Javadoc.
	(getSelectedObjects): Implemented.
	* javax/swing/JRadioButtonMenuItem.java: Added Javadoc.
	* javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java:
	Added javadoc for few methods.
	(processMouseEvent): Made public.
	* javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java
	(processMouseEvent): Likewise.

2004-07-21  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/AbstractButton.java:
	(init): Set display mnemonic index to -1.
	(setMnemonic(char)): Use setMnemonic(int).
	(setMnemonic(int)): Set display mnemonic index.
	(getDisplayedMnemonicIndex): Change method signature
	by removing 'index' parameter.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Added default for Menu.selectionBackground.
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(paintMenuItem): Change background color of the selected
	menu item.
	(paintText): Paint differently when menu item is disabled.
	Also paint mnemonic if it appears in the menu item's label.
	(paintAccelerator): Paint accelerator differently
	if menu item is disabled.
	* javax/swing/plaf/basic/BasicMenuUI.java:
	(installDefaults): Install defaults for
	selectionForeground and selectionBackground.
	(uninstallDefaults): Uninstall defauls for
	selectionForeground and selectionBackground.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/AbstractDocument.java
	(BranchElement): Implemented.
	(LeafElement): Implemented.
	* javax/swing/text/DefaultCaret.java:
	Import used classes.
	(serialVersionUID): New constant.
	* javax/swing/text/JTextComponent.java
	(AccessibleJTextComponent): Removed dead declaration.
	(caretPos): Removed.
	(setCaret): New method.
	* javax/swing/text/PlainDocument.java
	(rootElement): New field.
	(PlainDocument): Initialize rootElement.
	(createDefaultRoot): New method.
	(getDefaultRootElement): Implemented.
	* javax/swing/text/View.java: Reformatted.
	* javax/swing/text/ViewFactory.java
	(create): Added javadoc.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/ToolTipManager.java: Reformatted.

2004-07-21  Rodimina Olga  <rodimina@redhat.com>

	* javax/swing/AbstractButton.java
	(changeEvent): New field.
	(fireItemStateChanged): Change source of the event
	to 'this' before firing it to button listeners.
	(fireActionPerformed): Likewise.
	(fireStateChanged): Likewise.
	(createActionListener): Do not set source
	of the event to AbstractButton.
	* javax/swing/plaf/basic/BasicMenuBarUI.java:
	(ContainerHandler.componentAdded): Removed
	print out statement.
	(ContainerHandler.componentRemoved): Likewise.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/Highlighter.java: New file.
	* Makefile.am: Added javax/swing/text/Highlighter.java.
	* Makefile.in: Regenerated.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/ToolTipManager.java
	(stillInsideTimerAction): Fixed constructor arguments.
	(outsideTimerAction): Likewise.
	(insideTimerAction): Likewise.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JButton.java: Reformatted.
	* javax/swing/JFormattedTextField.java
	(getUIClassID): Implemented.
	* javax/swing/JRootPane.java
	(serialVersionUID): New constant.
	* javax/swing/JTextField.java
	(align): New field.
	(JTextField): Simplified.
	(getUIClassID): New method.
	(getActionListeners): Added @since tag.
	(setColumns): Invalidate layout and repaint.
	(getHorizontalAlignment): New method.
	(setHorizontalAlignment): New method.
	(selectAll): Removed.
	* javax/swing/SwingUtilities.java
	(getAncestorOfClass): Removed redundant @see tag.
	(isLeftMouseButton): Fixed implementation.
	(isMiddleMouseButton): Likewise.
	(isRightMouseButton): Likewise.
	* javax/swing/text/AbstractDocument.java
	(AttributeContext.addAttribute): New method.
	(AttributeContext.addAttributes): New method.
	(AttributeContext.getEmptySet): New method.
	(AttributeContext.reclaim): New method.
	(AttributeContext.removeAttribute): New method.
	(AttributeContext.removeAttributes): New method.
	* javax/swing/text/Document.java
	(createPosition): Throws BadLocationException.
	(getText): Likewise.
	(remove): Likewise.
	* javax/swing/text/JTextComponent.java
	(getText): Return null if no document is set. Catch
	BadLocationException.
	(getUI): Return ui.
	(updateUI): Simplified.

2004-07-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JButton.java
	(removeNotify): Fixed javadoc.
	(updateUI): Simplified.

2004-07-21  David Jee  <djee@redhat.com>

	* gnu/java/awt/image/ImageDecoder.java
	(startProduction): Only add consumer if it's not added yet.
	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
	(GdkPixbufDecoder): Don't call initState() here.
	(produce): Call initState() here, to ensure area_prepared and
	area_updated signals are properly connected.
	* gnu/java/awt/peer/gtk/GtkImage.java
	(setColorModel): Use equals() to compare ColorModel objects.
	(setPixels): Likewise.
	* java/awt/image/ColorModel.java
	(equals): Fix typo. Use Arrays.equals() to compare int arrays.
	* java/awt/image/RGBImageFilter.java
	(setColorModel): Set consumer's color model.
	(setPixels): Use equals() to compare ColorModel objects.

2004-07-21  Bryce McKinlay  <mckinlay@redhat.com>

	* java/net/URLConnection.java (position): New field.
	(dateFormat1, dateFormat2, dateFormat3): Removed.
	(dateFormats): New field.
	(getHeaderFieldDate): Use new dateFormats array. Re-use parsePosition
	each time instead of re-allocating.
	(initializeDateFormats): Initialize 'dateFormats'.

2004-07-20  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/16591
	* prims.cc (_Jv_RunMain): Don't call _Jv_SetArgs if DISABLE_MAIN_ARGS
	is defined.

2004-07-20  Bryce McKinlay  <mckinlay@redhat.com>

	* java/net/Socket.java (getImpl): Now private. Remove comment.

2004-07-20  Bryce McKinlay  <mckinlay@redhat.com>

	* java/io/BufferedWriter.java (BufferedWriter): Use existing lock
	of chained Writer when calling super-constructor.
	* java/io/FilterWriter.java (FilterWriter): Likewise.
	* java/io/PrintWriter.java (PrintWriter): Likewise.

2004-07-19  Bryce McKinlay  <mckinlay@redhat.com>

	* prims.cc (process_gcj_properties): Don't increment i within LHS
	of assignment.

2004-07-19  Per Bothner  <per@bothner.com>

	Print -verbose:message on "loading", not initialization.
	* java/lang/Class.h (JV_STATE_LOADED, JV_STATE_COMPILED):  Swap order.
	* defineclass.cc (_Jv_ClassReader::parse):  Print message if
	gcj::verbose_class_flag.
	* java/lang/natClass.cc (initializeClass):  Don't print message here.
	* java/lang/natClassLoader.cc (_Jv_WaitForState):  If state was
	_JV_STATE_COMPILED, set to JV_STATE_LOADED and may print message.
	(_Jv_PrepareCompiledClass):  Likewise.

2004-07-18  Matthias Klose  <doko@debian.org>

	* configure.in: Substitute target_noncanonical.
	* configure: Regenerate

2004-07-17  Michael Koch  <konqueror@gmx.de>

	* java/lang/String.java: Fixed javadocs all over.

2004-07-17  Mark Wielaard  <mark@klomp.org>

	* gnu/java/nio/channels/FileChannelImpl.java (truncate): Only truncate
	when size is smaller.
	* java/io/RandomAccessFile.java (setLength): Use truncate for
	shrinking the file and seek plus write for expanding the file.

2004-07-17  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/channels/natFileChannelPosix.cc
	(implTruncate): Always save current position. Only reposition file
	pointer to where we started if not beyond new lenght. Reposition file
	pointer to file length if it points beyond the end of file.

2004-07-17  Mark Wielaard  <mark@klomp.org>

	* javax/swing/Box.java: Put FIXME comment above class declaration.
	* javax/swing/JButton.java: Remove illegal L&F HTML from comments.
	* javax/swing/JCheckBox.java: Likewise.
	* javax/swing/JDialog.java: Likewise.
	* javax/swing/JRadioButton.java: Likewise.
	* javax/swing/JToggleButton.java: Likewise.
	* javax/swing/UIManager.java: Likewise.
	* javax/swing/border/TitledBorder.java: Likewise.
	* javax/swing/plaf/basic/BasicLabelUI.java: Likewise.
	* javax/swing/plaf/basic/BasicLookAndFeel.java: Likewise.
	* javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java: Likewise.
	* javax/swing/plaf/basic/BasicProgressBarUI.java: Likewise.
	* javax/swing/plaf/basic/BasicScrollBarUI.java: Likewise.
	* javax/swing/plaf/basic/BasicSeparatorUI.java: Likewise.
	* javax/swing/text/JTextComponent.java: Likewise.

2004-07-17  Jeroen Frijters  <jeroen@frijters.net>

	* java/net/DatagramPacket.java (setAddress): Removed check for
	null address.

2004-07-17  Michael Koch  <konqueror@gmx.de>

	* java/net/DatagramSocket.java
	(getLocalAddress): Check if socket is bound or not.
	* java/net/Socket.java
	(getLocalAddrss): Check if socket is bound or not.
	(getPort): Return -1 when not connected. Dont check getImpl() for
	null.
	(setReuseAddress): Check if socket is closed.
	(isConnected): Check if getImpl() returns null.

2004-07-17  Mark Wielaard  <mark@klomp.org>

	* java/awt/event/InvocationEvent.java (dispatch): Synchronize
	on notifier object before calling notifyAll().

2004-07-17  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/channels/FileChannelImpl.java
	(finalize): Added javadoc.

2004-07-17  Guilhem Lavaux <guilhem@kaffe.org>

	* java/text/CollationElementIterator.java
	(text_decomposition): Changed type to RuleBasedCollator.CollationElement[]
	(setText): Use ArrayList instead of Vector.

2004-07-17  Michael Koch  <konqueror@gmx.de>

	* java/nio/ByteOrder.java
	(static): Removed. Not needed.
	Thanks to Patrick Reali for noticing.
	* java/nio/charset/CharsetDecoder.java
	(decode): Fix for classpath bug #9177: Reset state before flipping.

2004-07-17  Michael Koch  <konqueror@gmx.de>

	* java/security/Security.java: Fixed javadocs all over.

2004-07-17  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/EmbeddedWindow.java
	(static): Removed.
	(addNotify): Set peer via reflection.
	(setWindowPeer): Removed.
	* gnu/java/awt/natEmbeddedWindow.cc: Removed.
	* Makefile.am (nat_source_files):
	Removed gnu/java/awt/natEmbeddedWindow.cc.
	* Makefile.in: Regenerated.

2004-07-17  Richard Earnshaw  <rearnsha@arm.com>

	* configure.in(ZIP, GCJH): Remove white space around '=' in variable
	assignment.
	* configure: Regenerated.

2004-07-16  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Use build_noncanonical rather than build_alias.
	* configure: Rebuild.

	* configure.in: Eliminate CANADIAN and NULL_TARGET variables
	by logic refactoring.  Move default definition of NATIVE closer
	to first alternate definition.
	* configure: Regenerate.

	* Makefile.am: Set ZIP and GCJH directly using autoconf.
	* Makefile.in, include/Makefile.in, testsuite/Makefile.in,
	gcj/Makefile.in: Regenerate.
	* configure.in: Set ZIP and GCJH.  Remove redundant condition
	in AM_CONDITIONAL(NATIVE,...)
	* configure: Regenerate.

2004-07-15  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: Use target_noncanonical rather than
	target_alias for forward-compatibility with autoconf 2.59.
	* configure: Regenerate.
	* Makefile.am, gcj/Makefile.am, include/Makefile.am,
	testsuite/Makefile.am: Substitute target_noncanonical.
	* Makefile.in, gcj/Makefile.in, include/Makefile.in,
	testsuite/Makefile.in: Regenerate.

	* configure.in: Move as much as possible below AC_CANONICAL_SYSTEM.
	Introduce _GCC_TOPLEV_NONCANONICAL_TARGET.
	* acinclude.m4: Include acx.m4.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2004-07-15  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/16574
	* java/sql/Timestamp.java (dateFormat): Renamed from sdf.
	(decimalFormat): New static variable.
	(sbuf): Likewise.
	(getTime): New. Override Date.getTime().
	(toString): Synchronize. Use decimalFormat to format nanos value
	correctly. Truncate extra zeros.
	(before): Compare getNanos() only if getTime() is equal.
	(after): Likewise.

2004-07-14  Nathanael Nerode  <neroden@gcc.gnu.org>

	* acinclude.m4: "Inline" LIBGCJ_CONFIGURE macro into...
	* configure.in: ...here.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

	* aclocal.m4: Rebuilt with aclocal gcj-1.4.
	* configure: Rebuilt with autoconf 2.13.
	* Makefile.in, gcj/Makefile.in, include/Makefile.in,
	testsuite/Makefile.in: Rebuilt with automake gcj-1.4.

2004-07-14  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/16204
	* Makefile.am (AM_CXXFLAGS): Add -D_FILE_OFFSET_BITS=64 to enable
	large file support.
	* Makefile.in: Rebuilt.
	* testsuite/libjava.lang/LargeFile.java: New test case.
	* testsuite/libjava.lang/LargeFile.out: New file.

2004-07-14  Jerry Quinn  <jlquinn@optonline.net>

	* java/beans/EventHandler.java: Remove debugging statements.

2004-07-14  Jerry Quinn  <jlquinn@optonline.net>

	* java/beans/EventHandler.java: New file.
	* Makefile.am (awt_java_source_files): Add EventHandler.java.
	* Makefile.in, gcj/Makefile.in, include/Makefile.in,
	testsuite/Makefile.in: Regenerate.

2004-07-14  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libjava.jacks/jacks.exp (gcj_jacks_write): Add deprecation
	flag to the gcj_setup.
	(gcj_jacks_run): Check tclsh version and launch jacks directly with
	the tclsh.
	* testsuite/libjava.jacks/jacks.xfail: Update fails to reflect the
	deprecation flag change. 58 XFAILS removed.

2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.host (DIVIDESPEC) [s390*-*-*]: Set to
	-fno-use-divide-subroutine.
	* include/s390-signal.h: Include <ucontext.h> and <limits.h>.
	(HANDLE_FPE): Define.
	(SIGNAL_HANDLER): Change third argument to ucontext_t *.
	(struct old_s390_kernel_sigaction): Likewise for k_sa_handler.
	(HANDLE_DIVIDE_OVERFLOW): Define.

2004-07-14  Michael Koch  <konqueror@gmx.de>
	    Matthias Klose  <doko@debian.org>

	* java/awt/im/InputContext.java: Initialize in, line.

2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* interpret.cc (run): Correctly access libffi return values of
	integral smaller-than-int type; these are implicitly promoted.

2004-07-13  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/7587
	* interpret.cc (compile_mutex): New.
	(_Jv_InitInterpreter): New. Initialize compile_mutex.
	(run): Lock compile_mutex before calling compile() if compilation is
	required.
	* prims.cc (_Jv_CreateJavaVM): Call _Jv_InitInterpreter().
	* include/java-interp.h (_Jv_InitInterpreter): Declare.

2004-07-12  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/15713
	* include/jvm.h (_Jv_value): New union type.
	* gcj/field.h (_Jv_Field): Add new _addr union field variants
	* interperet.cc (run): Use _Jv_value union type and *_addr _Jv_Field
	union members.

2004-07-12  Scott Gilbertson  <scottg@mantatest.com>

	* gnu/awt/xlib/XCanvasPeer.java (createImage): Implement.
	* gnu/awt/xlib/XOffScreenImage.java
	  (XOffScreenImage): Add ImageConsumer interface. Add ColorModel
	  constructor argument. Add constructor using ImageProducer.
	  (getSource): Implement.
	  (imageComplete): New method.
	  (setColorModel): New method.
	  (setDimensions): New method.
	  (setHints): New method.
	  (setPixels): New method.
	  (setProperties): New method.
	* gnu/gcj/xlib/GC.java (drawPoint): New native method.
	* gnu/gcj/xlib/natGC.cc (drawPoint): New native method.

2004-07-11  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/16478
	* prims.cc (_Jv_CreateJavaVM): Fix comment.
	* gnu/gcj/runtime/FinalizerThread.java (init): New. Native.
	(finalizerReady): Now native.
	(run): Likewise.
	(runFinalizers): Removed.
	* gnu/gcj/runtime/natFinalizerThread.cc (run): Implement here. Use
	a primitive lock, and don't hold it while running the finalizers.
	(runFinalizers): Implement. Don't aquire any Java lock.
	(finalizerReady): Use lock primitives to signal finalizer thread.

2004-07-11  Mark Wielaard  <mark@klomp.org>

	Reported by Roman Kennke <roman@ontographics.com> (bug #9331)
	* java/net/URLStreamHandler.java (parseURL): When url file part
	doesn't contain a '/' just ignore context.

2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* include/s390-signal.c (SIGNAL_HANDLER): Use SIGINFO-style prototype.
	(struct old_s390_kernel_sigaction): Likewise for k_sa_handler.
	(MAKE_THROW_FRAME): Do not modify PSW address.
	(INIT_SEGV): Install SIGINFO-style signal handler.
	(INIT_FPE): Likewise.

2004-07-10  Bryce McKinlay  <mckinlay@redhat.com>

	* testsuite/libjava.jacks/jacks.xfail: Updates to reflect current
	status. 21 xfail's removed, 1 added.

2004-07-10  Bryce McKinlay  <mckinlay@redhat.com>

	* gcj/javaprims.h: Regenerate CNI namespace definitions.

2004-07-10  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* java/text/MessageFormat.java
	(formatInternal): Append "{n}" if argument n is unavailable.
	(format(Object, StringBuffer, FieldPosition)): This
	should be equivalent to format(Object[],
	StringBuffer, FieldPosition).

2004-07-09  Bryce McKinlay  <mckinlay@redhat.com>

	* java.util.Calendar.java (cache): New private static field. Cached
	mappings of locales->calendar classes.
	(ctorArgTypes): New private static field. Singleton argument for
	calendar class constructor lookup.
	(getInstance): Cache Locale->Calendar class mappings using HashMap.
	Optimize by bypassing reflection instantiation for the
	GregorianCalendar case.

2004-07-09  Bryce McKinlay  <mckinlay@redhat.com>

	* java/util/Calendar.java: Use getSystemClassLoader as argument for
	ResourceBundle.getBundle() calls.
	* java/util/GregorianCalendar.java: Likewise.
	* java/util/Currency.java: Likewise.
	* java/text/BreakIterator.java: Likewise.
	* java/text/Collator.java: Likewise.
	* java/text/DateFormat.java: Likewise.
	* java/text/DateFormatSymbols.java: Likewise.
	* java/text/DecimalFormatSymbols.java: Likewise.
	* java/text/NumberFormat.java: Likewise.
	* java/awt/Window.java: Likewise.

2004-07-09  Bryce McKinlay  <mckinlay@redhat.com>

	* java/util/ResourceBundle.java (bundleCache): Renamed from
	resourceBundleCache. Update comments.
	(getObject): Don't catch MissingResourceException.
	(getBundle(String)): Remove 'final'. Use system classloader if
	getCallingClassLoader returned null.
	(getBundle(String, Locale)): Likewise.
	(BundleKey): New private class. HashMap key for bundle cache lookup.
	(lookupKey): New. Singleton instance of BundleKey.
	(nullEntry): New. Cache entry to represent failed lookups.
	(getBundle(String, Locale, ClassLoader)): Re-written to use new
	caching strategy, no-allocation lookup, and new tryBundle methods.
	(tryBundle(String, ClassLoader)): New. Load a locale-qualified bundle
	name using given classloader.
	(tryBundle(String, Locale, ClassLoader, boolean): New. Qualify
	baseName for given Locale and attempt to load bundle.

2004-07-09  Bryce McKinlay  <mckinlay@redhat.com>

	* javax/swing/plaf/basic/BasicMenuUI.java (mousePressed): Remove
	illegal protected method calls.

2004-07-09  Bryce McKinlay  <mckinlay@redhat.com>

	Fix or remove some bogus test cases.
	* testsuite/libjava.compile/pr10459_2.java: Removed.
	* testsuite/libjava.compile/pr10459.java: Test using its own method,
	not Object.clone().
	* testsuite/libjava.compile/inner_data.java: Test against its own
	protected field.

2004-07-09  Michael Koch  <konqueror@gmx.de>

	* scripts/unicode-muncher.pl: Updated to version 2.1
	from GNU classpath. Added some clarifications on where to find the
	needed files from www.unicode.org.
	* gnu/gcj/convert/UnicodeCharacterDatabase-3.0.0.html,
	gnu/gcj/convert/UnicodeData-3.0.0.txt:
	Removed, these can directly be downloaded from www.unicode.org if
	needed.
	* gnu/java/lang/CharData.java: Regenerated.
	* include/java-chartables.h: Regenerated.
	* Makefile.am (ordinary_java_source_files):
	Removed gnu/java/lang/CharData.java.
	* Makefile.in: Regenerated.

2004-07-09  Michael Koch  <konqueror@gmx.de>

	* java/security/AccessControlContext.java,
	java/security/SecureClassLoader.java:
	Fixed javadocs.

2004-07-09  Michael Koch  <konqueror@gmx.de>

	* java/io/ObjectInputStream.java (readFields): Use long datatype
	when shifting byte values more then 24 bits left.

2004-07-09  Michael Koch  <konqueror@gmx.de>

	* java/util/zip/DeflaterOutputStream.java,
	java/util/zip/GZIPInputStream.java,
	java/util/zip/GZIPOutputStream.java,
	java/util/zip/InflaterInputStream.java:
	Reformatted. Added javadocs. Reordered all stuff.
	Renamed variables to be more clear.

2004-07-09  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/IIOException.java,
	javax/imageio/event/IIOReadProgressListener.java,
	javax/imageio/event/IIOReadUpdateListener.java,
	javax/imageio/event/IIOReadWarningListener.java,
	javax/imageio/event/IIOWriteProgressListener.java,
	javax/imageio/event/IIOWriteWarningListener.java:
	New files.
	* Makefile.am: Added new files.
	* Makefile.in: Regenerated.

2004-07-09  Guilhem Lavaux <guilhem@kaffe.org>

	* java/text/RuleBasedCollator.java
	(mergeRules): Use ArrayList instead of Vector.
	(subParseString): likewise.
	(parseString): likewise.
	(buildCollationVector): likewise.
	(getCollationKey): likewise.

2004-07-09  Dalibor Topic  <robilad@kaffe.org>

	* java/text/DateFormat.java (parse):
	Improved javadoc. Improved exception message.

2004-07-09  Mark Wielaard  <mark@klomp.org>

	* gnu/java/nio/SelectorImpl.java (select): Call static Thread
	interrupted() method to clear interupt flag of our Thread.

2004-07-09  Dalibor Topic  <robilad@kaffe.org>

	* java/nio/Buffer.java,
	java/nio/ByteBuffer.java,
	java/nio/ByteBufferHelper.java,
	java/nio/ByteBufferImpl.java,
	java/nio/CharBuffer.java,
	java/nio/CharBufferImpl.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/LongBuffer.java,
	java/nio/LongBufferImpl.java,
	java/nio/LongViewBufferImpl.java,
	java/nio/MappedByteBufferImpl.java,
	java/nio/ShortBuffer.java,
	java/nio/ShortBufferImpl.java,
	java/nio/ShortViewBufferImpl.java:
	Fixed javadocs all over. Improved input error
	checking.

	* java/nio/Buffer.java
	(checkForUnderflow, checkForOverflow, checkIndex,
	checkIfReadOnly, checkArraySize): New helper methods
	for error checking.

	* java/nio/ByteBufferHelper.java
	(checkRemainingForRead, checkRemainingForWrite,
	checkAvailableForRead, checkAvailableForWrite): Removed
	no longer needed methods.

2004-07-09  Michael Koch  <konqueror@gmx.de>

	* gnu/regexp/CharIndexedInputStream.java:
	Reordered imports to match classpath.

2004-07-09  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/EmbeddedWindow.java:
	Load native library for setWindowPeer method.

2004-07-08  Randolph Chung  <tausq@debian.org>

	* configure.in (SIGNAL_HANDLER): Use pa-signal.h for hppa.
	* configure: Regenerate.
	* configure.host: Set can_unwind_signal for hppa*-linux.
	* include/pa-signal.h: New file.

2004-07-07  Per Bothner  <per@bothner.com>

	* Makefile.am:  Add rules to build libgij from just gij.cc.

	* include/jvm.h (namespace jcj):  Declare verbose_class_flag
	* java/lang/natClass.cc (gcj::verbose_class_flag):  New variable.
	(initializeClass):  If verbose_class_flag, print message.
	* gij.cc (main):  Handle -verbose:class flag.

2004-07-07  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.host: Enable hash synchronization on Darwin.
	* sysdep/powerpc/locks.h (compare_and_swap): Use '\n' instead of
	';', since this is a comment on Darwin.
	(compare_and_swap_release): Likewise.

2004-07-06  Mohan Embar  <gnustuff@thisiscool.com>

	* java/net/URLStreamHandler.java (parseURL): Canonicalize
	file portion of URL in addition to spec for file: protocol.

2004-07-05  Anthony Green  <green@redhat.com>

	* java/io/File.java (toURI): Merge from Classpath.

2004-07-05  Bryce McKinlay  <mckinlay@redhat.com>

	* gnu/gcj/runtime/VMClassLoader.java (init): Check classpath entry
	before passing to URL constructor. Rethrow any MalformedURLException
	as a RuntimeException. Catch MalformedURLException specifically, not
	all exceptions.

2004-07-05  Bryce McKinlay  <mckinlay@redhat.com>

	* java/util/Locale.java (readObject): Intern strings read from object
	stream.

2004-07-04  Michael Koch  <konqueror@gmx.de>

	* gnu/gcj/runtime/FirstThread.java,
	gnu/gcj/runtime/natFirstThread.cc: Removed.
	* gnu/java/lang/MainThread.java,
	gnu/java/lang/natMainThread.cc: New files.
	* prims.cc (_Jv_RunMain): Use MainThread instead of FirstThread.
	* Makefile.am: Added new files and removed deleted ones.
	* Makefile.in: Regenerated.

2004-07-03  Mark Wielaard  <mark@klomp.org>
	    Anthony Green  <green@redhat.com>

	* java/net/URL.java (getFile): Clarify return value doc.
	(getPath): Return null if file is empty - not empty String.
	(set): Convert protocol to lower case before doing anything.
	Only change the protocol handler if it's different.

2004-07-03  Anthony Green  <green@redhat.com>

	* java/net/URL.java (URL): Convert protocol to lower case before
	doing anything, so we getURLStreamHandler() with the proper value.

2004-07-02  Bryce McKinlay  <mckinlay@redhat.com>

	* java/util/Locale.java (hashcode): Made transient.
	(hashCode): No longer synchronized.
	(equals): Remove comment.
	(writeObject): No longer synchronized. Implement using writeObject
	calls instead of tweaking hashCode field. Update doc.
	(readObject): Implement using readObject calls.

2004-06-26  Geoffrey Keating  <geoffk@apple.com>
	    Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.host (powerpc-*-darwin*): New case, define
	can_unwind_signal.
	* configure.in (*-*-darwin*): New case, point to darwin-signal.h.
	* configure: Regenerate.
	* include/darwin-signal.h: New.

2004-06-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/beans/Statement.java (doExecute): Fix formatting.

2004-06-29  Per Bothner  <per@bothner.com>

	* jni.cc (_Jv_JNI_NewGlobalRef, JNICALL _Jv_JNI_DeleteGlobalRef,
	etc etc):  Remove needless parenthesis, which causes __stdcall__
	attribute on MinGW to get ignored.

2004-06-29  Bryce McKinlay  <mckinlay@redhat.com>

	* testsuite/libjava.compile/PR16249.java: New test case. PR gcc/16249.

2004-06-28  Bryce McKinlay  <mckinlay@redhat.com>

	* testsuite/libjava.jacks/jacks.xfail: Remove 8.1.3-superclass-6.

2004-06-28  Jerry Quinn  <jlquinn@optonline.net>

	* java/beans/Expression.java: New file.
	* java/beans/Statement.java: New file.
	* Makefile.am: Added new files.
	* Makefile.in: Re-generate.

2004-06-27 Mark Wielaard  <mark@klomp.org>

	* java/io/FilePermission.java (usingPerms): Removed.
	(actionsString): Made final.
	(cachePerms): Renamed to checkPerms.
	(checkPerms): Renamed from cachePerms. Call trim() and toLowerCase()
	on action String.
	(FilePermission): Check arguments, call checkPerms().
	(equals): Remove cachePerms() call.
	(implies): Likewise.

2004-06-27  Mark Wielaard  <mark@klomp.org>

	* gnu/java/net/protocol/http/Connection.java (userAgent): New static
	final field.
	(sendRequest): Use new field in user-agent http agent.

2004-06-27  Mark Wielaard  <mark@klomp.org>

	* java/awt/EventQueue.java (postEvent): Throw NullPointerException
	when argument is null.

2004-06-26  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(ok_clicked): Use Ljava/lang/String; not Ljava.lang.String; in JNI
	GetMethodID call.
	(cancel_clicked): Likewise.

2004-06-26  Andreas Tobler  <a.tobler@schweiz.ch>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
	(init_dpi_conversion_factor): Check for int_dpi < 0 in case gtk-xft-dpi
	can not calculate the right value.
	(dpi_changed_cb): Likewise. Mark *pspec as unused.

2004-06-24  Bryce McKinlay  <mckinlay@redhat.com>

	* testsuite/libjava.jacks/jacks.xfail: Remove
	15.9.1-qualified-concrete-20.

2004-06-22  Bryce McKinlay  <mckinlay@redhat.com>

	* gnu/gcj/convert/BytesToUnicode.java (getDecoder): Pass original
	encoding name to iconv.
	* gnu/gcj/convert/UnicodeToBytes.java (getEncoder): Likewise.

2004-06-22  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/16134:
	* gnu/gcj/convert/BytesToUnicode.java (getDecoder): Canonicalize
	encoding name before cache lookup. Thanks to Hannes Wallnoefer.
	* gnu/gcj/convert/UnicodeToBytes.java (getEncoder): Likewise.

2004-06-21  Andrew Haley  <aph@redhat.com>

	* java/io/ObjectOutputStream.java: Add DEBUG statements
	everywhere.
	(dumpElementln): New method.
	(depth): New field.
	* java/io/ObjectInputStream.java
	(currentClassLoader): Make native.
	(callersClassLoader): New field.
	(depth): New field.
	(readObject): ENDBLOCKDATA is generated if the class has a write
	method, not if it has a read method.
	(readObject): Save and restore this.currentObject and
	this.currentObjectStreamClass around calls to callReadMethod().
	* java/io/natObjectInputStream.cc (getCallersClassLoader): New
	method.

2004-06-18  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libjava.jni/jni.exp (gcj_jni_test_one): Add lgcc_s for
	darwin.

2004-06-18  Ranjit Mathew  <rmathew@hotmail.com>

	* prims.cc (_Jv_CreateJavaVM): Install SEGV and FPE handlers,
	if desired, before the default class loader is initialised.
	Call INIT_SEGV only if HANDLE_SEGV is defined.

2004-06-18  Ranjit Mathew  <rmathew@hotmail.com>

	* gnu/gcj/runtime/VMClassLoader.java (init): Add extensions
	directory only if it actually exists.

2004-06-18  Graydon Hoare  <graydon@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c:
	Fix up non-ansi comments.

2004-06-18  Ranjit Mathew  <rmathew@hotmail.com>

	* javax/swing/text/AbstractDocument.java: Adding missing import
	for javax.swing.event.EventListenerList.
	* javax/swing/text/DefaultCaret.java: Likewise.

2004-06-17  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JToolBar.java
	(name): Removed.
	(JToolBar): Use Component.setName(String) instead of doing it all
	alone.
	* javax/swing/Timer.java
	(queueEvent): Added missing modifier.

2004-06-17  Olga Rodimina  <rodimina@redhat.coom>

	* Makefile.am: Added new file.
	* Makefile.in: Re-generate.
	* javax/swing/JMenu.java:
	(insertSeparator): Implemented.
	* javax/swing/JPopupMenu.java:
	(JPopupMenu.Separator): Implemented.
	* javax/swing/MenuSelectionManager.java:
	(processMouseEvent): Use java.awt.Component
	for event source instead of javax.swing.JComponent.
	* javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java:
	New File. Implemented.

2004-06-16  David Jee  <djee@redhat.com>

	* java/awt/GridBagLayout.java
	(GetLayoutInfo): Adjust cell sizes iff parent size is not zero.
	Make sure pos_x and pos_y are never negative.

2004-04-16  Andrew Overholt  <overholt@redhat.com>

	* Makefile.am: Add new file.
	* Makefile.in: Re-generate.
	* javax/swing/JToolBar.java
	Partially implemented.
	* javax/swing/plaf/basic/BasicToolBarUI.java
	New file. Partially implemented.

2004-06-16  Graydon Hoare  <graydon@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(setComposite): Accept AlphaComposite arguments.
	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
	(createBufferedImage): Add new overloads.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(createImage): Use GdkPixbufDecoder.createBufferedImage
	when useGraphics2D() is true.
	(getImage): Delegate to createImage.
	* javax/swing/JList.java
	(isSelectionEmpty):
	(getFirstVisibleIndex):
	(getLastVisibleIndex):
	(setSelectedValue):
	(ensureIndexIsVisible): New methods.
	* javax/swing/Timer.java: Reimplement.

2004-06-16  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/AbstractDocument.java
	(AbstracElement): Made public, implements java.io.Serializable.
	(AttributeContext): Made public.
	(BranchElement): Likewise.
	(Content): Likewise.
	(DefaultDocumentEvent): Made public, extends
	javax.swing.undo.CompoundEdit.
	(ElementEdit): Made public, extends
	javax.swing.undo.AbstractUndoableEdit.
	(LeafElement): Made public.
	(LeafElement.LeafElement): Made public.

2004-06-16  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/JTextComponent.java: Totally reworked. Removed many
	methods (that were obviously never be intended to get included hi this
	class. Added some methods too.

2004-06-16  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/PlainDocument.java
	(serialVersionUID): New constant.
	(lineLimitAttribute): Likewise.
	(tabSizeAttribute): Likewise.
	(tabSize): New field.
	(PlainDocument): Made public.
	(PlainDocument): New constructor.

2004-06-16  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/AbstractDocument.java
	(insertString): Throws BadLocationException.
	* javax/swing/text/Document.java
	(insertString): Likewise.
	* javax/swing/text/JTextComponent.java:
	Javadocs and comments cleaned up.

2004-06-16  Michael Koch  <konqueror@gmx.de>

	* javax/swing/event/UndoableEditListener.java: Reformatted.
	* javax/swing/text/AbstractDocument.java
	(AbstractDocument): Implements java.io.Serializable.
	(doc_list): Removed.
	(undo_list): Removed.
	(AbstractElement.serialVerionUID): New field.
	(BranchElement.serialVerionUID): Likewise.
	(DefaultDocumentEvent.serialVerionUID): Likewise.
	(ElementEdit.serialVerionUID): Likewise.
	(LeafElement.serialVerionUID): Likewise.
	(serialVerionUID): Likewise.
	(BAD_LOCATION): New constant.
	(BidiElementName): Likewise.
	(ContentElementName): Likewise.
	(ParagraphElementName): Likewise.
	(SectionElementName): Likewise.
	(ElementNameAttribute): Likewise.
	(AbstractDocument): Made protected.
	(AbstractDocument): New construtor.
	(listenerList): New field.
	(fireChangedUpdate): Implemented.
	(fireInsertUpdate): Likewise.
	(fireRemoveUpdate): Likewise.
	(fireUndoableEditUpdate): Likewise.
	(getListeners): Likewise.
	(addDocumentListener): Likewise.
	(removeDocumentListener): Likewise.
	(addUndoableEditListener): Likewise.
	(removeUndoableEditListener): Likewise.
	(getDocumentListeners): New method.
	(getUndoableEditListeners): Likewise.
	(getAsynchronousLoadPriority): Made public.
	(getBidiRootElement): Likewise.
	(setAsynchronousLoadPriority): Likewise.
	(setDocumentProperties): Likewise.
	* javax/swing/text/BadLocationException.java
	(serialVerionUID): New field.
	* javax/swing/text/DefaultCaret.java
	(changeEvent): New field.
	(listenerList): Likewise.
	(changes): Removed.
	(addChangeListener): Reimplemented.
	(removeChangeListener): Likewise.
	(getListeners): New method.
	(getChangeListeners): Likwise.
	(getComponent): Likewise.
	* javax/swing/text/GapContent.java
	(GapContent): Implements java.io.Serializable.
	(serialVerionUID): New field.

2004-06-16  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTree.java
	(treeModel): New field.
	(JTree): New constructors, one existing one made public.
	(createTreeModel): New method.
	(addTreeExpansionListener): Likewise.
	(removeTreeExpansionListener): Likewise.
	(getTreeExpansionListeners): Likewise.
	(fireTreeCollapsed): Likewise.
	(fireTreeExpanded): Likewise.
	(addTreeSelectionListener): Likewise.
	(removeTreeSelectionListener): Likewise.
	(getTreeSelectionListeners): Likewise.
	(fireValueChanged): Likewise.
	(addTreeWillExpandListener): Likewise.
	(removeTreeWillExpandListener): Likewise.
	(getTreeWillExpandListeners): Likewise.
	(fireTreeWillCollapse): Likewise.
	(fireTreeWillExpand): Likewise.

2004-06-16  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTree.java: Reformatted.

2004-06-16  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTextArea.java: New file.
	* javax/swing/JTextField.java
	(actions): Removed.
	(notifyAction): New constant.
	(columns): New field.
	(JTextField): New constructors.
	(createDefaultModel): New method.
	(addActionListener): Reimplmemented.
	(removeActionListener): Reimplemented.
	(getActionListeners): New method.
	(fireActionPerformed): New method.
	(getColumns): New method.
	(setColumne): New method.
	* javax/swing/text/JTextComponent.java
	(AccessibleJTextComponent.serialVersionUID): New field.
	(serialVersionUID): Likewise.
	(DEFAULT_KEYMAP): Likewise.
	(FOCUS_ACCELERATOR_KEY): Likewise.
	(doc): Made private.
	(icon_gap): Likewise.
	(icon): Likewise.
	(align): Likewise.
	(JTextComponent): Some constructors removed.
	(getScrollableTracksViewportHeight): New method.
	(getScrollableTracksViewportWidth): Likewise.
	* Makefile.am: Added javax/swing/JTextArea.java.
	* Makefile.in: Regenerated.

2004-06-15  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/ImageIcon.java (ImageIcon): New constructor.
	* javax/swing/JFrame.java (defaultLookAndFeelDecorated): New property.
	* javax/swing/JViewport.java
	(getExtentSize): Return size rather than preferred size.
	(toViewCoordinates): New methods.
	(getViewSize): Return size rather than preferred size.
	(setViewSize): Note view size as set.
	* javax/swing/ViewportLayout.java (layoutContainer): Reimplement.
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(getPreferredSize): Don't redo layout.
	* javax/swing/plaf/basic/BasicViewportUI.java
	(paint): Translate image properly and eat exceptions.

2004-06-15  Kim Ho  <kho@redhat.com>

	* javax/swing/JTabbedPane.java
	(setComponent): Remove old component and
	add new component.
	(setSelectedIndex): Don't operate on the
	components if they're null. Don't set index
	on the model if the index is the same.
	(insertTab): Don't add or hide the component
	if it's null. Repaint the container.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	Change colors for TabbedPane.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(mousePressed): Re-layout and paint the component.
	(layoutContainer): Don't set location on the view.
	(ScrollingViewport::paint): Remove.

2004-06-14  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(gtkWidgetDispatchKeyEvent): Change warning message to comment.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (drawString):
	Wrap baseline y value in PANGO_PIXELS macro, rather than simply
	dividing by PANGO_SCALE.  Call gdk_flush before leaving GDK
	critical region.
	(drawLine): Call gdk_flush before leaving GDK critical region.
	(fillRect): Likewise.
	(drawRect): Likewise.
	(copyArea): Likewise.
	(copyPixmap): Likewise.
	(clearRect): Likewise.
	(drawArc): Likewise.
	(drawPolyline): Likewise.
	(drawPolygon): Likewise.
	(fillPolygon): Likewise.
	(fillArc): Likewise.
	(drawOval): Likewise.
	(fillOval): Likewise.

	* gnu/java/awt/peer/gtk/GdkFontMetrics.java (initState): Add
	style parameter.
	(GdkFontMetrics): Add style argument to initState call.
	(stringWidth(String,int,int,String)): Add style parameter.
	(stringWidth(String)): Add style argument to stringWidth call.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c
	(initState): Set pango font style and weight based on AWT style
	parameter.  Pass default GTK language to
	pango_context_get_metrics.  Use PANGO_PIXELS macro rather than
	simply dividing by PANGO_SCALE.
	(stringWidth): Set pango font style and weight based on AWT style
	parameter.

	* java/awt/Button.java (next_button_number): New field.
	(paramString): Change output.
	(generateName): New method.
	(getUniqueLong): New method.

2004-06-14  Kim Ho  <kho@redhat.com>

	* javax/swing/JTabbedPane.java:
	(setComponentAt): Set the component, not
	the enabled status.
	* javax/swing/plaf/basic/BasicDesktopIconUI.java
	(actionPerformed): Let deiconize catch exception.

2004-06-14  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/JPopupMenu.java:
	(setVisible): Corrected location of a
	heavyweight popup menu.

2004-06-14  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/MenuSelectionManager.java:
	Ran through jalopy to fix formatting style.

2004-06-14  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/JLayeredPane.java:
	(remove): Revalidate and repaint layered pane after
	the component was removed.
	javax/swing/JMenu.java:
	(setVisible): Display popup menu at the user location,
	if one was set by the user.
	(setMenuLocation): Reimplemented. Fixed javadoc.
	* javax/swing/JMenuBar.java: Added javadoc.
	(BORDER_PAINTED_CHANGED_PROPERTY): New Property.
	(MODEL_CHANGED_PROPERTY): New Property.
	(isSelected): Implemented.
	(setBorderPainted): Fire PropertyChangeEvent
	if paintBorder property changes.
	(setSelected): Implemented.
	(setSelectionModel): Implemented.
	* javax/swing/JPopupMenu.java: Added Javadoc
	(pack): Implemented.
	(setVisible): Reimplemented.
	(show): Fixed location.
	(JPopupMenu.LigthWeightPopup): Reimplemented to use
	Container instead of JPanel.
	* javax/swing/MenuSelectionManager.java: Added Javadocs.
	(clearSelectedPath): Reimplemented to clear selectedPath
	in reverse order.
	(processMouseEvent): Reimplemented.
	(setSelectedPath): Fire stateChange event indicating that
	selected menu path has changed.
	(getPath): Change to use ArrayList instead of Vector.
	* javax/swing/plaf/basic/BasicMenuBarUI.java:
	(installUI): call installKeyboardActions().
	(uninstallUI): call uninstallKeyboardActions().

2004-06-13  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/DefaultCaret.java,
	javax/swing/text/BadLocationException.java:
	Reformatted.

2004-06-12  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java (DEFAULT_ROWS,
	DEFAULT_COLS): New variables.
	(create): Don't allow 0 rows or 0 columns.  Instead, set the
	values to DEFAULT_ROWS or DEFAULT_COLS.
	(getMinimumSize): Likewise.
	(getPreferredSize): Likewise.
	(minimumSize): Likewise.
	(preferredSize): Likewise.
	(create): Set peer's editable state.
	* java/awt/TextArea.java (TextArea()): Set rows and columns to
	zero.  Update javadocs.
	(TextArea(String)): Likewise.
	(TextArea(int,int)): Fix javadocs.
	(TextArea(String,int,int,int)): Only throw exception if one of
	rows or columns is zero.  Fix javadocs.

2004-06-11  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/AWTEvent.java (toString): Handle MenuComponents in
	addition to Components.

	* java/awt/MenuItem.java (dispatchEventImpl): If the event
	wasn't consumed by normal processing, send it to the parent
	menu.

	* gnu/java/awt/peer/gtk/GtkImagePainter.java
	(setPixels(int,int,int,int,ColorModel,int[],int,int)): Remove
	translation.

2004-06-11  David Jee  <djee@redhat.com>

	* java/awt/MediaTracker.java
	(addImage(Image,int)): Call imageUpdate() to udpate image status.
	(addImage(Image,int,int,int)): Likewise.

2004-06-11  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/AbstractDocument.java,
	javax/swing/text/Document.java,
	javax/swing/text/GapContent.java,
	javax/swing/text/JTextComponent.java,
	javax/swing/text/PlainDocument.java:
	Reformatted.

2004-06-11  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JRootPane.java
	(AccessibleJRootPane.serialVersionUID): New field.
	(AccessibleJRootPane.AccessibleJRootPane): New constructor.
	(AccessibleJRootPane.getAccessibleRole): New method.
	(RootLayout): Implements Serializable.
	(RootLayout.serialVersionUID): New field.
	(RootLayout.RootLayout): New constructor.
	(setJMenuBar): Made public.
	(getJMenuBar): Likewise.
	(JRootPane): Likewise.
	(createContentPane): Likewise.
	(createGlassPane): Likewise.
	(createLayeredPane): Likewise.

2004-06-11  Michael Koch  <konqueror@gmx.de>

	* javax/swing/SwingUtilities.java
	(isLeftMouseButton): Fixed javadoc.
	(isMiddleMouseButton): Likewise.
	(isRightMouseButton): Likewise.

2004-06-11  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JScrollPane.java
	(serialVersionUID): New field.
	(columnHeader): Made protected.
	(rowHeader): Likewise.
	(lowerLeft): Likewise.
	(lowerRight): Likewise.
	(upperLeft): Likewise.
	(upperRight): Likewise.
	(horizontalScrollBar): Likewise.
	(horizontalScrollBarPolicy): Likewise.
	(verticalScrollBar): Likewise.
	(verticalScrollBarPolicy): Likewise.
	(viewport): Likewise.

2004-06-11  Michael Koch  <konqueror@gmx.de>

	* javax/swing/LookAndFeel.java: Fixed javadocs.

2004-06-11  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JEditorPane.java: Fixed javadocs.
	(JEditorPane): Removed redundant call to to this().
	(fireHyperlinkUpdate): Implemented.

2004-06-10  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/JMenu.java: Fixed file name
	in the file comment.

2004-06-10  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/JMenu.java: Added javadoc.
	(JMenu): Added MenuChangeListener to listen to
	ChangeEvents occuring in menu's model.
	(insert): Throw IllegalArgumentException if
	index is less than 0
	(setSelected): Reimplement.
	(setPopupMenuVisible): Call menu's model isEnabled()
	(setDelay): Throw IllegalArgumentException if
	given amount of delay is less than 0.
	(createActionComponent): Implemented.
	(createActionChangeListener): Implemented.
	(addSeparator): Implemented.
	(getItem): Throw IllegalArgumentException if index is
	less than 0.
	(getItemCount): Implemented.
	(fireMenuSelected): Changed to use menuEvent.
	(fireMenuDeselected): Likewise.
	(fireMenuCanceled): Likewise.
	(setAccelerator): Changed to throw an error if this
	method is used.
	(doClick): Implemented.
	(JMenu.ActionChangedListener): New inner class to handle
	PropertyChangeEvents occuring in the actions associated with menu.
	* javax/swing/plaf/basic/BasicMenuUI.java: Added javadoc.
	(BasicMenuUI): Added PropertyChangeListener to the menu.
	(createChangeListener): Implemented.
	(createMenuDragMouseListener): Likewise.
	(createMenuKeyListener): Likewise.
	(createPropertyChangeListener): Likewise.
	(uninstallListeners): Likewise.
	(BasicMenuUI.MouseInputHandler): Reimplemented.
	(BasicMenuUI.PropertyChangeHandler): New class. Not implemented yet.
	(BasicMenuUI.ChangeHandler): Likewise.
	(BasicMenuUI.MenuDragMouseHandler): Likewise.
	(BasicMenuUI.MenuKeyHandler): Likewise.

2004-06-10  David Jee  <djee@redhat.com>

	* java/awt/MediaTracker.java
	(imageUpdate): Only do notifyAll() if the image is complete.

2004-06-10  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/JApplet.java:
	(getJMenuBar): Made public.
	(setJMenuBar): Likewise.
	* javax/swing/JFrame.java:
	(getJMenuBar): Made public.
	(setJMenuBar): Likewise.
	* javax/swing/JWindow.java:
	(getJMenuBar): Removed.
	(setJMenuBar): Removed.

2004-06-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JEditorPane.java
	(createEditorKitForContentType): Fixed visibility.
	(fireHyperlinkUpdate): Likewise.
	(getContentType): Likewise.
	(getEditorKit): Likewise.
	(getEditorKitForContentType): Likewise.
	(getPage): Likewise.
	(read): Likewise.
	(registerEditorKitForContentTyoe): Likewise.
	(replaceSelection): Likewise.
	(setContentType): Likewise.
	(setEditorKit): Likewise.
	(setPage): Likewise.

2004-06-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/Timer.java
	(Timer): New constructor.
	* javax/swing/plaf/basic/BasicProgressBarUI.java
	(animationTimer): Don't initialize at construction.
	(startAnimationTimer): Added since tag.
	(stopAnimationTimer): Likewise.
	(installUI): Use new Timer constructor.
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(installUI): Likewise.
	* javax/swing/plaf/basic/BasicSliderUI.java
	(installUI): Likewise.

2004-06-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/ButtonGroup.java
	(serialVersionUID): Made private.
	(buttons): Renamed from v, added javadoc.
	(sel): Added javadoc.
	(ButtonGroup): Likewise.
	(add): Likewise.
	(remove): Likewise.
	(getElements): Likewise.
	(getSelection): Likewise.
	(setSelected): Likewise.
	(isSelected): Likewise.
	(getButtonCount): Likewise.

2004-06-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/ButtonGroup.java,
	javax/swing/ImageIcon.java,
	javax/swing/JEditorPane.java,
	javax/swing/JRootPane.java,
	javax/swing/JTextField.java,
	javax/swing/LookAndFeel.java,
	javax/swing/plaf/basic/BasicTextUI.java:
	Reindented.

2004-06-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/Style.java: Added javadocs.

2004-06-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JComponent.java
	(fireVetoableChange): Removed redundant cast.
	* javax/swing/JLabel.java
	(getDisabledIcon): Save icon for next call.

2004-06-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/KeyStroke.java
	(getKeyStroke(char,boolean)): Marked deprecated.

2004-06-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/DefaultCellEditor.java,
	javax/swing/GrayFilter.java,
	javax/swing/event/DocumentEvent.java,
	javax/swing/text/JTextComponent.java,
	javax/swing/text/MutableAttributeSet.java:
	Reindented.

2004-06-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/BorderUIResource.java:
	Added serialVersionUID all over.

2004-06-10  Sascha Brawer  <brawer@dandelis.ch>

	* javax/swing/undo/UndoManager.java: Re-written from scratch.

2004-06-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/table/DefaultTableCellRenderer.java
	(noFocusBorder): Initialize directly.

2004-06-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicArrowButton.java
	(setDirection): Use method argument.

2004-06-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/BorderUIResource.java,
	javax/swing/plaf/ComponentUI.java,
	javax/swing/undo/CompoundEdit.java,
	javax/swing/undo/StateEdit.java:
	Fixed javadocs all over.

2004-06-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/DefaultButtonModel.java
	(ARMED): Made public final, fixed value.
	(ENABLED): Likewise.
	(PRESSED): Likewise.
	(ROLLOVER): Likewise.
	(SELECTED): Likewise.
	(stateMask): Initialize directly.
	(listenerList): Likewise.
	(mnemonic): Likewise.
	(fireStateChanged): Removed argument, use changeEvent as event.
	All places where this method is called are fixed too.
	(getActionCommant): Fixed javadoc.
	(setGroup): Fixed javadoc.
	(getGroup): New method.

2004-06-09  Olga Rodimina <rodimina@redhat.com>

	* javax/swing/AbstractButton.java
	(AbstractButton): Use init() to initialize the button.
	(init): New Method. Initializes AbstractButton.
	* javax/swing/JMenuItem.java: Documented.
	(JMenuItem): Reimplemented.
	(init): Implemented.
	(setEnabled): Changed to call super.setEnabled()
	(processMouseEvent): Reimplemented.
	(fireMenuKeyPressed): Implemented.
	(fireMenuKeyReleased): Implemented.
	(fireMenuKeyTyped): Implemented.
	(menuSelectionChanged): disarm the model if the menu item was
	deselected.
	* javax/swing/plaf/basic/BasicMenuItemUI.java:Documented.
	(getPath): Change to use ArrayList instead of Vector.
	(getPreferredSize): Renamed variable.
	(paintMenuItem): Paint margin area of menu item.
	(MouseInputHandler.mouseEntered): Set selection in MenuSelectionManager.
	(MouseInputHandler.mouseReleased): Check if mouse was pressed inside
	menu item's bounds before clearing the selection.

2004-06-09  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkTextComponentPeer.java
	(GtkTextComponentPeer): Set caret position to 0.
	* java/awt/TextComponent.java
	(setText): Set caret position to 0.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_addExposeFilter):
	Handle GtkScrolledWindow separately. Fix signal handler blocking.
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_removeExposeFilter):
	Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create): Make cursor
	visible.

2004-06-09  Kim Ho  <kho@redhat.com>

	* Makefile.am: New files
	* Makefile.in: Regenerated
	* java/awt/Container.java
	(getComponentAt): Removed.
	* javax/swing/AbstractAction.java
	(ENABLED_PROPERTY): New property.
	(putValue): Fire PropertyChangeEvents.
	(setEnabled): ditto.
	(firePropertyChange): Javadoc and implement
	convenience method.
	* javax/swing/AbstractButton.java
	(setAction): Don't create PropertyChangeListener
	if new Action is null.
	(setIcon): Don't set icon till after comparing
	it.
	(configurePropertiesFromAction): Check mnemonic
	key before calling intValue().
	(createActionPropertyChangeListener): Check
	properties rather than bulk change.
	* javax/swing/DefaultDesktopManager.java:
	Implement.
	* javax/swing/DesktopManager.java:
	Jalopy and javadoc.
	* javax/swing/JComponent.java
	(fireVetoableChange): Implement.
	(paintImmediately): Use root component.
	* javax/swing/JDesktopPane.java: Implement
	* javax/swing/JInternalFrame.java: Implement
	* javax/swing/JLabel.java
	(getDisabledIcon): Return grayscaled icon if
	no disabled icon specified.
	* javax/swing/JMenuBar.java
	(getComponentAtIndex): Use getComponent
	* javax/swing/JOptionPane.java
	(getDesktopPaneForComponent): Use SwingUtilities'
	getAncestorOfClass
	(getFrameForComponent): ditto.
	* javax/swing/JSplitPane.java
	(remove): Use getComponent.
	* javax/swing/SwingUtilities.java
	(convertPoint): Implement.
	* javax/swing/plaf/basic/BasicButtonUI.java
	(paintButtonNormal): Check opaqueness before
	filling background.
	* javax/swing/plaf/basic/BasicDesktopIconUI.java:
	Implement
	* javax/swing/plaf/basic/BasicDesktopPaneUI.java:
	Implement.
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java:
	Implement.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java:
	Implement.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Change InternalFrame and Desktop colors.

2004-06-09  David Jee  <djee@redhat.com>

	* java/awt/Container.java
	(remove): Do not set component to invisible.

2004-06-09  Michael Koch  <konqueror@gmx.de>

	* javax/swing/tree/DefaultMutableTreeNode.java
	(getLeafCount): Renamed enum to e.

2004-06-09  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicSplitPaneDivider.java
	(positionForMouseEvent): Removed redundant semicolon.
	(continueDrag): Use method arguments.

2004-06-09  Michael Koch  <konqueror@gmx.de>

	* javax/swing/border/TitledBorder.java,
	javax/swing/filechooser/FileSystemView.java,
	javax/swing/plaf/basic/BasicButtonListener.java,
	javax/swing/plaf/basic/BasicGraphicsUtils.java,
	javax/swing/plaf/basic/BasicLabelUI.java,
	javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java,
	javax/swing/plaf/basic/BasicScrollBarUI.java,
	javax/swing/plaf/basic/BasicScrollPaneUI.java,
	javax/swing/plaf/basic/BasicSliderUI.java,
	javax/swing/plaf/basic/BasicTabbedPaneUI.java,
	javax/swing/plaf/basic/BasicToggleButtonUI.java,
	javax/swing/table/JTableHeader.java,
	javax/swing/text/AbstractDocument.java,
	javax/swing/text/DefaultCaret.java,
	javax/swing/text/StyledEditorKit.java,
	javax/swing/tree/DefaultTreeCellEditor.java:
	Reworked import statements.

2004-06-08  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/Box.java: Temporarily comment out code
	broken due to visibility bug.

2004-06-09  Michael Koch  <konqueror@gmx.de>

	* javax/swing/ImageIcon.java
	(ImageIcon): Added missing constructor.

2004-06-08  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JToggleButton.java
	(JToggleButton): New constructor.
	(getAccessibleContext): Moved documentation into javadoc.
	(getUIClassID): Likewise.

2004-06-08  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractButton.java
	(getDisabledIcon): Create disabled icon if none exists yet.

2004-06-08  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initClassDefaults): Added FormattedTextFieldUI.
	(loadResourceBundle): Renamed enum to e.

2004-06-08  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(paintIcon): Simplified.
	(paintText): Paint disabled button correctly.

2004-06-08  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JComponent.java
	(createToolTip): Use official JToolTip API.

2004-06-08  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JToolTip.java
	(JToolTip): No arguments in API.
	(setTipText): New method.

2004-06-08  Michael Koch  <konqueror@gmx.de>

	* javax/swing/SwingUtilities.java
	(isLeftMouseButton): New method.
	(isMiddleMouseButton): New method.
	(isRightMouseButton): New method.

2004-06-08  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractButton.java,
	javax/swing/CellRendererPane.java,
	javax/swing/JCheckBoxMenuItem.java,
	javax/swing/JColorChooser.java,
	javax/swing/JComboBox.java,
	javax/swing/JComponent.java,
	javax/swing/JDesktopPane.java,
	javax/swing/JFileChooser.java,
	javax/swing/JMenu.java,
	javax/swing/JMenuItem.java,
	javax/swing/JOptionPane.java,
	javax/swing/JPasswordField.java,
	javax/swing/JPopupMenu.java,
	javax/swing/JProgressBar.java,
	javax/swing/JRadioButtonMenuItem.java,
	javax/swing/JScrollBar.java,
	javax/swing/JSeparator.java,
	javax/swing/JSlider.java,
	javax/swing/JSplitPane.java,
	javax/swing/JTabbedPane.java,
	javax/swing/JTextField.java,
	javax/swing/JToolBar.java,
	javax/swing/text/JTextComponent.java:
	Fixed all constructors of accessibility classes.

2004-06-08  Michael Koch  <konqueror@gmx.de>

	* javax/swing/ScrollPaneLayout.java: Renamed all memeber variables all
	over.

2004-06-08  Michael Koch  <konqueror@gmx.de>

	* javax/swing/Box.java
	(AccessibleBoxFiller): Extends AccessibleAWTComponent.
	(AccessibleBoxFiller.serialVersionUID): New member variable.
	* javax/swing/DefaultButtonModel.java
	(stateMask): Made protected.
	(listenerList): Likewise.
	(changeEvent): Likewise.
	(group): Likewise.
	(mnemonic): Likewise.
	(actionCommand): Likewise.
	(getListeners): New method.
	(getActionListeners): New method.
	(getItemListeners): New method.
	(getChangeListeners): New method.
	(fireItemStateChanged): Simplified.
	(fireActionPerformed): Simplified.
	(fireStateChanged): Simplified.
	* javax/swing/JFrame.java
	(JFrame): Implements WindowContants.
	(HIDE_ON_CLOSE): Removed.
	(EXIT_ON_CLOSE): Removed.
	(DISPOSE_ON_CLOSE): Removed.
	(DO_NOTHING_ON_CLOSE): Removed.
	(processWindowEvent): Exit with code 0.
	(setDefaultCloseOperation): Do security check before setting value.
	* javax/swing/JOptionPane.java
	(message): Initialize only in constructor.
	* javax/swing/JToolTip.java: Removed unused imports.
	* javax/swing/JViewport.java
	(serialVersionUID): New member variable.
	(SIMPLE_SCROLL_MODE): Made final, fixed value.
	(BLIT_SCROLL_MODE): Likewise.
	(BACKINGSTORE_SCROLL_MODE): Likewise.
	(scrollUnderway): Made protected.
	(isViewSizeSet): Likewise.
	* javax/swing/ListModel.java: Fixed javadoc.
	* javax/swing/Popup.java: Likewise.
	* javax/swing/RepaintManager.java
	(paintDirtyRegions): Don't use internal classes of
	java.util.AbstractMap.
	* javax/swing/ScrollPaneConstants.java: Reindented.
	* javax/swing/ScrollPaneLayout.java
	(viewport): Made protected.
	(verticalScrollBar): Made protected, renamed to vsb.
	(horizontalScrollBar): Made protected, renamed to hsb.
	(rowHeader): Made protected, renamed to rowHead.
	(columnHeader): Made protected, renamed to colHead.
	(lowerLeft): Made protected.
	(lowerRight): Made protected.
	(upperLeft): Made protected.
	(upperRight): Made protected.
	(verticalScrollBarPolicy): Made protected, renamed to vsbPolicy.
	(horizontalScrollBarPolicy): Made protected, renamed to hsbPolicy.

2004-06-07  Bernd Schmidt  <bernds@btinternet.com>

	* java/awt/MediaTracker.java (imageUpdate): Only set status to
	LOADING if flags has SOMEBITS set.

2004-06-07  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractButton.java: Reorganized imports.
	* javax/swing/ActionMap.java: Likewise.
	* javax/swing/DefaultButtonModel.java: Likewise.
	* javax/swing/DefaultListModel.java: Likewise.
	* javax/swing/ImageIcon.java: Likewise.
	(serialVersionUID): New member variable.
	* javax/swing/JComboBox.java: Reorganized imports.
	* javax/swing/JComponent.java: Likewise.
	(ui): Made protected.
	(listenerList): Made protected.
	(TOOL_TIP_TEXT_KEY): New constant.
	(scrollRectToVisible): Removed redundant null check.
	* javax/swing/JFrame.java: Reorganized imports.
	* javax/swing/JInternalFrame.java: Reorganized imports.
	* javax/swing/JProgressBar.java: Likewise.
	* javax/swing/JRootPane.java: Likewise.
	* javax/swing/JScrollBar.java: Likewise.
	* javax/swing/JSeparator.java: Likewise.
	* javax/swing/JSlider.java: Likewise.
	* javax/swing/JTabbedPane.java: Likewise.
	* javax/swing/JTextField.java: Likewise.
	* javax/swing/JToolBar.java: Likewise.
	* javax/swing/JTree.java: Likewise.
	* javax/swing/JViewport.java: Likewise.
	* javax/swing/JWindow.java: Likewise.
	* javax/swing/KeyStroke.java: Likewise.
	* javax/swing/LookAndFeel.java: Likewise.
	* javax/swing/MenuSelectionManager.java: Likewise.
	* javax/swing/SwingUtilities.java: Likewise.
	* javax/swing/Timer.java: Likewise.
	* javax/swing/DefaultBoundedRangeModel.java: Fixed javadoc.
	* javax/swing/JList.java
	(HORIZONTAL_WRAP): Made final, fixed value.
	(VERTICAL): Likewise.
	(VERTICAL_WRAP): Likewise.

2004-06-07  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractButton.java
	(serialVersionUID): New member variable.
	(AccessibleAbstractButton.serialVersionUID): Likewise.
	(AbstractButton): Made public.
	* javax/swing/Box.java
	(AccessibleBox.serialVersionUID): New member variable.
	(Filler.serialVersionUID): Likewise.
	* javax/swing/DefaultListSelectionModel.java
	(serialVersionUID): Likewise.
	* javax/swing/JApplet.java
	(serialVersionUID): Likewise.
	* javax/swing/JCheckBox.java
	(serialVersionUID): Likewise.
	* javax/swing/JCheckBoxMenuItem.java
	(serialVersionUID): Likewise.
	(AccessibleJCheckBoxMenuItem.serialVersionUID): Likewise.
	* javax/swing/JColorChooser.java
	(serialVersionUID): Likewise.
	(AccessibleJColorChooser.serialVersionUID): Likewise.
	* javax/swing/JComponent.java
	(serialVersionUID): Made private.
	(AccessibleJComponent.serialVersionUID): New member variable.
	* javax/swing/JDesktopPane.java
	(serialVersionUID): Likewise.
	* javax/swing/JDialog.java
	(serialVersionUID): Likewise.
	* javax/swing/JFormattedTextField.java
	(serialVersionUID): Fixed value.
	* javax/swing/JFrame.java
	(serialVersionUID): New member variable.
	(getDefaultCloseOpertation): Made public.
	* javax/swing/JLayeredPane.java
	(serialVersionUID): Likewise.
	(LAYER_PROPERTY): Made final, fixed value.
	(JLayeredPane): Made public.
	* javax/swing/JMenu.java
	(AccessibleJMenu.serialVersionUID): New member variable.
	(WinListener.serialVersionUID): Likewise.
	* javax/swing/JMenuBar.java
	(serialVersionUID): Likewise.
	(getComponentAtIndex): Added @deprecated tag.
	* javax/swing/JMenuItem.java
	(serialVersionUID): New member variable.
	(AccessibleJMenuItem.serialVersionUID): Likewise.
	* javax/swing/JOptionPane.java
	(serialVersionUID): Likewise.
	(AccessibleJOptionPane.serialVersionUID): Likewise.
	* javax/swing/JPopupMenu.java
	(serialVersionUID): Likewise.
	(AccessibleJPopupMenu.serialVersionUID): Likewise.
	(getPopupMenuListeners): New method.
	(getComponentAtIndex): Added @deprecated tag.
	* javax/swing/JProgressBar.java
	(serialVersionUID): New member variable.
	(AccessibleJProgressBar.serialVersionUID): Likewise.
	* javax/swing/JRadioButton.java
	(serialVersionUID): Likewise.
	* javax/swing/JRadioButtonMenuItem.java
	(serialVersionUID): Likewise.
	(AccessibleJRadioButtonMenuItem.serialVersionUID): Likewise.
	* javax/swing/JScrollBar.java
	(serialVersionUID): Likewise.
	(AccessibleJScrollBar.serialVersionUID): Likewise.
	* javax/swing/JSeparator.java
	(serialVersionUID): Likewise.
	(AccessibleJSeparator.serialVersionUID): Likewise.
	* javax/swing/JSlider.java: Fixed javadocs.
	(AccessibleJSlider.serialVersionUID): New member variable.
	* javax/swing/JSplitPane.java: Added copyright statement.
	(serialVersionUID): New member variable.
	(AccessibleJSplitPane.serialVersionUID): Likewise.
	* javax/swing/JTabbedPane.java
	(serialVersionUID): Likewise.
	(AccessibleJTabbedPane.serialVersionUID): Likewise.
	(ModelListener.serialVersionUID): Likewise.
	(ModelListener.ModelListener): New constructor.
	(SCROLL_TAB_LAYOUT): Made public final, fixed value.
	(WRAP_TAB_LAYOUT): Likewise.
	* javax/swing/JTable.java
	(serialVersionUID): New member variable.
	* javax/swing/JToggleButton.java
	(serialVersionUID): Likewise.
	(ToggleButtonModel): Made static.
	(ToggleButtonModel.serialVersionUID): New member variable.
	* javax/swing/JToolTip.java
	(serialVersionUID): Likewise.
	* javax/swing/JTree.java
	(serialVersionUID): Likewise.
	* javax/swing/JWindow.java
	(serialVersionUID): Likewise.
	* javax/swing/Timer.java
	(serialVersionUID): Likewise.

2004-06-06  Michael Koch  <konqueror@gmx.de>

	* javax/swing/SwingConstants.java
	(NEXT): New constant.
	(PREVIOUS): Likewise.
	* javax/swing/UIManager.java
	(LookAndFeel): Made public.
	(LookAndFeel.getClassName): Likewise.
	(LookAndFeel.getName): Likewise.

2004-06-02  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/JCheckBoxMenuItem.java:
	Removed CVS tags.
	* javax/swing/JMenu.java: Likewise.
	* javax/swing/JMenuBar.java: Likewise.
	* javax/swing/JMenuItem.java: Likewise.
	* javax/swing/JPopupMenu.java: Likewise.
	* javax/swing/JRadioButtonMenuItem.java: Likewise.
	* javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java:Likewise.
	* javax/swing/plaf/basic/BasicMenuBarUI.java: Likewise.
	* javax/swing/plaf/basic/BasicMenuItemUI.java: Likewise.
	* javax/swing/plaf/basic/BasicMenuUI.java: Likewise.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java: Likewise.
	* javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java: Likewise.

2004-05-31  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/plaf/basic/BasicMenuUI.java:
	(MouseEntered): Do not call getPath() from MenuSelectionManager.
	Call getPath() from super class instead.

2004-05-31  David Jee  <djee@redhat.com>

	* java/awt/Container.java
	(remove): Set component visibility to false after removing it.

2004-05-27  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Component.java (getForeground): Return SystemColor if
	parent is null.
	(getBackground): Likewise.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
	(item_highlighted): New function.
	(connectSignals): Set item_highlighted as list's select
	function.

	* java/applet/Applet.java: Revert changes from 2004-04-29,
	2004-03-15 and 2004-03-14.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (drawString):
	Divide baseline y coordinate by PANGO_SCALE, not DPI conversion
	factor.

	* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java (create): Set
	"Dialog" as the default font.
	* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java (create):
	Likewise.
	* java/awt/Component.java (getFont): Return "Dialog" font by
	default.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c:
	Multiply size argument to pango_font_description_set_size by the
	DPI conversion factor rather than by PANGO_SCALE.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (drawString):
	Divide baseline y coordinate by DPI conversion factor rather
	than by PANGO_SCALE.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
	(area_prepared): Fix typo.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
	(gtkSetFont): Move gtk_bin_get_child inside GDK critical region.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
	(dpi_conversion_factor): New global variable.
	(init_dpi_conversion_factor): New function to calculate and
	track DPI conversion factor.
	(dpi_changed_cb): New callback.
	* jni/gtk-peer/gtkpeer.h (dpi_conversion_factor): Declare.

2004-05-27  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(getGraphics): Return a new GdkGraphics instance.
	* gnu/java/awt/peer/gtk/GtkContainerPeer.java
	(getGraphics): Call super.getGraphics().

2004-05-26  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(setNativeBounds): Clamp width and height values to >= 0.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(find_fg_color_widget): Handle GtkOptionMenu specially.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(pre_event_handler): Only post configure events to visible
	top-level windows.

2004-05-26  David Jee  <djee@redhat.com>

	* java/awt/BorderLayout.java
	(layoutContainer): Fix size calculations.

2004-05-26  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(window_wm_protocols_filter): Remove function.
	(create): Remove filter that removes WM_TAKE_FOCUS client
	messages.

2004-06-17  Anthony Green  <green@redhat.com>

	* java/util/zip/ZipFile.java (getInputStream): Return null if
	entry not found.

	* gnu/gcj/runtime/VMClassLoader.java (init): Add extension
	directory contents to the class path.

2004-06-15  Andrew Haley  <aph@redhat.com>

	* java/lang/natSystem.cc (getenv0): Don't assume environment
	variable is Latin 1 coded.

2004-06-14  Andreas Jaeger  <aj@suse.de>

	* configure.in: Support --enable-version-specific-runtime-libs.
	* configure: Regenerated.

2004-06-14  Bryce McKinlay  <mckinlay@redhat.com>

	* java/util/Calendar.java: Change ResourceBundle.getBundle() calls
	to pass ClassLoader argument.
	* java/util/GregorianCalendar.java: Likewise.
	* java/util/Currency.java: Likewise.
	* java/text/BreakIterator.java: Likewise.
	* java/text/Collator.java: Likewise.
	* java/text/DateFormat.java: Likewise.
	* java/text/DateFormatSymbols.java: Likewise.
	* java/text/DecimalFormatSymbols.java: Likewise.
	* java/text/NumberFormat.java: Likewise.
	* java/awt/Window.java: Likewise.

2004-06-14  Andrew Haley  <aph@redhat.com>

	* java/lang/System.java: (getenv0): New method.
	(getenv): Add security check.  Do the right thing.
	* java/lang/natSystem.cc (getenv0): New method.

2004-06-12  Mark Wielaard  <mark@klomp.org>

	* javax/swing/RepaintManager.java
	(paintDirtyRegions): Use entrySet(), not values().

2004-06-10  Mark Wielaard  <mark@klomp.org>

	* jni.cc (_Jv_JNI_GetAnyMethodID): Add name and signature to
	NoSuchMethodError.

2004-06-11  Jerry Quinn  <jlquinn@optonline.net>

	* java/util/GregorianCalendar.java (computeTime):  Skip buggy formulae
	when we already know the answer.
	* java/util/SimpleTimeZone.java (serialVersionOnStream): Bump to 2.
	(setStartRule,setEndRule): Don't take abs of day number.
	(getOffset): Clarify docs.  Add argument checks.
	(isBefore): Take abs of day number in DOW_LE_DOM_MODE.
	(equals,hasSameRules,toString,readObject): Use startTimeMode and
	endTimeMode.

2004-06-10  Tom Tromey  <tromey@redhat.com>

	* interpret.cc (run): Handle wide fload.

2004-06-06  Jerry Quinn  <jlquinn@optonline.net>

	* java/util/zip/ZipEntry.java (setTime): Remove scaling.

2004-06-05  Michael Koch  <konqueror@gmx.de>

	* javax/swing/SwingConstants.java
	(NEXT): New constant.
	(PREVIOUS): Likewise.

2004-06-05  Michael Koch  <konqueror@gmx.de>

	* javax/swing/UIManager.java
	(LookAndFeel): Made public.
	(LookAndFeel.getName): Likewise.
	(LookAndFeel.getClassName): Likewise.

2004-06-03  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(requestFocus): Revert last changes.
	(gtkRequestFocus): Removed.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkRequestFocus):
	Renamed to ...
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetRequestFocus):
	Reverted last patch.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_setupAccelGroup):
	Reverted comment change.

2004-06-02  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/JCheckBoxMenuItem.java:
	Removed CVS tags.
	* javax/swing/JMenu.java: Likewise.
	* javax/swing/JMenuBar.java: Likewise.
	* javax/swing/JMenuItem.java: Likewise.
	* javax/swing/JPopupMenu.java: Likewise.
	* javax/swing/JRadioButtonMenuItem.java: Likewise.
	* javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java:Likewise.
	* javax/swing/plaf/basic/BasicMenuBarUI.java: Likewise.
	* javax/swing/plaf/basic/BasicMenuItemUI.java: Likewise.
	* javax/swing/plaf/basic/BasicMenuUI.java: Likewise.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java: Likewise.
	* javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java: Likewise.

2004-06-01  Tom Tromey  <tromey@redhat.com>

	* java/io/ObjectStreamField.java: Cleaned up imports.

2004-06-01  Michael Koch  <konqueror@gmx.de>

	* java/io/ObjectStreamField.java: Style and javadoc cleanup.

2004-06-01  Mark Wielaard  <mark@klomp.org>

	* java/io/Writer.java (Writer(Object)): Fixed API doc.

2004-06-01  Michael Koch  <konqueror@gmx.de>

	* java/security/Security.java
	(insertProviderAt): Use equals() instead of ==.
	(removeProvicer): Likewise.
	(getProvider): Likewise.
	* java/security/Signature.java
	(sign): Don't set state to UNINITIALIZED.
	(verify): Likewise.

2004-06-01  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (requestFocus):
	Implement by calling gtkRequestFocus.
	(gtkRequestFocus): New native method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_requestFocus__):
	Renamed to ...
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkRequestFocus):
	New function name.
	(filter_expose_event_handler):
	Mark static.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c
	(menu_pos): Mark static.

2004-06-01  Michael Koch  <konqueror@gmx.de>

	* java/text/CollationElementIterator.java,
	java/text/CollationKey.java,
	java/text/RuleBasedCollator.java: New versions from GNU classpath.
	* testsuite/libjava.mauve/xfails: Removed all
	java.text.CollationElementIterator tests.

2004-06-01  Michael Koch  <konqueror@gmx.de>

	* java/util/zip/InflaterInputStream.java: Merged more with Classpath
	version.
	* java/util/zip/ZipOutputStream.java (): Renamed enum to e to removed
	Java 1.5 keyword usage.

2004-05-31  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/plaf/basic/BasicMenuUI.java:
	(MouseEntered): Do not call getPath() from MenuSelectionManager.
	Call getPath() from super class instead.

2004-05-31  Michael Koch  <konqueror@gmx.de>

	* java/io/SequenceInputStream.java:
	Rename enum to e because enum is a keyword in Java 1.5.

2004-05-31  Michael Koch  <konqueror@gmx.de>

	* gnu/java/rmi/rmic/CompilerProcess.java:
	Fixed javadoc to by XHTML compliant.

2004-05-30  Mark Wielaard  <mark@klomp.org>

	* java/awt/Toolkit.java (loadSystemColors): Implement.

2004-05-30  Michael Koch  <konqueror@gmx.de>

	* java/lang/System.java: Reordered imports.

2004-05-30  Guilhem Lavaux <guilhem@kaffe.org>

	* java/text/DecimalFormat.java
	(parse): Fixed parsing of decimal strings. Number of maximum
	digits to be read should now work.
	* java/text/SimpleDateFormat.java
	(SimpleDateFormat): Set maximumFractionDigit to 0 for the number
	formatter. This fixes DateFormatTest.

2004-05-30  Michael Koch  <konqueror@gmx.de>

	* java/nio/Buffer.java
	(limit): Fixed off by one error.
	* java/nio/CharBuffer.java
	(wrap): Fixed arguments, added javadocs.

2004-05-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/beans/BeanInfoEmbryo.java,
	java/awt/im/InputContext.java,
	javax/swing/tree/DefaultMutableTreeNode.java:
	Rename enum to e because enum is a keyword in Java 1.5.

2004-05-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/math/MPN.java,
	java/awt/geom/Arc2D.java:
	Fixed javadocs all over.

2004-05-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/DefaultKeyboardFocusManager.java
	(dispatchEvent): Call method to get key event dispatchers.
	(dispatchKeyEvent): Call method to get key event post processors.
	* javax/swing/JComponent.java
	(listenerList): Made protected.
	* javax/swing/JOptionPane.java
	(message): Don't initialize.
	(JOptionPane): Set message text.
	* javax/swing/JPopupMenu.java
	(show): Fixed typo in argument name.
	* javax/swing/RepaintManager.java
	(paintDirtyRegions): Use public API of java.util.Map.
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java
	(positionForMouseEvent): Removed redundant ';'.
	(continueDrag): Use method arguments.

2004-05-29  Ranjit Mathew  <rmathew@hotmail.com>

	* testsuite/libjava.jacks/jacks.xfail: Update for post tree-ssa merge
	results.

2004-05-28  Bryce McKinlay  <mckinlay@redhat.com>

	* gcj/cni.h (JvAllocBytes): New public CNI function. Calls
	_Jv_AllocBytes.
	* gnu/gcj/RawDataManaged.java: New file.
	* java/lang/Thread.java (data): Declare as RawDataManaged.
	* java/lang/natThread.cc (init_native): Cast natThread data to
	RawDataManaged, not jobject.
	* Makefile.am (ordinary_java_source_files): Add RawDataManaged.
	* Makefile.in: Rebuilt.

2004-05-27  Jerry Quinn  <jlquinn@optonline.net>

	* java/util/SimpleTimeZone.java: Reverting my last change until I
	can fix it properly.

2004-05-27  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JPopupMenu.java
	(isVisible): Do not use visible directly.
	(setVisible): Likewise.
	* javax/swing/JWindow.java
	(JWindow): call accessible constructor.
	* javax/swing/RepaintManager.java
	(paintDirtyRegions): Use public methods to obtain iterator.

2004-05-25  David Jee  <djee@redhat.com>

	* java/awt/Container.java
	(remove): Set component's parent to null only after we removed the
	component from its parent's layout manager.

2004-05-25  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(GtkComponentPeer): Set bounds regardless of whether awtComponent
	is valid.
	* gnu/java/awt/peer/gtk/GtkListPeer.java
	(getSize): Change native method declaration.
	(minimumSize): Pass visible row count into getSize().
	(preferredSize): Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkListPeer_getSize): Use scroll window's
	natural size. Use visible row count to determine the final height
	value to return.

2004-05-21  Graydon Hoare  <graydon@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(setClip): Minor correction to order of operations.

	* javax/swing/JScrollPane.java: Extend sketchy implementation.
	* javax/swing/ScrollPaneLayout.java: Likewise.
	* javax/swing/JViewPort.java: Likewise.
	* javax/swing/ViewportLayout.java: Likewise.

	* javax/swing/JComponent.java: Rewrite.
	* javax/swing/RepaintManager.java: Likewise.

	* javax/swing/JLayeredPane.java: Change validate() to revalidate().
	* javax/swing/JList.java
	(setSelectedIndices):
	(getSelectedIndices):
	(getSelectedValues): New functions.
	(getPreferredScrollableViewportSize): Return preferred size.
	(getScrollableUnitIncrement):
	(getScrollableBlockIncrement): Initial implementations.
	* javax/swing/JRootPane.java: Clean up slightly.
	(getUI):
	(setUI):
	(updateUI):
	(getUIClassID):
	(isValidateRoot): Add overrides from JComponent.
	* javax/swing/JScrollBar.java: Set default orientation to VERTICAL.
	* javax/swing/UIManager.java (getDimension): Return the dimension.

	* javax/swing/plaf/basic/BasicButtonUI.java: Set component opaque.
	* javax/swing/plaf/basic/BasicLabelUI.java: Likewise.
	* javax/swing/plaf/basic/BasicMenuItemUI.java: Likewise.
	* javax/swing/plaf/basic/BasicProgressBarUI.java: Likewise.
	* javax/swing/plaf/basic/BasicSeparatorUI.java: Likewise.
	* javax/swing/plaf/basic/BasicSliderUI.java: Likewise.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java: Likewise.
	* javax/swing/plaf/basic/BasicRootPaneUI.java:
	Likewise, and set background.
	* javax/swing/plaf/basic/BasicListUI.java:
	Likewise, and improve a bit.
	* javax/swing/plaf/basic/BasicScrollBarUI.java:
	Likewise, and adjust calculations.
	* javax/swing/plaf/basic/BasicViewportUI.java:
	Likewise, and improve a bit.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(Button.margin): Shrink.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c:
	Hack to set horizontal always, workaround pango.

	* jni/gtk-peer/gtkcairopeer.h: Change to match pattern API.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:
	Synchronize more often, check cairo status after ops,
	handle changes to cairo pattern API, check for disposal.

2004-05-21  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(BasicMenuItemUI): Create propertyChangeListener.
	(getPath):Implemented.
	(installListeners): Add propertyChangeListener to menuItem.
	(uninstallListeners): Remove propertyChangeListener from menuItem.
	(update): Implemented.
	* javax/swing/plaf/basic/BasicMenuUI.MouseInputHandler:
	(mouseEntered): Take insets of popup menu into account when
	calculating position of popup menu.

2004-05-18  Olga Rodimina  <rodimina@redhat.com>

	* Makefile.am: Added new file.
	* Makefile.in: Regenerate.
	* javax/swing/JMenuBar.java:
	Started implementation.
	* javax/swing/JPopupMenu.java:
	(setVisible): Fixed location of lightweight/mediumweight
	popup menu.
	(show): Fixed location of PopupMenu.
	* javax/swing/plaf/basic/BasicMenuBarUI.java:
	New file. UI Delegate for JMenuBar.
	* javax/swing/plaf/basic/BasicMenuUI.MouseInputHandler:
	(mouseEntered): Corrected position of the submenu.

2004-05-18  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c: Remove calls
	to _gtk_accel_group_attach.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c:
	Likewise.

	* gnu/java/awt/peer/gtk/GtkButtonPeer.java: Give gtkSetFont
	package access.  Don't override setFont.
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java: Give
	gtkWidgetRequestFocus package access.
	* gnu/java/awt/peer/gtk/GtkLabelPeer.java: Don't override
	setFont.
	* gnu/java/awt/peer/gtk/GtkListPeer.java: Override gtkSetFont.
	Give gtkWidgetRequestFocus package access.
	* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java: Give
	gtkWidgetRequestFocus package access.  Don't override setFont.
	* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java: Don't override
	setFont.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(gtkSetLabel): Move call to gtk_bin_get_child into GDK critical
	region.
	(gtkSetFont): Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c (gtkSetFont):
	Implement.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
	(gtkSetFont): Whitespace fix.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(gtkWidgetSetUsize): Remove method.

2004-05-18  David Jee  <djee@redhat.com>

	* java/awt/image/MemoryImageSource.java
	(newPixels(int,int,int,int,boolean)): Set only the specified
	rectangle of pixels.
	(newPixels(byte[],ColorModel,int,int)): Implement.
	(newPixels(int[],ColorModel,int,int)): Implement.

2004-05-18  Olga Rodimina  <rodimina@redhat.com>

	* Makefile.am: Added new file.
	* Makefile.in: Regenerate.
	* javax/swing/JMenu.java: Started
	implementation.
	* javax/swing/JPopupMenu.java:
	(insert): If specified index is -1, then
	add component at the end.
	(isPopupTrigger): Reimplemented.
	(JPopupMenu.LightWeightPopup): setBounds
	of the lightWeightPopup before adding it
	to the layeredPane.
	(javax/swing/plaf/basic/BasicIconFactory.java):
	(getMenuArrowIcon): Implemented.
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(getPreferredSize): Add size of the arrow icon
	if this menu item is instance of JMenu.
	(paintMenuItem): Paint arrow icon if this
	menu item is a submenu.
	* javax/swing/plaf/basic/BasicMenuUI.java:
	New File. UI Delegate for JMenu.

2004-05-17  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (postKeyEvent):
	Post KEY_TYPED events.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(generates_key_typed_event): Remove function.

2004-05-17  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/JRootPane.java
	(JRootPane.RootLayout): Reimplemented to
	set bounds of contentPane and menuBar.
	(setJMenuBar): Add menu bar to the layered pane.
	(createLayeredPane): Set layout of layeredPane
	to null.
	* javax/swing/JLayeredPane.java:
	(addImpl): Calculate index of the component in the
	layeredPane according to the specified position within
	the layer.

2004-05-17  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkImagePainter.java
	(setPixels): Change color model to the default model after
	converting pixels.
	* java/awt/image/MemoryImageSource.java
	(newPixels): Set only the specified rectangle of pixels.

2004-05-13  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* libgcj.spec.in (lib): Add -l-java-awt -l-java-applet
	-l-java-beans -l-javax-accessibility -l-javax-swing.

	* java/awt/AWTEvent.java (toString): Print source's name rather
	than the source itself.

2004-05-12  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkToolkit.java (loadSystemColors): Make
	native.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
	(gdk_color_to_java_color): New function.
	* jni/gtk-peer/gtkpeer.h: Add SystemColor defines.

2004-05-12  David Jee  <djee@redhat.com>

	* java/awt/image/RGBImageFilter.java:
	Initialize origmodel as null.
	(makeColor): Fix pixel component order.
	(filterRGBPixels): Fix pixel iteration.
	(setPixels): Add extra checks for index color model. Convert pixels
	to default color model if necessary.
	(convertColorModelToDefault): New override method for byte pixels.
	(convertColorModelToDefault): For int pixels, fix pixel iteration.
	(makeColorbyDefaultCM): New override method for byte pixels.
	(makeColorbyDefaultCM): For int pixel, add color model as argument.
	(makeColor): Fix pixel component order.

2004-05-11  Kim Ho  <kho@redhat.com>

	* javax/swing/Box.java:
	Comment out more parts of Box.Filler.

2004-05-11  Kim Ho  <kho@redhat.com>

	* javax/swing/Box.java:
	Remove reference to AccessibleAWTComponent so
	it compiles again.

2004-05-10  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkListPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c: Update
	implementation of list peer to use GtkTreeView instead of
	deprecated GtkCList.

2004-05-07  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(gtkWidgetDispatchKeyEvent): Remove keyChar parameter.
	(handleEvent): Remove keyChar argument to
	gtkWidgetDispatchKeyEvent calls.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c: Fix
	compiler warnings.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c:
	Likewise.

2004-05-06  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(gtkWidgetRequestFocus): Mark protected.
	(GtkComponentPeer): Only set the peer's bounds if its component
	is valid.
	* java/awt/Component.java (static): Set the default keyboard
	focus manager.
	(requestFocus(), requestFocus(boolean), requestFocusInWindow(),
	requestFocusInWindow(temporary)): Don't request focus if the
	component is not showing.  Get tree lock before traversing
	component hierarchy.
	* java/awt/DefaultKeyboardFocusManager.java (dispatchEvent):
	Only set the global focus owner if it is not a Window.
	(processKeyEvent): Consume keystrokes associated with the focus
	traversal keystroke.
	(focusPreviousComponent, focusNextComponent, upFocusCycle,
	downFocusCycle): Call requestFocusInWindow instead of
	requestFocus.
	* java/awt/EventDispatchThread.java (run): Move setting of
	default keyboard focus manager to Component.java.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(awt_keycode_to_keysym): New function.
	(gtkWidgetDispatchKeyEvent): Finish implementation.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(pre_event_handler): Add FIXME comment.

	* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
	(gtkWidgetRequestFocus): New method.
	* java/awt/TextArea.java (TextArea): Set focus traversal keys to
	disable Tab and Shift-Tab keystrokes.
	(addNotify, appendText, insertText, replaceText): Simplify peer
	retrieval code.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c
	(connectSignals): Remove connections to "commit" signals.
	Remove C++-style comments.

	* gnu/java/awt/peer/gtk/GtkButtonPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(handleEvent): Activate GTK button when the space bar key is
	pressed.
	(gtkActivate): New method.

2004-05-06  David Jee  <djee@redhat.com>

	* java/awt/image/CropImageFilter.java
	(setPixels): Implement for byte array pixels.
	* java/awt/image/ReplicateScaleFilter.java
	(setPixels): Implement for byte array pixels.
	(replicatePixels): Overload for byte array pixels.

2004-05-06  Kim Ho  <kho@redhat.com>

	* javax/swing/Box.java:
	(getAccessibleContext): Return an instance of the
	correct class.

2004-05-05  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(drawImage): When component is null, use SystemColor.window as
	the default bgcolor.
	* gnu/java/awt/peer/gtk/GtkImage.java
	(setPixels): We can avoid iterating through the pixel rows only
	when height is 1.
	* java/awt/Image.java
	(getScaledInstance): Partially implement.
	* java/awt/image/CropImageFilter.java
	(setProperties): Fix "filter" property.
	(setPixels): Implement.
	* java/awt/image/ReplicateScaleFilter.java
	(setDimensions): Use scaled dimensions.
	(setPixels): Implement.
	(replicatePixels): New method.

2004-05-05  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkImagePainter.java
	(convertPixels): If either pixels or model is null, return null.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c
	(Java_gnu_java_awt_peer_gtk_GtkImagePainter_drawPixels): If jpixels
	is null, do nothing and return.

2004-05-03  Kim Ho  <kho@redhat.com>

	* gnu/java/awt/peer/gtk/GtkDialogPeer.java:
	(getGraphics): Like GtkFramePeer, the Graphics
	object needs to be translate to account for
	window decorations.
	(postMouseEvent): New method. Account for
	translation.
	(postExposeEvent): ditto.
	* javax/swing/Box.java: Stubbed.
	* javax/swing/JDialog.java: Ran through jalopy
	to fix indentation.
	(JDialog): Call SwingUtilities' getOwnerFrame
	for null owners.
	(setLayout): Check isRootPaneCheckingEnabled
	* javax/swing/JOptionPane.java: Re-implemented.
	* javax/swing/SwingUtilities.java:
	(getOwnerFrame): Static method to grab a default
	owner frame for Dialogs that don't specify owners.
	* javax/swing/event/SwingPropertyChangeSupport.java:
	(firePropertyChange): Fix early exit condition.
	* javax/swing/plaf/basic/BasicLabelUI.java:
	(paint): Avoid painting text if it is null
	or empty.
	* javax/swing/plaf/basic/BasicOptionPaneUI.java:
	Implement.

2004-05-03  Olga Rodimina  <rodimina@redhat.com>

	* Makefile.am: Added new file.
	* Makefile.in: Regenerate.
	* javax/swing/JPopupMenu.java:
	Started implementation.
	* javax/swing/JWindow.java
	(JWindow): call super() if parent for window
	is not specified.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java:
	New File. UI Delegate for JPopupMenu.

2004-04-30  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/JApplet.java: Indicated that JApplet
	implements RootPaneContainer and made method of this
	interface public.
	* javax/swing/JFrame.java: Ditto.
	* javax/swing/JWindow.java: Ditto.

2004-04-29  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(nativeSetBounds): Call gdk_window_move in addition to
	gtk_window_move.

	* java/applet/Applet.java (preferredSize): Call parent's
	preferredSize if the applet stub is null.
	(minimumSize): Likewise for parent's minimumSize.

2004-04-27  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/JMenuItem.java
	(createActionPropertyChangeListener): Implemented.
	(processMouseEvent): Ditto.
	(fireMenuDragMouseEntered): Ditto.
	(fireMenuDragMouseExited): Ditto.
	(fireMenuDragMouseDragged): Ditto.
	(fireMenuDragMouseReleased): Ditto.
	(menuSelectionChanged): Ditto.
	(getSubElements): Ditto.
	(getComponent): Ditto.
	(addMenuDragMouseListener): Ditto.
	(removeMenuDragMouseListener):Ditto.
	(addMenuKeyListener): Ditto.
	(removeMenuKeyListener): Ditto.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(doClick): Imlemented.
	* javax/swing/plaf/basic/BasicMenuItemUI.MouseInputHandler:
	Don't handle mouse events here. Pass them to
	MenuSelectionManager.

2004-04-26  Olga Rodimina  <rodimina@redhat.com>
	Used correct version of jalopy configuration
	file to fix style in the files below.

2004-04-26  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/JCheckBoxMenuItem.java:
	Fixed style and removed unnecessary comments.
	* javax/swing/JMenuItem.java: Ditto.
	* javax/swing/JRadioButtonMenuItem.java: Ditto.
	* javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java: Ditto.
	* javax/swing/plaf/basic/BasicMenuItemUI.java: Ditto.
	* javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java: Ditto.

2004-04-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu_java_awt_peer_gtk_GtkWindowPeer.c: Change FIXME comment to
	C-style.

	* gnu_java_awt_peer_gtk_GtkWindowPeer.c: Add FIXME comment.

	* java/awt/ContainerOrderFocusTraversalPolicy.java
	(getComponentAfter): Start from current component and work up
	the component hierarchy until an acceptable component is found.
	Synchronize on tree lock.
	(getComponentBefore): Likewise.

2004-04-22  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java: Remove
	focus-related debugging messages.
	* java/awt/DefaultKeyboardFocusManager.java: Likewise.
	* java/awt/EventDispatchThread.java: Likewise.
	* java/awt/KeyboardFocusManager.java: Likewise.
	* java/awt/Window.java: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c: Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c: Likewise.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c: Change
	new C++-style comments to C-style comments.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c: Likewise.

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(handleEvent): Dispatch key press and key release events to
	backing widget.
	(requestFocus): Post a FOCUS_GAINED event to the event queue.
	(gtkWidgetRequestFocus): New method.
	(gtkWidgetDispatchKeyEvent): Likewise.
	* java/awt/Component.java (requestFocus, requestFocus(boolean),
	requestFocusInWindow, requestFocusInWindow(boolean),
	getFocusCycleRootAncestor, nextFocus, transferFocus,
	transferFocusBackward, transferFocusUpCycle, hasFocus,
	isFocusOwner): Implement and document focus-handling methods.
	(setFocusTraversalKeys): Inherit focus traversal keys when
	keystrokes argument is null.  Fix focus-handling documentation
	throughout class.
	* java/awt/Container.java (setFocusTraversalKeys,
	getFocusTraversalKeys, areFocusTraversalKeysSet,
	isFocusCycleRoot, setFocusTraversalPolicy,
	getFocusTraversalPolicy, isFocusTraversalPolicySet,
	setFocusCycleRoot, isFocusCycleRoot, transferFocusDownCycle):
	Implement and document focus-handling methods.
	(transferFocusBackward): Remove method.
	(readObject, writeObject): Implement and document serialization
	methods.
	* java/awt/ContainerOrderFocusTraversalPolicy.java: Implement
	and document.
	* java/awt/DefaultFocusTraversalPolicy.java: Implement and
	document.
	* java/awt/DefaultKeyboardFocusManager.java: Implement and
	partially document.
	* java/awt/EventDispatchThread.java (run): Set default keyboard
	focus manager.  Attempt to dispatch each event to the keyboard
	focus manager before normal dispatch.
	* java/awt/KeyboardFocusManager.java: Implement and partially
	document.
	* java/awt/Window.java (Window): Set focusCycleRoot to true.
	(show): Focus initial component when window is shown for the
	first time.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(pre_event_handler): Replace complex key press and key release
	logic with simple callbacks into GtkComponentPeer.
	* jni/gtk-peer/gtkpeer.h: Fix FOCUS_GAINED/FOCUS_LOST reversal.

2004-04-21  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/MenuSelectionManager.java
	(componentForPoint): Added new method.
	(defaultManager): New Method. Implemented.
	(getSelectedPath): Ditto.
	(isComponentPartOfCurrentMenu): Ditto.
	(processKeyEvent): Added new method.
	(processMouseEvent): New Method. Implemented.
	(setSelectedPath): Ditto.
	(getPath): Ditto.

2004-04-19  Kim Ho  <kho@redhat.com>

	* java/awt/Container.java:
	(remove): Set the component's parent to null.
	(getComponentAt): Implement.
	* javax/swing/JComponent.java:
	(JComponent): Initialize defaultLocale
	(getDefaultLocale): Implement.
	(setDefaultLocale): ditto.
	* javax/swing/JSlider.java:
	(JSlider): Fix calculation of value.
	* javax/swing/JSplitPane.java: Implement.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Change SplitPane's default divider size.
	* javax/swing/plaf/basic/BasicScrollBarUI.java:
	(paint): Remove unused code.
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java:
	Added comments and ran through jalopy.
	(setBasicSplitPaneUI): Get reference to hidden divider
	and set up one touch buttons if necessary.
	(setBorder): Fire propertyChangeEvent only if
	borders are different.
	(getPreferredSize): Defer to layout manager.
	(propertyChange): Implement.
	(oneTouchExpandableChanged): ditto.
	(createLeftOneTouchButton): Use BasicArrowButton.
	(createRightOneTouchButton): ditto.
	(moveDividerTo): New method. Moves the divider
	to a set location based on the last divider location.
	(BasicSplitPaneDivider::MouseHandler): Implement.
	(BasicSplitPaneDivider::OneTouchButton): Removed.
	(BasicSplitPaneDivider::DragController): Implement.
	(BasicSplitPaneDivider::VerticalDragController):
	ditto.
	(BasicSplitPaneDivider::DividerLayout): ditto.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java: Reimplement.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java:
	(calculateLayoutInfo): Don't show component if it's
	null.
	(paintTab): Fix title paint logic.

2004-05-26  Jerry Quinn  <jlquinn@optonline.net>

	PR libgcj/8321
	* java/util/SimpleTimeZone.java (serialVersionOnStream): Bump to 2.
	(setStartRule,setEndRule): Don't take abs of day number.
	(getOffset): Clarify docs.  Add argument checks.
	(isBefore): Take abs of day number in DOW_LE_DOM_MODE.
	(equals,hasSameRules,toString,readObject): Use startTimeMode and
	endTimeMode.
	* testsuite/libjava.mauve/xfails
	(gnu.testlet.java.util.SimpleTimeZone.check12): XFAIL test 22.

2004-05-21  Bryce McKinlay  <mckinlay@redhat.com>

	Layout interfaces during preparation, not initialization.
	* java/lang/natClass.cc (initializeClass): Move
	_Jv_LayoutInterfaceMethods call...
	* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): to here.

2004-05-19  Anthony Green  <green@localhost.localdomain>

	* Makefile.am (awt_java_source_files): Remove javax.rmi and
	gnu.javax.rmi code.
	* Makefile.in: Rebuilt.
	* javax/rmi/ClassDesc.java, javax/rmi/StubDelegate.java,
	javax/rmi/UtilDelegate.java, javax/rmi/Stub.java,
	javax/rmi/Util.java, javax/rmi/ObjectImpl.java,
	javax/rmi/SystemException.java, javax/rmi/ValueHandler.java,
	javax/rmi/PortableRemoteObjectDelegate.java, javax/rmi/Tie.java,
	gnu/javax/rmi/CORBA/DelegateFactory.java,
	gnu/javax/rmi/CORBA/GetDelegateInstanceException.java,
	gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java,
	gnu/javax/rmi/CORBA/StubDelegateImpl.java,
	gnu/javax/rmi/CORBA/UtilDelegateImpl.java,
	gnu/javax/rmi/CORBA/ValueHandlerImpl.java,
	gnu/javax/rmi/PortableServer.java: Remove files.

2004-05-19  Anthony Green  <green@redhat.com>

	* Makefile.am: Define JAVA_EXT_DIRS.
	* Makefile.in: Rebuilt.
	* java/lang/natRuntime.cc (insertSystemProperties): Set
	java.ext.dirs property.

2004-05-16  Mark Wielaard  <mark@klomp.org>

	* java/io/Writer.java (Writer(Object)): Check for null lock object.

2004-05-15  Mark Wielaard  <mark@klomp.org>

	* doc/cni.sgml: Removed, merged into gcj.texi.

2004-05-15  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (ordinary_java_source_files): Add new javax.print
	classes.
	* Makefile.in: Regenerated.

2004-05-15  Michael Koch  <konqueror@gmx.de>

	* javax/print/attribute/standard/DateTimeAtCompleted.java,
	javax/print/attribute/standard/DateTimeAtCreation.java,
	javax/print/attribute/standard/DateTimeAtProcessing.java,
	javax/print/attribute/standard/DocumentName.java,
	javax/print/attribute/standard/JobHoldUntil.java,
	javax/print/attribute/standard/JobImpressionsCompleted.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/NumberOfInterveningJobs.java,
	javax/print/attribute/standard/OutputDeviceAssigned.java,
	javax/print/attribute/standard/PrinterInfo.java,
	javax/print/attribute/standard/PrinterLocation.java,
	javax/print/attribute/standard/PrinterMakeAndModel.java,
	javax/print/attribute/standard/PrinterMessageFromOperator.java,
	javax/print/attribute/standard/PrinterName.java,
	javax/print/attribute/standard/QueuedJobCount.java,
	javax/print/attribute/standard/RequestingUserName.java:
	Fixed javadocs all over.

2004-05-15  Michael Koch  <konqueror@gmx.de>

	* javax/print/DocFlavor.java,
	javax/print/attribute/standard/ColorSupported.java,
	javax/print/attribute/standard/Compression.java,
	javax/print/attribute/standard/CopiesSupported.java,
	javax/print/attribute/standard/Fidelity.java,
	javax/print/attribute/standard/Finishings.java,
	javax/print/attribute/standard/JobImpressionsSupported.java,
	javax/print/attribute/standard/JobKOctetsSupported.java,
	javax/print/attribute/standard/JobMediaSheetsSupported.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/MediaSizeName.java,
	javax/print/attribute/standard/MultipleDocumentHandling.java,
	javax/print/attribute/standard/NumberUpSupported.java,
	javax/print/attribute/standard/OrientationRequested.java,
	javax/print/attribute/standard/PDLOverrideSupported.java,
	javax/print/attribute/standard/PageRanges.java,
	javax/print/attribute/standard/PresentationDirection.java,
	javax/print/attribute/standard/PrintQuality.java,
	javax/print/attribute/standard/PrinterIsAcceptingJobs.java,
	javax/print/attribute/standard/PrinterMoreInfo.java,
	javax/print/attribute/standard/PrinterMoreInfoManufacturer.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/ReferenceUriSchemesSupported.java,
	javax/print/attribute/standard/Severity.java,
	javax/print/attribute/standard/SheetCollate.java,
	javax/print/attribute/standard/Sides.java:
	Added serialVersionUID and removed final keyword where it doenst
	belong.

2004-05-15  Michael Koch  <konqueror@gmx.de>

	* javax/print/PrintServiceLookup.java: New file.

2004-05-15  Michael Koch  <konqueror@gmx.de>

	* javax/print/DocFlavor.java:
	Implemented all flavor classes.

2004-05-15  Michael Koch  <konqueror@gmx.de>

	* javax/print/attribute/standard/ColorSupported.java,
	javax/print/attribute/standard/Compression.java,
	javax/print/attribute/standard/CopiesSupported.java,
	javax/print/attribute/standard/Fidelity.java,
	javax/print/attribute/standard/Finishings.java,
	javax/print/attribute/standard/JobImpressionsSupported.java,
	javax/print/attribute/standard/JobKOctetsSupported.java,
	javax/print/attribute/standard/JobMediaSheetsSupported.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/MediaSizeName.java,
	javax/print/attribute/standard/MultipleDocumentHandling.java,
	javax/print/attribute/standard/NumberUpSupported.java,
	javax/print/attribute/standard/OrientationRequested.java,
	javax/print/attribute/standard/PDLOverrideSupported.java,
	javax/print/attribute/standard/PageRanges.java,
	javax/print/attribute/standard/PresentationDirection.java,
	javax/print/attribute/standard/PrintQuality.java,
	javax/print/attribute/standard/PrinterIsAcceptingJobs.java,
	javax/print/attribute/standard/PrinterMoreInfo.java,
	javax/print/attribute/standard/PrinterMoreInfoManufacturer.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/ReferenceUriSchemesSupported.java,
	javax/print/attribute/standard/Severity.java,
	javax/print/attribute/standard/SheetCollate.java,
	javax/print/attribute/standard/Sides.java: New files.

2004-05-15  Michael Koch  <konqueror@gmx.de>

	* javax/print/Doc.java
	(getPrintData): Throws IOException.
	(getReaderForText): Likewise.
	(getStreamForBytes): Likewise.
	* javax/print/DocFlavor.java:
	Fixed filename in copyright.
	(serialVersionUID): New field.
	* javax/print/ServiceUIFactory.java:
	Made all constants final.
	* javax/print/AttributeException.java
	javax/print/MultiDoc.java
	javax/print/MultiDocPrintJob.java
	javax/print/MultiDocPrintService.java
	javax/print/StreamPrintService.java
	javax/print/URIException.java: New files.
	* javax/print/Makefile.am
	(EXTRA_DIST): Added all new files.

2004-05-15  Michael Koch  <konqueror@gmx.de>

	* javax/print/attribute/standard/Copies.java,
	javax/print/attribute/standard/DateTimeAtCompleted.java,
	javax/print/attribute/standard/DateTimeAtCreation.java,
	javax/print/attribute/standard/DateTimeAtProcessing.java,
	javax/print/attribute/standard/DocumentName.java,
	javax/print/attribute/standard/JobHoldUntil.java,
	javax/print/attribute/standard/JobImpressions.java,
	javax/print/attribute/standard/JobImpressionsCompleted.java,
	javax/print/attribute/standard/JobKOctets.java,
	javax/print/attribute/standard/JobKOctetsProcessed.java,
	javax/print/attribute/standard/JobMediaSheets.java,
	javax/print/attribute/standard/JobMediaSheetsCompleted.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/NumberOfDocuments.java,
	javax/print/attribute/standard/NumberOfInterveningJobs.java,
	javax/print/attribute/standard/NumberUp.java,
	javax/print/attribute/standard/OutputDeviceAssigned.java,
	javax/print/attribute/standard/PagesPerMinute.java,
	javax/print/attribute/standard/PagesPerMinuteColor.java:
	Fixed @return tag all over.

2004-05-15  Michael Koch  <konqueror@gmx.de>

	* javax/print/attribute/AttributeSetUtilities.java
	(verifyCategoryForValue): Fixed typo in javadoc.
	* javax/print/attribute/HashAttributeSet.java
	(containsKey): Fixed @return tag.
	(comtainsValue): Likewise.
	(equals): Likewise.
	* javax/print/attribute/IntegerSyntax.java
	(equals): Likewise.
	* javax/print/attribute/ResolutionSyntax.java
	(equals): Likewise.
	(getCrossFeedResolution): Removed unused code.
	(getFeedResolution): Likewise.
	* javax/print/attribute/SetOfIntegerSyntax.java
	(SetOfIntegerSyntax): Fixed HTML entities in javadoc.
	(equals): Fixed @return tag.
	* javax/print/attribute/TextSyntax.java
	(TextSyntax): Take locale into account.
	(hashCode): Better implementation.

2004-05-15  Michael Koch  <konqueror@gmx.de>

	* javax/print/CancelablePrintJob.java,
	javax/print/Doc.java,
	javax/print/DocFlavor.java,
	javax/print/DocPrintJob.java,
	javax/print/FlavorException.java,
	javax/print/PrintException.java,
	javax/print/PrintService.java,
	javax/print/ServiceUIFactory.java: New files.

2004-05-15  Mark Wielaard  <mark@klomp.org>

	* gnu/regexp/CharIndexedReader.java: Removed.
	* gnu/regexp/REFilterReader.java: Likewise.
	* gnu/regexp/RETokenLookAhead.java: Likewise.
	* Makefile.am (ordinary_java_source_files): Remove above classes.
	* Makefile.in: Regenerated.

2004-05-14  Tom Tromey  <tromey@redhat.com>

	* gnu/awt/xlib/XGraphics.java (drawImage): Use `XOffScreenImage',
	not `XGraphicsConfiguration.XOffScreenImage'.

2004-05-14  Scott Gilbertson  <scottg@mantatest.com>

	* gnu/awt/xlib/XCanvasPeer.java (setVisible): Implement unmap.

2004-05-14  Steven Augart  <augart@watson.ibm.com>

	* include/jni.h (_Jv_func): Removed.
	(struct JNINativeInterface): Use `void *' for reserved slots.
	(struct JNIInvokeInterface): Likewise.

2004-05-11  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/natPlainSocketImplPosix.cc
	(read): Fixed typo in expression.

2004-05-10  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/lib/libjava.exp (libjava_invoke): Add new argument
	ld_library_additions. Adjust all calls to libjava_invoke to match
	the new argument.

	* testsuite/libjava.jni/jni.exp (gcj_jni_test_one): Pass stdc++
	path to cxxflagslist.
	Pass path of libstdc++ to libjava_invoke.

	* testsuite/libjava.jar/jar.exp (gcj_jar_inerpret): Adjust
	libjava_invoke arguments.

2004-05-10  Ranjit Mathew  <rmathew@hotmail.com>

	* testsuite/libjava.jacks/jacks.xfail: Update to reflect the current
	reality.

2004-05-07  Ranjit Mathew  <rmathew@gmail.com>

	* testsuite/libjava.jni/jni.exp (gcj_jni_test_one): Don't link the
	main binary against the JNI shared library.

2004-05-07  Jerry Quinn  <jlquinn@optonline.net>

	* java/util/SimpleTimeZone.java (startTimeMode, endTimeMode,
	WALL_TIME, STANDARD_TIME, UTC_TIME): New members.
	(SimpleTimeZone): Tweak docs.  Add new variation.
	(setStartRule,setEndRule): Add new variations.  Use
	startTimeMode and endTimeMode.

2004-05-07  Jerry Quinn  <jlquinn@optonline.net>

	* java/util/Calendar.java (getActualMinimum,
	getActualMaximum):  Remove abstract.  Implement.

2004-05-06  Bryce McKinlay  <mckinlay@redhat.com>

	Run the jni tests using the interpreter.
	* testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Append
	options_cxx to shared lib compile command.
	(gcj_jni_test_one): Pass cxxflags to gcj_jni_compile_c_to_so, so
	they are used to link the shared lib, not the main binary.
	Use libjava_invoke to run gij.

2004-05-06  Michael Koch  <konqueror@gmx.de>

	* java/util/logging/Level.java
	(parse): Use == instead of String.equals().

2004-05-06  Bryce McKinlay  <mckinlay@redhat.com>

	* defineclass.cc (_Jv_ClassReader::prepare_pool_entry): Use
	verify_field_signature and verify_method_signature, not
	_Jv_VerifyFieldSignature and _Jv_VerifyMethodSigntature.
	(_Jv_ClassReader::handleField): Likewise.
	(_Jv_ClassReader::handleMethod): Likewise.

2004-05-06  Michael Koch  <konqueror@gmx.de>

	* javax/swing/table/TableColumn.java:
	Reformated.

2004-05-06  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/spi/ImageReaderWriterSpi.java
	(ImageReaderWriterSpi): Made it public.
	* javax/imageio/stream/ImageInputStream.java:
	Clean up imports.

2004-05-06  Michael Koch  <konqueror@gmx.de>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c:
	Removed empty line.

2004-05-06  Michael Koch  <konqueror@gmx.de>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c:
	New files.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c:
	Include gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c:
	Moved GtkCheckboxGroupPeer_dispose and GtkCheckboxGroupPeer_remove to
	their own source file.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c:
	Moved GtkGenericPeer_dispose and GtkComponentPeer_requestFocus to
	their own source file. Removed GtkComponentPeer_gtkWidgetSetUsize.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
	(create): Define variable on top of function.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c
	(menu_pos): Prototyped.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(setTitle): Removed.
	* jni/gtk-peer/gthread-jni.c
	(gdk_threads_wake): Removed.
	* Makefile.am (gtk_c_source_files): Added new files
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c and
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c.
	* Makefile.in: Regenerated.

2004-05-05  Bryce McKinlay  <mckinlay@redhat.com>

	* testsuite/libjava.jni/pr11951.java: Add missing System.loadLibrary()
	call.

2004-05-05  Mark Wielaard  <mark@klomp.org>

	* javax/swing/AbstractButton.java: Replace special HTML entities with
	ASCII equivalent.
	* javax/swing/DefaultBoundedRangeModel.java: Likewise.
	* javax/swing/DefaultButtonModel.java: Likewise.
	* javax/swing/DefaultListModel.java: Likewise.
	* javax/swing/JList.java: Likewise.
	* javax/swing/JSlider.java: Likewise.
	* javax/swing/ListModel.java: Likewise.
	* javax/swing/Popup.java: Likewise.
	* javax/swing/SwingUtilities.java: Likewise.

2004-05-05  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractButton.java,
	javax/swing/ActionMap.java,
	javax/swing/DefaultButtonModel.java,
	javax/swing/DefaultListModel.java,
	javax/swing/ImageIcon.java,
	javax/swing/JComboBox.java,
	javax/swing/JComponent.java,
	javax/swing/JFrame.java,
	javax/swing/JInternalFrame.java,
	javax/swing/JMenuBar.java,
	javax/swing/JMenuItem.java,
	javax/swing/JOptionPane.java,
	javax/swing/JProgressBar.java,
	javax/swing/JRootPane.java,
	javax/swing/JScrollBar.java,
	javax/swing/JScrollPane.java,
	javax/swing/JSeparator.java,
	javax/swing/JSlider.java,
	javax/swing/JTabbedPane.java,
	javax/swing/JTable.java,
	javax/swing/JTextField.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/LookAndFeel.java,
	javax/swing/SwingUtilities.java,
	javax/swing/Timer.java,
	javax/swing/ToolTipManager.java,
	javax/swing/UIDefaults.java,
	javax/swing/border/TitledBorder.java,
	javax/swing/filechooser/FileSystemView.java,
	javax/swing/plaf/basic/BasicButtonListener.java,
	javax/swing/plaf/basic/BasicButtonUI.java,
	javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java,
	javax/swing/plaf/basic/BasicGraphicsUtils.java,
	javax/swing/plaf/basic/BasicLabelUI.java,
	javax/swing/plaf/basic/BasicMenuItemUI.java,
	javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java,
	javax/swing/plaf/basic/BasicRootPaneUI.java,
	javax/swing/plaf/basic/BasicScrollBarUI.java,
	javax/swing/plaf/basic/BasicScrollPaneUI.java,
	javax/swing/plaf/basic/BasicSliderUI.java,
	javax/swing/plaf/basic/BasicTabbedPaneUI.java,
	javax/swing/plaf/basic/BasicToggleButtonUI.java,
	javax/swing/table/JTableHeader.java,
	javax/swing/text/AbstractDocument.java,
	javax/swing/text/DefaultCaret.java,
	javax/swing/text/StyledEditorKit.java,
	javax/swing/tree/DefaultTreeCellEditor.java:
	Cleaned up imports.

2004-05-05  Michael Koch  <konqueror@gmx.de>

	* java/util/prefs/AbstractPreferences.java
	(AbstractPreferences): Added parenthesis for clarity.
	Closes classpath bug #7940.

2004-05-05  Tom Tromey  <tromey@redhat.com>

	* javax/naming/CompoundName.java (endsWith): Look at correct
	element of source name.

2004-05-05  Mark Wielaard  <mark@klomp.org>

	Reported by f.haeglsperger@gmx.de [classpath patch #2485]
	* java/util/HashMap.java (rehash): Add entry at start of bucket.

2004-05-05  Tom Tromey  <tromey@redhat.com>

	* java/io/BufferedReader.java (skip): Removed unused
	variable.

2004-05-05  Michael Koch  <konqueror@gmx.de>

	* java/awt/FileDialog.java: Import java.io.Serializable explicitly.

2004-05-05  Dalibor Topic  <robilad@kaffe.org>

	* java/text/AttributedString.java,
	java/text/AttributedStringIterator.java,
	java/text/Collator.java,
	java/text/DecimalFormatSymbols.java,
	java/text/NumberFormat.java,
	java/text/RuleBasedCollator.java:
	Cleaned up imports.

2004-05-05  Tom Tromey  <tromey@redhat.com>

	* java/text/Format.java: Cleaned up imports.
	* java/text/DecimalFormat.java: Cleaned up imports.
	* java/security/SecureRandom.java: Cleaned up imports.
	(SecureRandom): Removed unused variable.
	* java/security/UnresolvedPermission.java: Cleaned up imports.
	* java/util/Date.java (parse): Removed unused variable.
	* java/util/ResourceBundle.java: Cleaned up imports.
	(getBundle): Removed unused variable.
	(tryBundle): Likewise.
	* java/util/regex/Pattern.java (Pattern): Removed unused constructor.

2004-05-05  Guilhem Lavaux <guilhem@kaffe.org>

	* java/text/SimpleDateFormat.java:
	(formatWithAttribute): New method. It implements
	the formatting process with attributes.
	(format): Use formatWithAttribute.
	(formatToCharacterIterator): New method. Use
	formatWithAttribute.

2004-05-05  Guilhem Lavaux <guilhem@kaffe.org>

	* java/text/MessageFormat.java:
	(class Field): New class.
	(formatToCharacterIterator): New method.
	(format): Use formatInternal now.
	(formatInternal): New method. String formatter should
	be done here (with attributes). Attributes merging supported.
	(parse): More documentation.
	(getFormatsByArgumentIndex): New method.
	(setFormatByArgumentIndex): New method.
	(setFormatsByArgumentIndex): New method.

2004-05-05  Guilhem Lavaux <guilhem@kaffe.org>

	* java/text/DecimalFormat.java
	(MAXIMUM_INTEGER_DIGITS): New constant to keep the numeric value 309.
	(applyPatternWithSymbols): Use MAXIMUM_INTEGER_DIGITS.
	(parse): Fixed handling of exponentiation notation and grouping.

2004-05-05  Guilhem Lavaux <guilhem@kaffe.org>

	* java/text/DecimalFormat.java
	(scanFix): Build attribute array. Fixed error reporting.
	(applyPatternWithSymbols): Store attributes for the prefix and
	suffix.
	(formatInternal): New method. Changed the way the string is
	computed. Implemented attributes. Cleant up rounding in
	exponential notation.
	(format): Use formatInternal.
	(formatToCharacterIterator): New method.
	(exponentRound, negativePrefixRanges, positivePrefixRanges,
	negativePrefixAttrs, positivePrefixAttrs, negativeSuffixRanges,
	positiveSuffixRanges, negativeSuffixAttrs, positiveSuffixAttrs):
	New fields.

2004-05-04  Dalibor Topic  <robilad@kaffe.org>

	* java/security/interfaces/DSAKeyPairGenerator.java,
	java/security/interfaces/DSAPrivateKey.java,
	java/security/interfaces/DSAPublicKey.java,
	java/security/interfaces/RSAPrivateKey.java,
	java/security/interfaces/RSAPublicKey.java:
	Cleaned up imports.

2004-05-04  Michael Koch  <konqueror@gmx.de>

	* java/nio/ByteBuffer.java,
	java/nio/CharBuffer.java,
	java/nio/DoubleBuffer.java,
	java/nio/FloatBuffer.java,
	java/nio/IntBuffer.java,
	java/nio/LongBuffer.java,
	java/nio/ShortBuffer.java:
	(compareTo): Fixed bogus implementation in all buffer classes.

2004-05-04  Ingo Proetel  <proetel@aicas.com>

	* java/awt/image/ColorModel.java (getRGBdefault): Default ColorModel has
	32 bit pixels not 8 bit pixels.
	(isCompatibleRaster): Added javadoc comment.

2004-05-04  Ingo Proetel  <proetel@aicas.com>

	* java/awt/image/ComponentSampleModel.java (setDataSamples):Do not reset
	scanline stride.

2004-05-04  Ingo Proetel  <proetel@aicas.com>

	* java/awt/ColorPaintContext.java (<init>): Added ColorModel to signature.
	(getColorModel): Return the actual color model.
	(getRaster): Implemented.
	(ColorRaster): New inner class.
	* java/awt/SystemColor.java (createContext): Use ColorModel when creating
	a PaintContext.
	* java/awt/Color.java (<init>): Make exception more verbose.
	(createContext): Use ColorModel when creating a PaintContext.

2004-05-04  Michael Koch  <konqueror@gmx.de>

	* gnu/java/text/CharacterBreakIterator.java
	(previous): Removed unused variable.

2004-05-04  Guilhem Lavaux <guilhem@kaffe.org>

	* gnu/java/text/FormatBuffer.java,
	gnu/java/text/AttributedFormatBuffer.java,
	gnu/java/text/StringFormatBuffer.java: New classes to implement
	attributed iterators in java.text.
	* gnu/java/text/FormatCharacterIterator.java: Moved
	from java/text as it is an internal class.
	* java/text/FormatCharacterIterator.java: Removed.
	* java/text/Format.java:
	Import gnu.java.text.FormatCharacterIterator.
	* Makefile.am (java_source_files): Added new files.
	* Makefile.in: Regenerated.


2004-05-04  Mark Wielaard  <mark@klomp.org>

	* gnu/java/nio/channels/FileChannelImpl.java (finalize): New method.

2004-05-03  Andreas Tobler  <a.tobler@schweiz.ch>

	* Makefile.am (WARNINGS): Replace -W with the more speaking -Wextra.
	* Makefile.in: Rebuilt.

2004-05-03  Mark Wielaard  <mark@klomp.org>

	* gnu/java/security/der/DERReader.java: Call static methods staticly.
	* java/awt/TextComponent.java (select): Use selectionEnd parameter.
	* java/net/URL.java
	(set(String, String, int, String, String, String, String, String)):
	Assign this.file to path or path + "?" + query.
	* java/util/Arrays.java: Call static methods staticly.
	* java/util/zip/ZipEntry.java: Likewise.
	* javax/swing/plaf/basic/BasicArrowButton.java (setDirection): Assign
	dir to this.direction.
	* javax/swing/table/DefaultTableCellRenderer.java (noFocusBorder):
	Assign static field only once.
	(DefaultTableCellRenderer): Don't reassign noFocusBorder each time.

2004-05-03  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java (minimumSize): Removed
	unused variables hScrollbarHeight and vScrollbarWidth.
	(preferredSize): Likewise.
	* gnu/java/security/provider/DSAParameters.java (engineToString):
	Removed unused call to System.getProperty("line.seperator");
	* java/security/Security.java (loadProviders): Return result.

2004-05-03  Tom Tromey  <tromey@redhat.com>

	* java/net/URLStreamHandler.java (toExternalForm): Removed
	unused variables.
	unused constructor.
	* java/math/BigDecimal.java (divide): Removed unused variable.
	* java/lang/Throwable.java: Cleaned up imports.
	* java/lang/ClassLoader.java: Cleaned up imports.
	* java/io/FilePermission.java (implies): Removed unused
	variable.
	* java/awt/TextComponent.java: Removed unused import.
	* gnu/java/util/prefs/NodeReader.java: Cleaned up imports.
	* gnu/java/util/DoubleEnumeration.java: Removed unused import.
	* gnu/java/text/WordBreakIterator.java: Removed unused import.
	* gnu/java/text/SentenceBreakIterator.java: Removed unused
	import.
	* gnu/java/text/LineBreakIterator.java: Removed unused import.
	* gnu/java/text/CharacterBreakIterator.java: Removed
	unused import.
	* gnu/java/security/provider/DSAKeyPairGenerator.java:
	Cleaned up imports.
	* gnu/java/security/der/DERWriter.java: Cleaned up imports.
	* gnu/java/nio/charset/UTF_16Decoder.java (put): Removed
	unused method.
	* gnu/java/nio/SocketChannelImpl.java: Cleaned up imports.
	* gnu/java/nio/FileLockImpl.java: Cleaned up imports.
	* gnu/java/io/Base64InputStream.java: Cleaned up imports.
	* gnu/java/beans/info/ComponentBeanInfo.java: Cleaned up imports.
	* gnu/classpath/ServiceFactory.java: Cleaned up imports.
	(lookupProviders): Removed unused variable.
	(loadNextServiceProvider): Likewise.
	* gnu/java/beans/BeanInfoEmbryo.java: Cleaned up imports.

2004-05-03  Michael Koch  <konqueror@gmx.de>

	Fixes PR libgcj/14695:
	* java/net/NetworkInterface.java
	(getByName): Return null when no interface was found.

2004-04-30  Ranjit Mathew  <rmathew@hotmail.com>
	    Tom Tromey  <tromey@redhat.com>

	* testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use
	additional option "-Wmissing-prototypes" for compiling C sources.
	Print actual filename for pass/fail rather than $name.c.
	* testsuite/libjava.jni/PR15133.java: New testcase file.
	* testsuite/libjava.jni/PR15133.c: Likewise.
	* testsuite/libjava.jni/PR15133.out: Likewise.

2004-04-30  Roger Sayle  <roger@eyesopen.com>

	* testsuite/libjava.lang/MathBuiltin.java: Add tests for acos, asin,
	ceil and floor.

2004-04-25  Ranjit Mathew  <rmathew@hotmail.com>

	* testsuite/libjava.jacks/jacks.exp (gcj_jacks_write): Explicitly
	limit the maximum heap size to avoid unnecessary thrashing.

2004-04-24  Jerry Quinn  <jlquinn@optonline.net>

	* java/text/CollationElementIterator.java (reset): Reset
	lookahead variables.

2004-04-23  Mark Wielaard  <mark@klomp.org>

	* jni/classpath/jcl.c: Changed C++ comments into C comments.

2004-04-23 Dalibor Topic <robilad@kaffe.org>

	* java/sql/DriverManager.java:
	Cleaned up imports.

2004-04-23  Michael Koch  <konqueror@gmx.de>

	* java/net/URL.java
	(hashcode): Don't initialize with default value explicitely.
	(getContent): Removed redundant "final" keyword.
	(openStream): Likewise.
	(getURLStreamHandler): Fixed coding style.
	* java/net/URLConnection.java
	(defaultAllowUserInteraction): Don't initialize with default value
	explicitely.
	(connected): Likewise.
	(doOutput): Likewise.
	(ifModifiedSince): Likewise.
	(dateformats_initialized): Likewise.
	(setURLStreamHander): Use StreamTokenizer where it belongs to.

2004-04-23  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/channels/FileChannelImpl.java
	(SET, CUR): Unused, removed.
	(read): Implement here directly.
	(implRead): Removed.
	(write): Implement here directly.
	(implWrite): Removed.

2004-04-23  Dalibor Topic  <robilad@kaffe.org>

	* javax/rmi/CORBA/PortableRemoteObjectDelegate.java,
	javax/rmi/CORBA/Stub.java,
	javax/rmi/CORBA/Util.java,
	javax/rmi/CORBA/ValueHandler.java,
	javax/rmi/CORBA/ValueHandler.java,
	javax/rmi/PortableRemoteObject.java:
	Cleaned up imports.

2004-04-23 Dalibor Topic <robilad@kaffe.org>

	* java/util/jar/JarFile.java,
	java/util/jar/JarInputStream.java,
	java/util/jar/JarOutputStream.java,
	java/util/jar/Manifest.java:
	Cleaned up imports.

2004-04-23 Dalibor Topic <robilad@kaffe.org>

	* java/util/ArrayList.java,
	java/util/Calendar.java,
	java/util/Currency.java,
	java/util/HashMap.java,
	java/util/HashSet.java,
	java/util/Hashtable.java,
	java/util/LinkedList.java,
	java/util/Properties.java,
	java/util/PropertyPermission.java,
	java/util/TimeZone.java,
	java/util/TreeMap.java,
	java/util/TreeSet.java,
	java/util/Vector.java,
	java/util/WeakHashMap.java:
	Cleaned up imports.

2004-04-23  Dalibor Topic  <robilad@kaffe.org>

	* java/util/logging/FileHandler.java,
	java/util/logging/Formatter.java,
	java/util/logging/Handler.java,
	java/util/logging/Logger.java,
	java/util/logging/SimpleFormatter.java,
	java/util/logging/XMLFormatter.java:
	Cleaned up imports.

2004-04-22  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (PEDANTIC_CFLAGS): New -ansi -pedantic -Wall
	-Wno-long-long flags variable.
	(gtk_c_files): Use PEDANTIC_CFLAGS.
	* Makefile.in: Regenerated.

2004-04-22  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c:
	Changed C++ comments into C comments.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c:
	Likewise.

2004-04-22  Michael Koch  <konqueror@gmx.de>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c:
	Merged copyright year with GNU classpath.

2004-04-22  Dalibor Topic  <robilad@kaffe.org>

	* javax/security/auth/x500/X500Principal.java:
	Cleaned up imports.

2004-04-22  Dalibor Topic  <robilad@kaffe.org>

	* javax/swing/JSlider.java:
	Fixed HTML tags in comments.

2004-04-22  Dalibor Topic  <robilad@kaffe.org>

	* javax/accessibility/AccessibleText.java:
	Cleaned up imports.

2004-04-22  Jeroen Frijters <jeroen@sumatra.nl>

	* java/net/URLStreamHandler.java
	(parseURL): Convert the file path to using '/' instead of native
	file separator.

2004-04-22  Guilhem Lavaux <guilhem@kaffe.org>

	* java/net/URL.java
	(userInfo): New field.
	(URL): Set authority to the right value.
	(setURL): Fixed authority and file initialization.
	* java/net/URLStreamHandler.java
	(parseURL): Take care of the query tag. Build authority.
	(toExternalForm): Fixed URL building using authority.

2004-04-22  Michael Koch  <konqueror@gmx.de>

	* java/net/Socket.java
	(impl): Made package-private.
	* java/net/ServerSocket.java
	(implAccept): Access Socket.impl field directly.

2004-04-22  Dalibor Topic  <robilad@kaffe.org>

	* java/util/prefs/Preferences.java,
	java/util/prefs/InvalidPreferencesFormatException.java,
	java/util/prefs/BackingStoreException.java,
	java/util/prefs/AbstractPreferences.java:
	Cleaned up imports.

2004-04-22  Dalibor Topic  <robilad@kaffe.org>

	* java/util/regex/Matcher.java,
	java/util/regex/Pattern.java:
	Cleaned up imports.

2004-04-22  Michael Koch  <konqueror@gmx.de>

	* java/nio/charset/IllegalCharsetNameException.java
	(charsetName): Made private.
	(IllegalCharsetNameException): Added @param tag to javadoc.
	(getCharsetName): Added @return tag to javadoc.
	* java/nio/charset/MalformedInputException.java
	(MalformedInputException): Added @param tag to javadoc.
	(getInputLength): Revised method description, added @return tag.
	(getMessage): Added @return tag.

2004-04-22  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Font.java (deriveFont): Implement missing variants.
	* gnu/java/awt/peer/ClasspathFontPeer.java (deriveFont): Implement
	missing variants.

2004-04-21  Bryce McKinlay  <mckinlay@redhat.com>

	* java/lang/natClass.cc (_Jv_LayoutInterfaceMethods): New method.
	Set method->index values for interface methods to their itable index.
	(initializeClass): Call _Jv_LayoutInterfaceMethods.

2004-04-21  Michael Koch  <konqueror@gmx.de>

	* java/nio/DirectByteBufferImpl.java
	(shiftDown): Made static, give address as argument and
	provide a convenience method that overwrites shiftDown in
	ByteBufferImpl and calls the native shiftDown.
	* java/nio/MappedByteBufferImpl.java
	(): Use optimized method in DirectByteBufferImpl.
	* java/nio/natDirectByteBufferImpl.cc
	(shiftDown): Changed method signature. Removed usage of array_offset.

2004-04-21  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/natPlainSocketImplPosix.cc
	(SocketInputStream::read): Make sure returned data is a byte value.

2004-04-21  Michael Koch  <konqueror@gmx.de>

	* gnu/classpath/ServiceFactory.java,
	gnu/classpath/ServiceProviderLoadingAction.java,
	javax/imageio/ImageReader.java,
	javax/imageio/ImageTranscoder.java,
	javax/imageio/ImageWriter.java,
	javax/imageio/package.html,
	javax/imageio/spi/IIOServiceProvider.java,
	javax/imageio/spi/ImageInputStreamSpi.java,
	javax/imageio/spi/ImageOutputStreamSpi.java,
	javax/imageio/spi/ImageReaderWriterSpi.java,
	javax/imageio/spi/ImageTranscoderSpi.java,
	javax/imageio/spi/RegisterableService.java,
	javax/imageio/spi/ServiceRegistry.java,
	javax/imageio/spi/package.html,
	javax/imageio/stream/IIOByteBuffer.java,
	javax/imageio/stream/ImageInputStream.java,
	javax/imageio/stream/ImageOutputStream.java,
	javax/imageio/stream/package.html:
	New files.
	* Makefile.am
	(ordinary_java_source_files): Added
	gnu/classpath/ServiceFactory.java and
	gnu/classpath/ServiceProviderLoadingAction.java.
	(javax_source_files): Added
	javax/imageio/ImageReader.java,
	javax/imageio/ImageTranscoder.java,
	javax/imageio/ImageWriter.java,
	javax/imageio/spi/IIOServiceProvider.java,
	javax/imageio/spi/ImageInputStreamSpi.java,
	javax/imageio/spi/ImageOutputStreamSpi.java,
	javax/imageio/spi/ImageReaderWriterSpi.java,
	javax/imageio/spi/ImageTranscoderSpi.java,
	javax/imageio/spi/RegisterableService.java,
	javax/imageio/spi/ServiceRegistry.java,
	javax/imageio/stream/IIOByteBuffer.java,
	javax/imageio/stream/ImageInputStream.java and
	javax/imageio/stream/ImageOutputStream.java.
	* Makefile.in: Regenerated.

2004-04-21  Michael Koch  <konqueror@gmx.de>

	* java/util/Properties.java
	(load): Fix wrongly merged fix.

2004-04-21  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gthread-jni.c (maybe_rethrow): Explicitly
	malloc and free buf.

2004-04-21  Dalibor Topic  <robilad@kaffe.org>

	* javax/naming/AuthenticationException.java,
	javax/naming/AuthenticationNotSupportedException.java,
	javax/naming/CannotProceedException.java,
	javax/naming/CommunicationException.java,
	javax/naming/CompoundName.java,
	javax/naming/ConfigurationException.java,
	javax/naming/ContextNotEmptyException.java,
	javax/naming/InitialContext.java,
	javax/naming/InsufficientResourcesException.java,
	javax/naming/InterruptedNamingException.java,
	javax/naming/LimitExceededException.java,
	javax/naming/LinkException.java,
	javax/naming/LinkLoopException.java,
	javax/naming/LinkRef.java,
	javax/naming/MalformedLinkException.java,
	javax/naming/Name.java,
	javax/naming/NameAlreadyBoundException.java,
	javax/naming/NameNotFoundException.java,
	javax/naming/NamingSecurityException.java,
	javax/naming/NoInitialContextException.java,
	javax/naming/NoPermissionException.java,
	javax/naming/NotContextException.java,
	javax/naming/PartialResultException.java,
	javax/naming/ReferralException.java,
	javax/naming/ServiceUnavailableException.java,
	javax/naming/SizeLimitExceededException.java,
	javax/naming/TimeLimitExceededException.java,
	javax/naming/directory/Attribute.java,
	javax/naming/directory/Attributes.java,
	javax/naming/directory/SearchResult.java,
	javax/naming/event/NamingExceptionEvent.java,
	javax/naming/spi/ResolveResult.java:
	Cleaned up imports.

2004-04-21  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c:
	Changed C++ comments into C comments. Removed commented out code.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c:
	Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c:
	Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c:
	Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c:
	Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c:
	Likewise.
	* native/jni/gtk-peer/gthread-jni.c:
	Likewise.

2004-04-21  Mark Wielaard  <mark@klomp.org>

	* javax/awt/JFrame.java: Implement WindowConstants. Remove final
	static fields defined in interface.
	* javax/awt/JDialog.java: Likewise.
	(JDialog): Make constructors public.
	(getDefaultCloseOperation): Make public.
	(processWindowEvent): Call System.exit(0) when EXIT_ON_CLOSE set.
	(setDefaultCloseOperation): Make public. Check argument. Add API doc.
	* javax/swing/JViewport.java (JViewport): Make constructor public.

2004-04-21  Michael Koch  <konqueror@gmx.de>

	* java/util/Map.java
	(Entry): Removed redundant "static" modifier.
	* java/text/AttributedCharacterIterator.java:
	Updated copyright year.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* javax/naming/directory/SearchControls.java:
	Don't explicitely extend java.lang.Object.
	* javax/naming/spi/DirStateFactory.java:
	Merged copyright year with GNU classpath.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* java/nio/channels/Channels.java:
	Merged coding style with GNU classpath.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* java/net/ServerSocket.java
	Merged coding style from GNU classpath.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* java/io/BufferedWriter.java:
	Reordered variables to be at top of the class.
	(localFlush): Removed redundant final keyword.

2004-04-20  Ingo Proetel  <proetel@aicas.com>

	* java/awt/event/MouseEvent.java (<init>): fixed field assignment

2004-04-20  Jeroen Frijters  <jeroen@frijters.net>

	* java/text/DecimalFormat.java (scanFix): Removed suffix check
	for percent and permill check.

2004-04-20  Guilhem Lavaux <guilhem@kaffe.org>

	* java/text/FieldPosition.java
	(FieldPosition) Constructor now behaves as it should according
	to the java documentation.

2004-04-20  Mark Wielaard  <mark@klomp.org>

	* java/util/Properties.java: Use the word umlaut, not &auml; in api
	documentation.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* java/nio/Buffer.java,
	java/nio/channels/AlreadyConnectedException.java,
	java/nio/channels/AsynchronousCloseException.java,
	java/nio/channels/ByteChannel.java,
	java/nio/channels/CancelledKeyException.java,
	java/nio/channels/Channel.java,
	java/nio/channels/Channels.java,
	java/nio/channels/ClosedByInterruptException.java,
	java/nio/channels/ClosedChannelException.java,
	java/nio/channels/ClosedSelectorException.java,
	java/nio/channels/ConnectionPendingException.java,
	java/nio/channels/DatagramChannel.java,
	java/nio/channels/FileChannel.java,
	java/nio/channels/FileLock.java,
	java/nio/channels/FileLockInterruptionException.java,
	java/nio/channels/GatheringByteChannel.java,
	java/nio/channels/IllegalBlockingModeException.java,
	java/nio/channels/IllegalSelectorException.java,
	java/nio/channels/InterruptibleChannel.java,
	java/nio/channels/NoConnectionPendingException.java,
	java/nio/channels/NonReadableChannelException.java,
	java/nio/channels/NonWritableChannelException.java,
	java/nio/channels/NotYetBoundException.java,
	java/nio/channels/NotYetConnectedException.java,
	java/nio/channels/OverlappingFileLockException.java,
	java/nio/channels/Pipe.java,
	java/nio/channels/ReadableByteChannel.java,
	java/nio/channels/ScatteringByteChannel.java,
	java/nio/channels/SelectableChannel.java,
	java/nio/channels/SelectionKey.java,
	java/nio/channels/Selector.java,
	java/nio/channels/ServerSocketChannel.java,
	java/nio/channels/SocketChannel.java,
	java/nio/channels/UnresolvedAddressException.java,
	java/nio/channels/UnsupportedAddressTypeException.java,
	java/nio/channels/WritableByteChannel.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/spi/CharsetProvider.java:
	Fixed javadocs and jalopied all over java.nio.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* java/nio/ByteBufferImpl.java,
	java/nio/CharBufferImpl.java,
	java/nio/DirectByteBufferImpl.java,
	java/nio/DoubleBufferImpl.java,
	java/nio/DoubleViewBufferImpl.java,
	java/nio/FloatBufferImpl.java,
	java/nio/FloatViewBufferImpl.java,
	java/nio/IntBufferImpl.java,
	java/nio/IntViewBufferImpl.java,
	java/nio/LongBufferImpl.java,
	java/nio/LongViewBufferImpl.java,
	java/nio/MappedByteBufferImpl.java,
	java/nio/ShortBufferImpl.java,
	java/nio/ShortViewBufferImpl.java:
	Made sure all classes are final and removed final keyword from all
	methods.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* java/rmi/MarshalledObject.java,
	java/rmi/Naming.java,
	java/rmi/RemoteException.java,
	java/rmi/activation/ActivationException.java,
	java/rmi/server/ServerCloneException.java,
	java/security/AccessController.java,
	java/security/AlgorithmParameterGenerator.java,
	java/security/AlgorithmParameters.java,
	java/security/CodeSource.java,
	java/security/Identity.java,
	java/security/IdentityScope.java,
	java/security/KeyPairGenerator.java,
	java/security/KeyStore.java,
	java/security/Security.java,
	java/security/Signature.java,
	java/security/SignatureSpi.java,
	java/security/SignedObject.java,
	java/security/spec/DSAParameterSpec.java,
	java/security/spec/DSAPrivateKeySpec.java,
	java/security/spec/DSAPublicKeySpec.java,
	java/sql/Array.java,
	java/sql/DatabaseMetaData.java,
	java/sql/ResultSet.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/DecimalFormatSymbols.java,
	java/text/Format.java,
	java/text/ParsePosition.java,
	java/text/RuleBasedCollator.java,
	java/text/SimpleDateFormat.java,
	java/text/StringCharacterIterator.java,
	java/util/Collections.java,
	java/util/PropertyResourceBundle.java,
	java/util/ResourceBundle.java,
	java/util/StringTokenizer.java,
	java/util/jar/Attributes.java,
	java/util/logging/ConsoleHandler.java,
	java/util/logging/LogManager.java,
	java/util/logging/MemoryHandler.java,
	java/util/logging/SocketHandler.java,
	javax/naming/NamingException.java:
	Fixed javadoc, coding style and argument names all over.

2004-04-20  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/FileDescriptor.java: (FileDescriptor) Added public
	constructor. (valid) Added null check.

2004-04-20  Guilhem Lavaux <guilhem@kaffe.org>

	Reported by Nektarios Papadopoulos <npapadop@inaccessnetworks.com>
	* java/io/FileOutputStream.java
	(FileOutputStream) Reorganized constructors. Constructors now
	check whether the given path is directory.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* java/net/Authenticator.java,
	java/net/BindException.java,
	java/net/ConnectException.java,
	java/net/ContentHandler.java,
	java/net/ContentHandlerFactory.java,
	java/net/DatagramPacket.java,
	java/net/DatagramSocket.java,
	java/net/DatagramSocketImpl.java,
	java/net/DatagramSocketImplFactory.java,
	java/net/FileNameMap.java,
	java/net/HttpURLConnection.java,
	java/net/Inet4Address.java,
	java/net/Inet6Address.java,
	java/net/InetAddress.java,
	java/net/InetSocketAddress.java,
	java/net/JarURLConnection.java,
	java/net/MalformedURLException.java,
	java/net/MulticastSocket.java,
	java/net/NetPermission.java,
	java/net/NetworkInterface.java,
	java/net/NoRouteToHostException.java,
	java/net/PasswordAuthentication.java,
	java/net/PortUnreachableException.java,
	java/net/ProtocolException.java,
	java/net/ServerSocket.java,
	java/net/Socket.java,
	java/net/SocketAddress.java,
	java/net/SocketException.java,
	java/net/SocketImpl.java,
	java/net/SocketImplFactory.java,
	java/net/SocketOptions.java,
	java/net/SocketPermission.java,
	java/net/SocketTimeoutException.java,
	java/net/URI.java,
	java/net/URISyntaxException.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/net/URLStreamHandlerFactory.java,
	java/net/UnknownHostException.java,
	java/net/UnknownServiceException.java:
	Fixed javadocs, coding style and argument names all over.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* java/lang/Byte.java,
	java/lang/CharSequence.java,
	java/lang/ClassLoader.java,
	java/lang/Compiler.java,
	java/lang/Double.java,
	java/lang/Float.java,
	java/lang/Integer.java,
	java/lang/Long.java,
	java/lang/Math.java,
	java/lang/Number.java,
	java/lang/Package.java,
	java/lang/Runtime.java,
	java/lang/RuntimePermission.java,
	java/lang/SecurityManager.java,
	java/lang/Short.java,
	java/lang/StringBuffer.java,
	java/lang/System.java,
	java/lang/ThreadGroup.java,
	java/lang/Throwable.java,
	java/lang/reflect/InvocationHandler.java,
	java/lang/reflect/Proxy.java:
	Fixed javadocs, coding style and argument names all over.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* java/io/BufferedWriter.java,
	java/io/ByteArrayInputStream.java,
	java/io/CharArrayWriter.java,
	java/io/DataInput.java,
	java/io/DataInputStream.java,
	java/io/File.java,
	java/io/FilterInputStream.java,
	java/io/InputStream.java,
	java/io/InputStreamReader.java,
	java/io/ObjectInputStream.java,
	java/io/ObjectStreamClass.java,
	java/io/PipedInputStream.java,
	java/io/PipedReader.java,
	java/io/PushbackInputStream.java,
	java/io/PushbackReader.java,
	java/io/RandomAccessFile.java,
	java/io/SerializablePermission.java,
	java/io/StreamTokenizer.java,
	java/io/StringWriter.java,
	java/io/WriteAbortedException.java,
	java/io/Writer.java:
	Fixed javadocs all over, rename arguments to match javadocs,
	fixed coding style.

2004-04-20  Ingo Proetel  <proetel@aicas.com>

	* java/awt/FontMetrics.java:
	(charsWidth): fixed accumulation of total_width
	(getWidth): simple default implementation
	* java/awt/Polygon.java (getBoundingBox): Use correct y-coordinate
	in Rectangle constructor.
	* java/awt/image/Raster.java (toString): Added method.
	* java/awt/image/SampleModel.java (<init>): Added error cause
	information to thrown exception.
	* java/awt/image/SinglePixelPackedSampleModel.java (getDataElements):
	New method.
	(setDataElements): New method.
	(setPixels): New method.
	(toString): New method.

2004-04-20  Sascha Brawer  <brawer@dandelis.ch>

	* java/awt/image/ComponentColorModel.java
	(createCompatibleSampleModel): Return PixelInterleavedSampleModel
	for TYPE_BYTE and TYPE_USHORT transferTypes, in order to pass the
	Mauve tests on this method. Improved documentation.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JLayeredPane.java,
	javax/swing/plaf/BorderUIResource.java,
	javax/swing/plaf/ComponentUI.java,
	javax/swing/undo/CompoundEdit.java,
	javax/swing/undo/StateEdit.java:
	Fixed HTML tags in javadocs all over.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* javax/print/attribute/EnumSyntax.java
	(getOffset): Made protected.
	* javax/print/attribute/HashAttributeSet.java
	(HashAttributeSet): Likewise.
	* javax/print/attribute/ResolutionSyntax.java
	(getFeedResolution): Fixed typo in exception name.
	(getCrossFeedResolution): Likewise.
	* javax/print/attribute/SetOfIntegerSyntax.java
	(SetOfIntegerSyntax): Fixed HTML entities in javadoc.
	* javax/print/attribute/TextSyntax.java
	(TextSyntax): Handle locale correctly.
	(hashCode): Calc better hashcode value.
	(equals): Fixed @return tag.
	(toString): New method.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/FileLockImpl.java
	(static): Removed, not needed anymore.
	* gnu/java/nio/channels/FileChannelImpl.java
	(FileChannelImpl): Made final.
	(mode): Made private.
	(READ, WRITE, APPEND): Made public.
	(EXCL, SYNC, DSYNC): Likewise.
	(static): Load native JNI library, when needed.
	(length): Unused, removed.
	(available): Made public.
	(implPosition): Throws IOException.
	(seek): Likewise.
	(implTruncate): Likewise.
	(unlock): Likewise.
	(lock): Likewise.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* java/awt/AWTPermission.java,
	java/awt/Component.java,
	java/awt/ComponentOrientation.java,,
	java/awt/Dialog.java,
	java/awt/FontMetrics.java,
	java/awt/Graphics.java,
	java/awt/datatransfer/DataFlavor.java,
	java/beans/Introspector.java,
	java/beans/PropertyEditor.java,
	java/beans/PropertyEditorManager.java,
	java/beans/beancontext/BeanContextServiceProvider.java:
	Fixed HTML tags in javadocs all over.

2004-04-20  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkFontPeer.java: Use fallback when
	MissingResourceException is thrown.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (getFontPeer): Don't return
	null when a MissingResourceException is thrown. Should never happen.

2004-04-20  Sascha Brawer  <brawer@dandelis.ch>

	* java/awt/image/DataBufferShort.java,
	java/awt/image/DataBufferFloat.java,
	java/awt/image/DataBufferDouble.java,
	java/awt/image/PixelInterleavedSampleModel.java: New files.
	* gnu/java/awt/Buffers.java (createBuffer, createBufferFromData,
	getData): Added support	for TYPE_SHORT, TYPE_FLOAT and TYPE_DOUBLE.

2004-04-20  Michael Koch  <konqueror@gmx.de>

	* Makefile.am (java_source_files): Added
	java/awt/image/DataBufferDouble.java,
	java/awt/image/DataBufferFloat.java,
	java/awt/image/DataBufferShort.java and
	java/awt/image/PixelInterleavedSampleModel.java.
	* Makefile.in: Regenerated.

2004-04-19  Bryce McKinlay  <mckinlay@redhat.com>

	* gcj/cni.h (JvAllocObject): Remove these obsolete,
	undocumented CNI calls.
	* include/java-interp.h (_Jv_InterpClass): No longer
	extends java.lang.Class.
	* java/lang/Class.h (Class): Add new field `aux_info'.
	* boehm.cc (_Jv_MarkObj): Update java.lang.Class marking.
	* defineclass.cc: Remove Class<->_Jv_InterpClass casts.
	Use Class->aux_info instead.
	* jni.cc (_Jv_JNI_AllocObject): Use _Jv_AllocObject.
	* resolve.cc: Remove Class<->_Jv_InterpClass casts.
	Use Class->aux_info instead.
	* java/io/natObjectInputStream.cc (allocateObject): Use
	_Jv_AllocObject.
	* java/lang/natClass.cc (newInstance): Likewise.
	* java/lang/natClassLoader.cc (_Jv_NewClass): Likewise.
	* java/lang/natObject.cc (clone): Likewise.
	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise.
	* java/lang/natVMClassLoader.cc (defineClass): Don't use
	JvAllocObject. Allocate klass->aux_info here for interpreted
	class.

2004-04-17  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JToggleButton.java (ToggleButtonModel):
	Make public static inner class.
	* javax/swing/JTabbedPane.java (setComponentAt):
	Call Page.setComponent().
	(SCROLL_TAB_LAYOUT): Make public, value is 1.
	(WRAP_TAB_LAYOUT): Make public, value is 0.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java (ScrollingButton):
	Make private static inner class.

2004-04-16  Bryce McKinlay  <mckinlay@redhat.com>

	* interpret.cc (_Jv_InterpMethod::run): Update _Jv_AllocObject
	arguments to match new signature. Remove FIXME comments.

2004-04-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkPanelPeer.java (connectSignals):
	Remove method.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c: Remove
	unused code.

2004-04-02  Olga Rodimina  <rodimina@redhat.com>

	* Makefile.am: Added new file.
	* Makefile.in: Regenerate.
	* javax/swing/ImageIcon.java:
	(ImageIcon(file)): set description of the icon
	to the file name
	* javax/swing/JCheckBoxMenuItem.java:
	Mostly Implemented. Work in progress.
	* javax/swing/JRadioButtonMenuItem.java:
	Reimplement constructors to use JToggleButtonModel.
	* javax/swing/plaf/basic/BasicIconFactory.java:
	(getCheckBoxMenuItemIcon): return check box
	icon.
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	paint menu item selected only when it is armed and
	pressed.

2004-04-02  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
	(GtkMenuItemPeer): Only connect signals if this isn't a Menu peer.
	* java/awt/Component.java
	(add): Set the parent of the popup as this component.
	* java/awt/PopupMenu.java
	(addNotify): Create popup menu when peer is null.
	(show): Call addNotify() if peer is null.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_show): Set the button
	argument for gtk_menu_popup() as zero. This causes the popup menu to
	respond to any mouse button.

2004-03-31  Olga Rodimina  <rodimina@redhat.com>

	* Makefile.am: Added new file.
	* Makefile.in: Regenerate.
	* javax/swing/JRadioButtonMenuItem.java:
	Implemented.
	* javax/swing/plaf/basic/BasicIconFactory.java:
	(getRadioButtonMenuItemIcon): Return
	radio button icon.
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(getPreferredSize): Add size of checkIcon if it
	exists.
	(installDefaults): Don't initialize checkIcon.
	It's value will be set in subclasses.
	(uninstallDefaults): remove uninstallation of
	checkIcon.
	(paint): Moved code to paintMenuItem().
	(paintMenuItem): Implemented.
	* javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java:
	UI delegate for JRadioButtonMenuItem.

2004-03-29  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	Corrected position of the accelerator.

2004-03-29  Olga Rodimina  <rodimina@redhat.com>

	* Makefile.am: Added new file.
	* Makefile.in: Regenerate.
	* javax/swing/JMenuItem.java: Partly
	implemented. Work in progress
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Changed default value of acceleratorDelimiter.
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	New class. Partly implemented.

2004-03-26  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
	(item_activate): Declare label before use.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(gtkSetFont): Removed unused variable label.
	(addExposeFilter): Declare variables before use.
	(removeExposeFilter): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(ok_clicked): Declare str_fileName before use.

2004-03-26  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkMenuPeer.java
	(addSeparator): Remove.
	* java/awt/Menu.java
	(separator): Remove static final MenuItem field.
	(separatorLabel): New static final String field.
	(addSeparator): Do not use peer method; use add(MenuItem) instead.
	Use separatorLabel to denote that it is a separator.
	(insertSeparator): Create a new MenuItem with separatorLabel, instead
	of reusing the static separator instance, because a MenuItem instance
	can't be added more than once without being cloned.
	* java/awt/peer/MenuPeer.java
	(addSeparator): Remove from interface.

2004-03-26  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
	(connectSignals): New native method declaration.
	(GtkMenuItemPeer): Connect signals if the parent is a Menu.
	* java/awt/MenuItem.java
	(getActionCommand): Return the label if the action command is not set.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_addMenu): Use
	gtk_menu_shell_append().
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
	(item_activate): Fix argument type.
	(Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_create): Do not connect
	signal here.
	(Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_connectSignals): New
	method.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkMenuPeer_create): Check if a label is
	given. Add the menu widget's top-level GtkWindow to the global window
	group, so it can grab the pointer.
	(Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addItem): Use
	gtk_menu_shell_append().

2004-03-23  Graydon Hoare  <graydon@redhat.com>

	* java/text/AttributedString.java
	(addAttribute): Fix off-by-one.
	(getIterator): Likewise.
	* java/text/AttributedStringIterator.java
	(getRunLimit): Correct logic.
	(getRunStart): Likewise.
	(getAttribute): Fix inequality.
	(getAttributes): Likewise.
	* testsuite/libjava.mauve/xfails: Remove AttributedString xfail.

2004-03-23  Kim Ho  <kho@redhat.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java:
	(calculateSizes): Return real width and height.

2004-03-23  Kim Ho  <kho@redhat.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(calculateTabRects): Set the selectedRun before
	trying to rotate tabs.

2004-03-23  Kim Ho  <kho@redhat.com>

	* Makefile.am: New file
	* Makefile.in: Regenerate
	* java/awt/Graphics.java: (drawRect):
	Draw to the correct point.
	* javax/swing/DefaultSingleSelectionModel.java
	(isSelected): Return true if the selected index
	is not -1.
	* javax/swing/JLabel.java: Do not change mnemonic
	index if text is null.
	* javax/swing/JProgressBar.java: Use JComponent's
	EventListenerList.
	* javax/swing/JScrollBar.java: Ditto.
	* javax/swing/JSlider.java: Ditto.
	* javax/swing/JTabbedPane.java: Reimplement.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Add defaults for TabbedPane.
	* javax/swing/plaf/basic/BasicArrowButton.java:
	Implement
	* javax/swing/plaf/basic/BasicProgressBarUI.java:
	(paintDeterminate): Don't paint String if it's
	empty.
	(paintIndeterminate): ditto.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java:
	Reimplement.

2004-03-19  Michael Koch  <konqueror@gmx.de>

	* java/awt/image/AffineTransformOp.java
	(AffineTransformOp): Made public.
	* javax/swing/JComponent.java
	(listenerList): Made protected.
	(accessibleContext): Likewise.
	* javax/swing/JList.java
	(valueChanged): Dont use internal fields of ListSelectionEvent.
	* javax/swing/JViewport.java
	(getView): Dont use internal fields of Component.
	(addImpl): Likewise.
	* javax/swing/Timer.java
	(isRunning): Made public.
	(start): Likewise.
	(stop): Likewise.
	* javax/swing/UIDefaults.java
	(getInt): Made public.
	* javax/swing/plaf/basic/BasicListUI.java
	(mousePressed): Dont use internal fields of MouseEvent.
	(propertyChanged): Dont use internal fields of PropertyChangeEvent.
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(arrowIcon): Made static.
	* javax/swing/plaf/basic/BasicViewportUI.java
	(stateChanged): Dont use internal field on ChangeEvent.
	* javax/swing/text/JTextComponent.java
	(getUI): Call UIManager.getUI().
	(updateUI): Use getUI().

2004-03-19  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/JComponent.java: Turn off double buffer by default.
	* javax/swing/plaf/basic/BasicViewportUI.java: Clear rects before painting.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_gdkDrawDrawable):
	Use cairo to copy areas.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoClip):
	Initialize and set clip region.

2004-03-15  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/applet/Applet.java (preferredSize): Override deprecated
	variant of getPreferredSize.
	(minimumSize): Override deprecated variant of getMinimumSize.

2004-03-15  Olga Rodimina  <rodimina@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(drawImage(img,xform,bgcolor,obs)): New Method.
	Helper function that every drawImage method will
	use.
	(drawRaster): Added new parameter, bgcolor. All
	transparent pixels are changed to bgcolor before
	image is drawn.
	(drawRenderedImage): Fixed to use changed drawRaster().
	(drawImage(image,xform,obs): Fixed to use new helper function
	(drawImage(image,op,x,y)): Ditto.
	(drawImage (img,x,y,observer)): Ditto.
	((PainterThread) bgcolor): New Field.
	((PainterThread) (setPixels)): Changed all transparent pixels
	to bgcolor.
	(drawImage(img,x,y,width,height,bgcolor,observer)):
	Fixed FIXME - all the transparent pixels are
	changed to the specified bgcolor.
	(drawImage(img, x, y, width, height, observer): Changed to
	use function above.
	(drawImage (img,dx1,dy1,dx2,dy2,sx1,sy1,sx2,sy2,bgcolor,observer)):
	Fixed FIXME- changed all transparent pixels to bgcolor.
	(drawImage (img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer)):
	Changed to use function above.

2004-03-14  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/applet/Applet.java (dimensions): New field.
	(getDimensions): New method.
	(getPreferredSize): Call getDimensions.
	(getMinimumSize): Likewise.

2004-03-13  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/classpath/jcl.c: Include stdlib.h, not malloc.h.
	* jni/classpath/jnilink.c: Likewise.

	* java/applet/Applet.java (getPreferredSize): New method.
	(getMinimumSize): New method.

2004-04-15  Bryce McKinlay  <mckinlay@redhat.com>

	* prims.cc (_Jv_AllocObject): Remove `size' argument.
	(_Jv_AllocObjectNoFinalizer): Likewise.
	(_Jv_AllocObjectNoInitNoFinalizer): Likewise.
	(_Jv_AllocPtrFreeObject): Likewise.
	(_Jv_AllocString): Moved from natString.cc. Call collector interface
	directly even in the JVMPI case.
	* gcj/cni.h (JvAllocObject): Remove `size' argument from
	_Jv_AllocObject calls.
	* gcj/javaprims.h: Update prototypes.
	* gnu/gcj/natCore.cc (_Jv_create_core): Use `new', not _Jv_AllocObject.
	* java/lang/Class.h: Update _Jv_AllocObject friend prototype.
	* java/lang/natString.cc (_Jv_AllocString): Move to prims.cc.

2004-04-14  Andrew Haley  <aph@redhat.com>
	    Bryce McKinlay  <mckinlay@redhat.com>

	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Use
	_Jv_LookupInterfaceMethodIdx for calls to interfaces.
	* include/jvm.h (_Jv_CallAnyMethodA): Add new `iface' arg.

	* testsuite/libjava.lang/InvokeInterface.java: New file.
	* testsuite/libjava.lang/InvokeInterface.out: New file.

2004-04-09  Ranjit Mathew  <rmathew@hotmail.com>

	* java/lang/VMThrowable.java (getStackTrace): Pass trace as-is to
	modified lookup().
	* gnu/gcj/runtime/NameFinder.java (lookup): Change to take in a
	StackTraceElement directly.
	(newElement): New native helper method to create StackTraceElement
	bypassing Java access control.
	(createStackTraceElement): Use newElement() instead of directly
	calling StackTraceElement's constructor.
	* gnu/gcj/runtime/natNameFinder.cc (newElement): New method.

2004-04-01  Michael Koch  <konqueror@gmx.de>

	* java/lang/SecurityManager.java
	(checkAwtEventQueueAccess): Implemented.

2004-04-01  Gary Benson  <gbenson@redhat.com>

	* resolve.cc (_Jv_ResolvePoolEntry): Put field name in exception.
	(_Jv_SearchMethodInClass): Likewise.

2004-03-26  Peter Moon  <peterm@miraculum.com>

	* java/text/NumberFormat.java: Fix spelling of setCurrency
	method.

2004-03-21  Anthony Green  <green@redhat.com>

	* java/lang/natClass.cc (getClassLoader): Circumvent infinite
	recursion when searching for the system ClassLoader.

2004-03-21  Ito Kazumitsu <kaz@maczuka.gcd.org>

	* java/net/ServerSocket.java
	(accept): Close the socket when error occured.

2004-03-21  Jeroen Frijters  <jeroen@frijters.net>

	* java/net/URI.java (parseURI): Added unquoting.
	(unquote): New method.
	(quoteAuthority): Implemented.
	(quote(String,String)): New method.
	(quotePath): Implemented.
	(getRawSchemeSpecificPart): Return new rawSchemeSpecificPart field.
	(getSchemeSpecificPart): Removed FIXME comment.
	(getRawAuthority): Return new rawAuthority field.
	(getAuthority): Removed FIXME comment.
	(getRawUserInfo): Return new rawUserInfo field.
	(getUserInfo): Removed FIXME comment.
	(getRawPath): Return new rawPath field.
	(getPath): Removed FIXME comment.
	(getRawQuery): Return new rawQuery field.
	(getQuery): Removed FIXME comment.
	(getRawFragment): Return new rawFragment field.
	(getFragment): Removed FIXME comment.

2004-03-20  Michael Koch  <konqueror@gmx.de>

	* java/net/URLConnection.java: Merged copyright year with classpath.

2004-03-20  Norbert Frese  <postfach@nfrese.net>

	* gnu/java/rmi/server/RMIIncomingThread.java: New file.
	* gcc/libjava/gnu/java/rmi/server/UnicastConnection.java:
	Create a new RMIObjectOuputStream/RMIObjectInputStream for every
	rmi-message.
	(getObjectInputStream): Return object reference, throw IOException if null.
	(startObjectInputStream): Create new RMIObjectInputStream on top of 'din'.
	(getObjectOutputStream): Return object reference, throw IOException if null.
	(startObjectOutputStream): Create new RMIObjectOutputStream on top of 'dout'.
	* gcc/libjava/gnu/java/rmi/server/UnicastConnectionManager.java:
	(UnicastConnectionManager): Throw RemoteException if port is not available.
	(getInstance): Throw RemoteException.
	(run): Lookup client host and attach it to new RMIIncomingThread for later retrieval.
	* gcc/libjava/gnu/java/rmi/server/UnicastRef.java:
	Start a new RMIObjectInputStream/RMIObjectOutputStream for every rmi-message.
	Collect Exceptions which are returned by a rmi-call and fix void returns.
	* gcc/libjava/gnu/java/rmi/server/UnicastRemoteCall.java:
	Start a new RMIObjectInputStream/RMIObjectOutputStream for every rmi-message.
	* gcc/libjava/gnu/java/rmi/server/UnicastServer.java:
	(dispatch): Answer ping messages which are sent by other java implementions.
	(incomingMessageCall): Start a new RMIObjectInputStream/RMIObjectOutputStream
	for every rmi-message and fix void return problems.
	* gcc/libjava/gnu/java/rmi/server/UnicastServerRef.java
	(UnicastServerRef): Throw RemoteException.
	(exportObject): Find the class up the class hierarchy which has a _Stub generated by rmic.
	In some situations it is necessary to export a subclass of the class which has the _Stub.
	For instance when the class with has the _Stub is abstract.
	(findStubSkelClass): New method which looks for the class which has the _Stub.
	(getClientHost): Implementated.
	* gcc/libjava/java/rmi/server/RemoteServer.java
	(getClientHost): Implementated.
	* gcc/libjava/Makefile.am (rmi_java_source_files):
	Added gnu/java/rmi/server/RMIIncomingThread.java.
	* Makefile.in: Regenerated.

2004-03-20  Michael Koch  <konqueror@gmx.de>

	* java/net/InetAddress.java
	(getLocalHostname): Added javadoc.

2004-03-19  Per Bothner  <per@bothner.com>

	* configure.in: FILE variable  overrides FLATFORM when linking
	natFileChannelXXX.cc.

	* gnu/java/nio/channels/natFileChannelEcos.cc (diag_write):  Restored.
	(write):  Call diag_write, as in old natFileDescriptorEcos.cc.

2004-03-19  Per Bothner  <per@bothner.com>

	* gnu/gcj/convert/Input_UnicodeBig.java:  New class..
	* gnu/gcj/convert/Input_UnicodeLittle.java:  New class.
	* Makefile.am:  Update accordingly.
	* gnu/gcj/convert/IOConverter.java:  Define "utf-16le" and "utf16be"
	as aliases for UnicodeLittle and UnicodeBig.

2004-03-20  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getVScrollbarWidth):
	Don't access ws when it is null.
	(Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getHScrollbarHeight):
	Likewise.

2004-03-19  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/ThreadGroup.java (list): Changed print to println.

2004-03-19  Mark Wielaard  <mark@klomp.org>

	* java/io/BufferedReader.java: Use &lt;=, not &lt;&eq; to make gjdoc
	happy.

2004-02-10  Randolph Chung  <tausq@debian.org>

	* configure.in: Build java for hppa target.
	* configure: Regenerate.
	* libjava/configure.host (hppa-*): Add target.
	* libjava/sysdeps/pa/lock.h: New file.

2004-03-19  Mark Wielaard  <mark@klomp.org>

	Reported by Stephen Crawley
	* java/io/FilePermission.java (implies): Use String.length() -1 to
	access last char of String.

2004-03-19  Michael Koch  <konqueror@gmx.de>

	* java/awt/image/AffineTransformOp.java
	(AffineTransformOp): Made public.
	* javax/swing/JComponent.java
	(listenerList): Made protected.
	(accessibleContext): Likewise.
	* javax/swing/JList.java
	(valueChanged): Dont use internal fields of ListSelectionEvent.
	* javax/swing/JViewport.java
	(getView): Dont use internal fields of Component.
	(addImpl): Likewise.
	* javax/swing/Timer.java
	(isRunning): Made public.
	(start): Likewise.
	(stop): Likewise.
	* javax/swing/UIDefaults.java
	(getInt): Made public.
	* javax/swing/plaf/basic/BasicListUI.java
	(mousePressed): Dont use internal fields of MouseEvent.
	(propertyChanged): Dont use internal fields of PropertyChangeEvent.
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(arrowIcon): Made static.
	* javax/swing/plaf/basic/BasicViewportUI.java
	(stateChanged): Dont use internal field on ChangeEvent.
	* javax/swing/text/JTextComponent.java
	(getUI): Call UIManager.getUI().
	(updateUI): Use getUI().

2004-03-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* verify.cc: Undef PC.

2004-03-18  Michael Koch  <konqueror@gmx.de>

	* java/nio/channels/spi/AbstractSelectableChannel.java
	(keys): Initialize at declaration.
	(locate): keys cant be null.
	(add): Removed.
	(addSelectionKey): New method.
	(removeSelectionKey): New method.
	* java/nio/channels/spi/AbstractSelectionKey.java
	(cancel): Call AbstractSelector.cancelKey(SelectionKey key).
	* java/nio/channels/spi/AbstractSelector.java
	(provider): Javadoc added.
	(cancelledKeys): Javadoc added.
	(cancelKey): Javadoc added, add key to cancelledKeys.
	(deregister): Implemented.

2004-03-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* gnu/java/nio/channels/natFileChannelPosix.cc (mapImpl): Cast
	MAP_FAILED to void *.

2004-03-12  Graydon Hoare  <graydon@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java: Clipping fixes.
	* javax/swing/JComponent.java (paint): Use persistent double buffer.
	* javax/swing/JList.java (ListListener): Revalidate on changes.
	* javax/swing/JScrollPane.java: Reimplement.
	* javax/swing/JViewport.java: Reimplement.
	* javax/swing/ScrollPaneLayout.java: Reimplement.
	* javax/swing/ViewportLayout.java: Tidy up.
	* javax/swing/plaf/basic/BasicButtonListener.java: Remove printlns.
	* javax/swing/plaf/basic/BasicScrollPaneUI.java: Reimplement.
	* javax/swing/plaf/basic/BasicSliderUI.java: Handle missing labels.
	* javax/swing/plaf/basic/BasicViewportUI.java: Implement in terms of
	backing store only.

2004-03-11  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(window_wm_protocols_filter): New function.
	(window_focus_in_cb): Remove function.
	(window_focus_out_cb): Likewise.
	(window_focus_or_active_state_change_cb): New function.
	(create): Add filter that removes WM_TAKE_FOCUS client messages.
	(connectSignals): Don't attach handlers to focus-in-event or
	focus-out-event signals.  Handle notify signal.

2004-03-11  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
	(gtkSetLabel): New native method declaration.
	(setLabel): Use gtkSetLabel.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkSetLabel): New method.

2004-03-10  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java (setColor): Default to
	black when color argument is null.

2004-03-10  Kim Ho  <kho@redhat.com>

	* java/awt/Container.java: Remove check
	for drag events.

2004-03-10  Kim Ho  <kho@redhat.com>

	* java/awt/Container.java: (visitChild):
	Remove candidate clip. Use the component
	clip to intersect.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java:
	(handleEvent): Use the PaintEvent's clip.

2004-03-10  Kim Ho  <kho@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java:
	(handleEvent): Don't set the clip for the
	Graphics object.

2004-03-09  Graydon Hoare  <graydon@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c:
	Fix double <-> fixed macros, reset font transform.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c:
	Likewise.

2004-03-09  Kim Ho  <kho@redhat.com>

	* java/awt/Container.java: (visitChild): Move
	the x and y coordinate of the component rectangle
	to correct position.
	(handleEvent): Forward drag events to the pressed
	component.
	* javax/swing/plaf/basic/BasicScrollBarUI.java:
	Fix comments.
	(ArrowButtonListener::mousePressed): Stop the
	existing timer.
	(mouseDragged): Implement.
	(TrackListener::mousePressed): Only react if
	the press doesn't occur on the thumb, otherwise
	just set the offset.
	(TrackListener::mouseReleased): Unset the isAdjusting
	value.
	(createIncreaseIcon): Switch icon.
	(createDecreaseIcon): Switch icon.
	(calculatePreferredSize): Use width.
	(getThumbBounds): Use the top as the lower value.
	(layoutVScrollBar): Switch the button locations.
	(paintIncreaseHighlight): Paint correct side of thumb.
	(paintDecreaseHighlight): ditto.
	(valueForYPosition): Use top as the lower value.
	* javax/swing/plaf/basic/BasicSliderUI.java:
	Fix comments.
	(mouseDragged): Implement.
	(mousePressed): Only react when the thumb isn't
	pressed, otherwise just set offset.
	(mouseReleased): Handle a release of the thumb.
	(scrollDueToClickInTrack): Stop the timer first.
	* javax/swing/JProgressBar.java:
	(setString): Fix change condition.
	* javax/swing/JSeparator.java:
	Remove println's.

2004-03-08  David Jee  <djee@redhat.com>

	* java/awt/image/AffineTransformOp.java:
	(filter): Use Graphics2D interface instead of directly using the
	GdkGraphics2D peer.

2004-03-05  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkButtonPeer.java
	(handleEvent): Action events are generated upon MOUSE_RELEASED.
	* java/awt/Container.java
	(acquireComponentForMouseEvent): Fixed.
	(handleEvent): Fixed.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(state_to_awt_mods_with_button_states): New method.
	(pre_event_handler): Fixed mouse event generation.

2004-03-05  Olga Rodimina  <rodimina@redhat.com>

	gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(GdkGraphics2D (BufferedImage)): Initialize
	pixmap associated with specified BufferedImage.
	(setPaint): Changed implementation of Texture
	Paint to use AffineTransformOp.
	* java/awt/image/AffineTransformOp.java
	(createCompatibleDestRaster): Throw RasterFormatException
	if resulting width or height of raster is 0.

2004-03-04  Olga Rodimina  <rodimina@redhat.com>

	* java/awt/image/AffineTransformOp.java:
	Removed unnecessary field interpolationType.
	Formatted some of the lines to be consistent with
	the GNU style.
	(AffineTransformOp): Create new RenderingHints
	containing specified interpolation type.
	(createCompatibleDestImage): Implemented.
	(createCompatibleDestRaster): Implemented.
	(filter): Implemented.
	(getBounds2D(BufferedImage)): Implemented.
	(getBounds2D(Raster)): Implemented.
	(getInterpolationType): Get interpolation value from
	rendering hints.

2004-03-04  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkContainerPeer.java
	(setFont): Check if child peers are null.

2004-03-04  Graydon Hoare  <graydon@redhat.com>

	* testsuite/lib/libjava.exp (libjava_find_lib): Don't include
	.libs in -L option.
	(libjava_arguments): Add new libraries to argument list.

2004-03-02  Olga Rodimina  <rodimina@redhat.com>

	* Makefile.am: Added java/awt/image/AffineTransformOp.java
	* Makefile.in: Re-generated.
	* java/awt/image/AffineTransformOp.java: New Class.

2004-03-01  Olga Rodimina  <rodimina@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(setPaint): Interpret correctly TexturePaint's
	anchor rectangle.
	(drawImage): Fixed scale factors of the affine
	transform.

2004-02-27  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(GdkGraphics(Component)): Inherit font from component.
	(drawString): Use font style.
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
	(gtkSetFont): New native method declaration.
	(setFont): New method.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(gtkSetFont): New native method declaration.
	(setFont): Call new native method gtkSetFont.
	* gnu/java/awt/peer/gtk/GtkContainerPeer.java
	(setFont): For all child components who do not their fonts set,
	set their peers' fonts with this container's font.
	* gnu/java/awt/peer/gtk/GtkLabelPeer.java:
	Move all native method declarations to the top for readability.
	(gtkSetFont): New native method declaration.
	(setFont): New method.
	* java/awt/Component.java
	(setFont): Invalidate after setting the font.
	* java/awt/Container.java
	(invalidateTree): New method.
	(setFont): Invalidate the container tree after setting the font.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString): Use font style.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkSetFont): New method.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkSetFont): New method.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkSetFont): New method.

2004-02-27  Olga Rodimina <rodimina@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(updateBufferedImage): New helper function.
	Updates BufferedImage in memory if it was changed.
	(draw): changed to update BufferedImage in memory after
	this drawing operation
	(fill): Ditto.
	(draw3DRect): Ditto.
	(fill3DRect): Ditto.
	(clearRect): Ditto.
	(drawRaster): Ditto.
	(drawImage) : Ditto. Update only in case of GtkOffScreenImage with
	no affine transformation.
	(drawGlyphVector): Ditto.

2004-02-26  Olga Rodimina <rodimina@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(isBufferedImageGraphics): New Helper function.
	Returns true if this graphics2d can be used to draw
	into buffered image and false otherwise.
	(updateImagePixels): New Helper function.
	Updates pixels in the BufferedImage.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(getImagePixels): New function. Returns pixels
	of the buffered image associated with
	this Graphics2D.

2004-02-26  David Jee  <djee@redhat.com>

	* java/awt/BorderLayout.java
	(layoutContainer): Fix width and height calculations to ensure
	that they're non-negative.
	* java/awt/Component.java
	(setBackground): If c is null, inherit from closest ancestor whose
	background color is set.

2004-02-26  Kim Ho  <kho@redhat.com>

	* Makefile.am: Add new files.
	* Makefile.in: Re-generate.
	* javax/swing/JProgressBar.java:
	(JProgressBar(int, int int)): Throw
	IllegalArgumentException if orientation is
	invalid.
	(JProgressBar(BoundedRangeModel)): Create
	ChangeListener and register it. UpdateUI.
	(getChangeListeners): Implement.
	(setModel): Reset ChangeListener.
	* javax/swing/JScrollBar.java: Implement.
	* javax/swing/JSeparator.java: Implement.
	* javax/swing/JSlider.java:
	(JSlider(int, int, int, int)): Throw
	IllegalArgumentException if orientation
	is invalid.
	(getChangeListeners): Fix method name.
	* javax/swing/SwingUtilities.java:
	(layoutCompoundLabel): If there is no text,
	set the text rectangle dimensions to 0.
	* javax/swing/plaf/basic/BasicButtonUI.java:
	(paint): If there is no text, don't paint it.
	* javax/swing/plaf/basic/BasicScrollBarUI.java:
	Implement.
	* javax/swing/plaf/basic/BasicSeparatorUI.java:
	Implement.
	* javax/swing/plaf/basic/BasicSliderUI.java:
	(propertyChange): If the model changes, change
	the listeners accordingly.

2004-02-25  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/AbstractButton.java: Add "final" qualifiers.
	* javax/swing/JList.java: Reimplement.
	* javax/swing/DefaultListSelectionModel.java: Reimplement.
	* javax/swing/plaf/basic/BasicListUI.java: Reimplement.
	* javax/swing/plaf/basic/BasicLookAndFeel.java: Add "purple" values.
	* javax/swing/ListModel.java: Javadoc.
	* javax/swing/ListSelectionModel.java: Add missing methods.
	* javax/swing/AbstractListModel.java: Javadoc and corrections.
	* javax/swing/DefaultListModel.java: Javadoc and corrections.
	* javax/swing/ListModel.java: Javadoc and corrections.
	* javax/swing/DefaultListCellRenderer.java: Minor tidying.

2004-02-25  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFontPeer.java
	(GtkFontPeer): Change default size to 12.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(getFontPeer): Change default size to 12.
	(getClasspathFontPeer): Likewise. Set default name to "Default".
	* java/awt/Font.java
	(Font(Map)): Call Font(String,Map).
	(Font(String,Map)): If attrs is null, initialize it as an empty
	HashMap, which will ensure that the Font will get default attributes.

2004-02-25  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFontPeer.java
	(GtkFontPeer(String,int)): Call the new constructor with size 1.
	(GtkFontPeer(String,int,int)): New constructor with size attribute.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(getFontPeer(String,int)): Call the new overload method with size 1.
	(getFontPeer(String,int,int)): New method. Overloaded with size
	attribute.
	(getClasspathFontPeer): Set the size of the font.

2004-02-24  Olga Rodimina  <rodimina@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(bimage): New field.
	(GdkGraphics2D): New Constructor. Constructs Graphics
	object that can be used to draw into the Buffered Image.
	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java:
	(GdkGraphicsEnvironment): Fixed to include public
	keyword.
	(createGraphics): Implemented.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(getLocalGraphicsEnvironment): Implemented.
	* java/awt/GraphicsEnvironment.java:
	(getLocalGraphicsEnvironment): Implemented.
	* java/awt/image/BufferedImage.java:
	(createGraphics): Implemented.

2004-02-24  David Jee  <djee@redhat.com>

	* java/awt/Component.java
	(eventTypeEnabled): Add MOUSE_MOVED and MOUSE_DRAGGED event types.
	* java/awt/Container.java
	(addNotifyContainerChildren): Fix event enabling.

2004-02-23  Olga Rodimina  <rodimina@redhat.com>

	* Makefile.am: Added
	gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
	* Makefile.in: Re-generated.
	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java:
	New Class.

2004-02-19  Kim Ho  <kho@redhat.com>

	* Makefile.am: Add BasicProgressBarUI
	* Makefile.in: Regenerate.
	* javax/swing/JProgressBar.java:
	Re-implement.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	Add constants for JProgressBar.
	* javax/swing/plaf/basic/BasicProgressBarUI.java
	Implement.
	* javax/swing/plaf/basic/BasicSliderUI.java
	Change comments.
	(calculateGeometry): New method
	(paint): Remove unnecessary size calculations.

2004-02-18  Olga Rodimina  <rodimina@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(drawRaster): Fixed small error that caused
	imageToUser transformation to be set incorrectly.
	(toString): Implemented.

2004-02-18  David Jee  <djee@redhat.com>

	* java/awt/CardLayout.java
	(addLayoutComponent): Show the first component added as the default.
	(removeLayoutComponent): After removing, show the next component.
	(gotoComponent): If there is only one component, show it and return.

2004-02-18  Kim Ho  <kho@redhat.com>

	* javax/swing/JSlider.java: Re-order
	modifiers.
	* javax/swing/JLabel.java: Re-order
	modifiers.
	* javax/swing/JComponent.java:
	(addPropertyChangeListener):
	Implement.
	(removePropertyChangeListener):
	ditto.
	(firePropertyChangeEvent):
	ditto.

2004-02-17  David Jee  <djee@redhat.com>

	* java/awt/Component.java
	(show): Dispatch ComponentEvent via system event queue.
	(hide): Likewise.
	(move): Likewise.
	(resize): Likewise.
	(reshape): Likewise.
	* java/awt/Window.java
	(setBoundsCallback): Likewise.

2004-02-17  David Jee  <djee@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeBounds):
	Use gtk_widget_set_size_request() instead of the deprecated
	gtk_widget_set_usize().

2004-02-17  Kim Ho  <kho@redhat.com>

	* javax/swing/JSlider.java: Fix comments and
	make property strings constants.
	(createStandardLabels): Use the labels
	preferred size as bounds.
	* javax/swing/plaf/basic/BasicSliderUI.java
	Fix comments.
	(ScrollHandler::actionPerformed): Don't
	calculate the timer stop value. Let the
	MouseListeners find the stop location.
	(getPreferredHorizontalSize): Re-implement.
	(getPreferredVerticalSize): ditto.
	(getMinimumHorizontalSize): ditto.
	(getMinimumVerticalSize): ditto.
	(getPreferredSize): ditto.
	(getMinimumSize): ditto.
	(getMaximumSize): ditto.
	(paintTicks): Use doubles to find the
	tick location.
	(paintHorizontalLabel):  Use preferredSize
	as initial width and height.
	(paintVerticalLabel): ditto.

2004-02-17  Kim Ho  <kho@redhat.com>

	* javax/swing/JLabel.java: Changed
	property strings to constants.
	(DISPLAYED_MNEMONIC_INDEX_CHANGED_PROPERTY):
	New property.
	(setText): Change mnemonic index if
	text is too short.
	(setDisplayedMnemonicIndex): Fire property
	change event.
	(getDisplayedMnemonicIndex): Remove check
	against short text.

2004-02-17 Olga Rodimina <rodimina@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java:
	(drawImage(img,xform,obs)): Invert xform before
	passing the xform to cairo.
	(drawImage(img,x,y,bgcolor,obs)): Implemented.
	(drawImage (img,x,y,w,h,bgcolor,obs)): Partly
	implemented.
	(drawImage (img,x,y,w,h,obs)): Implemented.
	(drawImage (img,dx1,dy1,dx2,dy2,sx1,sy1,sx2,sy2,
	bgcolor,obs)): Partly implemented.
	(drawImage (img,dx1,dy1,dx2,dy2,sx1,sy1,sx2,sy2,obs)):
	Implemented.
	* java/awt/image/BufferedImage.java:
	(copyData): if dest is null, create raster with same
	dimensions as the current image.

2004-02-16  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/plaf/basic/BasicLabelUI.java
	(getPreferredSize): Use layoutCL.
	* javax/swing/plaf/basic/BasicGraphicsUtils.java
	(getPreferredButtonSize): Start with empty view rect, layout using
	component's preferred alignment.
	* javax/swing/plaf/basic/BasicLookAndFeel.java: Add some Label and
	List defaults.

2004-02-16  David Jee  <djee@redhat.com>

	* java/awt/Component.java
	(show): Dispatch COMPONENT_SHOWN ComponentEvent.
	(hide): Dispatch COMPONENT_HIDDEN ComponentEvent.
	(move): Erase old bounds and repaint new bounds. Dispatch
	COMPONENT_MOVED ComponentEvent.
	(resize): Erase old bounds and repaint new bounds. Dispatch
	COMPONENT_RESIZED ComponentEvent.
	(reshape): Dispatch COMPONENT_RESIZED and COMPONENT_MOVED
	ComponentEvents.
	* java/awt/Window.java
	(setBoundsCallback): Dispatch COMPONENT_RESIZED and COMPONENT_MOVED
	ComponentEvents.

2004-02-16  Olga Rodimina  <rodimina@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java:
	(setRenderingHint): Added implementation of
	Interpolation rendering hints.
	(setRenderingHints): Ditto.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:
	(drawPixels): fixed to allow user to choose type
	of filtering that should be used when displaying images.
	(cairoSurfaceSetFilter): New method. Sets filter type for
	interpolation of pixel values.

2004-02-16  David Jee  <djee@redhat.com>

	* java/awt/GridBagLayout.java
	(calcCellSizes): Rows or columns with zero sizes should still be
	considered for extra space distribution.

2004-02-16  Kim Ho  <kho@redhat.com>

	* javax/swing/JLabel.java: Re-implement.
	* javax/swing/plaf/basic/BasicLabelUI.java
	Re-implement.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Added constant.

2004-02-16  Kim Ho  <kho@redhat.com>

	* javax/swing/JSlider.java: Fix indentation and comments.
	(setModel): Remove null check to conform with Sun's.
	(setOrientation): Throw exception if not
	HORIZONTAL or VERTICAL.
	(getInverted): Use private variable instead of
	ComponentOrientation.
	(setInverted): ditto.
	* javax/swing/plaf/basic/BasicSliderUI.java:
	Fix indentation and comments.
	(propertyChange): Remove check for inverted slider, handle
	in main paint.
	(getMinimumSize): Return preferred size.
	(getMaximumSize): ditto.
	(calculateFocusRect): Don't relocate rectangle.
	(drawInverted): Return XOR of the slider's inversion and
	the component's orientation.
	(paint): Update leftToRightCache

2004-02-13  David Jee  <djee@redhat.com>

	* java/awt/GridBagLayout.java
	(GetLayoutInfo): Fix weight and size distribution. Relocate repeated
	code to helper methods.
	(sortBySpan): New helper method.
	(distributeSizeAndWeight): Likewise.
	(calcCellWeights): Likewise.
	(calcCellSizes): Add comments.

2004-02-13  David Jee  <djee@redhat.com>

	* java/awt/Component.java
	(show): Only do something if component is invisible at the moment.
	(hide): Only do something if component is visible at the moment.
	(reshape): If lightweight, erase old bounds and repaint new bounds.

2004-02-13  Kim Ho  <kho@redhat.com>

	* Makefile.am: Updated for new file.
	* Makefile.in: Regenerated.
	* javax/swing/JSlider.java: Reimplement.
	* javax/swing/SwingUtilities.java
	(layoutCompoundLabel): Use icon height
	instead of width.
	(paintComponent): Implement.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Add JSlider defaults.
	* javax/swing/plaf/basic/BasicSliderUI.java:
	Implement. New file.

2004-03-17  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/PlainDatagramSocketImpl.java
	(RECEIVE_LOCK): New member field.
	(SEND_LOCK): New member field.
	(send0): New method.
	(send): Synchronize on SEND_LOCK.
	(receive0): New method.
	(receive): Synchronize on RECEIVE_LOCK.
	* gnu/java/net/natPlainDatagramSocketImplNoNet.cc,
	gnu/java/net/natPlainDatagramSocketImplPosix.cc,
	gnu/java/net/natPlainDatagramSocketImplWin32.cc
	(send0): Renamed from send.
	(receive0): Renamed from receive.
2004-03-17  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/natPlainSocketImplPosix.cc
	(write): Just call write(jbyteArray, offset, len).
	(read): Just call read(jbyteArray, offset, len).

2004-03-16  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTabbedPane.java
	(serialVersionUID): New field.

2004-03-16  Norbert Frese  <postfach@nfrese.net>

	* java/net/InetAddress.java
	(getByName): Handle hostname == "" case.

2004-03-16  Dalibor Topic  <robilad@kaffe.org>

	Reported by: Adam Heath <doogie@debian.org>
	* gnu/javax/rmi/CORBA/DelegateFactory.java (getInstance): Use context
	class loader.

2004-03-15  Michael Koch  <konqueror@gmx.de>

	* java/util/Locale.java: Reverting my last patch
	and add a comment why the original version was okay.

2004-03-14  Andreas Tobler <a.tobler@schweiz.ch>

	* gnu/java/nio/channels/natFileChannelPosix.cc: Implement
	munmap_adaptor and msync_adaptor for older POSIX_C_SOURCES specs.
	(MappedByteBufferImpl::unmapImpl): Use munmap_adaptor.
	(MappedByteBufferImpl::forceImpl): Use msync_adptor.

2004-03-12  Michael Koch  <konqueror@gmx.de>

	* java/text/DateFormatSymbols.java: Fixed file name in copyright.

2004-03-12  Ito Kazumitsu  <ito.kazumitsu@hitachi-cable.co.jp>

	* java/net/URI.java (toURL): Implemented.

2004-03-12  Ito Kazumitsu  <ito.kazumitsu@hitachi-cable.co.jp>

	* java/net/URI.java
	(URI_REGEXP) updated to contain scheme specific part.
	(SCHEME_SPEC_PART_GROUP) new constant.
	(AUTHORITY_GROUP, PATH_GROUP, QUERY_GROUP, FRAGMENT_GROUP)
	updated to make room for SCHEME_SPEC_PART_GROUP.
	(parseURI) parse scheme specific part.
	(resolve, isAbsolute, isOpaque, getRawSchemeSpecificPart,
	getSchemeSpecificPart, getAuthority, getUserInfo, getPath,
	getQuery, getFragment) implemented.

2004-03-12  Dalibor Topic  <robilad@kaffe.org>

	* libraries/javalib/java/net/URI.java
	partially implemented using java.util.regex.
	(URI_REGEXP) new constant. Used to parse URIs.
	(SCHEME_GROUP) new constant representing index of scheme group
	in parsed URI.
	(AUTHORITY_GROUP) new constant representing index of authority
	group in parsed URI.
	(PATH_GROUP) new constant representing index of path group in
	parsed URI.
	(QUERY_GROUP) new constant representing index of query group in
	parsed URI.
	(FRAGMENT_GROUP) new constant representing index of fragment
	group in parsed URI.
	(getURIGroup) new static utility method.
	(parseURI) implemented.
	(quote) stub for new static utility method.
	(quoteAuthority) stub for new static utility method.
	(quoteHost) stub for new static utility method.
	(quotePath) stub for new static utility method.
	(quoteUserInfo) stub for new static utility method.
	(URI) implemented.
	(create) don't throw URISyntaxException. Implemented.
	(toString) implemented.

2004-03-12  Michael Koch  <konqueror@gmx.de>

	* java/net/HttpURLConnection.java
	(getResponseCode): Fix another typo in javadoc.

2004-03-11  Michael Koch  <konqueror@gmx.de>

	* java/util/logging/Level.java
	(parse): Use String.equals() instead of ==.

2004-03-11  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/protocol/jar/Connection.java
	(getContentLength): New method.

2004-03-11  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/PlainSocketImpl.java:
	Reformated to merge better with classpath's version.

2004-03-11  Michael Koch  <konqueror@gmx.de>

	* java/util/Locale.java
	(getISO3Language): Use String.equals() instead of ==.
	(getISO3Country): Likewise.

2004-03-11  Dalibor Topic  <robilad@kaffe.org>

	* java/text/AttributedString.java
	(addAttribute(AttributedCharacterIterator.Attribute,Object,int,int)):
	Use HashMap instead of Hashtable since value can be null, and
	you can not store a null value in a Hashtable.

2004-03-11  Guilhem Lavaux <guilhem@kaffe.org>

	* java/text/AttributedStringIterator.java
	(getAllAttributesKey): Return only keys concerned
	by the current iterator.
	(getAttributes): Use strict inequality for
	end_index.

2004-03-11  Michael Koch  <konqueror@gmx.de>

	* java/net/HttpURLConnection.java:
	Fixed typo in javadoc.

2004-03-11  Guilhem Lavaux  <guilhem@kaffe.org>

	* java/io/BufferedInputStream.java (marktarget): New field for max
	mark limit.
	(CHUNKSIZE): New constant for incremental mark buffer allocation.
	(mark): Use new fields.
	(read): Likewise.
	(read(byte[],int,int)): Likewise.
	(skip): Likewise.
	(refill): Likewise.

2004-03-11  Mark Wielaard  <mark@klomp.org>

	* java/beans/BeanDescriptor.java (BeanDescriptor):
	Set the FeatureDescriptor programmatic name.

2004-03-11  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/channels/natFileChannelEcos.cc: Totally reworked.
	This file was was just copied form java/io/natFileDescriptorEcos.cc
	and never changed to compile correctly.

2004-03-11  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/PipeImpl.java
	(SourceChannelImpl): Made final.
	(read): Implemented.
	(SinkChannelImpl): Made final.
	(write): Implemented.

2004-03-11  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/PlainDatagramSocketImpl.java:
	Reformated to match classpath's version more.

2004-03-11  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/ClasspathFontPeer.java:
	Fixed javadoc to be correct xhtml.
	* gnu/java/awt/peer/gtk/GtkArgList.java
	(add): Use Boolean.valueOf() instead of new Boolean().

2004-03-09  Michael Koch  <konqueror@gmx.de>

	* java/lang/Thread.java
	(runnable): Moved around.
	(daemon): Renamed from daemon_flag.
	(contextClassLoader): Renamed from context_class_loader.
	(Thread): Reordered constructors.
	(activeCount): Use group directly.
	(destroy): Make it a java method. Throw NoSuchMethodError like Sun does.
	(holdsLock): Reworked javadoc.
	(setDaemon): Reworked.
	* java/lang/natThread.cc
	(destroy): Removed.

2004-03-08  Anthony Green  <green@redhat.com>

	* Makefile.am: Build property resource files into libgcj.
	* Makefile.in: Rebuilt.
	* java/util/regex/Matcher.java, java/util/regex/Pattern.java,
	java/util/regex/PatternSyntaxException.java,
	gnu/regexp/CharIndexed.java,
	gnu/regexp/CharIndexedCharArray.java,
	gnu/regexp/CharIndexedInputStream.java,
	gnu/regexp/CharIndexedReader.java,
	gnu/regexp/CharIndexedString.java,
	gnu/regexp/CharIndexedStringBuffer.java, gnu/regexp/RE.java,
	gnu/regexp/REException.java,
	gnu/regexp/REFilterInputStream.java,
	gnu/regexp/REFilterReader.java, gnu/regexp/REMatch.java,
	gnu/regexp/REMatchEnumeration.java, gnu/regexp/RESyntax.java,
	gnu/regexp/REToken.java, gnu/regexp/RETokenAny.java,
	gnu/regexp/RETokenBackRef.java, gnu/regexp/RETokenChar.java,
	gnu/regexp/RETokenEnd.java, gnu/regexp/RETokenEndSub.java,
	gnu/regexp/RETokenLookAhead.java,
	gnu/regexp/RETokenOneOf.java, gnu/regexp/RETokenPOSIX.java,
	gnu/regexp/RETokenRange.java, gnu/regexp/RETokenRepeated.java,
	gnu/regexp/RETokenStart.java,
	gnu/regexp/RETokenWordBoundary.java,
	gnu/regexp/UncheckedRE.java: Files merged from GNU Classpath.

2004-03-03  Per Bothner  <per@bothner.com>

	* java/nio/channels/Channels.java (newInputStream, newOutputStream):
	Optimize when argument is a FileChannelImpl.
	(newInputStream(FileChannelImpl), newOutputStream(FileChannelImpl)):
	New native methods.
	* java/nio/channels/natChannels.cc:  New file for new native methods.
	* Makefile.am:  Update accordingly.

2004-03-02  Jan Hubicka  <jh@suse.cz>

	* configure.host: Pass -fno-omit-frame-pointer for i386.
	* configure.in: Likewise.
	* configure: Regenerate.

2004-03-01  Per Bothner  <per@bothner.com>

	* java/lang/natPosixProcess.cc (startProcess):  Fix thinko.

2004-02-29  Per Bothner  <per@bothner.com>

	* java/nio/channels/FileChannelImpl.java:  Moved to package
	gnu/java/nio/channels, since we need to refer to it from java.io.
	* java/nio/channels/natFileChannelImpl.cc:  Removed file.
	* gnu/java/nio/channels/FileChannelImpl.java:  New class, renamed
	from java/nio/channels.  Don't depend on FileDescriptor.
	(in, out, err):  New static fields.
	(mode):  New field.
	(SET, CUR, READ, WRITE, APPEND, EXCL, SYNC, DSYNC):  Moved constants
	from FileDescriptor.
	(by):  Removed MappedByteBuffer field.
	(map):  New working implementation.
	* gnu/java/nio/channels/natFileChannelPosix.cc:  New file, though
	some code "ported" from natFileDescriptoPosix.cc.
	* gnu/java/nio/channels/natFileChannelEcos.cc:  Likewise.
	* gnu/java/nio/channels/natFileChannelWin32.cc  Likewise.
	* java/io/FileDescriptor.java:  Implement on top of FileChannel.
	Remove native methods.
	* Makefile.am, configure.in:  Updated accordingly.

	* gnu/java/nio/FileLockImpl.java (fd):  Remove field, replacing it by:
	(ch):  New FileChannelImpl field.  Update constructor to match.
	(releaseImpl):  Remove native method.  Instead ...
	(release):  Call unlock on channel.
	* gnu/java/nio/natFileLockImpl.cc:  Removed file.

	* java/io/natFileDescriptorEcos.cc:  Remove file.
	* java/io/natFileDescriptorPosix.cc:  Remove file.
	* java/io/natFileDescriptorWin32.cc:  Remove file.
	* java/io/FileInputStream.java (ch):  Change type to FileChannelImpl.
	(<init>(File)):  Allocate a FileChannelImpl, not a FileDescriptor.
	(<init>(FileChannelImpl)):  New package-private constructor.
	(<init>(FileDescriptor)):  Extract FileChannelImpl from arg.
	(available, close, read, skip):  Implement using FileChannelImpl.
	(getFD):  Allocate FileDescriptor if needed.
	(getChannel):  Is now trivial.
	* java/io/FileOutputStream.java:  Corresponding changes.
	* java/io/RandomAccessFile.java:  Corresponding changes.

	* java/nio/MappedByteBuffer.java: (forceImpl, isLoadedImpl, loadImpl,
	unmapImpl):  New dummy methods, to be overridden by subclass.
	(finalize, isLoaded, load, force):  New methods.
	* java/nio/MappedByteBufferImpl.java:  More-or-less rewrite.
	Now works, at least for read mapping.

	* java/lang/natPosixProcess.cc (startProcess):  Implement standard
	streams using FileChannelImpl, not FileDescriptor.
	* java/lang/natWin32Process.cc (startProcess):  Likewise.

2004-02-28  Michael Koch  <konqueror@gmx.de>

	* java/io/ObjectInputStream.java: Compile fix, damn I commited the
	wrong code.

2004-02-28  Guilhem Lavaux <guilhem@kaffe.org>

	* java/io/ObjectInputStream.java
	(readClassDescriptor): Keep elements of the mapping non null.
	(checkTypeConsistency): New method.
	(readFields): Fixed main loop and base logic. Small reindentation.
	* java/io/ObjectStreamField.java
	(lookupField): New method to update the field reference.
	(checkFieldType): New method.
	* java/io/ObjectStreamClass.java
	(setClass, setFields): Call lookupField when building the field
	database. Check the real field type.

2004-02-28  Michael Koch  <konqueror@gmx.de>

	* java/nio/ByteOrder.java
	(nativeOrder): Use equals() to compare strings.

2004-02-26  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/FileLockImpl.java
	(finalize): Made protected.
	* java/nio/channels/FileChannel.java
	(MapMode.READ_ONLY): Made final.
	(MapMode.READ_WRITE): Made final.
	(MapMode.PRIVATE): Made final.
	* java/nio/channels/SocketChannel.java
	(open): Simplified code.
	* java/nio/channels/spi/AbstractSelectableChannel.java
	(registered): Unused, removed.
	(keyFor): Check channel is open, only locate key
	and not add a new one.
	(register): Don't delete attachments.

2004-02-26  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/ComponentDataBlitOp.java
	(INSTANCE): Made final.
	* gnu/java/awt/image/ImageDecoder.java:
	Reworked imports.
	(cm): Unused, removed.

2004-02-26  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/DatagramChannelImpl.java
	(send): Check if target address is resolved.

2004-02-26  Michael Koch  <konqueror@gmx.de>

	* Makefile.am: Generate and install headers for inner classes in
	java.nio.channels.Pipe and gnu.java.nio.PipeImpl.
	* Makefile.in: Regenerated.

2004-02-24  Anthony Green  <green@redhat.com>

	* java/lang/StringBuffer.java: No need to NULL out remainder of
	buffer since ensureCapacity_unsynchronized will have done this for
	us.

2004-02-20  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/protocol/jar/Handler.java
	(): Removed unneeded check for file != null. java.net.URL.getFile()
	returns an empty string but never null.

2004-02-20  Michael Koch  <konqueror@gmx.de>

	* gnu/gcj/convert/Convert.java
	(main): Use equals() to compare strings.

2004-02-20  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractButton.java: Made several constants final.
	(getRolloverSelectedIcon): Made public.
	(getSelectedIcon): Made public.

2004-02-16  Per Bothner  <per@bothner.com>

	* java/nio/CharBufferImpl.java:  Inline super constructor.
	* java/nio/DoubleBufferImpl.java:  Likewise.
	* java/nio/FloatBufferImpl.java:  Likewise.
	* java/nio/IntBufferImpl.java:  Likewise.
	* java/nio/LongBufferImpl.java:  Likewise.
	* java/nio/ShortBufferImpl.java:  Likewise.
	* java/nio/CharBuffer.java:  Remove unused constructor.
	* java/nio/DoubleBuffer.java:  Likewise.
	* java/nio/FloatBuffer.java:  Likewise.
	* java/nio/IntBuffer.java:  Likewise.
	* java/nio/LongBuffer.java:  Likewise.
	* java/nio/ShortBuffer.java:  Likewise.
	* java/nio/CharViewBufferImpl.java:  New convenience constructor.
	Fix buggy call to super constructor.
	* java/nio/DoubleViewBufferImpl.java:  Likewise.
	* java/nio/FloatViewBufferImpl.java:  Likewise.
	* java/nio/IntViewBufferImpl.java:  Likewise.
	* java/nio/LongViewBufferImpl.java:  Likewise.
	* java/nio/ShortViewBufferImpl.java:  Likewise.

	* java/nio/ByteBuffer.java (endian):  Make non-private so other
	java.nio classes can inherit it.
	(<init>):  Don't bother clearing array_offset.
	* java/nio/ByteBuffer.java (allocate):  Re-implement using wrap.
	* java/nio/ByteBuffer.java (get(byte[],int,int)):  Check underflow.
	Remove redundant test.

	* java/nio/ByteBufferImpl.java (asCharBuffer, asShortBuffer,
	asIntBuffer, asLongBuffer, asFloatBuffer, asDoubleBuffer):
	Use new XxxViewBufferImpl constructors.
	* java/nio/MappedByteBufferImpl.java:  Likewise.
	* java/nio/DirectByteBufferImpl.java:  Likewise.

	* java/nio/ByteBufferImpl.java:  Remove one constructor.
	Inline super in remaining constructor.
	* java/nio/ByteBuffer.java:  Remove unused constructor.

	* java/nio/ByteBufferImpl.java (shiftDown):  New optimized method.

	* java/nio/ByteBufferImpl.java (get, put):  Add array_offset.
	* java/nio/DirectByteBufferImpl.java (owner):  New field.
	(offset):  Remove unused field.
	(<init>):  Modify one and add another constructor.  Change callers.
	(allocateDirect):  Removed - not used.
	(getImpl, putImpl):  Make static and pass address explicitly,
	to make them useful for MappedByteBufferImpl.
	(get, put):  Check for underflow.  Modify for new getImpl.
	(getImpl):  New native method where target is array.
	(get(byte[],int,int)):  Use the above.
	(adjustAddress):  New static native method.
	(slice, duplicate, asReadOnly):  New implementations.
	* java/nio/natDirectByteBufferImpl.cc (getImpl, putImpl, shiftDown,
	adjustAddress):  New or updated native methods.

2004-02-15  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* java/io/ObjectInputStream.java (readClassDescriptor): Avoid the
	overflow of fieldmapping.

2004-02-14  Sascha Brawer  <brawer@dandelis.ch>

	* javax/swing/undo/UndoManager.java: Re-written from scratch.

2004-02-14  Per Bothner  <per@bothner.com>

	* java/nio/channels/spi/AbstractInterruptibleChannel.java (close):
	Set closed before calling implCloseChannel, as in the spec.

2004-02-09  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/ToggleButtonModel.java: Remove dead class.
	* javax/swing/plaf/basic/BasicDefaults.java: Remove dead class.
	* javax/swing/plaf/basic/BasicButtonListener.java: New class.
	* javax/swing/plaf/basic/BasicRootPaneUI.java: New class.
	* Makefile.am: Update for new and removed files.
	* Makefile.in: Regenerate.

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java: Initialize default hints.
	* javax/swing/AbstractButton.java
	(AbstractButton): Initialize fields correctly in ctor.
	* javax/swing/JCheckbox.java
	(JCheckBox): Override painting flags.
	* javax/swing/DefaultButtonModel.java: Conform to sun.
	* javax/swing/JComponent.java (paint): Fill with background color
	if available.
	(processComponentKeyEvent)
	(processFocusEvent)
	(processKeyEvent)
	(processMouseMotionEvent): Remove event-consuming empty methods.
	(getUIClassID): Return "ComponentUI" not "JComponent"
	* javax/swing/JFrame.java: Remove some debugging chatter.
	(JFrame): Subscribe to window events.
	* javax/swing/JRadioButton.java
	(JRadioButton): Override painting flags.
	* javax/swing/JRootPane.java
	(JRootPane): Set background from UIDefaults.
	* javax/swing/JToggleButton.java
	(ToggleButtonModel): New inner class.
	(JToggleButton): Override layout alighment.
	* javax/swing/SwingUtilities.java:
	(getLocalBounds): Return width and height, not x and y.
	(calculateInnerArea): Use local bounds, not bounds.
	(layoutCompoundLabel): Provide overridden form.
	(layoutCompoundLabel): Correct bugs.
	* javax/swing/UIDefaults.java: Correct comment.
	* javax/swing/plaf/basic/BasicButtonUI.java:
	Move most logic into defaults, external listener.
	(paintIcon): Implement icon painting.
	(paint): Fix state painting to conform to changes in model.
	* javax/swing/plaf/basic/BasicCheckBoxUI.java:
	Remove most dead/wrong methods.
	(getDefaultIcon): Return defaults.getIcon("CheckBox.icon").
	* javax/swing/plaf/basic/BasicIconFactory.java:
	(DummyIcon): New class.
	(getMenuItemCheckIcon)
	(getMenuItemArrowIcon)
	(getMenuArrowIcon)
	(getCheckBoxMenuItemIcon)
	(getRadioButtonMenuItemIcon)
	(createEmptyFrameIcon): Return DummyIcons, not null.
	(getCheckBoxIcon): Implement an icon that looks like sun's.
	(getRadioButtonIcon): Implement an icon that looks like sun's.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Fix impossible values, add some missing.
	* javax/swing/plaf/basic/BasicPanelUI.java (gap): Remove field.
	* javax/swing/plaf/basic/BasicRadioButtonUI.java:
	Remove most dead/wrong methods.
	(icon): New field.
	(getDefaultIcon): New method.
	* javax/swing/plaf/basic/BasicToggleButtonUI.java:
	Remove most dead/wrong methods.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(getDefaults): Return super.getDefaults(), not BasicDefaults.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect):
	Implement "clearing" as drawing, when on pixmap drawables.

	* javax/swing/JButton.java (getUIClassID):
	* javax/swing/JCheckBox.java (getUIClassID):
	* javax/swing/JEditorPane.java (getUIClassID):
	* javax/swing/JLabel.java (getUIClassID):
	* javax/swing/JList.java (getUIClassID):
	* javax/swing/JOptionPane.java (getUIClassID):
	* javax/swing/JPanel.java (getUIClassID):
	* javax/swing/JPasswordField.java (uiClassID):
	* javax/swing/JRadioButton.java (getUIClassID):
	* javax/swing/JRootPane.java (getUIClassID):
	* javax/swing/JScrollPane.java (getUIClassID):
	* javax/swing/JTabbedPane.java (getUIClassID):
	* javax/swing/JToggleButton.java (getUIClassID):
	* javax/swing/JTree.java (getUIClassID):
	* javax/swing/JViewport.java (getUIClassID):
	* javax/swing/text/JTextComponent.java (getUIClassID):
	Return "fooUI" not "Jfoo"

2004-02-11  Michael Koch  <konqueror@gmx.de>

	* java/net/DatagramSocket.java
	(setReuseAddress): Use Boolean.valueOf() instead of creating a new
	Boolean object.
	(setBroadcast): Likewise.
	* java/net/MulticastSocket.java
	(setLoopbackMode): Likewise.
	* java/net/ServerSocket.java
	(setReuseAddress): Likewise.
	* java/net/Socket.java
	(setTcpNoDelay): Likewise.
	(setSoLinger): Likewise.
	(setOOBInline): Likewise.
	(setKeepAlive): Likewise.
	(setReuseAddress): Likewise.
	* java/net/URLConnection.java
	(setContentHandler): Replace == with equals().
	* java/net/URLStreamHandler.java
	(hostSEquals): Fix checking host addresses.
	(toExternalForm): Dont check protocol for null. We know already its
	not null.

2004-02-10  David Jee  <djee@redhat.com>

	* java/awt/BorderLayout.java
	(calcCompSize): Invisible components get zero dimensions.
	* java/awt/Button.java
	(setLabel): Set actionCommand.
	* java/awt/Component.java
	(show): Invalidate component and parent container.
	(hide): Likewise.

2004-02-10  David Jee  <djee@redhat.com>

	* java/awt/GridBagLayout.java
	(GridBagLayout): New private field, internalcomptable.
	(lookupInternalConstraints): New method.
	(ArrangeGrid): Use components' MINSIZE. Use internalcomptable.
	(GetLayoutInfo): Reimplement.
	(calcCellSizes): Ignore rows/columns with size 0.

2004-02-10  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/EmbeddedWindow.java
	(setHandle): Use java.awt.Component.getPeer() instead of
	java.awt.Component.peer directly.

2004-02-10  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkButtonPeer.java
	(gtkSetLabel): New native method definition.
	(setLabel): Use gtkSetLabel.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetLabel): New method.

2004-02-10  Alan Modra  <amodra@bigpond.net.au>

	* include/powerpc-signal.h: Revert 2004-01-21 change.
	(INIT_SEGV, INIT_FPE): Provide powerpc64 versions.  Check return
	from syscall for ppc32 versions.

2004-02-08  Per Bothner  <per@bothner.com>

	* java/nio/ByteBuffer.java (shiftDown):  New helper method.
	* java/nio/natDirectByteBufferImpl.cc (shiftDown):  New implementation.
	* java/nio/ByteBufferImpl.java (compact):  Use new shiftDown method.
	* sava/nio/ByteBufferHelper.java:  Remove redundant 'final' specifiers.
	Pass ByteOrder parameter to most methods, since the underlying
	ByteBuffer's order isn't always what we should use.
	* java/nio/ByteBufferImpl.java:  Pass byte-order various places.
	* java/nio/DirectByteBufferImpl.java:  Likewise.
	Use ByteBufferHelper methods.
	* java/nio/MappedByteBufferImpl.java:  Likewise.
	(compact):  Use shiftDown.
	* java/nio/CharViewBufferImpl.java (<init>):  Pass byte-order.
	(get, put):  Use ByteBufferHelper.
	(compact):  Use new shiftDown method.
	(duplicate(boolean)):  New helper method.
	(duplicate, asReadOnlyBuffer):  Use it.
	(order):  Return endian field.
	* java/nio/DoubleViewBufferImpl.java:  Likewise.
	* java/nio/FloatViewBufferImpl.java:  Likewise.
	* java/nio/IntViewBufferImpl.java:  Likewise.
	* java/nio/LongViewBufferImpl.java:  Likewise.
	* java/nio/ShortViewBufferImpl.java:  Likewise.
	* java/nio/CharViewBufferImpl.java (subsequence):  Redundant test.
	* java/nio/DirectByteBufferImpl.java (shiftDown):  New native method.
	(compact):  Re-implement using shiftDown.

2004-02-08  Andreas Jaeger  <aj@suse.de>

	* include/x86_64-signal.h: Fix typo.

2004-02-08  Diego Novillo  <dnovillo@redhat.com>

	* include/i386-signal.h (MAKE_THROW_FRAME): Add volatile
	qualifier to _regs.
	(HANDLE_DIVIDE_OVERFLOW): Likewise.

2004-02-06  Michael Koch  <konqueror@gmx.de>

	* java/io/ObjectInputStream.java
	(currentClassLoader): Reverted to old version of this method.

2004-02-06  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/ObjectInputStream.java: Made all calls
	to dumpElement[ln] conditional on dump flag. (readObject): Changed to
	use cached info from ObjectStreamClass. (readClassDescriptor):
	Cache more information in ObjectStreamClass. (processResolution,
	readFields): Use cached info from ObjectStreamClass.
	(newObject): Throw exception instead of returning null for failure.
	(getField, getMethod, callReadMethod, setBooleanField, setByteField,
	setCharField, setDoubleField, setFloatField, setIntField,
	setLongField, setShortField, setObjectField, readObjectParams):
	Removed. (dumpElement, dumpElementln): Removed dump flag condition
	check.
	* java/io/ObjectStreamField.java (hasReadMethod): Removed.
	(setClass): Added call to cacheMethods() (findMethod): New method.
	(cacheMethods): New method. (ObjectStreamClass): Added call to
	cacheMethods(). (setFields): Cache fields. (getClassUID): Use
	AccessController.doPrivileged to invoke setAccessible.
	(readObjectMethod, readResolveMethod, realClassIsSerializable,
	realClassIsExternalizable, fieldMapping, firstNonSerializableParent):
	New fields.
	* java/io/ObjectStreamField.java (ObjectStreamField): New constructor.
	(ObjectStreamField): Removed FIXME workaround. (getTypeString,
	isPrimitive): Made safe for cases where type == null.
	(setBooleanField, setByteField, setCharField, setShortField,
	setIntField, setLongField, setFloatField, setDoubleField,
	setObjectField): New methods.

2004-02-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Component.java (getFont): Return a default font
	instead of null.

	* java/awt/Scrollbar.java (next_scrollbar_number): New field.
	(Scrollbar (int, int, int, int, int)): Make default page
	increment 10.
	(setValues): Only call peer.setValues if one of the values has
	changed.
	(generateName): New method.
	(getUniqueLong): New method.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c
	(range_scrollbar): Remove structure.
	(post_adjustment_event): Remove function.
	(post_change_event): Accept jobject argument.
	(create): Cast jints to gdoubles.  Round scrollbar values to the
	nearest integer.  Clamp min, max and value settings.
	(connectJObject): Connect hook to widget->window.
	(connectSignals): Remove range_scrollbar structure variables.
	Remove "move-slider" connection.  Pass global peer reference to
	"value-changed" callback.
	(setLineIncrement): Cast jint value to gdouble.
	(setPageIncrement): Likewise.
	(setValues): Likewise.  Clamp min, max and value settings.

2004-02-05  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractCellEditor.java
	(getCellEditorValue): Removed.
	* javax/swing/Box.java: Reformated.
	(serialVersionUID): New field.
	* javax/swing/ButtonGroup.java:
	Removed some weird whitespace.
	* javax/swing/CellEditor.java: Reformated.
	* javax/swing/CellRendererPane.java
	(serialVersionUID): New field.
	(AccessibleCellRendererPaneserialVersionUID): New field.
	* javax/swing/DefaultListModel.java
	(serialVersionUID): New field.
	* javax/swing/JEditorPane.java
	(serialVersionUID): New field.
	(setPage): Throws IOException.
	(addHyperlinkListener): Implemented.
	(removeHyperlinkListener): Implemented.
	(getHyperlinkListener): New method.
	* javax/swing/JFileChooser.java
	(serialVersionUID): New field.
	(AccessibleJFileChooser.serialVersionUID): New field.
	(addActionListener): Implemented.
	(removeActionListener): Implemented.
	(getActionListeners): New method.
	* javax/swing/JFormattedTextField.java
	(serialVersionUID): New field.
	(AbstractFormatter.serialVersionUID): New field.
	(clone): Throws CloneNotSupportedException
	(setEditValid): Add missing argument.
	(stringToValue): Throws ParseExcpetion.
	(valueToString): Throws ParseException.
	(commitEdit): Throws ParseException.
	* javax/swing/JLabel.java
	(serialVersionUID): New field.
	* javax/swing/JList.java
	(serialVersionUID): New field.
	(addListSelectionListener): Reformated.
	(removeListSelectionListener): Reformated.
	(getListSelectionListeners): New method.
	* javax/swing/colorchooser/AbstractColorChooserPanel.java:
	Reformated.
	(serialVersionUID): New field.
	* javax/swing/table/AbstractTableModel.java
	(getValueAt): Removed.
	(getColumnCount): Removed.
	(getRowCount): Removed.

2004-02-05  Michael Koch  <konqueror@gmx.de>

	* java/awt/datatransfer/DataFlavor.java
	(imageFlavor): Javadoc added.
	(javaJVMLocalObjectType): Fixed.

2004-02-05  Michael Koch  <konqueror@gmx.de>

	* java/lang/Thread.java
	(Thread): Reordered.
	(setContextClassLoader): Fixed javadoc comment.
	(setPriority): Reordered.
	(yield): Reordered.
	(initialize_native): Reordered.
	(gen_name): Reordered.

2004-02-05  Michael Koch  <konqueror@gmx.de>

	* java/lang/Thread.java: Reordered fields, reformated much code,
	no functional changes, some variables renamed, javadoc comments
	merged.

2004-02-05  Michael Koch  <konqueror@gmx.de>

	* java/util/zip/Deflater.java,
	java/util/zip/DeflaterOutputStream.java,
	java/util/zip/GZIPInputStream.java:
	Reformated and javadoc comments merged from classpath.

2004-02-05  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/NIOServerSocket.java
	(impl): Unused, removed.
	* gnu/java/nio/SocketChannelImpl.java
	(finnishConnect): Don't throw NoConnectionPendingException if not
	connected or no connection pending.

2004-02-02  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/SwingUtilities.java: Many new functions.
	* java/awt/Container.java (LightweightDispatcher): Reimplement.
	* javax/swing/basic/BasicGraphicsUtils.java
	(getPreferredButtonSize): Start layout from top-left corner.

2004-02-04  Olga Rodimina  <rodimina@redhat.com>

	* java/awt/geom/AffineTransform.java:
	Corrected comments on the field definitions for
	m11 and m10.
	(shear): Fixed few errors that caused shear
	transformation to be performed incorrectly.
	(createInverse): Fixed to return correct
	inverse of the given matrix.

2004-02-03  Tom Tromey  <tromey@redhat.com>

	* java/lang/natPosixProcess.cc (startProcess): Handle case where
	PATH or LD_LIBRARY_PATH is not set in parent environment.

2004-02-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkListPeer.java,
	java/awt/BorderLayout.java, java/awt/CardLayout.java,
	java/awt/CheckboxGroup.java, java/awt/Choice.java,
	java/awt/Component.java, java/awt/Container.java,
	java/awt/FontMetrics.java, java/awt/GridBagLayout.java,
	java/awt/LayoutManager2.java, java/awt/List.java,
	java/awt/Menu.java, java/awt/MenuBar.java,
	java/awt/MenuItem.java, java/awt/Polygon.java,
	java/awt/Rectangle.java, java/awt/ScrollPane.java,
	java/awt/Scrollbar.java, java/awt/TextArea.java,
	java/awt/TextField.java,
	java/awt/image/renderable/RenderContext.java,
	javax/swing/JApplet.java: Fix handling of alias methods, where a
	method has been deprecated in favour of a new one with the same
	funtion but a different name.  Put the method implementation in
	the deprecated method and have the new method call the
	deprecated one.  Make all other code call the new method.

2004-02-03  Mohan Embar  <gnustuff@thisiscool.com>

	* gnu/java/nio/DatagramChannelImpl.java
	(inChannelOperation): New field.
	(isInChannelOperation): New accessor.
	(setInChannelOperation): New modifier.
	(receive): Use capacity() - position() of destination
	buffer instead of remaining(). Set and reset our "in
	channel operation indicator" before and after delegating
	the receive to our datagram socket. Removed testing code.
	Update destination buffer's current position if it is
	backed by a byte array (hasArray() is true).
	(send): Set and reset our "in channel operation indicator"
	before and after delegating the send to our datagram socket.
	Removed testing code. Update source buffer's current position
	if it is backed by a byte array (hasArray() is true).
	* gnu/java/nio/SocketChannelImpl.java (read(ByteBuffer)):
	Use capacity() - position() of destination buffer instead
	of remaining().
	* java/net/DatagramSocket.java (receive): Don't throw an
	IllegalBlockingModeException if we have a non-blocking
	channel which initiated this operation.
	(send): Likewise.

2004-02-01  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.in: Add pkgconfig check for glib and gthread.
	* configure: Regenerate.

2004-02-01  Michael Koch  <konqueror@gmx.de>

	* include/jvm.h (MAYBE_UNUSED): New macro tp mark probably unused
	arguments.
	* jni.cc (_Jv_LookupJNIMethod): Mark 'args_size' unused.
	* verify.cc (debug_print): Mark 'fmt' unused.

2004-01-30  Michael Koch  <konqueror@gmx.de>

	* configure.in: Use pkg-config to check for GTK 2.2 and libart 2.1.
	* configure: Regenerated.
	* glib-2.0.m4: Removed.
	* gtk-2.0.m4: Removed.
	* libart.m4: Removed.
	* pkg.m4: New file.

2004-01-30  Mohan Embar  <gnustuff@thisiscool.com>

	* gnu/java/net/PlainSocketImpl.java
	(inChannelOperation): New field.
	(isInChannelOperation): New accessor.
	(setInChannelOperation): New modifier.
	* gnu/java/nio/ServerSocketChannelImpl.java
	(accept): Set and reset our server socket's PlainSocketImpl's
	"in channel operation" indicator before and after delegating
	the accept to our server socket.
	* gnu/java/nio/SocketChannelImpl.java
	(connect): Set and reset our socket's PlainSocketImpl's "in channel
	operation" indicator before and after delegating the operation to
	our socket.
	(read): Likewise.
	(write): Likewise.
	* java/net/ServerSocket.java (implAccept): Don't throw an
	IllegalBlockingModeException if we have a non-blocking
	channel which initiated this accept operation.
	* java/net/Socket.java (connect): Don't throw an
	IllegalBlockingModeException if we have a non-blocking
	channel which initiated this connect operation.
	* java/nio/channels/spi/AbstractSelectableChannel.java
	(configureBlocking): Only call implConfigureBlocking() if
	the desired blocking mode is different from our current one.

2004-01-29  Mohan Embar  <gnustuff@thisiscool.com>

	* java/io/BufferedReader.java (sbuf): New field.
	(readLine): Use String.valueOf instead of new String() as per
	Per Bothner's suggestion. Use instance sbuf field instead of a
	local StringBuffer instance.
	* java/io/InputStreamReader.java (read(char[],int,int)): Pass the
	caller's buffer to refill().
	(read(void)): Pass our internal work buffer to refill if our
	input queue is empty.
	(refill): Changed return type to int. Use the specified buffer
	instead of our work buffer as per Bryce McKinlay's suggestion.
	Return the number of characters read or -1 for EOF.

2004-01-29  Scott Gilbertson  <scottg@mantatest.com>

	* gnu/awt/xlib/XCanvasPeer.java (handleEvent): Implemented.

2004-01-29  Scott Gilbertson  <scottg@mantatest.com>

	* Makefile.am: Added gnu/awt/xlib/XFontPeer.java.
	* Makefile.in: Re-generated.
	* gnu/awt/xlib/XFontPeer.java: New file.
	* gnu/awt/xlib/XGraphics.java (setFont): Test for null font.
	(setClip): Commented out debug printout.
	* gnu/awt/xlib/XToolkit.java: Change superclass to ClasspathToolkit.
	(getFontPeer): Return XFontPeer.
	(getLocalGraphicsEnvironment): New method.
	(getClasspathFontPeer): New method.
	(createFont): New method.

2004-01-29  Scott Gilbertson  <scottg@mantatest.com>

	* gnu/java/awt/peer/ClasspathFontPeer.java (getTransform): Never
	return null.

2004-01-29  Kim Ho  <kho@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java
	(gtkLayoutSetVisible): New method
	(setMenuBar): Hide layout before setting MenuBar
	and reshow it after.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(gtkLayoutSetVisible): Hide or show the Gtk Layout.

2004-01-28  Michael Koch  <konqueror@gmx.de>

	* gnu/java/lang/ClassHelper.java
	(getPackagePortion): Removed.

2004-01-28  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JComponent.java
	(listenerList): Initalize globally.
	(ancestor_list): Removed.
	(veto_list): Removed.
	(change_list): Removed.
	(get_veto_list): Removed.
	(get_change_list): Removed.
	(get_ancestor_list): Removed.
	(removeAncestorListener): Reimplemented.
	(removePropertyChangeListener): Likewise.
	(removeVetoableChangeListener): Likewise.
	(addAncestorListener): Likewise.
	(addPropertyChangeListener): Likewise.
	(addVetoableChangeListener): Likewise.
	(getListeners): New method.
	(getAncestorListeners): Likewise.
	(getVetoableChangeListeners): Likewise.
	(fireVetoableChange): Throws PropertyVetoException.
	* javax/swing/JEditorPane.java
	(JEditorPane): Throws IOException.

2004-01-28  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java
	(create): Set the default foreground color to
	java.awt.SystemColor.windowText.

2004-01-27  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java,
	* gnu/java/awt/peer/gtk/GdkGlyphVector.java:
	Reindented to merge with classpath.

2004-01-27  David Jee  <djee@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(addExposeFilter): Handle GtkFramePeer separately.
	(removeExposeFilter): Likewise.

2004-01-27  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/protocol/http/Connection.java
	(getOutputStream): Fixed typo.

2004-01-27  Michael Koch  <konqueror@gmx.de>

	* java/lang/Class.java
	(getConstructor): Removed SecurityException from throws clause.
	(_getConstructors): Likewise.
	(getConstructors): Likewise.
	(getDeclaredConstructor): Likewise.
	(getDeclaredClasses): Likewise.
	(getDeclaredConstructors): Likewise.
	(getDeclaredField): Likewise.
	(getDeclaredMethod): Likewise.
	(getDeclaredMethods): Likewise.
	(getField): Likewise.
	(getMethod): Likewise.
	(getMethods): Likewise.

2004-01-27  Kim Ho  <kho@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java
	(removeMenuBarPeer): Remove MenuBarPeer argument.
	* gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
	(dispose): Call native method.
	* java/awt/Frame.java (setMenuBar): Create and remove
	MenuBar peers only if the Frame has a peer.
	(addNotify): Create the MenuBar peer if one exists.
	(removeNotify): Remove MenuBar peer if one exists.
	* java/awt/Menu.java: Fix imports.
	(addNotify): Don't use full class name.
	(removeNotify): Call removeNotify on all children.
	* java/awt/MenuBar.java (removeNotify): Call
	removeNotify on all children.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(removeMenuBarPeer): Remove MenuBarPeer argument.
	Iterate through children to find the Frame's MenuBar.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c
	New file.
	(dispose): Remove references to the MenuComponent.

2004-01-27  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractCellEditor.java: Reformated.
	* javax/swing/DefaultListSelectionModel.java
	(listenerList): Made protected.
	(addListSelectionListener): Javadoc added.
	(removeListSelectionListener): Likewise.
	(getListeners): Likewise.
	(getListSelectionListeners): Likewise.
	* javax/swing/JComboBox.java: Merged copyright year.
	* javax/swing/plaf/basic/BasicGraphicsUtils.java: Merged empty line.

2004-01-26  Andrew Haley  <aph@redhat.com>

	* javax/swing/table/JTableHeader.java: Extend JComponent

2004-01-26  Kim Ho  <kho@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java (setMenuBar):
	Fix spacing.

2004-01-26  Kim Ho  <kho@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java (moveLayout): New
	method.
	(setMenuBar): Shift the Gtk layout up/down by the MenuBar
	height and let the Layout Managers readjust anything that
	needs to move.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(moveLayout): New method. Shift everything in the Gtk
	layout in the Y direction by an offset.

2004-01-26  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(handleEvent): Implemented. Handles PaintEvents.
	(paint): Implemented. Use GTK native methods to queue updates
	for this heavyweight peer.
	* gnu/java/awt/peer/gtk/GtkContainerPeer.java
	(handleEvent): Removed.
	* java/awt/Component.java
	(paint): Implemented. Explictly paint the heavyweight peer.
	(update): Clear the background for heavyweight components.
	(paintAll): No need to call peer.paint() anymore.
	(processEvent): Don't process PaintEvents here. It's now done in
	the peer's handleEvent().
	(processPaintEvent): Removed.
	* java/awt/Container.java
	(paint): No need to call super.paint(). Visit heavyweight
	children as well.
	(update): Don't clear the background here.  It's done in
	Component.update().
	(visitChildren): Added check to not recurse into Containers.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(filter_expose_event_handler): New method.  Filter unwanted
	expose events while painting heavyweight peers.
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_addExposeFilter):
	New method. Connect filter and block pre_event_handler.
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_removeExposeFilter):
	New method. Disconnect filter and unblock pre_event_handler.
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetQueueDrawArea):
	New method. Invalidate and update given area.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(pre_event_handler): Add checks for unwanted expose events.

2004-01-26  David Jee  <djee@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(find_bg_color_widget): For GtkButton, return its child.

2004-01-26  Kim Ho  <kho@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java (menuBarHeight): Mark
	private.
	(setMenuBar): Grab MenuBar height and change insets.
	(setBounds): Account for MenuBar height.
	(postInsetsChangedEvent): Ditto.
	(postSizeAllocateEvent): Remove.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(menubar_resize_cb): Remove
	(setMenuBarPeer): Remove callback.
	(getMenuBarHeight): Use size requisition instead of
	allocation.

2004-01-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/TextArea.java: Fix indentation.  Flesh out javadocs.
	(getMinimumSize (int, int)): Fix FIXME -- return Dimension (0,0)
	when peer is null.
	(setColumns): Remove FIXME -- peer will retrieve number of
	columns by calling getColumns.
	(setRows): Likewise for number of rows.
	(next_text_number): New field.
	(paramString): Fix param string.
	(generateName): New method.
	(getUniqueLong): New method.

2004-01-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkToolkit.java (checkImage): Inform
	image observer of image loading status.
	(getImage (String)): Start image production.
	(getImage (URL)): Likewise.

2004-01-25  Michael Koch  <konqueror@gmx.de>

	* java/lang/Class.java: Imports reworked, reformated.
	(Class): Javadoc added.
	(forName): Likewise.
	(getClasses): Likewise.
	(getClassLoader): Likewise.
	(getComponentType): Likewise.
	(getConstructor): Likewise.
	(getConstructors): Likewise.
	(getDeclaredConstructor): Likewise.
	(getDeclaredClasses): Likewise.
	(getDeclaredConstructors): Likewise.
	(getDeclaredField): Likewise.
	(getDeclaredMethod): Likewise.
	(getDeclaredMethods): Likewise.
	(getDeclaringClass): Likewise.
	(getField): Likewise.
	(getInterfaces): Likewise.
	(getMethod): Likewise.
	(getMethods): Likewise.
	(getModifiers): Likewise.
	(getName): Likewise.
	(getResource): Likewise.
	(getResourceAsStream): Likewise.
	(getSigners): Likewise.
	(setSigners): Likewise.
	(getSuperclass): Likewise.
	(isArray): Likewise.
	(isAssignableFrom): Likewise.
	(isInstance): Likewise.
	(isInterface): Likewise.
	(isPrimitive): Likewise.
	(newInstance): Likewise.
	(getProtectionDomain): Likewise.
	(toString): Likewise.
	(Class): Moved.
	(initializeClass): Likewise.
	(finalize): Likewise.

2004-01-24  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/protocol/jar/Connection.java
	(hdrHash): Removed.
	(hdrVec): Removed.
	(gotHeaders): Removed.
	(getHeaderField): Removed.
	(getHeaderFields): Removed.
	(getHeaderFieldKey): Removed.
	(getKey): Removed.
	(getField): Removed.
	(getHeaders): Removed.

2004-01-24  Michael Koch  <konqueror@gmx.de>

	* Makefile.am: Added library version to gtk peer lib.
	* Makefile.in: Regenerated.

2004-01-24  Michael Koch  <konqueror@gmx.de>

	* java/util/zip/InflaterInputStream.java: Merged class documentation
	with classpath.

2004-01-21  Jakub Jelinek  <jakub@redhat.com>

	* include/powerpc-signal.h: Add #ifndef __powerpc64__ around the
	header.  For __powerpc64__ provide the default-signal.h definitions
	for now.
	* include/x86_64-signal.h [!__x86_64__]: Include java-signal-aux.h
	instead of the dummy definitions.
	* configure.host (x86_64-*): Remove CHECKREFSPEC, add DIVIDESPEC.
	(powerpc64*-*): Remove with_libffi_default.
	Only add -mminimal-toc for 64-bit compilations.
	* configure.in: Use powerpc-signal.h on powerpc64 as well.
	(x86_64-*-linux*): Set SIGNAL_HANDLER_AUX.
	Link SIGNAL_HANDLER_AUX to include/java-signal-aux.h.
	* configure: Rebuilt.

2004-01-23  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/FileLockImpl.java: Compile fixes.

2004-01-23  Michael Koch  <konqueror@gmx.de>

	* java/lang/VMClassLoader.java: Reworked imports.

2004-01-23  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractAction.java: Reformated.

2004-01-23  Michael Koch  <konqueror@gmx.de>

	* java/text/CollationElementIterator.java:
	(setText): New method.

2004-01-23  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/FileLockImpl.java:
	Fixed filename in copyright.
	(released): Removed.
	(finalize): New method.
	* gnu/java/nio/natFileLockImpl.cc
	(releaseImpl): Implemented.
	* java/nio/channels/FileChannelImpl.java:
	Reworked imports.
	(lock): Implemented.
	(lockImpl): New method.
	(tryLock): Implemented.
	(tryLockImpl): New method.
	* java/nio/channels/natFileChannelImpl.cc
	(lockImpl): New method.
	(tryLockImpl): New method.

2004-01-23  Michael Koch  <konqueror@gmx.de>

	* java/io/FileDescriptor.java
	(lock): New method.
	(tryLock): New method.
	(unlock): New method.
	* java/io/natFileDescriptorEcos.cc
	(lock): New method.
	(tryLock): New method.
	(unlock): New method.
	* java/io/natFileDescriptorPosix.cc
	(lock): New method.
	(tryLock): New method.
	(unlock): New method.
	* java/io/natFileDescriptorWin32.cc
	(lock): New method.
	(tryLock): New method.
	(unlock): New method.

2004-01-23  Michael Koch  <konqueror@gmx.de>

	* java/io/FileDescriptor.java
	(sync): Moved around, added javadoc.
	(valid): Likewise.
	(open): Likewise.
	(write): Likewise.
	(close): Likewise.
	(setLength): Likewise.
	(seek): Likewise.
	(getLength): Likewise.
	(getFilePointer): Likewise.
	(read): Likewise.
	(available): Likewise.
	(finalize): Likewise.

2004-01-23  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractAction.java: Reformated.
	(getPropertyChangeListeners): New method.
	* javax/swing/AbstractCellEditor.java: Reformated.
	(getCellEditorListeners): New method.
	* javax/swing/DefaultListSelectionModel.java
	(listenerList): New field.
	(listeners): Removed.
	(get_listeners): Removed.
	(addListSelectionListener): Rewritten.
	(removeListSelectionListener): Rewritten.
	(getListSelectionListeners): New method.
	(getListeners): New method.
	* javax/swing/JComboBox.java: Imports reworked.
	(addActionListener): Implemented.
	(removeActionListener): Implemented.
	(addItemListener): Implemented.
	(removeItemListener): Implemented.
	(addPopupMenuListener): Implemented.
	(removePopupMenuListener): Implemented.
	(getActionListeners): New method.
	(getItemListeners): New method.
	(getPopupMenuListeners): New method.

2004-01-23  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/protocol/http/Connection.java
	(connect): Don't initialize bufferedOutputStream if not needed.
	(sendRequest): Set property for content length if content is present.
	Write content only if present.
	(getOutputStream): Check if already connected, dont connect,
	initalize bufferedOutputStream if needed.

2004-01-23  Michael Koch  <konqueror@gmx.de>

	* java/io/FileDescriptor.java
	(in, out, err): Added javadoc.
	(static): Merged loading code.
	(fd, position): Moved around.

2004-01-23  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/doc-files/BitwiseXORComposite-1.png:
	New file.

2004-01-23  Michael Koch  <konqueror@gmx.de>

	* java/lang/Class.java,
	java/lang/Object.java,
	java/lang/Thread.java: Merged copyright with classpath.

2004-01-23  Michael Koch  <konqueror@gmx.de>

	* java/io/FileDescriptor.java: Merged copyright with classpath to
	start merging this class.

2004-01-22  Tom Tromey  <tromey@redhat.com>

	PR libgcj/13107:
	* testsuite/libjava.lang/pr13107_2.xfail: New file.
	* testsuite/libjava.lang/pr13107_3.xfail: New file.
	* testsuite/libjava.lang/pr13107_3.java: New file.
	* testsuite/libjava.lang/pr13107_3.out: New file.
	* testsuite/libjava.lang/pr13107_2.java: New file.
	* testsuite/libjava.lang/pr13107_2.out: New file.
	* testsuite/libjava.lang/pr13107.java: New file.
	* testsuite/libjava.lang/pr13107.out: New file.
	* verify.cc (jsr_ptrs): Removed.
	(entry_points): Likewise.
	(struct subr_info): Likewise.
	(struct subr_entry_info): Likewise.
	(type_val::unused_by_subroutine_type): Likewise.
	(type::merge): Don't handle unused_by_subroutine_type.
	(type::print): Likewise.
	(state::flags): Removed.
	(state::subroutine): Likewise.
	(state::seen_subrs): Likewise.
	(state::NO_STACK): Likewise.
	(state::FLAG_CHANGED, state::FLAG_UNUSED): Likewise.
	(state): Updated all methods.
	(state::clean_subrs): Removed.
	(state::state): Removed `ret_semantics' flag.
	(state::copy): Likewise.
	(state::add_subr): Removed.
	(state::enter_subroutine): Likewise.
	(type::set_return_address): New method.
	(handle_jsr_insn): Set return address on the type.  Always
	invalidate PC after call.
	(check_nonrecursive_call): Removed.
	(~_Jv_BytecodeVerifier): Updated.
	(branch_prepass): Removed special handling of jsr.
	(note_branch_target): Likewise.
	(get_subroutine): Removed.
	(state::merge): Don't merge subroutines and don't handle
	NO_STACK.  Removed ret_semantics and jsr_semantics arguments.
	(state::note_variable): Removed.
	(state::is_unmerged_ret_state): Likewise.
	(state::print): Updated.
	(set_variable): Likewise.
	(merge_into): Renamed from push_jump_merge.  Removed ret_semantics
	and jsr_semantics arguments.  Updated for new reverification
	list.
	(pop_jump): Rewrote.
	(construct_primitive_array_type): Updated.
	(state::next): Removed.
	(INVALID_STATE): New define.
	(state::INVALID): Removed.
	(state::NO_NEXT): New value.
	(state::pc, state::next): New fields.
	(state::get_pc): New method.
	(next_verify_pc): Removed.
	(next_verify_state): New field.
	(verify_instructions_0): Always check for falling off end.
	(linked): New type.
	(linked_utf8): Removed.
	(states): Changed type.
	(type::state_mergeable_p): New method.
	(state::state_mergeable_p): Likewise.
	(handle_ret_insn): Removed most code.
	(state::reverify): New method.
	(add_new_state): Likewise.
	(state::set_pc): Likewise.

2004-01-22  Jeff Sturm  <jsturm@one-point.com>

	PR java/13733
	* testsuite/libjava.compile/PR13733.java: New file.
	* testsuite/libjava.compile/PR13733.xfail: New file.

2004-01-22  Arnaud Vandyck  <arnaud.vandyck@ulg.ac.be>
	    Michael Koch  <konqueror@gmx.de>

	* javax/swing/table/DefaultTableCellRenderer.java
	(DefaultTableCellRenderer): Added javadoc for the class and for
	the constructor, Border instance, create an EmptyBorder.
	(UIResource): Removed the comment at the end of the class
	(setForeground): New method.
	(setBackground): New method.
	(updateUI): New method.
	(getTableCellRendererComponent): Rewritten with the help of
	dvholten and Stephane Meslin-Weber.
	(validate): New method.
	(repaint): New method.
	(firePropertyChange): New method.
	(setValue): New method.

2004-01-22  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(connectJObject): Replace printf calls with g_assert statements.
	Move property-notify-event signal connection to ...
	(connectSignals): Connect property-notify-event signal.  Iterate
	through the vbox's children to find layout.

2004-01-22  Graydon Hoare  <graydon@redhat.com>

	* gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java:
	* gnu/java/awt/peer/gtk/GdkGlyphVector.java:
	Predicate static initialization on GtkToolkit.useGraphics2D().
	* java/awt/Component.java (processPaintEvent): Consume event.
	* javax/swing/AbstractButton.java: Reimplement, document.
	* javax/swing/DefaultButtonModel.java: Reimplement, document.
	* javax/swing/JComponent.java (paint): Use double buffer.
	(listenerList): Enable member.
	* javax/swing/ToggleButtonModel.java: Remove incorrect constructor.
	* javax/swing/JToggleButton.java
	(JToggleButton): Modify model constructor.
	* javax/swing/SwingUtilities.java
	(layoutCompoundLabel): Adjust arithmetic.
	* javax/swing/plaf/basic/BasicButtonUI.java: Reimplement, document.
	* javax/swing/plaf/basic/BasicGraphicsUtils.java
	(getPreferredButtonSize): Include margins in calculation.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectSignals):
	Receive up events from subordinate layout component.

2004-01-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Component.java (show): Set visible to true before
	showing the peer.

2004-01-21  Kim Ho  <kho@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java (postConfigureEvent):
	Fix comments.
	(removeMenuBarPeer): Make package private.
	(setMenuBarPeer): Make package private.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(menubar_resize_cb): Mark attributes unused.
	(getMenuBarHeight): ditto.

2004-01-21  David Jee  <djee@redhat.com>

	* java/awt/Container.java
	(LightweightDispatcher.handleEvent): Add an extra check to avoid
	dispatching MOUSE_ENTERED event twice. Translate the point for
	the mouse event target before dispatching the event.

2004-01-20  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.am (lib_org_w3c_dom_la_LIBADD,
	lib_org_w3c_dom_la_LDFLAGS): New.
	(lib_org_xml_sax_la_LIBADD, lib_org_xml_sax_la_LDFLAGS): New.
	* Makefile.in: Rebuilt.

2004-01-20  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (setBounds):
	Calculate proper offsets for heavyweight components packed in
	lightweight containers.

	* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
	(native create): Add width parameter.
	(create): Calculate text entry width based on current font's
	metrics and number of columns.  Set TextField's font if not
	already set.  Call native create.
	(gtkEntryGetBorderWidth): New native method.
	(gtkEntryGetSize): Remove method.
	(getMinimumSize): Call minimumSize.
	(getPreferredSize): Call preferredSize.
	(minimumSize): Calculate minimum size based on backing
	GtkEntry's borders, font metrics and number of columns.
	(preferredSize): Likewise for preferred size.
	(get_border_width): New static function.

	* gnu/java/awt/peer/gtk/GtkFramePeer.java (setResizable):
	Override GtkWindowPeer's setResizable method to account for menu
	bar height when setting the frame's size.

2004-01-19  Matthias Klose  <doko@debian.org>

	* libtool-version: Increased `current' to 6.

2004-01-19  Kim Ho  <kho@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(connectJObject): Iterate through the vbox's children to find layout.

2004-01-19  Fernando Nasser  <fnasser@redhat.com>

	* java/awt/EventQueue.java (invokeAndWait): Use list-aware
	isDispatchThread method to replace wrong test condition.

2004-01-19  Fernando Nasser  <fnasser@redhat.com>

	* java/awt/EventQueue.java (pop): Prevent racing condition to add
	events to the queue out of order by acquiring locks in the proper
	order and not by releasing one before acquiring the other.

2004-01-19  Fernando Nasser  <fnasser@redhat.com>

	* gnu/java/awt/peer/gtk/TestAWT.java (DialogWindow): Make text not
	visible so that dialog can be reused.

2004-01-19  Fernando Nasser  <fnasser@redhat.com>

	* java/awt/EventQueue.java (getCurrentEvent): Consider that system
	events may be handled by any queue in the stack.

2004-01-19  Kim Ho  <kho@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java (getMenuBarHeight): Added
	MenuBarPeer parameter.
	(removeMenuBarPeer): New native method.
	(setMenuBar): Call remove if menu bar is null. Adjust insets
	appropriately.
	(postSizeAllocateEvent): New method. Called when menu bar size is
	allocated. Adjust insets and redo layout.
	(GtkFramePeer): Set menu bar during frame creation.
	(postConfigureEvent): Adjust position and size to accomodate
	menu bar.
	* java/awt/Frame.java (setMenuBar): addNotify to create menu bar.
	* java/awt/Menu.java (addSeparator): Use peer's addSeparator.
	(addNotify): Create the peer if it doesn't exist and call addNotify
	for the menu's items.
	* java/awt/MenuBar.java (addNotify): Create this menu bar's menus.
	* java/awt/MenuItem.java (addNotify): Create the peer if it
	doesn't exist.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(removeMenuBarPeer): New method. Remove menu bar on the current
	frame.
	(setMenuBarPeer): Add the menu bar to the current frame and the
	callback for size-allocate events on the menu bar.
	(getMenuBarHeight): Add menu bar parameter.
	(menubar_resize_cb): New callback method for postSizeAllocate events.

	Also: Fix indentation on last ChangeLog entry.

2004-01-16  Kim Ho  <kho@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
	(gtkWidgetGetDimensions): Remove.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(gtkWidgetGetDimensions): Remove.

2004-01-16  Tom Tromey  <tromey@redhat.com>

	* java/awt/Container.java: Typo and indentation fixes.

	* java/lang/natClassLoader.cc: Moved VMClassLoader methods...
	* java/lang/natVMClassLoader.cc: ...here.  New file.
	* Makefile.in: Rebuilt.
	* Makefile.am (nat_source_files): Added natVMClassLoader.cc.

2004-01-16  Fernando Nasser  <fnasser@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (pre_event_handler):
	Discard GDK_ENTER_NOTIFY related to ungrabs.

2004-01-16  Fernando Nasser  <fnasser@redhat.com>

	* java/awt/EventQueue.java (pop): Prevent breaking the chain if pop
	is called for an intermediate queue.

2004-01-16  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(window_property_changed_cb): Set id_set.

2004-01-16  Kim Ho  <kho@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (GtkComponentPeer): If
	it is a FileDialog and has dimensions of 0 by 0, then the initial
	size is set to size request plus insets.
	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
	(gtkWidgetGetDimensions): Override method.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(gtkWidgetGetDimensions): Override method. Returns size request plus
	insets.

2004-01-16  Andrew Haley  <aph@redhat.com>

	* sysdep/x86-64/locks.h: Don't use in/out memory constraints.
	* sysdep/i386/locks.h: Likewise.

2004-01-16  Fernando Nasser  <fnasser@redhat.com>

	* java/awt/EventDispatchThread.java (run): Stop running when
	interrupted.
	* java/awt/EventQueue.java (pop): Stop dispatch thread when done.
	Reset the queue after transferring its contents.
	(push): Start a new dispatch thread if none is running.

2004-01-16  Olga Rodimina <rodimina@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java:
	(doPolygon): set fill rule of polygon to
	WIND_EVEN_ODD by default.

2004-01-15  Olga Rodimina <rodimina@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java:
	Implemented rendering hints related methods.
	(getDefaultHints): New helper method. Returns
	default rendering hints.
	(walkPath): changed to normalize path if
	the KEY_STROKE_CONTROL key is in "normalize" mode.
	(draw3DRect): changed coordinates of rectangle by +0.5
	if in "normalize" mode.

2004-01-15  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (gnu/gcj/runtime/StackTrace.lo): New rule.
	(%.lo: %.java) Filter out StackTrace.lo.

2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.in: Add in AC_PREREQ(2.13)
	* libltdl/configure.ac: Update to AC_PREREQ(2.57).  Delete
	FIXME comment.

2004-01-14  Nathan Bryant  <nbryant@optonline.net>
	    Tom Tromey  <tromey@redhat.com>

	PR libgcj/12001:
	* gnu/gcj/runtime/VMClassLoader.java (VMClassLoader): Pass empty
	array to superclass.
	(init): Changed interface; add URLs here.
	(initialize): New static method.
	* prims.cc (_Jv_CreateJavaVM): Initialize ClassLoader here...
	(_Jv_RunMain): ... not here.

2004-01-14  Michael Koch  <konqueror@gmx.de>

	* java/text/MessageFormat.java:
	Added descriptions to exceptions.
	This fixes PR libgcj/2429.

2004-01-13  Fernando Nasser  <fnasser@redhat.com>

	* java/awt/EventQueue.java (isDispatchThread): Do check on top of stack.
	(push): Make sure push is performed at the top of the thread stack.

2004-01-13  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
	(native	create): Add width and height parameters.  Set text
	view's size request according to new parameters.
	(create): Calculate text view size based on current font's
	metrics and number of rows and columns.  Set TextArea's font if
	not already set.  Call native create.
	(getMinimumSize): Call minimumSize.
	(getPreferredSize): Call preferredSize.
	(getHScrollbarHeight): New method.
	(getVScrollbarWidth): New method.
	(minimumSize): Calculate minimum size based on scrollbar
	visibility, scrollbar sizes, font metrics and number of rows and
	columns.
	(preferredSize): Likewise for preferred size.
	(gtkTextGetSize): Remove method.

2004-01-13  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(initializeInsets): Remove method.
	(GtkComponentPeer): Initialize insets field.  Remove call to
	initializeInsets.
	* gnu/java/awt/peer/gtk/GtkDialogPeer.java (initializeInsets):
	Remove method.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java (initializeInsets):
	Remove method.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
	(latestInsets): Remove field.
	(native create): Add insets parameter.  Call
	window_get_frame_extents.  Set the window's default size and
	size request based on its frame extents.
	(create): Initialize insets.
	(postInsetsChangedEvent): New method.
	(postConfigureEvent): Remove parameters top, left, bottom,
	right.  Remove insets-related logic.
	(connectJObject): Handle property-notify-event.
	(window_get_frame_extents, request_frame_extents,
	property_notify_predicate, window_property_changed_cb): New
	static functions.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(pre_event_handler): Remove insets-related logic for configure
	events.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c (gtkInit):
	Update postConfigureEvent signature.

2004-01-13  Fernando Nasser  <fnasser@redhat.com>

	* gnu/java/awt/peer/gtk/TestAWT.java (DialogWindow): Add WindowAdapter
	to handle Window "Closing" events.

2004-01-13  David Jee  <djee@redhat.com>

	* gnu/java/awt/peer/gtk/GtkContainerPeer.java
	(setBackground): New method. Children with no explicitly-set
	background will be repainted with the parent container's new
	background color.

2004-01-13  David Jee  <djee@redhat.com>

	* Makefile.am: Add BitwiseXORComposite.java.
	* Makefile.in: Regenerated.
	* gcj/Makefile.in: Regenerated.
	* include/Makefile.in: Regenerated.
	* testsuite/Makefile.in: Regenerated.

2004-01-12  Fernando Nasser  <fnasser@redhat.com>

	* gnu/java/awt/peer/gtk/TestAWT.java: Fix test program so that it does
	not show modal dialogs twice and so that it allows showing a modal
	dialog from another modal dialog.

2004-01-12  Fernando Nasser  <fnasser@redhat.com>

	* java/awt/Dialog.java (show): Enable blocking for all modal dialogs
	and run secondary dispatch thread to process event queue while this
	thread is blocked.

2004-01-12  Graydon Hoare  <graydon@redhat.com>

	* gnu/java/awt/gtk/GdkGraphics2D.java
	(static): Check GtkToolkit before initializing static state.
	(Graphics2D): Don't construct transform with 0.5 unit offset.

2004-01-12  Sascha Brawer  <brawer@dandelis.ch>

	* gnu/java/awt/BitwiseXORComposite.java: Add.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(setXORMode): Switch to gnu.java.awt.BitwiseXORComposite.
	(BitwiseXORComposite): Remove inner class.

2004-01-11  Michael Koch  <konqueror@gmx.de>

	* gnu/java/lang/reflect/TypeSignature.java
	(getEncodingOfClass): Documentation fixed.
	(getClassForEncoding): Give class loader to Class.forName().
	Documentation fixed.

2004-01-11  Sascha Brawer  <brawer@dandelis.ch>

	* javax/swing/undo/CompoundEdit.java (serialVersionUID): Added.

2004-01-11  Michael Koch  <konqueror@gmx.de>

	* javax/swing/undo/StateEditable.java
	(RCSID): Removed redundant modifiers.

2004-01-10  Michael Koch  <konqueror@gmx.de>

	* javax/print/attribute/EnumSyntax.java
	(getStringTable): Made protected.
	(getEnumValueTable): Likewise.
	* javax/print/attribute/standard/JobKOctetsProcessed.java
	(JobKOctetsProcessed): Don't implement PrintRequestAttribute.
	* javax/print/attribute/standard/JobMediaSheetsCompleted.java
	(JobMediaSheetsCompleted): Made class final.
	* javax/print/attribute/standard/OutputDeviceAssigned.java
	(getName): Fixed typo.
	* javax/print/attribute/standard/RequestingUserName.java
	(serialVersionUID): Fixed value.

2004-01-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicButtonUI.java,
	javax/swing/plaf/basic/BasicCheckBoxUI.java,
	javax/swing/plaf/basic/BasicListUI.java,
	javax/swing/plaf/basic/BasicOptionPaneUI.java,
	javax/swing/plaf/basic/BasicPanelUI.java,
	javax/swing/plaf/basic/BasicRadioButtonUI.java,
	javax/swing/plaf/basic/BasicScrollPaneUI.java,
	javax/swing/plaf/basic/BasicToggleButtonUI.java,
	javax/swing/plaf/basic/BasicViewportUI.java:
	Fixed import statements.

2004-01-10  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/image/ImageDecoder.java
	(produce): Made public.
	* gnu/java/awt/peer/GLightweightPeer.java,
	gnu/java/awt/peer/gtk/GtkToolkit.java:
	Reformated.

2004-01-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JRadioButtonMenuItem.java,
	javax/swing/JSeparator.java,
	javax/swing/JSplitPane.java,
	javax/swing/JTextPane.java,
	javax/swing/JToolBar.java,
	javax/swing/ListCellRenderer.java,
	javax/swing/ListModel.java,
	javax/swing/MenuElement.java,
	javax/swing/OverlayLayout.java,
	javax/swing/ProgressMonitor.java,
	javax/swing/ProgressMonitorInputStream.java,
	javax/swing/Renderer.java,
	javax/swing/RootPaneContainer.java,
	javax/swing/Scrollable.java,
	javax/swing/SingleSelectionModel.java,
	javax/swing/ToolTipManager.java,
	javax/swing/ViewportLayout.java,
	javax/swing/event/DocumentEvent.java,
	javax/swing/event/SwingPropertyChangeSupport.java,
	javax/swing/event/TreeSelectionEvent.java,
	javax/swing/event/UndoableEditEvent.java,
	javax/swing/text/AbstractDocument.java,
	javax/swing/text/AttributeSet.java,
	javax/swing/text/Caret.java,
	javax/swing/text/ComponentView.java,
	javax/swing/text/DefaultCaret.java,
	javax/swing/text/DefaultEditorKit.java,
	javax/swing/text/Document.java,
	javax/swing/text/EditorKit.java,
	javax/swing/text/GapContent.java,
	javax/swing/text/Keymap.java,
	javax/swing/text/MutableAttributeSet.java,
	javax/swing/text/PlainEditorKit.java,
	javax/swing/text/Segment.java,
	javax/swing/text/Style.java,
	javax/swing/text/StyledDocument.java,
	javax/swing/text/StyledEditorKit.java,
	javax/swing/text/TextAction.java,
	javax/swing/text/View.java: Fixed import statements.

2004-01-08  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/JLayeredPane.java: Rewrite to accomodate
	djee@redhat.com's recent inverse ordering of Container elements.

2004-01-09  Michael Koch  <konqueror@gmx.de>

	* gnu/java/lang/ArrayHelper.java
	(equalsArray): Removed.

2004-01-09  Andrew Haley  <aph@redhat.com>

	* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Resolve
	a Utf8Const field before looking at its class.

2004-01-09  Michael Koch  <konqueror@gmx.de>

	* javax/print/attribute/standard/DocumentName.java,
	javax/print/attribute/standard/JobHoldUntil.java,
	javax/print/attribute/standard/JobMessageFromOperator.java,
	javax/print/attribute/standard/JobName.java,
	javax/print/attribute/standard/JobOriginatingUserName.java,
	javax/print/attribute/standard/OutputDeviceAssigned.java,
	javax/print/attribute/standard/PrinterInfo.java,
	javax/print/attribute/standard/PrinterLocation.java,
	javax/print/attribute/standard/PrinterMakeAndModel.java,
	javax/print/attribute/standard/PrinterMessageFromOperator.java,
	javax/print/attribute/standard/PrinterName.java,
	javax/print/attribute/standard/RequestingUserName.java: New files.
	* Makefile.am (javax_source_files): Added new files.
	* Makefile.in: Regenerated.

2004-01-09  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractAction.java,
	javax/swing/AbstractSet.java,
	javax/swing/Action.java,
	javax/swing/ActionMap.java,
	javax/swing/BoundedRangeModel.java,
	javax/swing/ButtonModel.java,
	javax/swing/CellEditor.java,
	javax/swing/CellRendererPane.java,
	javax/swing/ComboBoxEditor.java,
	javax/swing/DebugGraphics.java,
	javax/swing/DefaultCellEditor.java,
	javax/swing/DefaultCellRenderer.java,
	javax/swing/DefaultComboBoxModel.java,
	javax/swing/DefaultDesktopManager.java,
	javax/swing/DefaultFocusManager.java,
	javax/swing/DefaultListCellRenderer.java,
	javax/swing/Icon.java,
	javax/swing/JButton.java,
	javax/swing/JCheckBoxMenuItem.java,
	javax/swing/JDesktopPane.java,
	javax/swing/JEditorPane.java,
	javax/swing/JMenu.java,
	javax/swing/JPanel.java,
	javax/swing/JPasswordField.java,
	javax/swing/JPopupMenu.java,
	javax/swing/JProgressBar.java: Reworked imports.

2004-01-09  Michael Koch  <konqueror@gmx.de>

	* java/awt/geom/PathIterator.java
	(WIND_EVEN_ODD): Removed redundant modifiers.
	(WIND_NON_ZERO): Likewise.
	(SEG_MOVETO): Likewise.
	(SEG_LINETO): Likewise.
	(SEG_QUADTO): Likewise.
	(SEG_CUBICTO): Likewise.
	(SEG_CLOSE): Likewise.
	* java/awt/image/SinglePixelPackedSampleModel.java:
	Removed redundant semicolon.
	* java/io/ObjectInputStream.java
	(inputGetObjectStreamClasses): Removed unused variable "ret_val".
	* java/util/logging/Filter.java
	(isLoggable): Removed redundant modifier.
	* java/util/logging/LogManager.java:
	Removed redundant semicolon.
	* java/util/logging/XMLFormatter.java
	(format): Removed unused variable "key".

2004-01-08  Fernando Nasser  <fnasser@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java (nativeSetFile):
	New name for the former setFile native method.
	(setFile): New method.
	(setDirectory): Implemented.
	(connectSignals): New native method.
	(setFilenameFilter): Improve comment.
	(getGraphics): Comment.
	(gtkHideFileDialog): New method.
	(gtkDisposeFileDialog): New method.
	(gtkSetFilename): New method.
	* java/awt/Dialog.java (show): Block on modal dialogs, but only
	for FileDialog for now.
	(hide): New method.
	(dispose): New method.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkFileDialog_create): Replace
	deprecated creation functions.  Make dialog modal.  Add it to the
	window group.
	(Java_gnu_java_awt_peer_gtk_GtkFileDialog_connectSignals): New
	function.
	(Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_gtkFileSelectionSetFilename):
	Rename to...
	(Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFile): New
	name.
	(window_closed): New function.
	(ok_clicked): New function.
	(cancel_clicked): New function.

2004-01-08  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JLayeredPane.java: Revert changes to standard
	boilerplate, reworked imports.

2004-01-07  Tom Tromey  <tromey@redhat.com>

	PR libgcj/13439:
	* verify.cc (state::merge): Copy changed locals out of subroutine
	in NO_STACK case.
	(state::FLAG_CHANGED): New const.
	(state::FLAG_UNUSED): Likewise.
	(state::local_changed): Removed.  Updated all users.
	(state::flags): New field.
	(state::merge): Added jsr_semantics argument, more logic.
	(push_jump_merge): Added jsr_semantics argument.
	(handle_jsr_insn): Set jsr_semantics on push_jump_merge when
	merging through the jsr instruction.

2004-01-07  Tom Tromey  <tromey@redhat.com>

	* scripts/MakeDefaultMimeTypes.java: Use \n, not
	backslash-newline.

2004-01-07  Graydon Hoare  <graydon@redhat.com>

	* java/awt/Container.java (LightweightDispatcher): Implement.
	(visitChild): Reuse graphics object.
	(dispatchEventImpl): Optionally dispatch to lightweight.
	(addNotifyContainerChildren): Build LightweightDispatcher.

2004-01-07  David Jee  <djee@redhat.com>

	* java/awt/Container.java
	(update): Clear only the clipped region, instead of clearing the
	entire Container.
	(visitChildren): Visit children in descending order.

2004-01-07  Michael Koch  <konqueror@gmx.de>

	* java/lang/reflect/Array.java: Merged documentation with classpath.

2004-01-07  Michael Koch  <konqueror@gmx.de>

	* java/text/CollationElementIterator.java
	(textIndex): Renamed from index.
	* java/text/CollationKey.java
	(collator): New member.
	(CollationKey): New argument for parent collator.
	(equals): Check for same collator, source string and key array.
	* java/text/RuleBasedCollator.java:
	Reformated.
	(RuleBasedCollator): Don't re-initialize frenchAccents with default
	value.
	(getCollationElementIterator): Rewritten.
	(getCollationKey): Added new argument to CollationKey constructor.

2004-01-07  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/DatagramChannelImpl.java
	(blocking): Removed.
	(DatagramChannelImpl): Call configureBlocking().
	(implConfigureBlocking): Dont initialize blocking.
	* gnu/java/nio/ServerSocketChannelImpl.java
	(blocking): Removed.
	(ServerSocketChannelImpl): Call configureBlocking().
	(implConfigureBlocking): Dont initialize blocking.
	* gnu/java/nio/SocketChannelImpl.java
	(blocking): Removed.
	(SocketChannelImpl): Call configureBlocking().
	(implConfigureBlocking): Dont initialize blocking.
	(connect): Use isBlocking().
	* java/nio/channels/spi/AbstractSelectableChannel.java
	(configureBlocking): Use blockingLock() instead of LOCK.
	Set blocking after successfully called implConfigureBlocking().
	(register): Use blockingLock() instead of LOCK.

2004-01-07  Michael Koch  <konqueror@gmx.de>

	* java/net/ServerSocket.java (isBound): Fixed documentation.

2004-01-07  Sascha Brawer  <brawer@dandelis.ch>

	* javax/swing/DefaultBoundedRangeModel.java: Documented API.
	(changeEvent): Create event object on demand.
	(DefaultBoundedRangeModel, toString, setValue, setExtent,
	setMinimum, setMaximum, setValueIsAdjusting, setRangeProperties,
	fireStateChanged): Re-written.
	* javax/swing/event/EventListenerList.java: Reformatted, document
	typical usage.
	(toString): Implemented.
	(getListeners): Re-written.
	(remove): Re-written.
	(add): Re-written.
	(NO_LISTENERS): New singleton field.
	(listenerList): Declare as transient; document.
	(serialVersionUID): Document.
	(getListenerCount(Class)): More efficient implementation,
	also accepts null argument.  Improve Javadoc.
	(getListenerCount()): Remove unnecessary cast; docfix.
	* javax/swing/undo/UndoableEditSupport.java:
	Re-format, document.
	(UndoableEditSupport): Set realSource field. Improve documentation.
	(_postEdit): Iterate over cloned listener vector.
	(toString): Don't emit realSource.
	(beginUpdate, endUpdate): Support nested updates.
	(postEdit): Use compound edit if present.

2004-01-06  Graydon Hoare  <graydon@redhat.com>

	* java/awt/Container.java (swapComponents): Add forgotten
	function, required for JLayeredPane change.

2004-01-06  Michael Koch  <konqueror@gmx.de>

	* java/text/CollationElementIterator.java: Reformated.
	(CollationElementIterator): Changed order of arguments.
	* java/text/RuleBasedCollator.java
	(RuleBasedCollator): Merged class documentation.
	(CollationElement): Added documentation.
	(compare): Reformated, renamed arguments.
	(equals): Likewise.
	(getCollationElementIterator): Likewise.
	(getCollationKey): Likewise.

2004-01-06  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/JLayeredPane.java: Fix semantics, add javadocs.

2004-01-06  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/protocol/file/Connection.java:
	Reformated copyright.
	(hdrHash): Removed.
	(hdrVec): Removed.
	(gotHeaders): Removed.
	(getHeaderField): Removed.
	(getHeaderField): Removed.
	(getHeaderFieldKey): Removed.
	(getKey): Removed.
	(getField): Removed.
	(getHeaders): Removed.

2004-01-06  Michael Koch  <konqueror@gmx.de>

	* javax/print/attribute/standard/DateTimeAtCompleted.java,
	javax/print/attribute/standard/DateTimeAtCreation.java,
	javax/print/attribute/standard/DateTimeAtProcessing.java,
	javax/print/attribute/standard/JobImpressionsCompleted.java,
	javax/print/attribute/standard/JobKOctets.java,
	javax/print/attribute/standard/JobKOctetsProcessed.java,
	javax/print/attribute/standard/JobMediaSheetsCompleted.java,
	javax/print/attribute/standard/JobPrioritySupported.java: New files.
	* Makefile.am (javax_source_files): Added new files.
	* Makefile.in: Regenerated.

2004-01-06  Michael Koch  <konqueror@gmx.de>

	* java/net/URLConnection.java
	(contentHandler): Removed.
	(locale): Removed.
	(getHeaderFields): Return an empty map instead of null.
	(getContent): Connect if needed, renamed "cType" to "type" and
	"contentHandler" to "ch" and made it a local variable.
	(getPermission): Don't use package in class name.
	(setDefaultRequestProperty): Fixed typo in documentation.
	(initializeDateFormats): Made locale a local variable.

2004-01-06  Michael Koch  <konqueror@gmx.de>

	* java/lang/Package.java
	(getPackage): Get the current class loader directly.
	* java/lang/SecurityManager.java
	(currentLoadedClass): Dont iterate over class contexts.
	(classLoaderDepth): Don't check class loaders if everything is allowed.

2004-01-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(pre_event_handler): Set all insets to 0 when a Configure event
	is received for a GtkPlug.
	* gnu/java/awt/EmbeddedWindow.java (window_id): Rename handle.
	Make handle long, not int.
	(EmbeddedWindow()): New constructor.
	(EmbeddedWindow(int)): Rename window_id to handle.  Make handle
	long, not int.
	(setHandle): New method.
	(getHandle): Return long, not int.
	* gnu/java/awt/peer/EmbeddedWindowPeer.java (embed): New method
	declaration.
	* gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c:
	(create(long)): Take long parameter, not int.  Cast gtk_plug_new
	argument to GdkNativeWindow.
	(construct): New method.
	(embed): New method.

	* gnu/java/awt/peer/gtk/GtkScrollPanePeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c
	(create(int, int)): New method.
	(create): Call new create method.
	(gtkScrolledWindowNew, gtkScrolledWindowSetSize): Remove
	methods.
	(childResized): Remove native implementation.  Implement in
	Java.
	(getHScrollbarHeight, getVScrollbarWidth): Call
	gtk_widget_size_request to get scrollbar dimensions.
	* java/awt/ScrollPane.java (getViewportSize): Reimplement.  Only
	call getVScrollbarWidth and getHScrollbarHeight when vertical
	and horizontal scrollbars respectively are needed.
	(doLayout): Enlarge child if it is smaller than the viewport.

2004-01-05  Fernando Nasser  <fnasser@redhat.com>

	* java/awt/Dialog.java (constructor): Accept null title as per spec.
	* java/awt/FileDialog.java (constructor): Throw exception on invalid
	argument as per spec.

2004-01-05  Fernando Nasser  <fnasser@redhat.com>

	* java/awt/Choice.java (add): Leave posting of ItemEvents to peer.
	(insert): Ditto.
	(remove): Ditto.  Also, Check for valid argument.
	(removeAll): Use peer interface method.
	* gnu/java/awt/peer/gtk/GtkChoicePeer.java (nativeAdd): New name for
	native add function.
	(nativeRemove): New name for native remove function.
	(getHistory): New native function.
	(constructor): Generate ItemEvent.
	(add): Ditto, if selection is changed.
	(remove): Ditto, ditto.
	(removeAll): Add implementation.
	(handleEvent): Remove.  Dead code.
	(choicePostItemEvent): Add comment.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
	(Java_gnu_java_awt_peer_gtk_GtkChoicePeer_append): Add comments.
	(Java_gnu_java_awt_peer_gtk_GtkChoicePeer_add): Rename to...
	(Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeAdd): New name.  Add
	comments and fix condition to change selection.
	(Java_gnu_java_awt_peer_gtk_GtkChoicePeer_remove): Rename to...
	(Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemove): New name.  Add
	remove all capability.
	(Java_gnu_java_awt_peer_gtk_GtkChoicePeer_getHistory): New function.
	(item_activate): Add cast to remove compiler warning.

2004-01-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(getPreferredSize): Call preferredSize.
	(preferredSize): Call gtkWidgetGetPreferredDimensions.
	(getMinimumSize): Call minimumSize.
	(minimumSize): Call gtkWidgetGetPreferredDimensions.
	(gtkWidgetGetDimensions): Return the peer widget's current size
	request.
	(gtkWidgetGetPreferredDimensions): Return the peer widget's
	natural size request.

2004-01-05  Sascha Brawer  <brawer@dandelis.ch>

	Thanks to Brian Gough <bjg@network-theory.com>
	* java/awt/geom/CubicCurve2D.java (solveCubic): Implemented.
	* java/awt/geom/QuadCurve2D.java (solveQuadratic): Re-written.

2004-01-04  Matthias Klose  <doko@debian.org>

	* aclocal.m4: Rebuilt using "aclocal -I .".
	* configure: Rebuilt.

2004-01-03  Per Bothner  <per@bothner.com>

	* java/util/Date.java (parse):  Fix a number of problems.
	(skipParens):  Remove no-longer-needed method.

