2007-05-13  Release Manager

	* GCC 4.2.0 released.

2007-02-09  Jakub Jelinek  <jakub@redhat.com>

	PR 23566
	* java/util/TimeZone.java (timezones): Regenerate from tzdata2007a.

2007-01-23  Marco Trudel  <mtrudel@gmx.ch>

	* java/util/Arrays.java (binarySearch): Change comparison order.

2006-08-02  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GtkChoicePeer.java
	(remove): Force event on removing item 0 when it's selected.
	(handleEvent): Always call Choice.selected().
	* java/awt/Choice.java:
	(remove): Simplify and correct.

2006-07-30  Sven de Marothy  <sven@physto.se>

	* java/awt/Choice.java:
	(accessibleAction): Call select() directly.
	(add, insert, remove): Reimplement.
	(dispatchEventImpl): Always call super.
	(processItemEvent): Does not set the index.
	* include/gnu_java_awt_peer_gtk_GtkChoicePeer.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
	(append): removed.
	(nativeAdd): Name changed to add.
	(selection_changed_cb): Simplify callback.
	* gnu/java/awt/peer/gtk/GtkChoicePeer.java
	(selected): New field.
	(add): Replaced with native impl.
	(handleEvent): New method.

2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>

	Port to hosts whose 'sort' and 'tail' implementations
	treat operands with leading '+' as file names, as POSIX
	has required since 2001.  However, make sure the code still
	works on pre-POSIX hosts.
	* libjava/classpath/ltmain.sh: Don't assume "sort +2" is
	equivalent to "sort -k 3", since POSIX 1003.1-2001 no longer
	requires this.
	This uses the same fix that is already in
	libjava/libltdl/ltmain.sh.

2006-07-04  Peter O'Gorman  <peter@pogma.com>

	* ltconfig: chmod 644 before ranlib during install.

2006-08-09  Mark Wielaard  <mark@klomp.org>

	* configure.ac (VERSION): Set to 0.92.
	* NEWS: Add updates for 0.92 release.

2006-08-08  Roman Kennke  <kennke@aicas.com>

	PR 28650
	* javax/swing/plaf/basic/BasicMenuBarUI.java
	(getActionMap): Store ActionMap in MenuBar.actionMap, rather
	than Tree.actionMap.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(action): Removed obsolete field.
	(uninstallKeyboardActions): Removed action field handling.
	(installKeyboardActions): Removed action field handling.
	(createDefaultActions): Don't install removed TreeAction.
	(TreeAction): Removed obsolete inner class.
	(ActionListenerProxy): Removed obsolete inner class.
	(MouseHandler.mousePressed): Request focus on JTree component
	on mouse press.

2006-08-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(MouseInputHandler.mousePressed): Request focus on list
	component.

2006-08-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTableUI.java
	(MouseInputHandler.mousePressed): Request focus on list
	component.

2006-08-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(damageRange(JTextComponent,int,int)): Call damageRange() with
	correct biases, rather than null.
	(damageRange(JTextComponent,int,int,Bias,Bias)): Rewritten
	to use simpler modelToView() approach without much special
	casing. This seems not worth the effort and actually
	caused problems. Added locking of the document.
	* javax/swing/text/BoxView.java
	(requirementsValid): New field.
	(calculateMajorAxisRequirements): Rewritten without using
	SizeRequirements. The SizeRequirements algorithms are slightly
	different and too inefficient.
	(calculateMinorAxisRequirements): Rewritten without using
	SizeRequirements. The SizeRequirements algorithms are slightly
	different and too inefficient.
	(getAlignment): Simply return the alignment of the cached
	requirements.
	(getMaximumSpan): Add insets.
	(getMinimumSpan): Add insets.
	(getPreferredSpan): Add insets.
	(layoutMajorAxis): Rewritten without using
	SizeRequirements. The SizeRequirements algorithms are slightly
	different and too inefficient.
	(layoutMinorAxis): Rewritten without using
	SizeRequirements. The SizeRequirements algorithms are slightly
	different and too inefficient.
	(modelToView): Call setSize() rather than layout().
	(paint): Check clip for more efficient painting.
	(preferenceChanged): Invalidate requirements here.
	(replace): Invalidate requirements here.
	(updateRequirements): Update requirements only when requirements
	are marked invalid.
	* javax/swing/text/CompositeView.java
	(modelToView): Added some more checks and handling of corner cases.
	* javax/swing/text/FlowView.java
	(calculateMinorAxisRequirements): Set aligment to 0.5 and maximum
	span to Integer.MAX_VALUE. Limit preferredSize to minimumSize.
	* javax/swing/text/IconView.java
	(getAlignment): Implemented to return 1.0 for vertical alignment.
	* javax/swing/text/ParagraphView.java
	(Row.getMaximumSpan): Implemented to let Rows span the whole
	ParagraphView.
	(getAlignment): Fixed horizontal alignment and vertical alignment
	for empty paragraphs to be 0.5.

2006-08-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/View.java
	(modelToView): Added special handling for corner case at the end
	of the view and for multiline views.

2006-08-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(modelToView): Read-lock the document. Set size of the
	root view before fetching the model-to-view mapping.
	(getViewIndex): Check of the position is inside the range and
	return -1 if this is not the case.
	(getViewAtPosition(int,Rectangle): Update child allocation for valid
	view index.
	(getViewIndexAtPosition(int)): Delegate the index search to
	the element since we have a 1:1 mapping between elements and
	views here.
	* javax/swing/text/DefaultCaret.java
	(appear): Ignore BadLocationException.
	(paint): Ignore BadLocationException.
	* javax/swing/text/FlowView.java
	(changedUpdate): Also notify the layoutPool view.
	(removeUpdate): Also notify the layoutPool view.
	* javax/swing/text/ParagraphView.java
	(Row.getViewIndexAtPosition): Overridden to search linearily
	through the view instead of relying on a 1:1 model to view
	mapping.
	* javax/swing/text/View.java
	(removeUpdate): Clear ElementChange object if updateChildren
	returns false.
	(forwardUpdate): Special handle some boundary cases.

2006-08-07  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/key/dss/DSSKey.java: Updated documentation.
	(hasInheritedParameters): New method.
	(equals): Updated documentation.
	Take into consideration the outcome of hasInheritedParameters invocation.
	(toString): Call hasInheritedParameters and adjust the result accordingly.
	* gnu/java/security/key/dss/DSSKeyPairX509Codec.java (encodePublicKey):
	Updated documentation.
	Handle case of public keys with null p, q, and g MPIs.
	(decodePublicKey): Handle case of absent or NULL p, q and g MPIs.

2006-08-07  Tom Tromey  <tromey@redhat.com>

	PR libgcj/23682:
	* java/nio/channels/SelectionKey.java (attach): Now synchronized.
	(attachment): Likewise.
	* java/nio/channels/spi/AbstractSelectionKey.java (cancel): Now
	synchronized.
	(isValid): Likewise.
	* gnu/java/nio/SelectionKeyImpl.java (impl): Now final
	(ch): Likewise.
	(interestOps): Synchronize.
	(readyOps): Likewise.
	* gnu/java/nio/SelectorImpl.java (register): Synchronize around
	interestOps call.

2006-08-07  C. Scott Marshall  <csm@gnu.org>

	Fixes PR 28608.
	* java/nio/DirectByteBufferImpl.java (duplicate): only reset if
	the mark has been set.
	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c
	(Java_java_nio_VMDirectByteBuffer_allocate): zero out the
	allocated data.

2006-08-07  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawGlyphVector): Synchronize against font object when drawing.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(nativeDrawGlyphVector): Use pango locking when drawing.
	(install_font_peer): Use pango locking when creating the cairo face.

2006-08-06  Roman Kennke  <kennke@aicas.com>

	PR 28571
	* gnu/java/awt/peer/gtk/GtkCanvasPeer.java
	(getPreferredSize): Renamed method to preferredSize(). That's
	the one that gets called from java.awt.*.
	* java/awt/peer/ComponentPeer.java
	(getPreferredSize): Added specnote about this method never
	beeing called in the RI.
	(getMinimumSize): Added specnote about this method never
	beeing called in the RI.

2006-08-06  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(grab, nativeGrab): New methods.
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(nativeGrab): New method.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(print): Implement.
	* java/awt/Component.java
	(printAll): Should call peer print method. 

2006-08-06  Thomas Minor  <1nocentrabidlamb@sexMagnet.com>

	* java/net/URL.java (getContent(Class[])): Implement.

2006-08-06  Mark Wielaard  <mark@klomp.org>

	PR 28555
	Suggested by Matthew Burgess <matthew@linuxfromscratch.org>
	* gnu/xml/transform/ApplyTemplatesNode.java (clone): Check whether
	withParams is null.
	* gnu/xml/transform/ForEachNode.java (clone): Check whether
	sortKeys is null.

2006-08-06  Roman Kennke  <kennke@aicas.com>

	* NEWS: Added note about the X peers.
	* INSTALL: Added install notes about the X peers.

2006-08-06  Raif S. Naffah  <raif@swiftdsl.com.au>
	     Paul Jenner  <psj@harker.dyndns.org>

	* README: Update bug, patches and cvs instructions plus new URLs of
	various external projects.

2006-08-06  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac (MOZILLA_FOUND): Fall back to
	mozilla-firefox-plugin.

2006-08-06  Mario Torre  <neugens@limasoftware.net>

	Reported by Raif S. Naffah <raif@swiftdsl.com.au>
	* native/jni/gconf-peer/GConfNativePeer.c (init_gconf_client):
	g_type_init earlier in function to correctly initialize the
	type system used by the backend.

2006-08-05  Robert Schuster  <robertschuster@fsfe.org>

	Reported by Henrik Gulbrandsen <henrik@gulbra.net>
	Fixes PR27864.
	* gnu/xml/dom/DomIterator.java:
	(successor): Added if-statement.

2006-08-03  Roman Kennke  <kennke@aicas.com>

	PR 27606
	* javax/swing/plaf/basic/BasicListUI.java
	(paintCell): Pass row index to cell renderer.
	* javax/swing/plaf/basic/MetalFileChooserUI.java
	(DirectoryComboBoxRenderer.indentIcon): New field.
	(DirectoryComboBoxRenderer.DirectoryComboBoxRenderer):
	Initialize indentIcon.
	(DirectoryComboBoxRenderer.getListCellRendererComponent):
	Fall back to super and removed standard functionality.
	Handle indentation.
	(IndentIcon): New class. Wraps and indents another icon.

2006-08-03  Roman Kennke  <kennke@aicas.com>

	PR 27605
	* javax/swing/JComboBox.java
	(setSelectedItem): Fire ActionEvent here.
	* javax/swing/plaf/basic/BasicDirectoryModel.java
	(directories): Changed to type Vector.
	(files): New field.
	(loadThread): New field.
	(DirectoryLoadThread): New inner class. This loads the contents
	of directories asynchronously.
	(getDirectories): Return cached Vector.
	(getFiles): Return cached Vector.
	(getSize): Return plain size of contents Vector.
	(propertyChange): Reread directory also for DIRECTORY_CHANGED,
	FILE_FILTER_CHANGED, FILE_HIDING_CHANGED and FILE_VIEW_CHANGED.
	(sort): Don't store sorted list in contents. This must be done
	asynchronously from the EventThread.
	(validateFileCache): Rewritten for asynchronous reading
	of directory contents.
	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(installListeners): Install model as PropertyChangeListener.
	(uninstallListeners): Uninstall model as PropertyChangeListener.
	(createPropertyChangeListener): Return null just like the
	RI.

2006-08-03  Roman Kennke  <kennke@aicas.com>

	PR 27604
	* javax/swing/plaf/basic/BasicChooserUI.java
	(BasicFileView.getName): Fetch the real name from the
	file chooser's FileSystemView.
	* javax/swing/plaf/metal/MetalChooserUI.java
	(DirectoryComboBoxRenderer.getListCellRendererComponent):
	Set the text fetched from the JFileChooser.getName().
	* javax/swing/FileSystemView.java
	(createFileObject): When file is a filesystem root,
	create a filesystem root object first.
	(getSystemDisplayName): Return the filename. Added specnote
	about ShellFolder class that is mentioned in the spec.
	* javax/swing/UnixFileSystemView.java
	(getSystemDisplayName): Implemented to return the real name
	of a file, special handling files like '.' or '..'.

2006-08-03  Roman Kennke  <kennke@aicas.com>

	PR 28562
	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(PropertyChangeHandler.propertyChange): Cleanly reinstall
	components when visual property chanegs. 

2006-08-03  Roman Kennke  <kennke@aicas.com>

	PR 28562
	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(PropertyChangeHandler.propertyChange): Uninstall and reinstall
	component when visual properties change.

2006-08-03  Roman Kennke  <kennke@aicas.com>

	PR 28534
	* javax/swing/JTree.java
	(JTree(TreeModel)): Set cell renderer to null.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(setCellRenderer): Finish editing before setting the
	cell renderer. Refresh the layout. Don't set the
	currentCellRenderer field here (that's done in updateRenderer).
	(updateRenderer): Handle createdRenderer field here too.
	Set renderer to a default handler when the current renderer
	in the JTree is null.

2006-08-03  Mark Wielaard  <mark@klomp.org>

	* scripts/Makefile.am (EXTRA_DIST): Add import-cacerts.sh.

2006-08-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	* scripts/import-cacerts.sh: Batch CA certificates import script.

2006-08-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/28556
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java
	(encodePrivateKey): Updated documentation to clarify that RFC-2459
	states that the parameters field of the AlgorithmIdentifier element
	MUST be NULL if present. Amended the code to reflect the specs.
	(decodePrivateKey): Handle case of NULL AlgorithmIdentifier.parameters.

2006-08-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/23899
	* java/security/SecureRandom.java (next): Call nextBytes as per specs.

2006-08-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jawt/Makefile.am (libjawt_la_LDFLAGS): Add
	-avoid-version.
	* native/jni/gtk-peer/Makefile.am (libgtkpeer_la_LDFLAGS):
	Likewise.
	* native/jni/midi-alsa/Makefile.am (libgjsmalsa_la_LDFLAGS):
	Likewise.
	* native/jni/midi-dssi/Makefile.am (libgjsmdssi_la_LDFLAGS):
	Likewise.

2006-08-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/qt-peer/Makefile.am (libqtpeer_la_LDFLAGS): Add
	-avoid-version.

2006-08-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* examples/gnu/classpath/examples/management/TestBeans.java:
	New file.
	* javax/management/MBeanAttributeInfo.java:
	(toString()): Implemented.
	* javax/management/MBeanConstructorInfo.java:
	(toString()): Implemented.
	* javax/management/MBeanFeatureInfo.java:
	(toString()): Implemented.
	* javax/management/MBeanInfo.java:
	(toString()): Implemented.
	* javax/management/MBeanNotificationInfo.java:
	(toString()): Implemented.
	* javax/management/MBeanOperationInfo.java:
	(toString()): Implemented.
	* javax/management/MBeanParameterInfo.java:
	(toString()): Implemented.
	* javax/management/StandardMBean.java:
	(getMBeanInfo()): Fix attribute naming.

2006-08-02  Mark Wielaard  <mark@klomp.org>

	PR 28535
	* configure.ac (gconf-peer): Check for gdk-2.0.
	* native/jni/gconf-peer/Makefile.am
	(AM_LDFLAGS): Use GDK_LIBS.
	(AM_CFLAGS): Use GDK_CFLAGS.

2006-07-31  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/security/Provider.java: Updated copyright year.
	Updated documentation.
	Formatting.
	(put): Updated documentation.
	Added security manager check.
	Canonicalize the key before adding its mapping.
	(get): Override superclass implementation to use canonicalized keys.
	(remove): Updated documentation.
	Added security manager check.
	Canonicalize the key before removing its mapping.
	(clear): Updated documentation.
	Added security manager check.
	(toCanonicalKey): New method.

2006-07-30  Matt Wringe  <mwringe@redhat.com>

	* gnu/java/security/Engine.java
	(getInstance): Ignore self referencing aliases.

2006-07-30  Mark Wielaard  <mark@klomp.org>

	* resource/java/security/classpath.security: Add /dev/urandom as
	default securerandom.source.

2006-07-30  Mark Wielaard  <mark@klomp.org>

	* java/util/GregorianCalendar.java (maximums): Months can have up to
	6 weeks.
	(nonLeniencyCheck): weeks is either 5 or 6.

2006-07-29  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JComponent.java (paintingDoubleBuffered): Renamed
	static field isPaintingDoubleBuffered to not have the same name
	as a method.

2006-07-29  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/BeanImpl.java:
	Extended javax.management.StandardMBean.
	* gnu/java/lang/management/ClassLoadingMXBeanImpl.java,
	* gnu/java/lang/management/CompilationMXBeanImpl.java,
	* gnu/java/lang/management/GarbageCollectorMXBeanImpl.java,
	* gnu/java/lang/management/MemoryMXBeanImpl.java,
	* gnu/java/lang/management/MemoryManagerMXBeanImpl.java,
	* gnu/java/lang/management/MemoryPoolMXBeanImpl.java,
	* gnu/java/lang/management/OperatingSystemMXBeanImpl.java,
	* gnu/java/lang/management/RuntimeMXBeanImpl.java,
	* gnu/java/lang/management/ThreadMXBeanImpl.java:
	Call the superclass with the appropriate class.
	* java/lang/management/ManagementFactory.java:
	(getOperatingSystemMXBean()): Catch exception from
	StandardMBean.
	(getRuntimeMXBean()): Likewise.
	(getClassLoadingMXBean()): Likewise.
	(getThreadMXBean()): Likewise.
	(getMemoryMXBean()): Likewise.
	(getCompilationMXBean()): Likewise.
	(getMemoryPoolMXBeans()): Likewise.
	(getMemoryManagerMXBeans()): Likewise.
	(getGarbageCollectorMXBeans()): Likewise.
	* javax/management/MBeanFeatureInfo.java:
	(hashCode()): Fixed to check for null values.

2006-07-29  Matt Wringe  <mwringe@redhat.com>

	* gnu/java/security/Engine.java
	(getInstance): Add case insentivity to algorithm names
	* java/security/Provider.java
	(put): Stop using canonical key naming
	(remove): Likewise
	(toCanonicalKey): Method removed
	(get): Method removed, no longer needs to overwrite
	parent implementation

2006-07-29  Sven de Marothy  <sven@physto.se>

	* java/math/BigDecimal.java
	Adjust copyright date.
	(divide(BigDecimal): Implement.
	(precision): Reimplement.
	(numDigitsInBigInteger, numDigitsInLong): Removed.
	(toString): Get exponent from string length,
	fix negative values with exponential form.
	(toEngineeringString): Same as for toString.
	(setScale): Throw ArithmeticException if scale < 0.

2006-07-27  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/java2d/CubicSegment.java: Added import.
	(cp1): Renamed from first().
	(c2): Renamed from last().
	(first): Renamed to cp1().
	(getDisplacedSegments): Implemented.
	(last): Renamed to cp2().
	* gnu/java/awt/java2d/LineSegment.java
	(cp1): Renamed from first().
	(c2): Renamed from last().
	(first): Renamed to cp1().
	(last): Renamed to cp2().
	* gnu/java/awt/java2d/QuadSegment.java
	(cp1): Renamed from first().
	(c2): Renamed from last().
	(first): Renamed to cp1().
	(last): Renamed to cp2().
	* gnu/java/awt/java2d/Segment.java: Added comments.
	(first): New field.
	(Segment): Keep track of first element in list.
	(add): Update first & last element variables.
	(cp1): Renamed from first().
	(c2): Renamed from last().
	(first()): Renamed to cp1() to reduce ambiguity.
	(last()): Renamed to cp2() to reduce ambiguity.
	(reverseAll): Update first element variable..
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(draw): Remove flattening path iterator.
	* java/awt/BasicStroke.java: Clarified comments.
	(addSegments): Refactored some code into joinSegments and
	joinInnerSegments.
	(capEnd): Rename of Segment.first() and Segment.end().
	(joinInnerSegments): New method.
	(joinOuterSegments): New method.
	(joinSegments): Refactored some code into joinOuterSegments.
	(solidStroke): Connect segments together properly.

2006-07-27  Tom Tromey  <tromey@redhat.com>

	PR classpath/28486:
	* java/net/URLStreamHandler.java (equals): Properly handle default
	port.  Rewrote javadoc.  Don't compare 'authority' parts of URLs.

2006-07-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(documentCV): Made field private.
	(bypass): Made field private.
	(bidiRoot): New field.
	(AbstractDocument): Initialize bidiRoot.
	(getBidiRootElement): Return bidiRoot.
	(getRootElements): Adjusted to also return the bidiRoot element.
	(BranchElement.startOffset): Removed unneeded field.
	(BranchElement.endOffset): Removed unneeded field.
	(BranchElement.BranchElement): Removed unneeded fields.
	(BranchElement.getEndOffset): Don't explicitly throw NPE here. This is
	done automatically when there's no element left in the array.
	(BranchElement.getStartOffset): Likewise.
	(BranchElement.replace): Reordered calculations to avoid double
	calculations.
	(removeImpl): Silently ignore requests with length <= 0.
	* javax/swing/text/GapContent.java
	(createPosition): Removed explicit check for correct offset.
	This class can deal with offsets outside the document.
	(shiftEnd): Update all positions, even those outside the
	document.
	(adjustPositionsInRange): Fixed to also adjust positions outside
	the document boundary.

2006-07-18  Kyle Galloway  <kgallowa@redhat.com>

    * gnu/classpath/jdwp/event/ExceptionEvent.java: Added _klass field to hold
    defining class.
    (getParameter): Returns _klass field instead of determining
    class from _instance.
    (setCatchLoc): New method.
    (writeData): Now assumes Location deals with empty locations instead of
    using null.
    * gnu/classpath/jdwp/util/Location.java (write): Check for empty
    locations and write out accordingly.
    (getEmptyLocation): New method. 

2006-07-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/SimpleAttributeSet.java
	(EMPTY): Use EmptyAttributeSet for this field rather than
	SimpleAttributeSet.
	* javax/swing/text/EmptyAttributeSet.java: New class. Implements
	an empty and immutable AttributeSet.

2006-07-27  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(reshape): Invalidate the component itself only when the
	size has changed. Invalidate the parent always. Fixed
	repainting. Pulled out the notification into
	notifyReshape().
	(notifyReshape): New helper method. Notify interested listeners
	about a reshape.
	(update): Simply call paint() without clearing the background.
	This is done in Container.update() if appropriate.
	(repaint): Delagate the repaint to the nearest heavyweight
	parent (for lightweights) and send an UPDATE event, rather than
	calling	ComponentPeer.repaint().
	* java/awt/Container.java
	(backCleared): Removed field.
	(paint): Removed handling of backCleared flag.
	(update): Only paint if the container is actually
	showing. Removed handling of backCleared flag.

2006-07-27  Robert Schuster <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java: Fixed copyright and
	authorship.
	(NavigateAction): New inner class.
	(NavigatePageDownAction): New inner class.
	(NavigatePageUpAction): New inner class.
	(RequestFocusAction): New inner class.
	(RequestFocusForVisibleComponentAction): New inner class.
	(FocusHandler.focusGained): Implemented.
	(FocusHandler.focusLost): Implemented.
	(MouseHandler.mouseReleased): Implemented.
	(MouseHandler.mousePressed): Rewritten.
	(PropertyChangeHandler.propertyChange): Reset currentScrollOffset and
	currentScrollLocation to 0.
	(TabbedPaneLayout.calculateSize): Stored tab count in local variable,
	removed local variables, fixed indentation to stay under 80 column
	limit.
	(TabbedPaneLayout.calculateTabRects): Decrease tab area position by
	one, set selectedIndex to 0 if its negative, corrected start values
	for normalization, suppressed padding when only one tab run,
	(TabbedPaneLayout.minimumLayoutSize): Toggled argument value.
	(TabbedPaneLayout.normalizeTabRuns): Fixed indentation to stay under
	80 column limit, corrected the starting value for the bounds fixing
	phase.
	(TabbedPaneLayout.preferredTabAreaWidth): Fixed indentation.
	(TabbedPaneLayout.rotateTabInRuns): Corrected comparison value for
	selectedRun, set start index for loop to 0.
	(TabbedPaneScrollLayout.preferredLayoutSize): Toggled argument value.
	(TabbedPaneScrollLayout.calculateTabRects): Rewritten.
	(TabbedPaneScrollLayout.layoutContainer): Added scrolling button
	alignment and visibility handling.
	(TabSelectionHandler.stateChanged): Do revalidation only in wrap tab
	layout mode.
	(ScrollingPanel.ScrollingPanelUI.paint): Rewritten.
	(currentScrollOffset): New field.
	(tabRuns): Rewritten documentation.
	(selectedColor): New field.
	(tempTextRect): New field.
	(tempIconRect): New field.
	(scrollTab): New method.
	(updateButtons): New method.
	(updateViewPosition): New method.
	(createLayoutManager): Reordered method calls, predefine new fields,
	register proper listeners.
	(uninstallComponents): Implemented.
	(installDefaults): Corrected property names, fixed indentation,.
	(uninstallDefaults): Set new fields to null.
	(uninstallListeners): Remove listeners from components neccessary for
	scrolling tab layout.
	(installKeyboardActions): Implemented.
	(uninstallKeyboardActions): Implemented.
	(paint): Paint tab area background.
	(paintTabArea): Fixed indentation, removed usage of local Rectangle
	objects.
	(getTabLabelShiftX): Rewritten.
	(getTabLabelShiftY): Rewritten.
	(paintFocusIndicator): Reindented.
	(paintTabBorder): Rewritten.
	(paintTabBackground): Corrected color usage, rewritten background
	rectangle painting.
	(paintContentBorderTopEdge): Rewritten.
	(paintContentBorderBottomEdge): Rewritten.
	(paintContentBorderLeftEdge): Rewritten.
	(paintContentBorderRightEdge): Rewritten.
	(tabForCoordinate): Return selected index when no tab could be
	found, removed FIXME note.
	(getRunForTab): Changed return value for first if-statement.
	(navigateSelectedTab): Fixed last argument for both
	getTabRunOffset() calls.
	(selectedNextTabInRun): Added scrolling code.
	(selectedPreviousTabInRun): Added scrolling code.
	(selectedNextTab): Added scrolling code.
	(selectedPreviousTab): Added scrolling code.
	(selectAdjacentRunTab): Added scrolling code.
	(getTextViewForTab): Added FIXME note.
	(calculateTabHeight): Changed FIXME note.
	(getTabRunOffset): Fixed indentation.
	(getNextTabIndexInRun): Corrected return value.
	(rotateInsets): Make TOP case the default in switch-statement.
	(getActionMap): New method.
	(createActionMap): New method.
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java:
	(createLayoutManager): Rewritten.
	(paintLeftTabBorder): Do not paint left line when previous tab
	is selected but current tab is the first in its run, do not paint
	left line when current tab is selected and is first in its run.
	(paintRightTabBorder): Added missing setColor() call, fixed color
	usage, do not paint right line if previous tab is selected but
	current tab is the first in its run.
	(paintBottomTabBorder): Do not paint left line if tab is selected
	and is the first tab in the last run.
	(paintFocusIndicator): New method.
	(getLabelShiftX): New method.
	(getLabelShiftY): New method.

2006-07-27  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetMatrix): Remove
	g_assert from unused obj.
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector): Mark
	obj as unused and remove g_assert on it.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(markCompletelyDirty): Add dirty region with Integer.MAX_VALUE
	for the component.
	(isCompletelyDirty): Consider a component completely dirty
	when it has a dirty region with Integer.MAX_VALUE.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* java/awt/KeyboardFocusManager.java
	(getGlobalFocusOwner): Explicitly check for thread security.
	(getGlobalPermanentFocusOwner): Explicitly check for thread security.
	(getGlobalFocusedWindow): Explicitly check for thread security.
	(getGlobalActiveWindow): Explicitly check for thread security.
	(getGlobalCurrentFocusCycleRoot): Explicitly check for thread security.
	(getGlobalObject): Added new argument for specifying if
	a security check should be performed or not.
	(setGlobalObject): Don't check for thread security when
	calling getGlobalObject.

2006-07-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/MBeanConstructorInfo.java:
	Documentation fix.
	* javax/management/MBeanInfo.java:
	(MBeanInfo(String,String,MBeanAttributeInfo[],
	MBeanConstructorInfo[], MBeanOperationInfo[],
	MBeanNotificationInfo[])): Implemented.
	(equals(Object)): Likewise.
	(getAttributes()): Likewise.
	(getConstructors()): Likewise.
	(getOperations()): Likewise.
	(hashCode()): Likewise.
	* javax/management/MBeanOperationInfo.java,
	* javax/management/NotCompliantMBeanException.java,
	* javax/management/StandardMBean.java:
	New files.

2006-07-26  Sven de Marothy  <sven@physto.se>

	* java/awt/geom/GeneralPath.java: Fix severe typo.
	
2006-07-26  Sven de Marothy  <sven@physto.se>

	* include/java_lang_VMSystem.h
	* vm/reference/java/lang/VMSystem.java
	* native/jni/java-lang/java_lang_VMSystem.c
	(nanoTime, currentTimeMillis): Switch the former to native code and
	the latter to java.
	
2006-07-26  Andreas Tobler  <a.tobler@schweiz.ch>

	* gnu/java/awt/peer/qt/QtCheckboxPeer.java: Removed unneeded imports.
	* gnu/java/awt/peer/qt/QtComponentGraphics.java: Likewise.
	* gnu/java/awt/peer/qt/QtComponentPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtContainerPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtDialogPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtFontMetrics.java: Likewise.
	* gnu/java/awt/peer/qt/QtFontPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtGraphics.java: Likewise.
	* gnu/java/awt/peer/qt/QtGraphicsEnvironment.java: Likewise.
	* gnu/java/awt/peer/qt/QtImage.java: Likewise.
	* gnu/java/awt/peer/qt/QtImageConsumer.java: Likewise.
	* gnu/java/awt/peer/qt/QtImageDirectGraphics.java: Likewise.
	* gnu/java/awt/peer/qt/QtImageGraphics.java: Likewise.
	* gnu/java/awt/peer/qt/QtMenuBarPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtMenuItemPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtPopupMenuPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.java: Likewise.
	* gnu/java/awt/peer/qt/QtScrollPanePeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtToolkit.java: Likewise.
	* gnu/java/awt/peer/qt/QtVolatileImage.java: Likewise.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* java/awt/KeyboardFocusManager.java
	(getFocusOwner): Don't check permanent owner.
	(getGlobalFocusOwner): Don't check permanent owner.

2006-07-26  Carsten Neumann  <cn-develop@gmx.net>

	* StrictMath.java (cosh): New method.
	(expm1): New method.
	(EXPM1_Q1): New field.
	(EXPM1_Q2): Likewise.
	(EXPM1_Q3): Likewise.
	(EXPM1_Q4): Likewise.
	(EXPM1_Q6): Likewise.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonListener.java
	(mousePressed): Request focus if appropriate.
	* javax/swing/text/DefaultCaret.java
	(mousePressed): Also handle the focus of the text component
	as specified. Don't consume events.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(focusRequest): Removed field.
	(postFocusEvent(int,boolean,Component)): Removed.
	(postFocusEvent(int,boolean)): Reverted to post event using
	the heavyweight component.
	(requestFocus): Post focus event using the heavyweight
	component.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(requestFocus): Post focus event using the heavyweight
	component.
	* java/awt/AWTEvent.java
	(isFocusManagerEvent): New field, indicating if this is
	an event that is redispatched by the KeyboardFocusManager.
	* java/awt/Component.java
	(requestFocusImpl): Register component for
	heavyweight->lightweight mapping.
	(dispatchEventImpl): Retarget focus events before dispatching
	to the KeyboardFocusManager. Use new AWTEvent flag instead
	of locking hack. Dispatch all events through the
	KeyboardFocusManager. Don't request focus on lightweight
	components.
	* java/awt/DefaultKeyboardFocusManager.java
	(dispatchEvent): Pulled out handling of FOCUS_GAINED and
	FOCUS_LOST.
	(handleFocusGained): Fixed handling of temporary vs permanent
	focus changes. Added some checks.
	(handleFocusLost): Fixed handling of temporary vs permanent
	focus changes. Added some checks.
	* java/awt/EventDispatchThread.java
	(run): Don't dispatch to KeyboardFocusManager here. This
	is done in Component.dispatchEventImpl().
	* java/awt/KeyboardFocusManager.java
	(redispatchEvent): Use new AWTEvent flag instead of locking hack.
	(focusRequests): New field.
	(retargetFocusEvent): New method. Retargets focus events
	that come from heavyweights to the correct lightweight component.
	(addLightweightFocusRequest): New method. Stores a mapping
	for later retargetting of heavyweight focus events.
	* java/awt/Window.java
	(addFocusListener): Removed bogus method. If at all, this
	should be performed in the KeyboardFocusManager.
	(Window): Don't install a focus listener on the Window.

2006-07-26  Robert Schuster <robertschuster@fsfe.org>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java:
	(drawLine): Apply shift to line coordinates.

2006-07-26  Robert Schuster <robertschuster@fsfe.org>

	* java/awt/image/ColorConvertOp.java: Fixed copyright header.
	(copyimage): Do not call setRenderingHints() when the respective map
	does not exist.
	(filter): Removed code to clone the ColorModel instance.
	* java/awt/image/ColorModel.java:
	(cloneColorModel): Removed.

2006-07-26  Robert Schuster <robertschuster@fsfe.org>

	* javax/swing/JTabbedPane.java:
	(setSelectedIndex): Removed updating of component visibility status,
	added note.
	(remove(Component)): Use indexOfComponent() to find whether we have
	to use super.remove(int) or removeTabAt().

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JOptionPane.java
	(createDialog): Add property change handler for closing
	the dialog when the value property changes.
	(ValuePropertyHandler): New inner helper class.
	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(OptionPaneCloseAction): New class.
	(messageForeground): Removed field.
	(messageBorder): Removed field.
	(buttonBorder): Removed field.
	(addIcon): Configure the new label.
	(addMessageComponents): Configure newly created labels.
	(burstStringInto): Likewise.
	(createButtonArea): Install border here.
	(createMessageArea): Install border and foreground here.
	(createSeparator): Added comment and removed
	NotImplementedException.
	(installComponents): Don't install the UI defaults for the
	message and button area here. This is moved to the
	corresponding create* methods. Adjusted comment about
	separator.
	(installDefaults): Removed initialization of removed fields.
	(installKeyboardActions): Implemented.
	(getActionMap): New helper method.
	(createDefaultActions): New helper method.
	(uninstallDefaults): Removed de-initialization of removed fields.
	(uninstallKeyboardActions): Implemented.
	(configureLabel): New helper method.
	* javax/swing/plaf/basic/BasicTableUI.java
	(getActionMap): Fixed the UI property names.
	* javax/swing/plaf/basic/BasicToolBarUI.java
	(getActionMap): Fixed the UI property names.

2006-07-26  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BandedSampleModel.java
	(getDataElements): Check for negative x or y,
	(getPixels): Likewise,
	(getSamples): Likewise,
	(setSamples): Likewise.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicToolBarUI.java
	(ToolBarAction): New inner class for handling keyboard
	actions.
	(installKeyboardActions): Implemented.
	(getActionMap): New helper method.
	(createDefaultActions): New helper method.
	(installListeners): Install focus listener on toolbar's
	children, rather than the toolbar itself.
	(navigateFocusedComp): Implemented.
	(uninstallKeyboardActions): Implemented.
	(uninstallListeners): Uninstall focus listener from
	toolbar's children, rather than the toolbar itself.
	(ToolBarContListener.componentAdded): Install focus
	listener on added child.
	(ToolBarContListener.componentRemoved): Uninstall focus
	listener from removed child.
	(ToolBarFocusListener.ToolBarFocusListener): Nothing to do here.
	(ToolBarFocusListener.focusGained): Implemented.
	(ToolBarFocusListener.focusLost): Implemented.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* java/awt/DefaultKeyboardFocusManager.java
	(dispatchEvent): Notify old focus owner when it has lost
	focus.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTableUI.java
	(FocusHandler.focusGained): Implemented to refresh the
	lead cell.
	(FocusHandler.focusLost): Implemented to refresh the
	lead cell.
	(FocusHandler.repaintLeadCell): New helper method.
	(MouseInputHandler.mouseEntered): Do nothing here.
	(MouseInputHandler.mouseExited): Do nothing here.
	(MouseInputHandler.mouseMoved): Do nothing here.
	(installKeyboardActions): Rewritten to use a shared InputMap
	and ActionMap and correctly install the maps via SwingUtilities
	methods.
	(getActionMap): New helper method.
	(createDefaultActions): New helper method.
	(ActionListenerProxy): Removed unneeded class.
	(TableAction): Made class static.
	(TableAction.actionPerformed): Determine table by fetching
	the event source. Pass the table to helper methods.
	Use __command__ hack to determine the action command.
	(TableAction.getFirstVisibleColumnIndex): Get table as argument.
	(TableAction.getLastVisibleColumnIndex): Get table as argument.
	(TableAction.getFirstVisibleRowIndex): Get table as argument.
	(TableAction.getLastVisibleRowIndex): Get table as argument.
	(TableAction.advanceMultipleSelection): Get table as argument.
	(uninstallDefaults): Do nothing here.
	(uninstallKeyboardActions): Uninstall the keyboard actions.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(processKeyBinding): Store the action command as property
	in the Action instance that we call. This allows for
	improvement on the side of the Action.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalUtils.java
	(fillMetalPattern): Use fillRect() instead of drawLine() to
	fill single pixels.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(getChars): Check for negative length and throw
	BadLocationException.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicMenuBarUI.java
	(FocusAction): Made class static.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Add keyboard bindings for
	PopupMenu.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/UIManager.java
	(getLookAndFeelDefaults): Return the look and feel defaults.
	(setLookAndFeel): Improved exception messsage.

2006-07-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/StringContent.java
	(StringContent): Changed initialLength to 10.

2006-07-26  David Gilbert  <david.gilbert@object-refinery.com>

	* java/util/Vector.java: Fixed API doc typo.

2006-07-26  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BandedSampleModel.java
	(createCompatibleSampleModel): Fixed typo in loop increment, set
	correct scanlineStride, and updated API docs.

2006-07-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicPopupMenuUI.java
	(NavigateAction): New inner class. This is responsible for
	keyboard navigation through menus.
	(KeyboardHelper): New inner class. This manages the
	keyboard mappings and focus when a popup opens or closes.
	(keyboardHelper): New static field.
	(numPopups): New static field.
	(installUI): Create KeyboardHelper for first popup.
	Call installKeyboardActions().
	(installKeyboardActions): Removed NotImplementedException.
	This method is a no-op.
	(installKeyboardActionsImpl): New method. Installs keyboard
	mapping when a popup is opened.
	(getActionMap): New helper method.
	(createDefaultActions): New helper method.
	(uninstallUI): Uninstall KeyboardHelper when last Popup is
	uninstalled. Call uninstallKeyboardActions().
	(uninstallKeyboardActions): Removed NotImplementedException.
	This method is a no-op.
	(uninstallKeyboardActionsImpl): New method. Uninstalls keyboard
	mapping when a popup is closed.
	
2006-07-25  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(requestFocus()): Reimplemented to use requestFocusImpl().
	(requestFocus(boolean)): Reimplemented to use requestFocusImpl().
	(requestFocusInWindow()): Reimplemented to use requestFocusImpl().
	(requestFocusInWindow(boolean)): Reimplemented to use
	requestFocusImpl().
	(requestFocusImpl): Reimplemented focus request to use
	new peer method. Also added some obvious additional checks
	for rejecting focus requests early.
	* java/awt/ComponentPeer.java
	(requestFocus(Component,boolean,boolean,long)): Documented
	this method.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(requestFocus): New field.
	(gtkWidgetHasFocus): New native method.
	(gtkWidgetCanFocus): New native method.
	(requestFocus): Replaced with assert false to prevent
	usage of obsolete method.
	(postFocusEvent(int,boolean,Component)): New overloaded method
	for posting the focus event to a specific target.
	(postFocusEvent(int,boolean)): Post event to requestFocus
	component.
	(requestFocus(Component,boolean,boolean,long)): Implemented.
	(getWindowFor): New helper method.
	(isLightweightDescendant): New helper method.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(gtkWindowHasFocus): New native method.
	(requestFocus(Component,boolean,boolean,long)): New method.
	Overrides GtkComponentPeer method to specially handly the
	case when a Window receives a focus request for a lightweight
	child.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(gtkWidgetHasFocus): New native method.
	(gtkWidgetCanFocus): New native method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(gtkWindowHasFocus): New native method.
	* include/gnu_java_awt_peer_gtk_GtkComponentPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h:
	Regenerated.

2006-07-25  Francis Kung  <fkung@redhat.com>

	* java/awt/DefaultKeyboardFocusManager.java
	(dispatchEvent): Add check for valid component.

2006-07-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/MBeanConstructorInfo.java:
	New file.
	* javax/management/MBeanNotificationInfo.java:
	Documentation fix.
	* javax/management/MBeanParameterInfo.java:
	New file.

2006-07-25  Robert Schuster <robertschuster@fsfe.org>

	* java/awt/peer/gtk/CairoGraphics.java:
	(drawLine): Added special case for 1 pixel lines.

2006-07-25  Robert Schuster <robertschuster@fsfe.org>

        Fixes PR27844.
	* java/awt/peer/gtk/CairoGraphics.java:
	(drawLine): Removed calls to shifted().

2006-07-25  Robert Schuster <robertschuster@fsfe.org>

	* javax/swing/JTabbedPane.java:
	(remove(Component)): Rewritten.
	(setSelectedIndex): Implemented updating of component visibility state.

2006-07-25  Sven de Marothy  <sven@physto.se>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
	(init): Default to the actual depth in the worst case.
	
	* java/awt/Font.java
	(createFont(int, File)): New method.
	
2006-07-25  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #28413
	* gnu/java/util/regex/RETokenEnd.java(check_java_line_terminators):
	New field.
	(RETokenEnd): New constructer to set check_java_line_terminators.
	(matchThis): Checck line terminators if check_java_line_terminators.
	* gnu/java/util/regex/RETokenStart.java: Likewise.
	* gnu/regexp/RE.java(initialize): Use the new constructors for
	RETokenEnd and RETokenStart if REG_MULTILINE is set.
	* java/util/regex/Pattern.java(Patteren): Changed so that
	gnu/regexp/RE.java may use the new the new constructors.

2006-07-25  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(focusTraversalPolicyProvider): New field.
	(isFocusTraversalPolicyProvider): New method.
	(setFocusTraversalPolicyProvider): New method.
	* java/awt/ContainerOrderFocusTraversalPolicy.java
	(getFirstComponent): Use accept() instead of lengthy checks.
	Don't fetch getComponents() to avoid copying of array.
	Traverse down the hierarchy to find the first focused component.
	* java/awt/DefaultKeyboardFocusManager.java
	(dispatchEvent): Let the initial component request focus.

2006-07-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/Segment.java
	(last): Update current index before returning DONE for zero count.
	
2006-07-24  Mark Wielaard  <mark@klomp.org>

	* javax/swing/tree/TreePath.java (equals): Swap path equals call.

2006-07-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicMenuBarUI.java
	(FocusAction): New inner class. Used to grab focus.
	(installKeyboardActions): Implemented.
	(uninstallKeyboardActions): Implemented.
	(getActionMap): New helper method.
	(createDefaultActions): New helper method.

2006-07-25  Robert Schuster <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/Demo.java:
	(mkMenuBar): Install instantiable basic look and feel.
	(InstantiableBasicLookAndFeel): New inner class.

2006-07-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(GlassPaneDispatcher.dragTarget): New field.
	(GlassPaneDispatcher.isDragging): New field.
	(GlassPaneDispatcher.pressedComponent): Removed field.
	(GlassPaneDispatcher.tempComponent): Removed field.
	(GlassPaneDispatcher.pressCount): Removed field.
	(GlassPaneDispatcher.mousePressed): Call
	borderListener.mousePressed() to activate the frame.
	(acquireComponentForMouseEvent): Removed method.
	(handleEvent): Rewritten.
	(redispatch): New method.
	(InternalFramePropertyChangeListener.propertyChange):
	Make glasspane invisible when frame is selected, and visible
	if it gets deselected.
	
2006-07-25  Roman Kennke  <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	(handleMouseEvent): Dispatch event to real target if
	the dragTarget has become invisible in the meantime.

2006-07-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/TabSet.java
	(equals): New method override for 1.5,
	(hashCode): Likewise,
	(toString): Added spaces to match reference implementation.

2006-07-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/IntrospectionException.java,
	* javax/management/MBeanAttributeInfo.java:
	New files.
	* javax/management/MBeanNotificationInfo.java:
	Documentation cleanups.
	
2006-07-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/TabSet.java
	(TabSet): Check for null argument,
	(getTab): Throw IllegalArgumentException for index out of bounds,
	(getTabIndexAfter): Changed test to '<=',
	and updated API docs all over,
	* javax/swing/text/TabStop.java: Updated API docs.

2006-07-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/TabStop.java
	(toString): Don't use 'left ' prefix, and added space between tab
	location and '(w/leader)' suffix.

2006-07-24  Francis Kung  <fkung@redhat.com>

	* javax/swing/JComboBox.java
	(DefaultKeySelectionManager): Implemented.
	(createDefaultKeySelectionManager): Implemented.
	(getKeySelectionManager): Implemented.
	(processKeyEvent): Removed duplicate code.
	* javax/swing/JPopupMenu.java
	(selectionModel): Changed visibility.
	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(KeyHandler.keyPressed): Added navigation keys.
	(configureEditor): Add key listener.
	(installListeners): Install focus listener to combo box.
	(isNavigationKey): Added enter, escape, and tab.
	(selectPreviousPossibleValue): Added out of bounds check.
	(unconfigureEditor): Remove key listener.
	* javax/swing/plaf/metal/MetalComboBoxButton.java
	(paintComponent): Highlight combo box when in focus.

2006-07-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(isLeftMouseButton): Fixed condition.
	* java/awt/LightweightDispatcher.java
	(handleMouseEvent): Dispatch MOUSE_ENTERED even when mouse
	is dragged.

2006-07-24  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(setPaint): Fixed scaleX and scaleY.

2006-07-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(handleInsert): Repaint the whole table for variable row
	height tables and an optimized region otherwise.
	(handleDelete): Likewise.
	(handleUpdate): Likewise.

2006-07-24  Mario Torre  <neugens@limasoftware.net>

	* gnu/java/awt/peer/gtk/GtkToolkit.java (createDragGestureRecognizer):
	now explicity registerListeners on GtkMouseDragGestureRecognizer
	instance.
	* gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java
	(unregisterListeners): new method, overrided from base class
	to rise visibility (from protected to public).
	(registerListeners): Likewise.
	(GtkMouseDragGestureRecognizer): fixed potential threading issue:
	removed call to registerListeners from the constructor.

2006-07-23  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Check for moc and moc-qt4.

2006-07-23  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/Kernel.java: API doc updates.

2006-07-22  Andreas Tobler  <a.tobler@schweiz.ch>

	* gnu/java/awt/peer/gtk/CairoSurface.java: Optimize pixel swap code a
	bit more.

2006-07-22  Mark Wielaard  <mark@klomp.org>

	* java/lang/Iterable.java: Import all of java.util.
	* lib/mkcollections.pl.in (javautilclasses): Add Iterable.
	* lib/Makefile.am: Only search for .java files in COLLECTIONS_PREFIX.

2006-07-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* doc/vmintegration.texinfo:
	Document getType(String).
	* gnu/java/lang/management/MemoryPoolMXBeanImpl.java,
	* java/lang/management/MemoryPoolMXBean.java:
	(getType()): Implemented.
	* vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java
	(getType(String)): Implemented.
	
2006-07-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* doc/vmintegration.texinfo:
	Move end of itemization block.

2006-07-22  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/metal/MetalLookAndFeel.java:
	(initComponentDefaults): Added new properties, added comments.
	
2006-07-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* doc/vmintegration.texinfo:
	Mention callback methods.
	* gnu/java/lang/management/MemoryMXBeanImpl.java:
	(fireNotification(String,String,long,long,long,long,long)):
	Made package-private.
	(fireThresholdExceededNotification(String,long,long,long,
	long,long)): Likewise.
	(fireCollectionThresholdExceededNotification(String,long,
	long,long,long,long)): Likewise.
	* java/lang/management/MemoryMXBean.java:
	Document notifications.

2006-07-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/MemoryMXBeanImpl.java:
	(fireNotification(String,String,long,long,long,long,long)):
	Implemented.
	(fireThresholdExceededNotification(String,long,long,long,
	long,long)): Likewise.
	(fireCollectionThresholdExceededNotification(String,long,
	long,long,long,long)): Likewise.
	* java/lang/management/MemoryNotificationInfo.java:
	Use composite type from MemoryMXBeanImpl.
	* javax/management/openmbean/CompositeData.java:
	Correct documentation.
	* javax/management/openmbean/CompositeDataSupport.java,
	* javax/management/openmbean/InvalidKeyException.java:
	New files.

2006-07-22  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/util/IntegerUtil.java: New file.

2006-07-22  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/28100
	* gnu/javax/crypto/cipher/TripleDES.java: Updated documentation.
	(KEY_SIZE): Likewise.
	(adjustParity(int,byte[],int): New method.
	(adjustParity(byte[],int): Call above method with 3 as 1st argument.
	(isParityAdjusted(int,byte[],int)): New method.
	(isParityAdjusted): Call above method with 3 as 1st argument.
	(keySizes): Add 8 and 16 as other valid key sizes.
	(makeKey): Amended to cater for 1, 2 and 3 independent DES keys.

2006-07-22  Andreas Tobler  <a.tobler@schweiz.ch>

	* gnu/java/awt/peer/gtk/CairoSurface.java (CairoSurface): Rearrange
	code for the pixel swap routine to be more efficient.

2006-07-20  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java:
	Removed unused fields.
	(GtkMouseDragGestureRecognizer): Removed initializations.

2006-07-20  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java
	(GtkMouseDragGestureRecognizer): New constructor.
	(GtkMouseDragGestureRecognizer): New constructor.
	(GtkMouseDragGestureRecognizer): New constructor.
	(mouseClicked): Removed FIXME.
	(mousePressed): Implemented.
	(mouseReleased): Implemented.
	(mouseEntered): Implemented.
	(mouseDragged): Implemented to check mouse point and trigger origin.
	(mouseMoved): Removed FIXME.
	(getDropActionFromEvent): New helper function used to convert mouse event
	modifiers to a drop action.
	* java/awt/dnd/DragSource.java
	(getDragThreshold): Changed to return some arbitrary value for testing
	purposes.

2006-07-20  Roman Kennke  <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	(findTarget): Also consider components that have their eventMask
	set, for compatibility with stonage AWT. Optimized check
	for MouseListener.
	(handleMouseEvent): Likewise.

2006-07-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(tableChanged): Split out handling of the event into multiple
	subroutines.
	(handleCompleteChange): New method. Clear the selection and
	check the lead/anchor indices.
	(handleInsert): New method. Check the lead/anchor indices.
	Optimized repainting.
	(handleDelete): New method. Check the lead/anchor indices.
	Optimized repainting.
	(handleUpdate): New method. Optimized repainting.
	(checkSelection): New helper method.
	(setSelectionModel): Update lead/anchor indices.

2006-07-20  Lillian Angel  <langel@redhat.com>

	PR 28440
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
	(dispose): Reset all fields.

2006-07-20  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XToolkit.java
	(createImage(InputStream)): Only copy image to Pixmap if
	it's actually opaque. Transparent images are left as
	BufferedImage and composited later onto the screen.
	* gnu/java/awt/peer/x/XGraphics.java
	(XGraphics): Fetch some parameters for image rendering.
	(drawImage): Added special handling of transparent images.
	(getRGB): New helper method.
	(setRGB): New helper method.

2006-07-20  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/imageio/IIOInputStream.java: New class. Wraps
	ImageInputStreams as normal InputStreams.
	* gnu/javax/imageio/gif/GIFStream.java:
	Moved to gnu/javax/imageio/IIOInputStream.java.
	* gnu/javax/imageio/gif/GIFImageReader.java
	(readImage): Use IIOInputStream.
	* gnu/javax/imageio/gif/GIFImageReaderSpi.java
	(canDecodeInput): Use IIOInputStream.
	* gnu/javax/imageio/png/PNGException.java: Make subclass
	of IOException.
	* gnu/javax/imageio/png/PNGImageReader.java: New class.
	Implements the ImageIO ImageReader for PNG.
	* gnu/javax/imageio/png/PNGImageReaderSpi.java: New class.
	Implements the ImageIO ImageReaderSpi for PNG.
	* javax/imageio/spi/IIORegistry.java:
	(IIORegistry): Add PNGImageReaderSpi.

2006-07-20  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/ComponentSampleModel.java
	(getPixel): Added argument check,
	(getSample): Modified exception message.

2006-07-20  David Gilbert  <david.gilbert@object-refinery.com>

	PR Classpath/28422
	* java/awt/image/ConvolveOp.java
	(filter(Raster, WritableRaster)): Reimplemented,
	(fillEdge): New private method.

2006-07-19  Keith Seitz  <keiths@redhat.com>

	* include/jvmti.h (JVMTI_VERSION_1_0): Define.
	(JVMTI_VERSION): Define.

2006-07-19  Roman Kennke  <kennke@aicas.com>

	* resource/gnu/regexp/MessagesBundle.properties,
	* resource/gnu/regexp/MessagesBundle_fr.properties,
	* resource/gnu/regexp/MessagesBundle_it.properties:
	Moved to resource/gnu/java/util/regex.
	* resource/gnu/java/util/regex/MessagesBundle.properties,
	* resource/gnu/java/util/regex/MessagesBundle_fr.properties,
	* resource/gnu/java/util/regex/MessagesBundle_it.properties:
	New files.
	* gnu/java/util/regex/RE.java
	Use new resource bundle location.

2006-07-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintChildren): Refactored. The paintChildrenOptimized method
	has been moved back in here. Added locking of the tree and
	only check for completely obscured child components
	when not optimized drawing enabled. Use Graphics.create() to
	protect from irreversible changes.
	(isCompletelyObscured): New helper method.
	(paintComponent): Also use Graphics.create() for Graphics2D,
	to protect from irreverible changes.
	(clipAndTranslateGraphics): Refactored to use more efficient
	iterative (vs recursive) approach.
	* javax/swing/RepaintManager.java
	(getOffscreenBuffer): Create image from root component.
	
2006-07-19  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XGraphics.java
	(translate): Don't set the clip on the X server.
	(clipRect): Use setXClip() to set the clip on the X server.
	(hitClip): More efficient and correct implementation.
	(setClip): Use setXClip() to set the clip on the X server.
	(setClip(Shape)): Use setXClip() to set the clip on the X server.
	(copyArea): Translate and clip the source rectangle correctly.
	(dispose): Only flush when object is not yet disposed.
	(clone): Use setXClip() to set the clip on the X server.

2006-07-19  Sven de Marothy  <sven@physto.se>

	* gnu/javax/imageio/png/PNGChunk.java,
	* gnu/javax/imageio/png/PNGData.java,
	* gnu/javax/imageio/png/PNGDecoder.java,
	* gnu/javax/imageio/png/PNGEncoder.java,
	* gnu/javax/imageio/png/PNGException.java,
	* gnu/javax/imageio/png/PNGFile.java,
	* gnu/javax/imageio/png/PNGFilter.java,
	* gnu/javax/imageio/png/PNGGamma.java,
	* gnu/javax/imageio/png/PNGHeader.java,
	* gnu/javax/imageio/png/PNGICCProfile.java,
	* gnu/javax/imageio/png/PNGPalette.java,
	* gnu/javax/imageio/png/PNGPhys.java,
	* gnu/javax/imageio/png/PNGTime.java:
	New files.

2006-07-19  Sven de Marothy  <sven@physto.se>

	* java/net/Inet6Address.java:
	(getScopedId, getScopedInterface): New methods.
	
2006-07-19  Lillian Angel  <langel@redhat.com>

	* examples/gnu/classpath/examples/awt/Demo.java
	(DragDropWindow): Fixed typo in Label text.
	* gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java
	(GtkDragSourceContextPeer): Removed unneeded initialization for field.
	(startDrag): Initialized context field.
	(transferablesFlavorsChanged): Removed FIXME. Nothing is done in this
	function.
	(dragEnter): New function.
	(dragExit): Likewise.
	(dragDropEnd): Likewise.
	(dragMouseMoved): Likewise.
	(dragOver): Likewise.
	(dragActionChanged): Likewise.

2006-07-19  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/26302
	* resource/java/security/classpath.security: Updated copyright year.
	(auth.login.defaultCallbackHandler): New property; set to our default
	callback handler. This is needed by the LoginContext when no callback
	handler was specified.
	* javax/security/auth/login/LoginContext.java: Updated copyright year.
	(LoginContext(4)): Assign passed parameters to local fields before invoking
	lookup method.

2006-07-19  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XGraphics.java
	(drawImage(Image,int,int,int,int,int,int,int,int,ImageObserver)):
	Fixed ordering of parameters.

2006-07-18  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/MemoryMXBeanImpl.java:
	(MemoryMXBeanImpl()): Implemented.
	(ListenerData): New private class.
	(addNotificationListener(NotificationListener,
	NotificationFilter, Object)): Implemented.
	(getNotificationInfo()): Likewise.
	(removeNotificationListener(NotificationListener)):
	Likewise.
	(removeNotificationListener(NotificationListener,
	NotificationFilter, Object)): Likewise.
	
2006-07-18  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XFontPeer.java
	(encodeFont): Be more flexible with font sizes.
	(validSize): New helper method.
	* gnu/java/awt/peer/x/XGraphics.java
	(drawImage(Image,int,int,int,int,int,int,int,int,ImageObserver)):
	Implemented.
	(drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver)):
	Implemented.
	* gnu/java/awt/peer/x/XImage.java
	(properties): New field.
	(getProperty): Implemented.
	* resource/gnu/java/awt/peer/x/fonts.properties:
	Added copyright header. Fixed font size field.

2006-07-18  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BandedSampleModel.java
	(createDataBuffer): New method override,
	* java/awt/image/ByteLookupTable.java
	(ByteLookupTable(int, byte[][])): Create new array to hold references,
	(ByteLookuptable(int, byte[])): Check for null array,
	* java/awt/image/ComponentSampleModel.java
	(createDataBuffer): Removed unnecessary braces,
	(getSample): Check (x, y) is within bounds,
	* java/awt/image/ShortLookupTable.java
	(ShortLookupTable(int, short[][])): Create new array to hold references,
	(ShortLookupTable(int, short[])): Check for null array,
	(getTable): Added API docs,
	(lookupPixel): Source reformatting.

2006-07-18  Tania Bento  <tbento@redhat.com>
	
	* java/awt/GridLayout.java
	(setHgap): Illegal Argument Exception should not be thrown if 
	hgap < 0.
	(setVgap): Illegal Argument Exception should not be thrown if 
	vgap < 0.
	(toString): Opening square braket ([) should appear before hgap
	value, not the name of the class.

2006-07-18  Roman Kennke  <kennke@aicas.com>

	* lib/copy-vmresources.sh.in: Reverted.
	* gnu/java/awt/peer/x/fonts.properties: Moved to resource/
	* resource/gnu/java/awt/peer/x/fonts.properties: New file.

2006-07-18  Roman Kennke  <kennke@aicas.com>

	* lib/copy-vmresources.sh.in: Include properties from X peers.

2006-07-18  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/27205
	* tools/gnu/classpath/tools/jarsigner/SFHelper.java (writeDSA): Check
	certificate validity.
	(getIssuerName): New method.
	(getSubjectName): Likewise.
	(getNotAfterDate): Likewise.
	(getNotBeforeDate): Likewise.
	* resource/gnu/classpath/tools/jarsigner/messages.properties: Added
	messages for newly added messages in SFHelper.

2006-07-18  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XDialogPeer.java: New class.
	* gnu/java/awt/peer/x/XEventPump.java
	(handleEvent): Cast to XWindowPeer rather than XFramePeer.
	* gnu/java/awt/peer/x/XFramePeer.java
	Made a subclass of XWindowPeer, rather than SwingFramePeer.
	* gnu/java/awt/peer/x/XGraphics.java
	Made subclass of Graphics rather than Graphics2D. Removed
	all Graphics2D specific method stubs.
	(setColor): Map colors using the X color map that is
	stored in XToolkit.
	* gnu/java/awt/peer/x/XToolkit.java
	(colorMap): New field.
	(getLocalGraphicsEnvironment): Return new XGraphicsEnvironment
	instance.
	(createDialog): Implemented.
	(createImage(ImageProducer)): Implemented.
	(createImage(InputStream)): Use createImage(ImageProducer)
	to convert the BufferedImage to an XImage.
	* gnu/java/awt/peer/x/XWindowPeer.java
	(XWindowPeer): Removed debug output.

2006-07-18  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BufferedImageOp.java: API docs added,
	* java/awt/image/RasterOp.java: Likewise.

2006-07-18  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Graphics2D.java: API docs updated.

2006-07-18  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/WritableRaster.java: Added API docs and reformatted 
	source code.

2006-07-18  Sven de Marothy  <sven@physto.se>

	* java/net/Inet6Address.java:
	Add 1.5 serialized fields.
	(getByAddress): New methods.
	(readObject, writeObject): New methods. 
	(equals): Reimplement.

2006-07-18  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/Raster.java: Added API docs and reformatted source
	code.

2006-07-18  Andreas Tobler  <a.tobler@schweiz.ch>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java: Remove unneeded
	imports.
	* gnu/java/awt/peer/gtk/CairoSurface.java: Likewise.
	* gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java: Likewise.
	* gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java: Likewise.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkButtonPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkClipboardNotifier.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkContainerPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkDialogPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkImage.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkImageConsumer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkMenuBarPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkPanelPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkScrollbarPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java: Likewise.

2006-07-17  Andreas Tobler  <a.tobler@schweiz.ch>

	* javax/swing/text/html/HTMLEditorKit.java: Rearrange import statements
	to make it compile again under jikes. Note added.

2006-07-17  Lillian Angel  <langel@redhat.com>

	* examples/gnu/classpath/examples/awt/Demo.java
	(Demo): Added new window for DnD demo.
	(DragDropWindow): New class.
	* gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java:
	Added new fields and declarations for native functions.
	(GtkDragSourceContextPeer): Implemented.
	(getComponentPeer): New function.
	(startDrag): Partially implemented.
	(getCursor): Implemented.
	(setCursor): Implemented.
	* include/GtkDragSourceContextPeer.h: New file.
	* include/Makefile.am: Added new header file.
	* java/awt/Component.java
	(addNotify): Added call to the dropTarget's addNotify.
	* java/awt/dnd/DragSource.java
	(startDrag): Fixed code to use shared instances of peer and
	context.
	(getDragThreshold): Added stub.
	* java/awt/dnd/DropTarget.java
	(DropTarget): Implemented fully.
	(addNotify): Added code to get the peer of the parent that is
	not lightweight.
	* java/awt/dnd/DropTargetDragEvent.java
	(getTransferable): Added stub.
	* native/jni/gtk-peer/GtkDragSourceContextPeer.c: New file.
	* native/jni/gtk-peer/Makefile.am: Added new c file.
	* gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java:
	Changed to extend GtkGenericPeer.
	(GtkDropTargetContextPeer): New constructor.
	* gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java:
	Changed to extend GtkGenericPeer.
	(GtkDropTargetContextPeer): New constructor.

2006-07-17  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/SinglePixelPackedSampleModel.java
	(createSubsetSampleModel): Added argument check and API docs.

2006-07-17  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XGraphics.java
	(copyArea): Implemented.

2006-07-17  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/SinglePixelPackedSampleModel.java
	(getSampleSize): Return copy of array,
	(getOffset): Added API docs,
	(getScanlineStride): Likewise,
	(hashCode): Implemented.

2006-07-17  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(getOffset): Updated API docs and source reformatting,
	(getBitOffset): Source reformatting only,
	(getDataElements): Likewise,
	(getPixel): Likewise,
	(getPixels): Removed method override,
	(setDataElements): Reimplemented.

2006-07-17  Gary Benson  <gbenson@redhat.com>

	* resource/META-INF/services/.cvsignore: New file.
	* lib/.cvsignore: Updated.	

2006-07-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonListener.java
	(propertyChange): Only do the text layout caching as long
	as the noGraphics2D property isn't set.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(PropertyChangeHandler.propertyChange): Only do the text layout
	caching as long	as the noGraphics2D property isn't set.

2006-07-17  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XGraphicsEnvironment.java
	(XGraphicsEnvironment): Make constructor public so that it
	can be called via Class.forName().newInstance().
	* gnu/java/awt/peer/x/XImage.java
	(XImage): Fetch GraphicsEnvironment via
	GraphicsEnvironment.getLocalGraphicsEnvironment() rather
	than the XToolkit method, to avoid double instantiation
	of the XGraphicsEnvironment.
	* gnu/java/awt/peer/x/XToolkit.java
	(env): Removed field.
	(getLocalGraphicsEnvironment): Removed impl. This method
	should not be called since we set the graphicsenv property
	in the constructor.

2006-07-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/UUID.java:
	(compareTo(Object)): Call compareTo(UUID).
	(compareTo(UUID)): Implemented.
	
2006-07-16  Tom Tromey  <tromey@redhat.com>

	* java/lang/StrictMath.java (cbrt): Added '@since'.

2006-07-16  Carsten Neumann  <cn-develop@gmx.net>

	* java/lang/StrictMath.java (cbrt): New method.
	(getLowDWord): New helper method.
	(getHighDWord): Likewise.
	(buildDouble): Likewise.
	(CBRT_B1): New field.
	(CBRT_B2): Likewise.
	(CBRT_C): Likewise.
	(CBRT_D): Likewise.
	(CBRT_E): Likewise.
	(CBRT_F): Likewise.
	(CBRT_G): Likewise.

2006-07-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/MBeanInfo.java:
	(getNotifications()): Implemented.
	* javax/management/NotificationBroadcaster.java:
	(removeNotificationListener(NotificationListener)):
	Renamed from removeListener.
	* javax/management/NotificationEmitter.java:
	(removeNotificationListener(NotificationListener,
	NotificationFilter, Object)): Likewise.
	* javax/management/NotificationFilter.java:
	Implement Serializable.
	* javax/management/NotificationListener.java:
	Implement java.util.EventListener.
	* javax/rmi/ssl/SslRMIClientSocketFactory.java:
	Implement Serializable.

2006-07-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/MemoryNotificationInfo.java:
	New file.
	
2006-07-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28392
	* gnu/javax/swing/text/html/parser/htmlValidator.java 
	(tagIsValidForContext):	If it is not possible to insert any tag, but 
	is possible to insert a P, insert a P.
	* gnu/javax/swing/text/html/parser/HTML_401Swing.java
	(newInstance): Removed print statement. (getBodyElements):
	Removed ABBR, ACRONYM, BDO, Q, S, SUB, SUP and ADDRESS from the
	valid body level tags (will be enclosed into P's).

2006-07-17  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/Command.java (setKeystoreURLParam):
	Condition the creation of .keystore (a default keystore) based on the
	createIfNotFound argument as well.

2006-07-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28392
	* examples/gnu/classpath/examples/swing/HtmlDemo.java:
	Removed heading p tag from the parsing example.
	* gnu/javax/swing/text/html/parser/HTML_401F.java:
	(createHtmlContentModel): Explained.
	(defineElements): Call getBodyElements to get the body
	elements. (getBodyElements): New method. (model):
	Made protected from private.
	* gnu/javax/swing/text/html/parser/htmlValidator.java
	(openTag): Mind that current content model may be null.
	(tagIsValidForContext): If the tag is PCDATA, and it is not
	valid for context, but the paragraph (P) is valid for context,
	suggest to insert the P tag here.
	* javax/swing/text/html/HTMLDocument.java (HTMLReader.addContent,
	HTMLReader.blockOpen, HTMLReader.blockClose): Do not handle
	implied P tags here.
	* javax/swing/text/html/HTMLEditorKit.java (getParser):
	Get the custom parser, using HTML_401Swing.java DTD.
	* javax/swing/text/html/parser/ParserDelegator.java:
	Removed the obsolete note that HTMLEditorKit does not exist.
	* gnu/javax/swing/text/html/parser/GnuParserDelegator.java,
	gnu/javax/swing/text/html/parser/HTML_401Swing.java: New files.

2006-07-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/ListenerNotFoundException.java:
	New file.
	* javax/management/MBeanFeatureInfo.java:
	(hashCode()): Use summation instead of multiplication
	for consistency with other classes.
	* javax/management/MBeanNotificationInfo.java,
	* javax/management/Notification.java,
	* javax/management/NotificationBroadcaster.java,
	* javax/management/NotificationEmitter.java,
	* javax/management/NotificationFilter.java,
	* javax/management/NotificationListener.java:
	New files.
	* javax/management/OperationsException.java:
	(serialVersionUID): Added.
	
2006-07-16  Thomas Minor  <1nocentrabidlamb@sexMagnet.com>
	    Mark Wielaard  <mark@klomp.org>

	* java/io/PrintStream.java: Added four constructors, for File and
	String describing a filename with or without explicit encoding.

2006-07-16  Sven de Marothy  <sven@physto.se>

	* javax/rmi/ssl/SslRMIServerSocketFactory.java,
	* javax/rmi/ssl/SslRMIClientSocketFactory.java:
	New files.

2006-07-16  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/28391
	* tools/gnu/classpath/tools/keytool/Command.java (setKeyStoreParams(5)): 
	New method.
	(setKeyStoreParams(4)): Call the above method with false as its 1st arg.
	(setProviderClassNameParam): Made private.
	(setKeystoreTypeParam): Likewise.
	(setKeyPasswordParam): Likewise
	(setKeystorePasswordParam): Likewise.
	(setKeystoreURLParam): Now accepts 2 more arguments; the first a boolean to
	create or not the keystore if it's not there, and the second is the store's
	password to process before loading the keystore. Amended the code
	accordingly.
	* tools/gnu/classpath/tools/keytool/GenKeyCmd.java (setup): Call super's
	setKeyStoreParams(5) with true as its first argument.
	* tools/gnu/classpath/tools/keytool/IdentityDBCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/ImportCmd.java (setup): Likewise.

2006-07-16  Sven de Marothy  <sven@physto.se>

	* java/util/UUID.java: New file.

2006-07-16  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.java: New file.
	* gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.java: New file.
	* gnu/javax/crypto/jce/cipher/AES128KeyWrapSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/AES192KeyWrapSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/AES256KeyWrapSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/TripleDESKeyWrapSpi.java: Likewise.
	* gnu/javax/crypto/jce/GnuCrypto.java (.run): Added mappings for newly
	added Key Wrapping Algorithm SPIs.

2006-07-16  Raif S. Naffah  <raif@swiftdsl.com.au>

	* javax/crypto/Cipher.java (getOutputSize): Allow SPIs initialised for key
	wrapping/unwrapping to invoke their engineGetOutputSize.

2006-07-16  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/kwa/TripleDESKeyWrap.java (rnd): New field.
	(engineInit): If a SecureRandom was specified then use it.
	(nextRandomBytes): New method.
	(engineWrap): Use above method.
	* gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.java (prng): New field.
	(getDefaultPRNG): New method.
	* gnu/javax/crypto/kwa/AESKeyWrap.java (engineInit): Reset underlying AES.
	* gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.java (SOURCE_OF_RANDOMNESS):
	New constant.

2006-07-16  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/jce/params/BlockCipherParameters.java
	(engineGetParameterSpec): Should be able to return an IvParameterSpec.

2006-07-16  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/cipher/DES.java (adjustParity): Index limit now takes
	offset into consideration.

2006-07-16  Mario Torre  <neugens@limasoftware.net>

	* native/jni/gconf-peer/GConfNativePeer.c (init_gconf_client):
	Fixed comment. This functions now requires to be called
	with gdk lock held, the comment states that.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache):
	Introduces gdk locks around critical regions of code.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1keys):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1nodes):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1suggest_1sync):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1unset):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1remove_1dir):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1add_1dir):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class):
	* native/jni/gconf-peer/Makefile.am: The GConf peer now depends on GTK.

2006-07-15  Sven de Marothy  <sven@physto.se>

        * javax/swing/JFileChooser.java
        Change default selection mode to FILES_ONLY.
        * javax/swing/plaf/basic/BasicDirectoryModel.java
        Document, fix selection mode filtering.
        (renameFile): Implement
        * javax/swing/plaf/basic/BasicFileChooserUI.java
        (selectedDir): New field to handle selected directories,
        disallow selecting of directories in FILES_ONLY mode.
        * javax/swing/plaf/metal/MetalFileChooserUI.java:
        (EditingActionListener.actionPerformed):
        Stop editing on all actions (e.g. return-key press)

2006-07-15  Mark Wielaard  <mark@klomp.org>

	* doc/vmintegration.texinfo (gnu.java.lang.management): Change xref
	to code.
	(JNI Implementation): Mark JVMTI Implementation as next.
	(JVMTI Implementation): Mark JNI Implementation as prev.

2006-07-15  Mark Wielaard  <mark@klomp.org>

	* include/Makefile.am: Remove
	include/gnu_java_awt_peer_gtk_GdkTextLayout.h.
	* include/gnu_java_awt_peer_gtk_GdkTextLayout.h: Removed.
	* native/jni/gtk-peer/Makefile.am: Remove
	gnu_java_awt_peer_gtk_GdkTextLayout.c
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c:
	Removed.

	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Regenerated.

2006-07-15  Mark Wielaard  <mark@klomp.org>

	* autogen.sh: Recognize autoconf 2.60.

2006-07-15  Keith Seitz  <keiths@redhat.com>

	* NEWS: Update for JVMTI and jvmti.h.
	* doc/vmintegration.texinfo: Likewise.
	* include/jvmti.h: New file.

2006-07-15  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c:
	Removed C++ style comment.

2006-07-15  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java,
	* java/awt/MouseInfo.java,
	* java/awt/PointerInfo.java,
	* java/awt/peer/MouseInfoPeer.java:
	New files.

	* java/awt/Image.java
	(accelerationPriority): New field.
	(setAccelerationPriority, getAccelerationPriority): New methods..

	* include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h,
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c,
	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java:
	(getMouseCoordinates): New method.

	* gnu/java/awt/peer/gtk/GtkFramePeer.java
	(updateAlwaysOnTop): Remove stub overload.

	* gnu/java/awt/ClasspathToolkit.java,
	* gnu/java/awt/peer/gtk/GtkToolkit.java,
	* include/gnu_java_awt_peer_gtk_GtkToolkit.h,
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c:
	(getMouseInfoPeer): New method.
	(getMouseNumberOfButtons): New method.
	
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(gtkWindowSetAlwaysOnTop): New method.
	(updateAlwaysOnTop): Implement.

	* java/awt/Toolkit.java,
	(getMouseInfoPeer): New method.

	* java/awt/Window.java
	(alwaysOnTop): New field.
	(isAlwaysOnTop, setAlwaysOnTop): New methods.

	* java/awt/peer/WindowPeer.java: Doc fix.

2006-07-14  Sven de Marothy  <sven@physto.se>

	* java/awt/font/TextLayout.java:
	(hitTestChar): Stub method.
	* java/awt/font/TextMeasurer.java:
	(getLayout): Throw exception on invalid argument.
	
2006-07-14  Sven de Marothy  <sven@physto.se>

	* java/awt/image/DataBuffer.java
	(DataBuffer): Call constructors in the correct order,
	
2006-07-14  Mark Wielaard  <mark@klomp.org>

	Revert to previous implementation.
	* java/awt/GridBagLayout.java (AdjustForGravity): Only adjust for
	constraints insets.

2006-07-14  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XToolkit.java
	(XToolkit): Install properties to SystemProperties
	rather than System, to avoid SecurityManager.
	(getImage(String)): Return error image when string is invalid.
	(createImage(URL)): Moved image loading to helper method.
	(createImage(ImageProducer)): Implemented.
	(createImage(byte[],int,int)): Implemented.
	(createImage(InputStream)): New helper method.

2006-07-14  Tania Bento  <tbento@redhat.com>

	* java/awt/FlowLayout.java
	(setHgap): No Excpetion should be thrown if hgap has
	a negative value.
	(setVgap): No Exception should be thrown if vgap has
	a negative value.

2006-07-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java: 
	Added API docs all over.

2006-07-14  Matt Wringe  <mwringe@redhat.com>

	* gnu/javax/crypto/jce/cipher/CipherAdapter.java 
	(engineInit): Throw InvalidAlgorithmParameterException
	for invalid IVParameterSpec IV length.

2006-07-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(createDataBuffer): Include dataBitOffset in calculating the size for
	the data buffer.

2006-07-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(getSampleSize()): Return a copy of the array,
	(getTransferType()): New method override.

2006-07-14  Roman Kennke  <kennke@aicas.com>

	* java/awt/CardLayout.java
	(show): Validate parent to make sure that the layout is
	valid.

2006-07-14  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(enable): Added tree locking.
	(disable): Added tree locking.
	(show): Added tree locking.
	(hide): Added tree locking.
	(getLocationOnScreen): Added tree locking.
	(reshape): Added tree locking.
	(addHierarchyListener): Added tree locking.
	(removeHierarchyListener): Added tree locking.
	(addHierarchyBoundsListener): Added tree locking.
	(removeHierarchyBoundsListener): Added tree locking.
	(addNotify): Added tree locking.
	(removeNotify): Added tree locking.
	* java/awt/Container.java
	(invalidateTree): Added tree locking.
	(getAlignmentX): Added tree locking.
	(getAlignmentY): Added tree locking.
	(addNotify): Added tree locking.
	(setComponentZOrder): Added tree locking.
	(getComponentZOrder): Added tree locking.

2006-07-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(createSubsetSampleModel): Restored argument check, but let null
	through.

2006-07-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(createSubsetSampleModel): Removed argument check.

2006-07-14  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(numHierarchyListeners): New field.
	(numHierarchyBoundsListeners): New field.
	(show): Fire hierarchy events here. Only fire component event
	if there is actually a listener for it.
	(hide): Fire hierarchy events here. Only fire component event
	if there is actually a listener for it.
	(reshape): Fire hierarchy events here. Only fire component event
	if there is actually a listener for it.
	(addHierarchyListeners): Update listener counters.
	(removeHierarchyListeners): Update listener counters.
	(addHierarchyBoundsListeners): Update listener counters.
	(removeHierarchyBoundsListeners): Update listener counters.
	(fireHierarchyEvent): New helper method for firing hierarchy
	events.
	* java/awt/Container.java
	(addImpl): Update listener counters. Fire hierarchy event.
	(remove): Update listener counters. Fire hierarchy event.
	(fireHierarchyEvent): New helper method for firing hierarchy
	events.
	(updateHierarchyListenerCount): New helper method for
	updating the listener counters.

2006-07-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(equals): New method override,
	(hashCode): Likewise.

2006-07-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(MultiPixelPackedSampleModel(int, int, int, int, int, int)): 
	Corrected scanlineStride calculation.

2006-07-14  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/Registry.java (KWA_PREFIX): New constant.
	(AES_KWA): Likewise.
	(AES128_KWA): Likewise.
	(AES192_KWA): Likewise.
	(AES256_KWA): Likewise.
	(RIJNDAEL_KWA): Likewise.
	(TRIPLEDES_KWA): Likewise.
	(DESEDE_KWA): Likewise.
	* gnu/javax/crypto/kwa/AESKeyWrap.java: New file
	* gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.java: Likewise.
	* gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.java: Likewise.
	* gnu/javax/crypto/kwa/KeyUnwrappingException.java: Likewise.
	* gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.java: Likewise.
	* gnu/javax/crypto/kwa/TripleDESKeyWrap.java: Likewise.

2006-07-14  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/pad/IPad.java: Updated class documentation.
	(PADDING_BLOCK_SIZE): New constant.
	(init(Map attributes)): New method.
	* gnu/javax/crypto/pad/BasePad.java (init): New method.

2006-07-14  Mario Torre  <neugens@limasoftware.net>

	* gnu/java/security/OID.java (OID): Private Constructor removed as
	it is not needed anymore.
	(clone): Fixed. Now uses super.clone instead of the private
	constructor as per specification of clone method.
	(serialVersionUID): added new field to allow serialization.

2006-07-13  Sven de Marothy  <sven@physto.se>

	* gnu/javax/imageio/gif/GIFImageReader.java
	(read): Remove old debugging trace.

2006-07-13  Andreas Tobler  <a.tobler@schweiz.ch>

	PR awt/28369:
	* gnu/java/awt/peer/gtk/CairoSurface.java (ColorModel): Swap red and
	blue mask.

2006-07-13  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(DEFAULT_MAX_SIZE): New static constant.
	(preferredSize): Return copy of the actual value computed
	by new helper method.
	(preferredSizeImpl): New helper method. Adds locking and
	correct handling of cached value.
	(minimumSize): Return copy of the actual value computed
	by new helper method.
	(minimumSizeImpl): New helper method. Adds locking and
	correct handling of cached value.
	(getMaximumSize):  Return copy of the actual value computed
	by new helper method.
	(maximumSizeImpl): New helper method. Adds locking and
	correct handling of cached value.
	(invalidate): Correct handling of cached layout information.
	Added locking.
	* java/awt/Container.java
	(preferredSize): Minimized locking. Corrected handling of cached
	values. Return copy of real value.
	(minimumSize): Minimized locking. Corrected handling of cached
	values. Return copy of real value.
	(getMaximumSize): Minimized locking. Corrected handling of cached
	values. Return copy of real value.
	
2006-07-13  Tania Bento  <tbento@redhat.com>

	* gnu/java/awt/peer/ClasspathFontPeer.java
	(isLogicalFontName): Return true if name == default.
	(logicalFontNameToFaceName): Check if name == default,
	and if so, return "Dialog.plain".
	(setStandardAttributes(String, Map)): If name == null, 
	it should be set to "Default", not "SansSerif".
	* java/awt/Canvas.java
	(generateName): Fixed documentation.
	* java/awt/CheckboxMenuItem.java
	Added static variable "next_chkmenuitem_number".
	(generateName): Added and implemented method.
	(getUniqueLong): Likewise.
	* java/awt/Choice.java
	Added static variable "next_choice_number".
	(generateName): Added and implemented method.
	(getUniqueLong): Likewise.
	* java/awt/Cursor.java
	(Cursor(int)): Set name depending on the type passed.
	* java/awt/List.java
	Added static variable "next_list_number".
	(generateName): Added and implemented method.
	(getUniqueLong): Likewise.
	* java/awt/Menu.java
	Added static variable "next_menu_number".
	(generateName): Added and implemented method.
	(getUniqueLong): Likewise.
	* java/awt/MenuBar.java
	Added static variable "next_menubar_number".
	(generateName): Added and implemented method.	
	(getUniqueLong): Likewise.
	* java/awt/MenuComponent.java
	(getName): Before returning name, check if name == null
	and name is not explicity set.  If this is the case,    
	name will be generated.
	(generateName): Added and implemented method.	
	* java/awt/MenuItem.java
	Added static variable "next_menuitem_number".
	(generateName): Added and implemented method.   
	(getUniqueLong): Likewise.
	* java/awt/PopupMenu.java
	Added static variable "next_popup_number".
	(generateName): Added and implemented method.
	(getUniqueLong): Likewise.
	* java/awt/ScrollPane.java
	Added static variable "next_scrollpane_number".
	(generateName): Added and implemented method.
	(getUniqueLong): Likewise.
	* java/awt/TextField.java
	Added static variable "next_textfield_number".
	(generateName): Added and implemented method.
	(getUniqueLong): Likewise.


2006-07-13  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/SinglePixelPackedSampleModel.java
	(SinglePixelPackageSampleModel(int, int, int, int, int[])): Convert
	mask correctly as an unsigned integer,
	(equals): New method override.

2006-07-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLDocument.java (insertAfterEnd,
	insertAfterStart, insertBeforeEnd):  Removed stub markings.

2006-07-13  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BandedSampleModel.java: API doc updates and source 
	code reformatting,
	* java/awt/image/SinglePixelPackageSampleModel.java: Likewise.

2006-07-13  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BandedSampleModel.java: API doc updates.

2006-07-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLDocument.java (HTMLReader.parseStack): 
	Made package private. (HTMLReader.charAttr, HTMLReader.charAttrStack,
	HTMLReader.insertTag, HTMLReader.insertTagEncountered, 
	HTMLReader.pushDepth, HTMLReader.popDepth): Documented. 
	(HRMLReader.blockClose): Mind that parser stack may be empty. 
	(HTMLReader.handeComment, HTMLReader.handleStartTag,
	HTMLReader.handleEndTag, HTMLReader.handleSimpleTag): Rewritten. 
	(HTMLReader.shouldInsert): New method. (getElement(String)): 
	Pass HTML.Atrribute.ID. (insertAfterEnd, insertBeforeEnd, 
	insertAfterStart, insertBeforeStart, setInnerHTML, setOuterHTML):
	Implemented. (getInsertingReader): New method. 
	* examples/gnu/classpath/examples/swing/HtmlDemo.java:
	Added buttons to demonstrate the work of the insert actions.

2006-07-13  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/SampleModel.java: API doc updates and additions,
	* java/awt/image/SinglePixelPackedSampleModel.java: Likewise.

2006-07-12  Sven de Marothy  <sven@physto.se>

	* javax/swing/JFileChooser.java:
	(createDialog): Close operation should cause a cancel.

2006-07-12  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java: Organized imports.
	(cairoArc): New native method.
	(cairoRestore): New native method.
	(cairoSave): New native method.
	(cairoScale): New native method.
	(createPath): New method to centralize code from draw and fill.
	(draw): Modified to use createPath method.
	(fill): Modified to use createPath method.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Added 
	function declarations.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoScale): New 
	method.
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSave): New 
	method.
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoArc): New 
	method.
	
2006-07-12  Tom Tromey  <tromey@redhat.com>

	PR libgcj/27271:
	* java/util/zip/ZipFile.java (getInputStream): Call addDummyByte
	on PartialInputStream.
	(PartialInputStream.dummyByteCount): New field.
	(PartialInputStream.fillBuffer): Handle dummy byte.
	(PartialInputStream.read): Likewise.
	(PartialInputStream.addDummyByte): New method.

2006-07-12  Mario Torre  <neugens@limasoftware.net>

	* native/jni/gconf-peer/GConfNativePeer.c
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string):
	Fixed C++ style comment.

2006-07-12  David Gilbert  <david.gilbert@object-refinery.com>

	* java/util/Arrays.java
	(asList): Updated API docs.

2006-07-11  Robert Schuster  <robertschuster@fsfe.org>

	Fixes PR28350.
	* native/jni/gconf-peer/GConfNativePeer.c:
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string):
	Changed if-expression.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string):
	Added check for _value not being NULL.
	
2006-07-11  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c
	(read): Use fd when local sockets are disabled to make the
	compiler quite.
	(write): Likewise.

2006-07-11  Roman Kennke  <kennke@aicas.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(MultiPixelPackedSampleModel): Substract -1 so that the integer
	division gets rounded up.

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

	* java/lang/management/ManageFactory.java:
	(getMemoryManagerMXBeans()): Use addAll, not add.
	
2006-07-11  Vivek Lakshmanan  <vivekl@redhat.com>

	PR 27649:
	* gnu/classpath/ByteArray.java: Removed (moved).
	* gnu/java/security/util/ByteArray.java: New File.
	* gnu/javax/crypto/RSACipherImpl.java: Reference 
	gnu.java.security.util.ByteArray instead of gnu.classpath.ByteArray.

2006-07-11  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c
	(available): Pass fd as argument and avoid JNI class/field
	lookup.
	(read): Likewise.
	(write): Likewise.
	* include/gnu_java_net_local_LocalSocketImpl.h:
	Regenerated.
	* gnu/java/net/local/LocalSocketImpl.h
	(available): Pass fd as argument and avoid JNI class/field
	lookup.
	(read): Likewise.
	(write): Likewise.	

2006-07-11  Sven de Marothy  <sven@physto.se>

	* gnu/javax/sound/sampled/AU/AUReader.java:
	Correct file extension from .as to .au.

2006-07-11  Sven de Marothy  <sven@physto.se>

	* gnu/javax/sound/sampled/AU/AUReader.java:
	New file.
	* resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader: 
	Added new provider.

2006-07-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTable.java
	(setRowSelectionAllowed): Fire required PropertyChangeEvent,
	(setColumnSelectionAllowed): Likewise.

2006-07-10  Vivek Lakshmanan  <vivekl@redhat.com>

	PR 27649:
	* gnu/classpath/debug/Simple1LineFormatter.java: Use
	AccessController.doPrivileged instead of SystemProperties.getProperty.
	* gnu/classpath/debug/SystemLogger.java: Likewise.
	* gnu/java/security/PolicyFile.java: Likewise and cut unnecessary
	repeated getProperty calls for "file.seperator".
	(refresh): Since already in privileged block, call System.getProperty
	instead of SystemProperties.getProperty.
	* gnu/java/security/key/dss/DSSKey.java
	(toString): Use AccessController.doPrivileged instead of
	SystemProperties.getProperty.
	* gnu/java/security/key/dss/DSSPrivateKey.java
	(toString): Likewise.
	* gnu/java/security/key/dss/DSSPublicKey.java
	(toString): Likewise.
	* gnu/java/security/key/rsa/GnuRSAKey.java
	(toString): Likewise.
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java
	(toString): Likewise.
	* gnu/java/security/key/rsa/GnuRSAPublicKey.java
	(toString): Likewise.
	* gnu/javax/crypto/sasl/plain/PasswordFile.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHKey.java 
	(toString): Likewise.
	* gnu/javax/crypto/key/dh/GnuDHPrivateKey.java 
	(toString): Likewise.
	* gnu/javax/crypto/key/dh/GnuDHPublicKey.java 
	(toString): Likewise.

2006-07-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractButton.java
	(disabledIcon): Fixed name (was 'disabeldIcon'),
	(getDisabledIcon): Updated for corrected field name,
	(setDisabledIcon): Fire a PropertyChangeEvent.

2006-07-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultBoundedRangeModel.java
	(readObject): New private method,
	(writeObject): Likewise.

2006-07-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/ButtonGroup.java
	(add): Ignore null argument,
	(remove): Ignore null argument.  If removing selected button, clear the
	sel field,
	(findButton): Changed case for method name, and documented,
	(setSelected): Updated for modification to findButton() method name,
	(isSelected): Updated API docs.

2006-07-11  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BufferedImage.java
	(BufferedImage(int, int, int)): Use correct color space for 
	TYPE_BYTE_GRAY and TYPE_USHORT_GRAY, and throw an 
	IllegalArgumentException for an unrecognised type.

2006-07-10  Mario Torre  <neugens@limasoftware.net>

        * java/awt/BasicStroke.java: Removed unused import.
        * gnu/java/awt/java2d/CubicSegment.java (clone): Fixed. 
        * gnu/java/awt/java2d/LineSegment.java (clone): Fixed. 
        * gnu/java/awt/java2d/QuadSegment.java (clone): Fixed.

2006-07-10  Matt Wringe  <mwringe@redhat.com>

	PR classpath/28212:
	* javax/crypto/spec/SecretKeySpec.java 
	(equals): Check object type. 

2006-07-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/CORBA/SimpleCommunication/
	communication/StructureToPassHelper.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/
	communication/StructureToReturnHelper.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/
	communication/TreeNodeHelper.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/
	communication/WeThrowThisExceptionHelper.java,
	gnu/CORBA/ForwardRequestHelper.java,
	org/omg/CORBA/CompletionStatusHelper.java,
	org/omg/CORBA/CurrentHelper.java,
	org/omg/CORBA/DefinitionKindHelper.java,
	org/omg/CORBA/IDLTypeHelper.java,
	org/omg/CORBA/NameValuePairHelper.java,
	org/omg/CORBA/ObjectHelper.java,
	org/omg/CORBA/ParameterModeHelper.java,
	org/omg/CORBA/PolicyErrorCodeHelper.java,
	org/omg/CORBA/PolicyErrorHelper.java,
	org/omg/CORBA/PolicyHelper.java,
	org/omg/CORBA/PolicyListHelper.java,
	org/omg/CORBA/PolicyTypeHelper.java,
	org/omg/CORBA/ServiceDetailHelper.java,
	org/omg/CORBA/ServiceInformationHelper.java,
	org/omg/CORBA/SetOverrideTypeHelper.java,
	org/omg/CORBA/StringValueHelper.java,
	org/omg/CORBA/UnionMemberHelper.java,
	org/omg/CORBA/UnknownUserExceptionHelper.java,
	org/omg/CORBA/VisibilityHelper.java,
	org/omg/CORBA/WStringValueHelper.java,
	org/omg/CORBA/WrongTransactionHelper.java,
	org/omg/CosNaming/BindingHelper.java,
	org/omg/CosNaming/BindingIteratorHelper.java,
	org/omg/CosNaming/BindingListHelper.java,
	org/omg/CosNaming/BindingTypeHelper.java,
	org/omg/CosNaming/NameComponentHelper.java,
	org/omg/CosNaming/NameHelper.java,
	org/omg/CosNaming/NamingContextExtHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/AddressHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.java,
	org/omg/CosNaming/NamingContextHelper.java,
	org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.java,
	org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.java,
	org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java,
	org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java,
	org/omg/CosNaming/NamingContextPackage/NotFoundHelper.java,
	org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java,
	org/omg/DynamicAny/AnySeqHelper.java,
	org/omg/DynamicAny/DynAnyFactoryHelper.java,
	org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java,
	org/omg/DynamicAny/DynAnyHelper.java,
	org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java,
	org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java,
	org/omg/DynamicAny/DynAnySeqHelper.java,
	org/omg/DynamicAny/DynArrayHelper.java,
	org/omg/DynamicAny/DynEnumHelper.java,
	org/omg/DynamicAny/DynFixedHelper.java,
	org/omg/DynamicAny/DynSequenceHelper.java,
	org/omg/DynamicAny/DynStructHelper.java,
	org/omg/DynamicAny/DynUnionHelper.java,
	org/omg/DynamicAny/DynValueHelper.java,
	org/omg/DynamicAny/NameDynAnyPairHelper.java,
	org/omg/DynamicAny/NameDynAnyPairSeqHelper.java,
	org/omg/DynamicAny/NameValuePairHelper.java,
	org/omg/DynamicAny/NameValuePairSeqHelper.java,
	org/omg/IOP/CodecFactoryHelper.java,
	org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java,
	org/omg/IOP/CodecPackage/FormatMismatchHelper.java,
	org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java,
	org/omg/IOP/CodecPackage/TypeMismatchHelper.java,
	org/omg/IOP/ComponentIdHelper.java,
	org/omg/IOP/IORHelper.java,
	org/omg/IOP/MultipleComponentProfileHelper.java,
	org/omg/IOP/ProfileIdHelper.java,
	org/omg/IOP/ServiceContextHelper.java,
	org/omg/IOP/ServiceContextListHelper.java,
	org/omg/IOP/ServiceIdHelper.java,
	org/omg/IOP/TaggedComponentHelper.java,
	org/omg/IOP/TaggedProfileHelper.java,
	org/omg/PortableInterceptor/AdapterManagerIdHelper.java,
	org/omg/PortableInterceptor/AdapterNameHelper.java,
	org/omg/PortableInterceptor/AdapterStateHelper.java,
	org/omg/PortableInterceptor/CurrentHelper.java,
	org/omg/PortableInterceptor/ForwardRequestHelper.java,
	org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java,
	org/omg/PortableInterceptor/InvalidSlotHelper.java,
	org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java,
	org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java,
	org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java,
	org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java,
	org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.java,
	org/omg/PortableServer/CurrentHelper.java,
	org/omg/PortableServer/CurrentPackage/NoContextHelper.java,
	org/omg/PortableServer/ForwardRequestHelper.java,
	org/omg/PortableServer/POAHelper.java,
	org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java,
	org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java,
	org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java,
	org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java,
	org/omg/PortableServer/POAPackage/NoServantHelper.java,
	org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java,
	org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java,
	org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java,
	org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java,
	org/omg/PortableServer/POAPackage/WrongAdapterHelper.java,
	org/omg/PortableServer/POAPackage/WrongPolicyHelper.java,
	org/omg/PortableServer/ServantActivatorHelper.java,
	org/omg/PortableServer/ServantLocatorHelper.java: Remove the 
	typecode caching and always use OrbRestricted.Singleton.

2006-07-09  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/ComponentGraphics.java (hasXRenderExtension):
	New static final boolean field.
	(getComponentGraphics): Use hasXRenderExtension.
	(setClip): Override method for locking.

2006-07-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractButton.java
	(setHorizontalTextPosition): Added check for illegal argument,
	(setVerticalTextPosition): Likewise.

2006-07-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/Timer.java
	(setDelay): Throw IllegalArgumentException for negative delay,
	(setInitialDelay): Likewise,
	* javax/swing/ToolTipManager.java
	(setInitialDelay): Document IllegalArgumentException,
	(setDismissDelay): Likewise,
	(setReshowDelay): Likewise.

2006-07-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/MemoryUsage.java:
	(from(javax.management.openmbean.CompositeData)):
	Implemented.
	* java/lang/management/ThreadInfo.java:
	Changed to use open types throughout for the state.
	(ThreadInfo(long,String,String,long,long,String,
	long,String,long,long,boolean,StackTraceElement[])):
	New constructor.
	(checkAttribute(javax.management.openmbean.CompositeType,
	String, javax.management.openmbean.OpenType)): New method.
	(from(javax.management.openmbean.CompositeData)):
	Implemented.
	(getLockName()): Fixed to use new variable.
	(getLockOwnerId()): Likewise.
	(getLockOwnerName()): Likewise.
	(getThreadId()): Likewise.
	(getThreadName()): Likewise.
	(getThreadState()): Likewise.
	(toString()): Refactored to use new variables.
	* javax/management/openmbean/ArrayType.java:
	New file.
	* javax/management/openmbean/CompositeType.java:
	Variables should be transient, not volatile.
	* javax/management/openmbean/OpenDataException.java:
	(serialVersionUID): Added.
	* javax/management/openmbean/SimpleType.java:
	New file.
	* javax/management/openmbean/TabularType.java
	Variables should be transient, not volatile.

2006-07-09  Tom Tromey  <tromey@redhat.com>

	* tools/.cvsignore: Updated for new tools.

2006-07-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/openmbean/CompositeData.java,
	* javax/management/openmbean/CompositeType.java,
	* javax/management/openmbean/OpenDataException.java,
	* javax/management/openmbean/OpenType.java,
	* javax/management/openmbean/TabularData.java,
	* javax/management/openmbean/TabularType.java,
	* javax/management/openmbean/package.html:
	New files.

2006-07-09  Mark Wielaard  <mark@klomp.org>

	* gnu/javax/print/ipp/IppRequest.java: Remove double assignment.
	* gnu/java/rmi/server/UnicastServerRef.java: Likewise.
	* gnu/java/rmi/server/ActivatableServerRef.java: Likewise.

2006-07-08  Anthony Green  <green@redhat.com>

	* gnu/javax/sound/sampled/WAV/WAVReader.java,
	resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader: 
	New files.

2006-07-09  Mario Torre  <neugens@limasoftware.net>

	* native/jni/gconf-peer/GConfNativePeer.c:
	Fixed indentation to be more compliant to the GNU coding
	guidelines.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1unset):
	Added explicit test for errors in the GConf backend.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string):
	Added explicit test for errors in the GConf backend.
	Fixed Segmentation Fault when non valid key names are given as input.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string):
	likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists):
	Added explicit test for errors in the GConf backend.
	* gnu/java/util/prefs/gconf/GConfNativePeer.java:
	Added javadoc comments for all native methods.
	(nodeExist): removed test to check for valid absolute path name
	for nodes.
	(startWatchingNode): likewise.
	(stopWatchingNode): likewise.
	(setString): likewise, plus fixed javadoc comments.
	(unset): likekwise.
	(getKey): likewise.
	(getKeys): likewise, also fixed javadoc comments.
	(getChildrenNodes): likewise.
	* gnu/java/util/prefs/GConfBasedPreferences.java:
	changed DEFAULT_USER_ROOT to /apps/classpath.
	(constructor): Test to check for a valid absolute path for nodes
	is now in the contructor for that node, instead of being on
	each method of the backend.
	(getGConfKey): removed empty new line.

2006-07-08  Mark Wielaard  <mark@klomp.org>

	* .classpath: Add gnu/java/awt/peer/x/ to excludes.

2006-07-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/FlowView.java (FlowStrategy.layoutRow):
	Handle the forced break in the same way as exceeding the
	available row space.
	* javax/swing/text/html/HRuleView.java: Rewritten.
	* javax/swing/text/html/HTMLDocument.java 
	(HTMLReader.addSpecialElement):Reserve two characters for
	the special elements.
	* examples/gnu/classpath/examples/swing/HtmlDemo.java
	(text): Extended the HTML example to parse.

2006-07-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractButton.java
	(setHorizontalAlignment): Check for illegal argument,
	(setVerticalAlignment): Likewise.

2006-07-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/TableView.java
	(getStyleSheet): New method. (RowView.getStyleSheet):
	New method.

2006-07-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractButton.java
	(setRolloverIcon): Call setRolloverEnabled(true),
	(setRolloverSelectedIcon): Likewise.

2006-07-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/border/TitledBorder.java
	(setTitlePosition): Added message to exception,
	(setTitleJustification): Likewise.

2006-07-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(createDefaultTheme): Corrected API docs,
	(initComponentDefaults): Added entry for 'TitledBorder.border',
	(getCurrentTheme): Initialise theme if it is null.

2006-07-07  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(isValid): Return false when component has no peer,
	don't query the showing state.

2006-07-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/FlowView.java (FlowStrategy.layoutRow):
	Advance the offset also in the case of the enforced break.

2006-07-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicArrowButton.java
	(MAXIMUM_SIZE): Removed field,
	(MINIMUM_SIZE): Likewise,
	(PREFERRED_SIZE): Likewise,
	(getMaximumSize): Return new instance every time,
	(getMinimumSize): Likewise,
	(getPreferredSize): Likewise.

2006-07-07  Roman Kennke  <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	(findTarget):  Avoid array copying in
	Container.getComponents().

2006-07-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintChildrenWithOverlap): Avoid array copying in
	Container.getComponents().
	(paintChildrenOptimized): Avoid array copying in
	Container.getComponents().
	(fireAncestorEvent):  Avoid array copying in
	Container.getComponents().
	(findOverlapFreeParent): Avoid array copying in
	Container.getComponents().

2006-07-07  Matt Wringe <mwringe@redhat.com>

	* javax/crypto/spec/PBEKeySpec.java: Updated copyright year.
	(passwordValid): New field.
	(setPassword): New method.
	(setSalt): Likewise.
	(setIterationCount): Likewise.
	(setKeyLength): Likewise.
	(PBEKeySpec(char[])): Use new setter methods.
	(PBEKeySpec(char[], byte[], int)): Likewise.
	(PBEKeySpec(char[], byte[], int, int)): Likewise.
	(clearPassword): Set passwordValid to false.
	(getPassword): Check that clearPassword() was not called earlier.
	Return a clone of the password.
	(getSalt): Return a clone of the salt if it was not null.

2006-07-07  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(isValid): Always return false when component is
	not showing.
	(setFont): Always set font, even when setting
	the same or equal font again.

2006-07-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(CheckBoxMenuItemIcon): Implement UIResource,
	(FileChooserDetailViewIcon): Likewise,
	(FileChooserHomeFolderIcon): Likewise,
	(FileChooserListViewIcon): Likewise,
	(FileChooserNewFolderIcon): Likewise,
	(FileChooserUpFolderIcon): Removed redundant 'implements',
	(RadioButtonMenuItemIcon): Implement UIResource,
	(HorizontalSliderThumbIcon): Likewise,
	(InternalFrameCloseIcon): Likewise,
	(InternalFrameDefaultMenuIcon): Likewise,
	(InternalFrameAltMaximizeIcon): Likewise,
	(InternalFrameMaximizeIcon): Likewise,
	(InternalFrameMinimizeIcon): Likewise,
	(VerticalSliderThumbIcon): Likewise,
	(TreeHardDriveIcon): Likewise,
	(TreeFloppyDriveIcon): Likewise,
	(TreeComputerIcon): Likewise,
	(horizontalSliderThumbIcon): New field,
	(verticalSliderThumbIcon): New field,
	(getHorizontalSliderThumbIcon): Cache icon,
	(getVerticalSliderThumbIcon): Likewise.

2006-07-06  Mark Wielaard  <mark@klomp.org>

	* lib/Makefile.am (CLEANFILES): Add Makefile.deps.
	(DISTCLEANFILES): Add standard.omit.
	(clean-local): Remove Makefile.deps, only remove dirs.

2006-07-06  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(setFont): Only invalidate when component is valid.
	* java/awt/Container.java
	(setLayout): Only invalidate when component is valid.

2006-07-06  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java:
	New class not fully implemented.
	* gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java:
	New class not fully implemented.
	* gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java:
	New class not fully implemented.
	* gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java:
	New class not fully implemented.
	* nu/java/awt/peer/gtk/GtkToolkit.java:
	Fixed Imports.
	(createDragSourceContextPeer): Implemented.
	(createDragGestureRecognizer): New function to override
	java.awt.Toolkit.createDragGestureRecognizer.
	* java/awt/dnd/DragSource.java
	(NoDragGestureRecognizer): Removed inner class.
	(createDragGestureRecognizer): Re-Implemented to 
	call Toolkit's createDragGestureRecognizer.
	(createDefaultDragGestureRecognizer): Re-Implemented to
	call Toolkit's createDragGestureRecognizer.
	* java/awt/dnd/DropTarget.java
	(addNotify): Added check to determine type of peer and call
	addDropTarget.
	(removeNotify): Added call to removeDropTarget.

2006-07-06  Tom Tromey  <tromey@redhat.com>

	* gnu/java/util/prefs/EventDispatcher.java (dispatch): Notify
	'queue'.
	(run): Wait on queue, not 'this'.

2006-07-06  Lillian Angel  <langel@redhat.com>

	* java/awt/dnd/DragSource.java
	(startDrag): Implemented. Added comments describing
	what the function should do. Removed FIXME.

2006-07-06  Tania Bento  <tbento@redhat.com>
	
	* gnu/java/awt/Canvas.java
	Added new private variable 'next_canvas_number'.
	(generateName): Added.
	(getUniqueLong): Added.

2006-07-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/CharacterAttributeTranslator.java
	(getColor): Made public.
	* javax/swing/text/html/StyleSheet.java (stringToColor):
	Use CharacterAttributeTranslator.getColor(String)

2006-07-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLEditorKit.java:
	(HTMLFactory.createElement): Update reference to the html table view.
	* javax/swing/text/html/HTMLTableView.java: Removed (renamed).
	* javax/swing/text/html/TableView.java: New file.

2006-07-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLEditorKit.java: 
	(HTMLFactory.createElement): Uncomment
	code for BRView and HRuleView.
	* javax/swing/text/html/BRView.java,
	javax/swing/text/html/HRuleView.java: New files.

2006-07-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS: Updated.
	* doc/vmintegration.texinfo: Likewise.
	* examples/gnu/classpath/examples/management/TestGarbageCollector.java,
	* examples/gnu/classpath/examples/management/TestMemoryManager.java,
	* gnu/java/lang/management/GarbageCollectorMXBeanImpl.java,
	* gnu/java/lang/management/MemoryManagerMXBeanImpl.java,
	* java/lang/management/GarbageCollectorMXBean.java:
	New files.
	* java/lang/management/ManagementFactory.java:
	(getGarbageCollectorMXBeans()): Implemented.
	(getMemoryManagerMXBeans()): Likewise.
	* vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java,
	* vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java:
	New files.
	* vm/reference/java/lang/management/VMManagementFactory.java:
	(getMemoryManagerNames()): Added.
	(getGarbageCollectorNames()): Added.
	
2006-07-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/plugin/Makefile.am (nativeexeclib_LTLIBRARIES): Rename
	from lib_LTLIBRARIES.
	(install-plugin): Depend on nativeexeclib_LTLIBRARIES.

2006-07-05  Lillian Angel  <langel@redhat.com>

	* java/awt/dnd/DragGestureEvent.java:
	Added new fields.
	(DragGestureEvent): Initialized new fields, added to check and 
	added documentation.
	(getSourceAsDragGestureRecognizer): Added documentation and 
	changed to use getSource.
	(getComponent): Added documentation and fixed to return the proper
	value.
	(getDragSource): Likewise.
	(getDragOrigin): Added documentation.
	(iterator): Implemented and added documentation.
	(toArray): Likewise.
	(toArray): Likewise.
	(getDragAction): Likewise.
	(getTriggerEvent): Likewise.
	(startDrag): Likewise.
	* java/awt/dnd/DragGestureRecognizer.java
	(resetRecognizer): Added FIXME.
	* java/awt/dnd/DragSource.java:
	Added new field.
	(DragSource): Set ds to be null if headless.
	(getDefaultDragSource): Added documentation and implemented.
	(isDragImageSupported): Marked as unimplemented.
	(startDrag): Likewise.
	(createDragSourceContext): Implemented.
	(NoDragGestureRecognizer): Formatted inner class.
	* java/awt/dnd/DropTarget.java
	(stop): Marked as unimplemented.
	(actionPerformed): Likewise.
	(addDropTargetListener): Added code to throw exception.
	(removeDropTargetListener): Added check, removed FIXME.
	(dragEnter): Implemented.
	(dragOver): Implemented.
	(dropActionChanged): Implemented.
	(dragExit): Implemented.
	(drop): Implemented.
	(addNotify): Implemented.
	(removeNotify): Implemented.
	(createDropTargetContext): Implemented.
	(createDropTargetAutoScroller): Implemented.
	(initializeAutoscrolling): Implemented.
	(updateAutoscroll): Implemented.
	(clearAutoscroll): Implemented.
	* java/awt/dnd/DropTargetContext.java
	(dropComplete): Implemented.
	(acceptDrag): Implemented.
	(rejectDrag): Implemented.
	(acceptDrop): Implemented.
	(rejectDrop): Implemented.
	(getCurrentDataFlavors): Implemented.
	(getTransferable): Partially implemented.
	* java/awt/dnd/DropTargetDragEvent.java
	(getDropAction): Uncommented correct code.
	* java/awt/dnd/DropTargetDropEvent.java
	(dropComplete) :Implemented.
	* java/awt/dnd/InvalidDnDOperationException.java
	(InvalidDnDOperationException): Added call to super.

2006-07-05  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicArrowButton.java:
	(paint): Removed getBounds() call, changed center point
	calculation.

2006-07-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/InputMap.java
	(inputMap): Don't initialize yet,
	(InputMap): Removed TODO,
	(get): Check for null inputMap,
	(put): Return immediately for null keyStroke, check for null inputMap
	and initialize if necessary,
	(remove): Check for null inputMap,
	(size): Likewise,
	(clear): Likewise,
	(keys): Likewise,
	(allKeys): Likewise,
	(writeObject): Removed,
	(readObject): Removed.

2006-07-05  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/classpath/examples/swing/TabbedPaneDemo.java
	(createContent): Use different labels for buttons.

2006-07-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:	Updated.
	* doc/vmintegration.texinfo: Likewise.
	* examples/gnu/classpath/examples/management/TestMemoryPool.java,
	* gnu/java/lang/management/MemoryPoolMXBeanImpl.java:
	New files.
	* java/lang/management/ManagementFactory.java:
	(getMemoryPoolMXBeans()): Implemented.
	* vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java,
	* vm/reference/java/lang/management/VMManagementFactory.java:
	New files.
	
2006-07-04  Lillian Angel  <langel@redhat.com>

	* java/awt/dnd/DragSourceContext.java:
	Removed FIXMEs from fields.
	(DragSourceContext): Added code to initialize cursor and sourceActions.
	(getDragSource): Added documentation.
	(getComponent): Likewise.
	(getTrigger): Likewise.
	(getSourceActions): Added documentation and implemented.
	(setCursor): Implemented. Added documentation.
	(getCursor): Implemented. Added documentation.
	(dragEnter): Added code to notify DragSource's listeners.
	(dragOver): Likewise.
	(dragExit): Likewise.
	(dropActionChanged): Likewise.
	(dragDropEnd): Likewise.
	(dragMouseMoved): Implemented.
	(getTransferable): Added API documentation.
	(updateCurrentCursor): Added API documentation and partially implemented.

2006-07-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (KeyHandler): Implemented.

2006-07-04  Lillian Angel  <langel@redhat.com>

	* java/awt/dnd/DragSourceContext.java
	(DragSourceContext): Implemented fully. Fixed API docs.
	(transferablesFlavorsChanged): Implemented.
	(dragEnter): Implemented.
	(dragOver): Implemented.
	(dragExit): Implemented.
	(dropActionChanged): Implemented.
	(dragDropEnd): Implemented.

2006-07-04  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicOptionPaneUI.java:
	Fixed name of constant.
	(getIconWidth): Changed name of constant returned.
	(getIconHeight): Likewise.
	(paint): Likewise.
	(createSeparator): Marked as unimplemented.
	* javax/swing/plaf/basic/BasicTableUI.java
	(focusGained): Marked as unimplemented.
	(focusLost): Marked as unimplemented.
	(mouseEntered): Likewise.
	(mouseMoved): Likewise.
	(uninstallDefaults): Likewise.
	* javax/swing/plaf/basic/BasicToolBarUI.java
	(mouseClicked): Changed comment.
	(mouseEntered): Likewise.
	(mouseExited): Likewise.
	(mouseMoved): Likewise.
	(setOrientation): Implemented.
	(ToolBarFocusListener): Marked as unimplemented.
	(focusGained): Marked as unimplemented.
	(focusLost): Marked as unimplemented.

2006-07-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28061
	* javax/swing/plaf/basic/BasicTreeUI.java (isLocationInExpandControl):
	Mind the effect of the root visibility on the position of the control.
	Quess icon width 18. (paintVerticalPartOfLeg): Do no paint the 
	vertical line over first level nodes.

2006-07-04  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicMenuUI.java
	(installKeyboardActions): Implemented to call super. Nothing else
	needs to be done here.
	(setupPostTimer): Marked as unimplemented.
	(uninstallKeyboardActions): Implemented to call super. Nothing else
	needs to be done here.
	(mouseMoved): Removed TODO. Nothing to be done here.
	(ChangeHandler): Implemented.
	(menuDragMouseExited): Removed TODO. Nothing to be done here.
	(menuDragMouseReleased): Removed TODO. Nothing to be done here.
	(menuKeyReleased): Removed TODO. Nothing to be done here.
	(menuKeyTyped): Marked as unimplemented.

2006-07-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28061
	* gnu/javax/swing/plaf/gnu/GNULookAndFeel.java
	(getDefaults): Set hash color to black.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Set hash color to grey blue.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(instellDefaults): Set hash color.
	* javax/swing/plaf/metal/MetalIconFactory.java
	(TreeControlIcon.paint): Rewritten.

2006-07-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28061
	* javax/swing/plaf/basic/BasicTreeUI.java (MouseHandler.mousePressed):
	Always cancel the current editing session before doing anything else,
	return immediately if this fails.
	(TreeHomeAction): Ensure that the lead selection path is visible after
	the action is performed. TreeIncrementAction: Likewise. TreeToggleAction:
	Likewise. TreeTraverseAction: Likewise.

2006-07-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28061
	* javax/swing/plaf/basic/BasicTreeUI.java (MouseHandler.mousePressed):
	Returned back the code to handle the start of the click-pause-click
	editing initiation, explained about this code. 
	(TreeStartEditingAction): New inner class.
	(stopEditingInCompleteEditing): Explained about this field.
	(completeEditing(boolean, boolean, boolean): Only return early
	if there is no current editing session.
	(createDefaultActions): Install TreeStartEditingAction and
	TreeCancelEditingAction.

2006-07-04  Mario Torre  <neugens@limasoftware.net>

	* configure.ac: Added new option --enable-default-preferences-peer
	to pass user specified default preference backend.
	If the GConf peer is built, GConf become the default backend.
	* resource/META-INF/services/java.util.prefs.PreferencesFactory.in:
	new file. 
	* lib/Makefile.am: excludes files terminating in 'in' from
	the metafiles list.
	* lib/copy-vmresources.sh.in: excludes files terminating in 'in'
	from copy into META-INF.
	* java/util/prefs/Preferences.java: added two new import
	classes gnu.classpath.ServiceFactory and java.util.Iterator.
	(getFactory): Now try to check for
	a system defined default preference backend before to fall back on
	FileBasedPreference.

2006-07-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28061
	* javax/swing/JTree.java (COLLAPSED): Initialise to Boolean.FALSE.
	(EXPANDED): Initialise to Boolean.TRUE.
	* javax/swing/plaf/basic/BasicTreeUI.java (completeUIInstall):
	First configure layout cache and then set the assigned value 
	as row mapper. Set the root visibility property.
	(toggleExpandState): Obtains expansion state from the layout cache.

2006-07-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/MemoryPoolMXBean.java:
	New file.
	
2006-07-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/RSACipherImpl.java: Source formatting.

2006-07-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/sasl/anonymous/AnonymousClient.java: Source formatting.
	* gnu/javax/crypto/sasl/anonymous/AnonymousServer.java: Likewise.
	* gnu/javax/crypto/sasl/anonymous/AnonymousUtil.java: Likewise.
	* gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.java: Likewise.
	* gnu/javax/crypto/sasl/crammd5/CramMD5Client.java: Likewise.
	* gnu/javax/crypto/sasl/crammd5/CramMD5Registry.java: Likewise.
	* gnu/javax/crypto/sasl/crammd5/CramMD5Server.java: Likewise.
	* gnu/javax/crypto/sasl/crammd5/CramMD5Util.java: Likewise.
	* gnu/javax/crypto/sasl/crammd5/PasswordFile.java: Likewise.
	* gnu/javax/crypto/sasl/plain/PasswordFile.java: Likewise.
	* gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.java: Likewise.
	* gnu/javax/crypto/sasl/plain/PlainClient.java: Likewise.
	* gnu/javax/crypto/sasl/plain/PlainRegistry.java: Likewise.
	* gnu/javax/crypto/sasl/plain/PlainServer.java: Likewise.
	* gnu/javax/crypto/sasl/srp/CALG.java: Likewise.
	* gnu/javax/crypto/sasl/srp/ClientStore.java: Likewise.
	* gnu/javax/crypto/sasl/srp/IALG.java: Likewise.
	* gnu/javax/crypto/sasl/srp/KDF.java: Likewise.
	* gnu/javax/crypto/sasl/srp/PasswordFile.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SecurityContext.java: Likewise.
	* gnu/javax/crypto/sasl/srp/ServerStore.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRP.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPClient.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPRegistry.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPServer.java: Likewise.
	* gnu/javax/crypto/sasl/srp/StoreEntry.java: Likewise.
	* gnu/javax/crypto/sasl/AuthInfo.java: Likewise.
	* gnu/javax/crypto/sasl/AuthInfoProviderFactory.java: Likewise.
	* gnu/javax/crypto/sasl/ClientFactory.java: Likewise.
	* gnu/javax/crypto/sasl/ClientMechanism.java: Likewise.
	* gnu/javax/crypto/sasl/ConfidentialityException.java: Likewise.
	* gnu/javax/crypto/sasl/IAuthInfoProvider.java: Likewise.
	* gnu/javax/crypto/sasl/IAuthInfoProviderFactory.java: Likewise.
	* gnu/javax/crypto/sasl/IllegalMechanismStateException.java: Likewise.
	* gnu/javax/crypto/sasl/InputBuffer.java: Likewise.
	* gnu/javax/crypto/sasl/IntegrityException.java: Likewise.
	* gnu/javax/crypto/sasl/NoSuchMechanismException.java: Likewise.
	* gnu/javax/crypto/sasl/NoSuchUserException.java: Likewise.
	* gnu/javax/crypto/sasl/OutputBuffer.java: Likewise.
	* gnu/javax/crypto/sasl/SaslEncodingException.java: Likewise.
	* gnu/javax/crypto/sasl/SaslInputStream.java: Likewise.
	* gnu/javax/crypto/sasl/SaslOutputStream.java: Likewise.
	* gnu/javax/crypto/sasl/SaslUtil.java: Likewise.
	* gnu/javax/crypto/sasl/ServerFactory.java: Likewise.
	* gnu/javax/crypto/sasl/ServerMechanism.java: Likewise.
	* gnu/javax/crypto/sasl/UserAlreadyExistsException.java: Likewise.

2006-07-02  Anthony Green  <green@redhat.com>

	* gnu/javax/sound/midi/file/MidiFileWriter.java (writeTrack): Make
	sure that every track written ends with an End Of Track meta
	message.

2006-07-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/MemoryUsage.java:
	(toString()): Fix missing MB for maximum memory usage.
	
2006-07-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Updated to include VMCompilationMXBeanImpl.
	* doc/vmintegration.texinfo:
	Likewise, along with update to VMMemoryMXBeanImpl
	as below.
	* examples/gnu/classpath/examples/management/TestCompilation.java,
	* gnu/java/lang/management/CompilationMXBeanImpl.java,
	* java/lang/management/CompilationMXBeanImpl.java:
	New files.
	* java/lang/management/ManagementFactory.java:
	(getCompilationMXBean()): Implemented.
	* vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java:
	New file.
	* vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java:
	(getHeapMemoryUsage()): Added default implementation.	
	
2006-07-02  Anthony Green  <green@redhat.com>

	* NEWS: Mention MIDI file reader/writer providers.

2006-07-02  Anthony Green  <green@redhat.com>

	* resource/META-INF/services/javax.sound.midi.spi.MidiFileWriter,
	gnu/javax/sound/midi/file/MidiFileWriter.java,
	gnu/javax/sound/midi/file/MidiDataOutputStream.java: New files.

2006-07-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Updated to include VMMemoryMXBeanImpl.
	* doc/vmintegration.texinfo: Likewise.
	* examples/gnu/classpath/examples/management/TestMemory.java:
	New file.
	* gnu/java/lang/management/ClassLoadingMXBeanImpl.java:
	Remove redundant import.
	* gnu/java/lang/management/MemoryMXBeanImpl.java:
	New file.
	* gnu/java/lang/management/ThreadMXBeanImpl.java:
	Remove redundant import.
	* java/lang/management/ManagementFactory.java:
	(getMemoryMXBean()): Implemented.
	* java/lang/management/MemoryMXBean.java,
	* java/lang/management/MemoryUsage.java:
	New files.
	* java/lang/management/ThreadInfo.java:
	(toString()): Updated documentation.
	* vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java:
	New file.
	
2006-07-01  Anthony Green  <green@redhat.com>

	* resource/META-INF/services/javax.sound.midi.spi.MidiFileReader,
	gnu/javax/sound/midi/file/MidiFileReader.java,
	gnu/javax/sound/midi/file/ExtendedMidiFileFormat.java,
	gnu/javax/sound/midi/file/MidiDataInputStream.java: New files.

2006-07-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/prng/ARCFour.java: Source formatting.
	* gnu/javax/crypto/prng/CSPRNG.java: Likewise.
	* gnu/javax/crypto/prng/Fortuna.java: Likewise.
	* gnu/javax/crypto/prng/ICMGenerator.java: Likewise.
	* gnu/javax/crypto/prng/PBKDF2.java: Likewise.
	* gnu/javax/crypto/prng/PRNGFactory.java: Likewise.
	* gnu/javax/crypto/prng/UMacGenerator.java: Likewise.

2006-07-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/pad/BasePad.java: Source formatting.
	* gnu/javax/crypto/pad/IPad.java: Likewise.
	* gnu/javax/crypto/pad/PadFactory.java: Likewise.
	* gnu/javax/crypto/pad/PKCS1_V1_5.java: Likewise.
	* gnu/javax/crypto/pad/PKCS7.java: Likewise.
	* gnu/javax/crypto/pad/SSL3.java: Likewise.
	* gnu/javax/crypto/pad/TBC.java: Likewise.
	* gnu/javax/crypto/pad/TLS1.java: Likewise.
	* gnu/javax/crypto/pad/WrongPaddingException.java: Likewise.

2006-07-01  Anthony Green  <green@redhat.com>

	* javax/sound/midi/SysexMessage.java (setMessage): Fix sysex
	status byte test.
	(setMessage): Fix it again, in a different setMessage method.

2006-07-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/mode/BaseMode.java: Source formatting.
	* gnu/javax/crypto/mode/CBC.java: Likewise.
	* gnu/javax/crypto/mode/CFB.java: Likewise.
	* gnu/javax/crypto/mode/CTR.java: Likewise.
	* gnu/javax/crypto/mode/EAX.java: Likewise.
	* gnu/javax/crypto/mode/ECB.java: Likewise.
	* gnu/javax/crypto/mode/IAuthenticatedMode.java: Likewise.
	* gnu/javax/crypto/mode/ICM.java: Likewise.
	* gnu/javax/crypto/mode/IMode.java: Likewise.
	* gnu/javax/crypto/mode/ModeFactory.java: Likewise.
	* gnu/javax/crypto/mode/OFB.java: Likewise.

2006-07-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/mac/BaseMac.java: Source formatting.
	* gnu/javax/crypto/mac/HMac.java: Likewise.
	* gnu/javax/crypto/mac/HMacFactory.java: Likewise.
	* gnu/javax/crypto/mac/IMac.java: Likewise.
	* gnu/javax/crypto/mac/MacFactory.java: Likewise.
	* gnu/javax/crypto/mac/MacInputStream.java: Likewise.
	* gnu/javax/crypto/mac/MacOutputStream.java: Likewise.
	* gnu/javax/crypto/mac/OMAC.java: Likewise.
	* gnu/javax/crypto/mac/TMMH16.java: Likewise.
	* gnu/javax/crypto/mac/UHash32.java: Likewise.
	* gnu/javax/crypto/mac/UMac32.java: Likewise.

2006-07-01  Anthony Green  <green@redhat.com>

	* javax/sound/midi/Track.java (vector, eventSet): Initialize. 

2006-07-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/keyring/AuthenticatedEntry.java: Source formatting.
	* gnu/javax/crypto/keyring/BaseKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/BinaryDataEntry.java: Likewise.
	* gnu/javax/crypto/keyring/CertificateEntry.java: Likewise.
	* gnu/javax/crypto/keyring/CertPathEntry.java: Likewise.
	* gnu/javax/crypto/keyring/CompressedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/EncryptedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/Entry.java: Likewise.
	* gnu/javax/crypto/keyring/EnvelopeEntry.java: Likewise.
	* gnu/javax/crypto/keyring/GnuPrivateKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/GnuPublicKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/IKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/IPrivateKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/IPublicKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/MalformedKeyringException.java: Likewise.
	* gnu/javax/crypto/keyring/MaskableEnvelopeEntry.java: Likewise.
	* gnu/javax/crypto/keyring/MeteredInputStream.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordEncryptedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordProtectedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PrimitiveEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PrivateKeyEntry.java: Likewise.
	* gnu/javax/crypto/keyring/Properties.java: Likewise.
	* gnu/javax/crypto/keyring/PublicKeyEntry.java: Likewise.

2006-07-01  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractCellEditor.java: Source code formatting,
	* javax/swing/AbstractSpinnerModel.java: Likewise,
	* javax/swing/Box.java: Likewise,
	* javax/swing/BoxLayout.java: Likewise,
	* javax/swing/DefaultListModel.java: Likewise,
	* javax/swing/GrayFilter.java: Likewise,
	* javax/swing/LookAndFeel.java: Likewise,
	* javax/swing/ProgressMonitor.java: Likewise,
	* javax/swing/ProgressMonitorInputStream.java: Likewise,
	* javax/swing/ScrollPaneLayout.java: Likewise,
	* javax/swing/SpringLayout.java: Likewise,
	* javax/swing/event/EventListenerList.java: Likewise,
	* javax/swing/event/MenuEvent.java: Likewise,
	* javax/swing/event/TreeExpansionListener.java: Likewise.

2006-07-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Mention threading bean and getState().
	* doc/vmintegration.texinfo:
	Update documentation for threading bean and new
	method of VMThread.
	
2006-07-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
        
	* examples/gnu/classpath/examples/management/TestClassLoading.java,
	* examples/gnu/classpath/examples/management/TestOS.java,
	* examples/gnu/classpath/examples/management/TestRuntime.java,
	* examples/gnu/classpath/examples/management/TestThread.java:
	New files.
	
2006-07-01  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/ThreadGroup.java
	(getThreadFromId, getThreadFromIdImpl): New methods.

2006-07-01  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/Thread.java:
	Make thread IDs start from 1 in a more efficient way.

2006-07-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Thread.java:
	Make thread IDs start from 1.
	
2006-07-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/BeanImpl.java:
	New superclass for all bean implementations.
	* gnu/java/lang/management/ClassLoadingMXBeanImpl.java:
	Extend BeanImpl and call permission code there.
	* gnu/java/lang/management/OperatingSystemMXBeanImpl.java:
	Extend BeanImpl.
	* gnu/java/lang/management/RuntimeMXBeanImpl.java:
	Extend BeanImpl and call permission code there.
	* gnu/java/lang/management/ThreadMXBeanImpl.java:
	New file.
	* java/lang/management/ManagementFactory.java:
	(getThreadMXBean()): Implemented.
	* java/lang/management/ThreadInfo.java:
	(ThreadInfo(Thread,int)): Replaced...
	(ThreadInfo(Thread,long,long,Object,Thread,long,long,
	boolean, boolean, StackTraceElement[])): with this.
	(getBlockedCount()): Refactored to use local variables.
	(getBlockedTime()): Likewise.
	(getLockName()): Likewise.
	(getLockOwnerId()): Likewise.
	(getLockOwnerName()): Likewise.
	(getStackTrace()): Likewise.
	(getWaitedCount()): Likewise.
	(getWaitedTime()): Likewise.
	(isInNative()): Likewise.
	(isSuspended()): Likewise.
	(toString()): Changed to use new local variables.
	* java/lang/management/ThreadMXBean.java:
	(getThreadInfo(long, int)): Corrected documentation.
	(getThreadInfo(long[], int)): Likewise.
	* vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java:
	New file.
	* vm/reference/java/lang/management/VMThreadInfo.java:
	Removed.

2006-07-01  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/key/dh/DHKeyPairRawCodec.java: Source formatting.
	* gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.java: Likewise.
	* gnu/javax/crypto/key/dh/DiffieHellmanReceiver.java: Likewise.
	* gnu/javax/crypto/key/dh/DiffieHellmanSender.java: Likewise.
	* gnu/javax/crypto/key/dh/ElGamalKeyAgreement.java: Likewise.
	* gnu/javax/crypto/key/dh/ElGamalReceiver.java: Likewise.
	* gnu/javax/crypto/key/dh/ElGamalSender.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHKey.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHPrivateKey.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHPublicKey.java: Likewise.
	* gnu/javax/crypto/key/dh/RFC2631.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRP6Host.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRP6KeyAgreement.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRP6SaslClient.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRP6SaslServer.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRP6TLSClient.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRP6TLSServer.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRP6User.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPAlgorithm.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPKey.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPPrivateKey.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPPublicKey.java: Likewise.
	* gnu/javax/crypto/key/BaseKeyAgreementParty.java: Likewise.
	* gnu/javax/crypto/key/GnuSecretKey.java: Likewise.
	* gnu/javax/crypto/key/IKeyAgreementParty.java: Likewise.
	* gnu/javax/crypto/key/IncomingMessage.java: Likewise.
	* gnu/javax/crypto/key/KeyAgreementException.java: Likewise.
	* gnu/javax/crypto/key/KeyAgreementFactory.java: Likewise.
	* gnu/javax/crypto/key/OutgoingMessage.java: Likewise.

2006-07-01  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	(transform): Make field protected.
	(getDestinationRaster): Provide default implementation for
	previously abstract method.

2006-06-30  Tania Bento  <tbento@redhat.com>

	* java/awt/TextArea.java
	(TextArea(String, int, int, int)): No longer throws
	IllegalArgumentException if rows, columns, or scrollbarVisibility 
	values are invalid.  
	(TextArea(String, int, int, int)): If rows or columns are < 0, 
	they get set to 0.  If scrollbarVisibility is < 0 or > 4, it 
	gets set to the default value of 0 (SCROLLBARS_BOTH).
	 (appendText): Added case when peer = null.
	(insertText): Added case when peer == null.
	(replaceText): Added case when peer == null.
	* java/awt/TextComponent.java
	(TextComponent(String)): If text == null, set it to "".

2006-06-30  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
	(create): Added synchronized block around groupMap.get calls.
	(setCheckboxGroup): Likewise.

2006-06-30  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
	(create): Changed to be non-synchronized.
	(setLabel): Likewise.
	(setCheckboxGroup): Likewise.
	(addToGroupMap): Likewise. Added synchronized block around
	code.
	(dispose): Changed to be non-synchronized.

2006-06-30  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java:
	Changed all return values of native functions to void.
	(create): Changed function to be synchronized. Removed
	call to put value in groupMap, this is now done from 
	the native code.
	(setState): Changed function to be synchronized.
	(setLabel): Changed function to be synchronized.
	(setCheckboxGroup): Changed function to be synchronized. Removed
	call to put value in groupMap, this is now done from
	the native code.
	(postItemEvent): Changed function to be synchronized.
	(addToGroupMap): New function. Called by native code to add
	new value to the group.
	(dispose): Changed function to be synchronized.
	* include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: Updated
	all functions.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(cp_gtk_checkbox_init_jni): Added code to link to 
	java function.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_createRadioButton): 
	Changed return value to void. Added call
	to java function to set pointer in groupMap.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_addtoGroup): Likewise. Also,
	changed check to an assert. Also, removed call to set/del pointer.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_removeFromGroup): 
	Likewise. Also, added check to determine if native_group should be 
	set to NULL.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_switchToGroup): Likewise.

2006-06-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/ClasspathToolkit.java,
	* gnu/java/awt/peer/x/XToolkit.java,
	* gnu/java/awt/peer/qt/QtToolkit.java,
	* gnu/java/awt/peer/gtk/GtkToolkit.java,
	Remove ClasspathTextLayoutPeer.
	* gnu/java/awt/peer/gtk/GdkTextLayout.java,
	* gnu/java/awt/peer/ClasspathTextLayoutPeer:
	Files removed.
	
2006-06-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java:
	(drawGlyphVector): Don't draw empty vectors.

2006-06-30  Lillian Angel  <langel@redhat.com>
	    Tom Fitzsimmons <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java: Removed class.
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java:
	Added current_group, groupMap fields. Added definitions for
	new native functions.
	(create): Removed FIXME. Added code to create the check button or
	radio button when appropriate. Updated groupMap to contain
	pointer to the newly created group.
	(setCheckboxGroup): Added code to handle all cases. Removing
	a button from a group, adding a button to a group, or changing the
	group of a button.
	(dispose): Changed to call super.
	* include/Makefile.am: Removed reference to 
	gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h.
	* include/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h: Removed file.
	* include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: Added definitions
	for new functions.
	* native/jni/gtk-peer/Makefile.am: Removed reference to 
	gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c:
	Removed file.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_combobox_get_widget): 
	Renamed to checkbox_get_widget.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_connectSignals): 
	Changed to use checkbox_get_widget.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeSetCheckboxGroup): 
	Removed.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkWidgetModifyFont):
	Changed to use checkbox_get_widget.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkButtonSetLabel):
	Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_createCheckButton):
	New function. Creates checkbutton without a group.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_createRadioButton):
	Creates a radio button in a group, using groupPointer. If groupPointer
	is 0, then a new group is created.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_addToGroup): Adds the
	check button to a group, using groupPointer. A radio button is created
	in its place. If groupPointer is 0, then a new group is created.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_removeFromGroup): The
	radio button is removed from the group. A check button is created in 
	its place.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_switchToGroup): The
	radio button is moved to a new group.

2006-06-30  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Move standard.omit creation after dirs are created.
	Cat standard.omit.in from srcdir. Make exclude regex more explicit.
	* lib/Makefile.am (EXTRA_DIST): Add standard.omit.in.
	(clean-local): Remove standard.omit.
	* lib/gen-classlist.sh.in: Use omit file in build dir.
	* lib/standard.omit.in: Make exclude regex more explicit.

2006-06-30  Roman Kennke  <kennke@aicas.com>

	* lib/Makefile.am: Added Escher dir/jar to classpath when
	requested.
	* configure.ac: Moved handling of standard.omit to a place
	where it actually gets executed.

2006-06-30  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/TextComponent.java: Reformatted source code,
	* java/awt/TextField.java: Likewise.

2006-06-29  Jeroen Frijters <jeroen@sumatra.nl>

	* java/lang/Thread.java:
	(getState()): Handle case of no VMThread
	correctly.

2006-06-29  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Thread.java,
	* java/lang/VMThread.java:
	Reverted patch from 2006-06-28.
	
2006-06-29  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/GLGraphics.java,
	* gnu/java/awt/peer/x/ImageConverter.java,
	* gnu/java/awt/peer/x/KeyboardMapping.java,
	* gnu/java/awt/peer/x/XEventPump.java,
	* gnu/java/awt/peer/x/XFontPeer.java,
	* gnu/java/awt/peer/x/XFontPeer2.java,
	* gnu/java/awt/peer/x/XFramePeer.java,
	* gnu/java/awt/peer/x/XGraphics.java,
	* gnu/java/awt/peer/x/XGraphics2D.java,
	* gnu/java/awt/peer/x/XGraphicsConfiguration.java,
	* gnu/java/awt/peer/x/XGraphicsDevice.java,
	* gnu/java/awt/peer/x/XGraphicsEnvironment.java,
	* gnu/java/awt/peer/x/XImage.java,
	* gnu/java/awt/peer/x/XLightweightPeer.java,
	* gnu/java/awt/peer/x/XToolkit.java,
	* gnu/java/awt/peer/x/XWindowPeer.java,
	* gnu/java/awt/peer/x/fonts.properties: New files.
	* lib/standard.omit: Removed.
	* lib/standard.omit.in: Added.
	* configure.ac: Added configure option --with-escher. Added some
	configury for omitting gnu.java.awt.peer.x package when
	this option is not specified.

2006-06-29  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(JComponent()): Initialize the locale here, not the default locale,
	(getDefaultLocale): If null, return Locale.getDefault(),
	(setDefaultLocale): Added API docs.

2006-06-29  Tania Bento  <tbento@redhat.com>

	* java/awt/Container.java
	(applyComponentOrientation): Implemented method.

2006-06-29  Gary Benson  <gbenson@redhat.com>

	* java/io/File.java (listRoots): Merge security checks from libgcj.

2006-06-29  Gary Benson  <gbenson@redhat.com>

	* java/io/FilePermission.java (implies): Work when path is "/".

2006-06-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Thread.java:
	(Thread(ThreadGroup,Runnable,String,long)): Update
	state.
	(Thread(VMThread,String,int,boolean)): Likewise.
	(join(long,int)): Likewise.
	(resume()): Likewise.
	(sleep(long,int)): Likewise.
	(start()): Likewise.
	(stop()): Likewise.
	(suspend()): Likewise.
	(die()): Likewise.
	(getState()): Return either state or use VMThread.
	* java/lang/VMThread.java:
	(getState()): Added default implementation to return
	thread.state
	
2006-06-28  Andreas Tobler  <a.tobler@schweiz.ch>

	* gnu/java/awt/peer/gtk/CairoSurface.java: Swap the data from the
	GdkPixbuf correctly on big endian systems. Fix a typo in the little
	endian swapping code.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(Java_gnu_java_awt_peer_gtk_GtkImage_getPixels): Swap the pixeldata
	without alpha information correctly on big endian systems.

2006-06-28  Roman Kennke  <kennke@aicas.com>

	* gnu/java/net/local/LocalSocket.java
	(setSoTimeout): Don't throw exception and ignore request.
	(getSoTimeout): Don't throw exception and always return 0.

2006-06-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(getRegisteredKeyStrokes): Implemented.

2006-06-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(verifyInputWhenFocusTarget): Initialise to true.

2006-06-28  David Gilbert  <david.gilbert@object-refinery.com>

	* java/beans/VetoableChangeSupport.java
	(addVetoableChangeListener(VetoableChangeListener)): Do nothing for
	null listener,
	(addVetoableChangeListener(String, VetoableChangeListener)): Do nothing
	for null property name and/or listener,
	* javax/swing/JComponent.java
	(getListeners): Handle VetoableChangeListener.class as a special case,
	(getVetoableChangeListeners): Fetch these from the 
	vetoableChangeSupport object.

2006-06-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(componentPopupMenu): New field,
	(inheritsPopupMenu): New field,
	(getInheritsPopupMenu): Implemented,
	(setInheritsPopupMenu): Likewise,
	(getComponentPopupMenu): Likewise,
	(setComponentPopupMenu): Likewise,
	* javax/swing/JLabel.java
	(JLabel(String, Icon, int)): Set inheritsPopupMenu to true.

2006-06-28  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/key/dh/GnuDHPublicKey.java (str): New field.
	(toString): New method.
	* gnu/javax/crypto/key/dh/GnuDHPrivateKey.java (str): New field.
	(toString): New method.
	* gnu/javax/crypto/key/dh/GnuDHKey.java (str): New field.
	(toString): New method.
	* gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.java (encodePrivateKey):
	Handle case when Q is null.
	(decodePrivateKey): Likewise.
	* gnu/javax/crypto/key/dh/DHKeyPairX509Codec.java (encodePublicKey):
	Likewise.
	(decodePublicKey): Likewise.
	* gnu/javax/crypto/jce/GnuCrypto.java (run): Added AlgorithmParameters
	aliases for all block ciphers.
	* gnu/javax/crypto/jce/DiffieHellmanImpl.java (result): Changed to byte[].
	(engineDoPhase): Compute fully the shared secret.
	(checkState): New method.
	(reset): Likewise.
	(engineGenerateSecret()): Reset key-agreement before returning.
	(engineGenerateSecret(byte[],int)): Check for short-buffer.
	Reset key-agreement before returning.
	(engineGenerateSecret(String)): Reset key-agreement before returning.
	(engineInit(Key,SecureRandom)): Call reset() before returning.
	* gnu/javax/crypto/jce/params/BlockCipherParameters.java (log): New field.
	(engineInit): Replace printing to System.out with conditional logging.
	* gnu/javax/crypto/jce/cipher/CipherAdapter.java (engineInitHandler):
	When the key-size is not specified, attempt best effort to find a suitable
	value among those advertised by the cipher before setting it to the length
	of provided key material.

2006-06-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/DefaultTableColumnModel.java
	(changeEvent): Don't initialize yet, removed FIXME,
	(fireColumnModelChanged): Initialize changeEvent if necessary.

2006-06-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Thread.java:
	(getAllStackTraces()): Implemented.
	(getStackTrace()): Likewise.
	
2006-06-27  Tania Bento  <tbento@redhat.com>

	* java/awt/Component.java
	(setComponentOrientation): NPE should not be thrown.

2006-06-27  Tom Tromey  <tromey@redhat.com>

	* configure.ac: Create gjar, gnative2ascii, gserialver.
	* tools/gappletviewer.in: Quote $@.
	* tools/gkeytool.in: Likewise.
	* tools/gjarsigner.in: Likewise.
	* tools/gjar.in: New file.
	* tools/gnative2ascii.in: Likewise.
	* tools/gserialver.in: Likewise.
	* tools/Makefile.am (bin_PROGRAMS): Added gjar, gnative2ascii,
	gserialver.
	(bin_SCRIPTS): Likewise.

2006-06-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/ThreadMXBean.java:
	(getThreadInfo(long[])): Corrected return type.
	(getThreadInfo(long[], int)): Likewise.

2006-06-27  Mark Wielaard  <mark@klomp.org>

	* java/awt/datatransfer/Clipboard.java (addFlavorListener): Do
	nothing when listener is null.
	(removeFlavorListener): Likewise.

	* java/awt/datatransfer/DataFlavor.java
	(getRepresentationClassFromMime): Renamed to
	getRepresentationClassFromMimeThrows.
	(isRepresentationClassInputStream): Use Class.isAssignableFrom().
	(isRepresentationClassSerializable): Likewise.
	(isFlavorJavaFileListType): Likewise and check primary and
	subtype.
	(getParameter): Parameters are separated by semi-colons.
	(DataFlavor(Class,String,String)): Do some sanity checks.
	(DataFlavor(String,String,ClassLoader)): Call
	getRepresentationClassFromMimeThrows.
	(DataFlavor(String)): Likewise.
	(equals(DataFlavor)): Special case primary type text and charset
	parameter.
	
2006-06-27  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Component.java
	(setName): Fire required PropertyChangeEvent,
	* java/awt/Label.java
	(getText): Removed redundant brackets,
	(generateName): New method (override),
	(nextLabelNumber): New field,
	(getUniqueLong): New method.

2006-06-27  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/swing/SwingComponentPeer.java
	(createImage): Delegate this to the parent.
	(handleEvent): Only handle PAINT/UPDATE events when the
	component is actually showing.
	(hide): Repaint the parent after hiding a component.
	(prepareImage): Have only one return point.
	(setVisible): Delegate to show() and hide().
	(createVolatileImage): Added null check to avoid NPE.

2006-06-27  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Label.java: Reformatted source code.

2006-06-27  Roman Kennke  <kennke@aicas.com>

	* java/awt/image/BufferedImage.java
	(getSource): Use a fixed DirectColorModel to deliver the
	RGB pixels to the ImageConsumer.

2006-06-27  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Point.java
	(setLocation(double, double)): Round to nearest integer coordinates.

2006-06-27  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Component.java
	(minSizeSet): New field,
	(maxSize): Likewise,
	(maxSizeSet): Likewise,
	(isMaximumSizeSet): Implemented,
	(isMinimumSizeSet): Likewise,
	(isPreferredSizeSet): Likewise,
	(setMaximumSize): Likewise,
	(setMinimumSize): Likewise,
	(setPreferredSize): Likewise. 

2006-06-27  Roman Kennke  <kennke@aicas.com>

	* javax/imageio/spi/IIORegistry.java
	(IIORegistry): Added BMP codec.

2006-06-27  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JComponent.java
	(firePropertyChange(String,char,char)): New override method.

2006-06-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Thread.java:
	(getState()): New method.
	* java/lang/management/ClassLoadingMXBean.java:
	Corrected class documentation.
	* java/lang/management/ManagementFactory.java:
	Added new temporary marked stub to get thread bean.
	* java/lang/management/OperatingSystemMXBean.java:
	Corrected class documentation.
	* java/lang/management/RuntimeMXBean.java:
	Corrected class documentation.
	* java/lang/management/ThreadInfo.java,
	* java/lang/management/ThreadMXBean.java:
	New classes.
	* vm/reference/java/lang/VMThread.java:
	(getState()): New method.
	* vm/reference/java/lang/management/VMThreadInfo.java:
	New VM class.

2006-06-26  Sven de Marothy  <sven@physto.se>

	* gnu/javax/imageio/gif/GIFFile.java
	* gnu/javax/imageio/gif/GIFImageReader.java
	* gnu/javax/imageio/gif/GIFImageSpi.java
	* gnu/javax/imageio/gif/GIFStream.java
	New files.
	* javax/imageio/spi/IIORegistry.java: Load new GIF decoder plugin.

2006-06-26  Tania Bento  <tbento@redhat.com>

	* java/awt/List.java
	(List): A list should have at least 4 visible rows.	
	(replaceItem): Should throw an ArrayIndexOutOfBoundsException,
	not an IllegalArgumentException.
	(makeVisible): Should not throw an IllegalArgumentException if
	the specified index is out of range.

2006-06-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(getNextMatch): Reimplemented to perform a circular search for the 
	matching item.

2006-06-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(init): Set default value for visibleRowCount to 8,
	(setVisibleRowCount): Fire PropertyChangeEvent when value changes.

2006-06-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(valueIsAdjusting): Removed,
	(init): Removed initialization of valueIsAdjusting field,
	(getValueIsAdjusting): Fetch value from selection model,
	(setValueIsAdjusting): Store value in selection model.

2006-06-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(installKeyboardActions): Rewritten to fit with the
	ActionMap/InputMap architecture.
	(uninstallKeyboardActions): Implemented.
	(ListAction): Made private. Added TODO for splitting
	up this bulk Action.
	(ListAction.ListAction): New constructor. This one
	takes a cmd parameter to be installed as actionCommand.

2006-06-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/key/rsa/RSAKeyPairRawCodec.java: Remove RCS Revision.
	* gnu/javax/crypto/assembly/DeflateTransformer.java: Likewise.

2006-06-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.java: Source formatting.
	* gnu/javax/crypto/jce/GnuSasl.java: Likewise.
	* gnu/javax/crypto/jce/GnuCrypto.java: Likewise.
	* gnu/javax/crypto/jce/DiffieHellmanImpl.java: Likewise.
	* gnu/javax/crypto/jce/spec/UMac32ParameterSpec.java: Likewise.
	* gnu/javax/crypto/jce/spec/TMMHParameterSpec.java: Likewise.
	* gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.java: Likewise.
	* gnu/javax/crypto/jce/sig/DHKeyFactory.java: Likewise.
	* gnu/javax/crypto/jce/prng/UMacRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/prng/ICMRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/prng/FortunaImpl.java: Likewise.
	* gnu/javax/crypto/jce/prng/CSPRNGSpi.java: Likewise.
	* gnu/javax/crypto/jce/prng/ARCFourRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/params/DERWriter.java: Likewise.
	* gnu/javax/crypto/jce/params/DERReader.java: Likewise.
	* gnu/javax/crypto/jce/params/DEREncodingException.java: Likewise.
	* gnu/javax/crypto/jce/params/BlockCipherParameters.java: Likewise.
	* gnu/javax/crypto/jce/mac/UMac32Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/UHash32Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/TMMH16Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacTwofishImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacTripleDESImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacSquareImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacSerpentImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacRijndaelImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacKhazadImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacDESImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacCast5Impl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacBlowfishImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacAnubisImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/MacAdapter.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacTigerSpi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacSHA512Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacSHA384Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacSHA256Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacSHA160Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacMD5Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacMD4Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacMD2Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacHavalSpi.java: Likewise.
	* gnu/javax/crypto/jce/keyring/GnuKeyring.java: Likewise.
	* gnu/javax/crypto/jce/key/TwofishSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/TwofishKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/TripleDESKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SquareSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SquareKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SerpentSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SerpentKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/RijndaelSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/RijndaelKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/KhazadSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/KhazadKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/DESSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/DESKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/DESedeSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/Cast5KeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/BlowfishKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/AnubisKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/cipher/TwofishSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/TripleDESSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/SquareSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/SerpentSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/RijndaelSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/PBES2.java: Likewise.
	* gnu/javax/crypto/jce/cipher/NullCipherSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/KhazadSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/DESSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/CipherAdapter.java: Likewise.
	* gnu/javax/crypto/jce/cipher/Cast5Spi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/BlowfishSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/ARCFourSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/AnubisSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/AESSpi.java: Likewise.

2006-06-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(setLayoutOrientation): Check for valid argument.

2006-06-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(firePropertyChange(String,int,int)): New method. Overrides
	Component method and makes it public.
	(firePropertyChange(String,boolean,boolean)): Likewise.

2006-06-25  Vivek Lakshmanan  <vivekl@redhat.com>
	
	* gnu/java/security/.cvsignore: New File.
	* gnu/java/security/Configuration.java.in: New File.
	* gnu/java/security/Properties.java: Change import from 
	gnu.classpath.Configuration to gnu.java.security.Configuration.
	* gnu/java/security/hash/Whirlpool.java: Likewise.
	* gnu/java/security/jce/sig/EncodedKeyFactory.java: Likewise.
	* gnu/java/security/jce/sig/SignatureAdapter.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairGenerator.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/dss/DSSPrivateKey.java: Likewise.
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java: Likewise.
	* gnu/java/security/pkcs/PKCS7SignedData.java: Likewise.
	* gnu/java/security/pkcs/SignerInfo.java: Likewise.
	* gnu/java/security/provider/PKIXCertPathValidatorImpl.java: Likewise.
	* gnu/java/security/sig/rsa/EMSA_PSS.java: Likewise.
	* gnu/java/security/sig/rsa/RSAPSSSignature.java: Likewise.
	* gnu/java/security/util/Base64.java: Likewise.
	* gnu/java/security/x509/X509CRL.java: Likewise.
	* gnu/java/security/x509/X509CRLEntry.java: Likewise.
	* gnu/java/security/x509/ext/Extension.java: Likewise.
	* gnu/javax/crypto/cipher/Anubis.java: Likewise.
	* gnu/javax/crypto/cipher/BaseCipher.java: Likewise.
	* gnu/javax/crypto/cipher/Khazad.java: Likewise.
	* gnu/javax/crypto/cipher/Rijndael.java: Likewise.
	* gnu/javax/crypto/cipher/Twofish.java: Likewise.
	* gnu/javax/crypto/jce/keyring/GnuKeyring.java: Likewise.
	* gnu/javax/crypto/jce/prng/ICMRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/prng/UMacRandomSpi.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/keyring/Entry.java: Likewise.
	* gnu/javax/crypto/keyring/EnvelopeEntry.java: Likewise.
	* gnu/javax/crypto/keyring/GnuPrivateKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/GnuPublicKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordEncryptedEntry.java: Likewise.
	* gnu/javax/crypto/mac/OMAC.java: Likewise.
	* gnu/javax/crypto/pad/BasePad.java: Likewise.
	* gnu/javax/crypto/pad/PKCS1_V1_5.java: Likewise.
	* gnu/javax/crypto/pad/PKCS7.java: Likewise.
	* gnu/javax/crypto/pad/TBC.java: Likewise.
	* gnu/javax/crypto/prng/CSPRNG.java: Likewise.
	* gnu/javax/crypto/sasl/SaslInputStream.java: Likewise.
	* gnu/javax/crypto/sasl/SaslOutputStream.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPClient.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPServer.java: Likewise.
	* gnu/javax/security/auth/login/ConfigFileParser.java: Likewise.
	* gnu/javax/security/auth/login/ConfigFileTokenizer.java: Likewise.
	* gnu/javax/security/auth/login/GnuConfiguration.java 
	(getAppConfigurationEntry): Change reference to 
	gnu.classpath.Configuration.DEBUG to gnu.java.security.Configuration.DEBUG.
	(getConfigFromUserHome): Likewise.
	(getInputStreamFromURL): Likewise.
	(getUserHome): Likewise.
	(init): Likewise.
	(processSecurityProperties): Likewise.
	(processSystemProperty): Likewise.
	(processUserHome): Likewise.
	* configure.ac: Add gnu/java/security/Configuration.java to AC_CONFIG_FILES list.
	* lib/Makefile.am: Remove gnu/java/security/Configuration.java when required.
	

2006-06-25  Carsten Neumann  <cn-develop@gmx.net>

	* javax/swing/text/DefaultCaret.java (isActive): New method.

2006-06-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/ClassLoadingMXBeanImpl.java,
	* java/lang/management/ClassLoadingMXBean.java:
	(getTotalLoadedClassCount()): Corrected return type.
	(getUnloadedClassCount()): Likewise.
	* vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java:
	(getUnloadedClassCount()): Likewise.
	
2006-06-25  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/cipher/WeakKeyException.java: Source formatting.
	* gnu/javax/crypto/cipher/Twofish.java: Likewise.
	* gnu/javax/crypto/cipher/TripleDES.java: Likewise.
	* gnu/javax/crypto/cipher/Square.java: Likewise.
	* gnu/javax/crypto/cipher/Serpent.java: Likewise.
	* gnu/javax/crypto/cipher/Rijndael.java: Likewise.
	* gnu/javax/crypto/cipher/NullCipher.java: Likewise.
	* gnu/javax/crypto/cipher/Khazad.java: Likewise.
	* gnu/javax/crypto/cipher/IBlockCipherSpi.java: Likewise.
	* gnu/javax/crypto/cipher/IBlockCipher.java: Likewise.
	* gnu/javax/crypto/cipher/DES.java: Likewise.
	* gnu/javax/crypto/cipher/CipherFactory.java: Likewise.
	* gnu/javax/crypto/cipher/Cast5.java: Likewise.
	* gnu/javax/crypto/cipher/Blowfish.java: Likewise.
	* gnu/javax/crypto/cipher/BaseCipher.java: Likewise.
	* gnu/javax/crypto/cipher/Anubis.java: Likewise.

2006-06-25  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/assembly/TransformerException.java: Source formatting.
	* gnu/javax/crypto/assembly/Transformer.java: Likewise.
	* gnu/javax/crypto/assembly/Stage.java: Likewise.
	* gnu/javax/crypto/assembly/PaddingTransformer.java: Likewise.
	* gnu/javax/crypto/assembly/Operation.java: Likewise.
	* gnu/javax/crypto/assembly/ModeStage.java: Likewise.
	* gnu/javax/crypto/assembly/LoopbackTransformer.java: Likewise.
	* gnu/javax/crypto/assembly/Direction.java: Likewise.
	* gnu/javax/crypto/assembly/DeflateTransformer.java: Likewise.
	* gnu/javax/crypto/assembly/CascadeTransformer.java: Likewise.
	* gnu/javax/crypto/assembly/CascadeStage.java: Likewise.
	* gnu/javax/crypto/assembly/Cascade.java: Likewise.
	* gnu/javax/crypto/assembly/Assembly.java: Likewise.

2006-06-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS,
	* doc/vmintegration.texinfo:
	Updated with information on new VM interface.
	* gnu/java/lang/management/ClassLoadingMXBeanImpl.java,
	* java/lang/management/ClassLoadingMXBean.java:
	New files implementing the class loading bean.
	* java/lang/management/ManagementFactory.java:
	(getClassLoadingMXBean()): Implemented.
	* vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java:
	New VM interface file.

2006-06-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/RuntimeMXBeanImpl.java:
	(isBootClassPathSupported()): Use SystemProperties
	rather than System.getProperty.
	
2006-06-24  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/Properties.java: Source formatting.
	* gnu/java/security/Registry.java: Likewise.

2006-06-24  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/util/Util.java: Source formatting.
	* gnu/java/security/util/SimpleList.java: Likewise.
	* gnu/java/security/util/Sequence.java: Likewise.
	* gnu/java/security/util/PRNG.java: Likewise.
	* gnu/java/security/util/ExpirableObject.java: Likewise.
	* gnu/java/security/util/Base64.java: Likewise.
	* gnu/java/security/sig/SignatureFactory.java: Likewise.
	* gnu/java/security/sig/ISignatureCodec.java: Likewise.
	* gnu/java/security/sig/ISignature.java: Likewise.
	* gnu/java/security/sig/BaseSignature.java: Likewise.
	* gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java: Likewise.
	* gnu/java/security/sig/rsa/RSAPSSSignature.java: Likewise.
	* gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.java: Likewise.
	* gnu/java/security/sig/rsa/RSA.java: Likewise.
	* gnu/java/security/sig/rsa/EMSA_PSS.java: Likewise.
	* gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.java: Likewise.
	* gnu/java/security/sig/rsa/EME_PKCS1_V1_5.java: Likewise.
	* gnu/java/security/sig/dss/DSSSignatureRawCodec.java: Likewise.
	* gnu/java/security/sig/dss/DSSSignature.java: Likewise.
	* gnu/java/security/provider/X509CertificateFactory.java: Likewise.
	* gnu/java/security/provider/PKIXCertPathValidatorImpl.java: Likewise.
	* gnu/java/security/provider/Gnu.java: Likewise.
	* gnu/java/security/prng/RandomEventListener.java: Likewise.
	* gnu/java/security/prng/RandomEvent.java: Likewise.
	* gnu/java/security/prng/PRNGFactory.java: Likewise.
	* gnu/java/security/prng/MDGenerator.java: Likewise.
	* gnu/java/security/prng/LimitReachedException.java: Likewise.
	* gnu/java/security/prng/IRandom.java: Likewise.
	* gnu/java/security/prng/EntropySource.java: Likewise.
	* gnu/java/security/prng/BasePRNG.java: Likewise.

2006-06-23  Francis Kung  <fkung@redhat.com>

	* examples/gnu/classpath/examples/java2d/J2dBenchmarkGUI.java
	(Harness.actionPerformed): Process additional options.
	(J2dBenchmarkWrapper): Defer init call until after options are processed.
	(J2dBenchmarkWrapper.setAlias): New method.
	(J2dBenchmarkWrapper.setComposite): New method.
	(J2dBenchmarkWrapper.setFill): New method.
	(J2dBenchmarkWrapper.setRotation): New method.
	(J2dBenchmarkWrapper.setShear): New method.
	(J2dBenchmarkWrapper.setStroke): New method.
	(J2dBenchmarkWrapper.setTranslation): New method.
	(run): Add additional options to GUI.
	* examples/gnu/classpath/examples/java2d/J2dBenchmark.java:
	Added protected fields for various options.
	(GraphicsTest.runSet_noClipping): Reset graphics settings between tests.
	(GraphicsTest.runSet_withClipping): Reset graphics settings between tests.
	(GraphicsTest.runSet_zeroClipping): Reset graphics settings between tests.
	(getNextColor): Renamed to setRandom.
	(init): Load additional image for texturing if needed.
	(loadBufferedImage): New method.
	(main): Accept additional command-line switches.
	(prepareGraphics): New method.
	(resetGraphics): New method.
	(runTestSuite): Accept additional image-processing options.
	(setRandom): Renamed from getNextColor; generate various random options
	(test_drawArc): Rename getNextColor to setRandom.
	(test_drawCubic): Likewise.
	(test_drawEllipse): Likewise.
	(test_drawGeneralPath): Likewise.
	(test_drawImage): Likewise.
	(test_drawLine): Likewise.
	(test_drawQuadCurve): Likewise.
	(test_drawRectangle): Likewise.
	(test_drawRoundRectangle): Likewise.
	(test_drawTransparentImage): Likewise.
	(test_fillArc): Rename getNextColor to setRandom.
	(test_fillEllipse): Likewise.
	(test_fillGeneralPath): Likewise.
	(test_fillRectangle): Likewise.
	(test_fillRoundRectangle): Likewise.
	(TestRecorder.getAverage): Round the average time.

2006-06-23  Tom Tromey  <tromey@redhat.com>

	* java/util/logging/LoggingMXBean.java: New file.
	* java/util/logging/LogManager.java (LOGGING_MXBEAN_NAME): New field.
	(loggingBean): New field.
	(getLoggingMXBean): New method.

2006-06-23  Tania Bento  <tbento@redhat.com>

	* java/awt/TextField.java
	(TextField): Default number of columns should be 0, not 1.
	(TextField): Check if number of columns given as argument
	is valid (>= 0) and set the number of columns accordingly.
	(TextField): Check if the string passed is null. If it is, 
	set columns to 0, else columns is set to the length of
	the string.

2006-06-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(InternalFramePropertyChangeListener.propertyChange):
	Don't call getPropertyName() repeatedly. Added null checks
	to avoid NPEs. Call closeFrame() if the closed property
	changes.

2006-06-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(maxTransition): Removed.
	(JInternalFrame): Set maxium=false. Initialize desktopIcon here.
	Don't initialize storedBounds here.
	(dipose): Rewritten to correctly dispose the JInternalFrame.
	(getDesktopIcon): Don't initialize desktopIcon here.
	(getLayer): Delegate to JLayeredPane.getLayer().
	(getNormalBounds): Return bounds when storedBounds == null,
	otherwise storedBounds.
	(hide): Don't change selection. Also hide the desktopIcon.
	(moveToBack): Call getParent() only once.
	(moveToFront): Call getParent() only once.
	(pack): Call validate() to make sure that the layout is
	propagated to the children.
	(setClosed): Fire InternalFrameEvent first, before the
	PropertyVetoEvent.
	(setJMenuBar): Fire PropertyChangeEvent for this property.
	(setLayer): Delegate to JLayeredPane.
	(setLayeredPane): Check for null and throw IllegalArgumenException.
	(setMaximum): Remove handling of maxTransition and normalBounds.
	Should probably be done in the UI.
	(setNormalBounds): Store Rectangle object directly, not a copy.
	(setRootPane): Go into rootPaneCheckingEnabled mode so that
	adding the RootPane doesn't add it to the contentPane.
	Fire PropertyChangeEvent.
	(setSelected): Added condition for when this property must not
	be changed.
	(show): Don't ask the DesktopPane to select the frame. Moved
	code around to fire InternalFrameEvent before actually calling
	super.show(). Also make the desktopIcon visible.
	(setTitle): Fire PropertyChangeEvent unconditionally.

2006-06-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLayeredPane.java
	(getPosition): Moved code around to avoid unnecessary method calls.
	(setPosition): Delegate to setLayer().
	(insertIndexForLayer(int,int)): Delegate to new private helper method.
	(insertIndexForLayer(Component,int,int)): New helper method
	to support the use of setComponentZOrder() which doesn't remove
	the component and thus the insertIndexForLayer must ignore
	the component to be moved to get the index right.
	(setLayer): Added check to prevent unnecessary execution of
	method body. Changed to update the component order here.
	Added repaint() to make sure that the update becomes visible.
	(addImpl): Call setLayer() only when a constraint has been specified.
	Validate and repaint the JLayeredPane.

2006-06-23  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(getComponentZOrder): Use ncomponents instead of
	component.length so that we don't consider the empty space
	after the last component.

2006-06-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(vetoableChangeSupport): New field.
	(removeVetoableChangeListener): Rewritten to use
	vetoableChangeSupport.
	(addVetoableChangeListener): Rewritten to use
	vetoableChangeSupport.
	(fireVetoableChange): Rewritten to use
	vetoableChangeSupport.
	(addPropertyChangeListener): Removed. This is handled in
	Component already.
	(firePropertyChange(String,boolean,boolean)): Likewise.
	(firePropertyChange(String,char,char)): Likewise.
	(firePropertyChange(String,int,int)): Likewise.
	(revalidate): Don't do anything when the commponent has no
	parent.

2006-06-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JLabel.java: Updated API docs.

2006-06-22  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/Insets.java: Updated copyright year.
	(toString): Changed string, removed a line from the 
	documentation.

2006-06-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(AbstractDocument): Set the i18n document property.
	(removeImpl): Added checks for correct boundaries.

2006-06-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/PlainDocument.java
	(rootElement): Changed type to Element.
	(tabSize): Removed field. This is stored in the document properties
	instead.
	(PlainDocument): Set tabSize property. Init rootElement without
	cast.
	(insertUpdate): Rewritten. The previous implementation did not
	handle some corner cases properly and was a mess.
	(removeUpdate): Cast rootElement to BranchElement.

2006-06-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicLabelUI.java
	(installKeyboardActions): Implemented,
	(uninstallKeyboardActions): Implemented,
	(propertyChange): Add handling for 'displayedMnemonic' and 'labelFor'
	properties.

2006-06-22  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/JMenu.java:
	(removeAll): Added check for popupMenu not being null.

2006-06-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JLabel.java
	(getText): Updated API docs,
	(setText): Corrected the check for an unchanged value, and the update 
	of the displayedMnemonicIndex.

2006-06-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JLabel.java
	(setDisplayedMnemonic(int)): Fire property change event AFTER updating 
	field,
	(setDisplayedMnemonicIndex): Modified argument checking to handle case
	where label text is null.

2006-06-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JLabel.java
	(setDisplayedMnemonic): Updated API docs,
	(getDisplayedMnemonic): Removed unnecessary type-cast,
	(setDisplayedMnemonicIndex): Removed unnecessary validation, 
	(getDisplayedMnemonicIndex): Updated API docs.

2006-06-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultListSelectionModel.java
	(getSelectionMode): Updated API docs,
	(setAnchorSelectionIndex): Added ListSelectionEvent generation,
	(addSelectionInterval): If mode is SINGLE_SELECTION, just call 
	setSelectionInterval(),
	(setSelectionInterval): Reimplemented SINGLE_SELECTION and 
	SINGLE_INTERVAL_SELECTION cases.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(BranchElement.numChildren): New field.
	(BranchElement.BranchElement): Initialize children array with
	one element (that's the least number of elements that makes sense).
	Initialize numChildren.
	(BranchElement.children): Use numChildren as boundary.
	(BranchElement.getElement): Use numChildren as boundary.
	(BranchElement.getElementCount): Use numChildren as boundary.
	(BranchElement.getElementIndex): Use numChildren as boundary.
	(BranchElement.getEndOffset): Use numChildren as boundary.
	(BranchElement.getStartOffset): Use numChildren as boundary.
	(BranchElement.positionToElement): Use numChildren as boundary.
	(BranchElement.replace): Handle the children array more efficiently
	by growing in blocks > 1, and reusing space from removed elements.
	(LeafElement.startDelta): Removed.
	(LeafElement.endDelta): Removed.
	(LeafElement.LeafElement): Removed handling of deltas.
	(LeafElement.getEndOffset): Likewise.
	(LeafElement.getStartOffset): Likewise.
	* javax/swing/text/JTextComponent.java
	(setDocument): Added locking of the old document to avoid dangling
	notification beeing delivered while the document is beeing
	disconnected.
	(getScrollableTracksViewportWidth): Fixed condition.
	* javax/swing/text/PlainDocument.java
	(createDefaultRoot): Create elements without AttributeSet.
	* javax/swing/text/rtf/RTFParser.java
	(parseFile): Handle slightly incorrect RTF gracefully.
	* javax/swing/text/rtf/RTFScanner.java
	(lastToken): New field.
	(readTokenImpl): New method.
	(peekToken): New method.
	(readToken): Changed to call readTokenImpl or return the lastToken
	if there's one present.

2006-06-21  Tania Bento  <tbento@redhat.com>

	* javax/swing/JMenu.java
	(remove): An IllegalArgumentException should be thrown if
	either index < 0 or if index > 0 and there are no menu
	components. Also, a check was added that ensures there are
	menu components before removing the desired the component.

2006-06-21  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultCaret.java
	(install): Added check to prevent NPE.
	(propertyChange): Added checks to prevent NPEs.

2006-06-21  Tania Bento  <tbento@redhat.com>

	* javax/swing/JMenu.java
	Changed instantiation of popupMenu to null.
	(JMenu): Instantiated popupMenu to new JPopupMenu.
	(JMenu): Instantiated popupMenu to new JPopupMenu.	
	(add): Changed popupMenu to getPopupMenu().
	(add): Changed popupMenu to getPopupMenu().
	(add): Changed popupMenu to getPopupMenu().
	(add): Changed popupMenu to getPopupMenu().
	(remove): Changed popupMenu to getPopupMenu().
	(remove): Changed popupMenu to getPopupMenu().
	(insert): Changed popupMenu to getPopupMenu().
	(setSelectedHelper): Changed popupMenu to getPopupMenu().
	(isPopupMenuVisible): Changed popupMenu to getPopupMenu().
	(setPopupMenuVisible): Changed popupMenu to getPopupMenu().
	(getMenuComponentCount): Changed popupMenu to getPopupMenu().
	(getMenuComponents): Changed popupMenu to getPopupMenu().
	(getPopupMenu): Check first if popupMenu is null and if so,
	instantiate it to a new JPopupMenu and set the invoker.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java
	(popupMenuWillBecomeVisible): Component Listener should only
	be added to the root container if the root container is not 
	null. This avoids a null pointer exception.

2006-06-21  Tania Bento  <tbento@redhat.com>

	* javax/swing/JMenu.java
	(JMenu): Delay should be set to 200, not default of 0.
	(JMenu): Delay should be set to 200, not default of 0.
	(JMenu): Delay should be set to 200, not default of 0.
	(JMenu): Delay should be set to 200, not default of 0.	
	(remove): Added check that index >= 0 before removing
	the component.
	(getItem): Return null if item count equals 0.
	(isTearOff): Should throw new error and not return false.
	(getMenuComponent): Return null if popupMenu is null or
	if there are no menu components.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* java/awt/font/FontRenderContext.java:
	(equals): Added special conditions for affineTransform beeing
	null.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/UIManager.java
	(MultiplexUIDefaults.clear): Removed method. The fallback UIDefaults
	must not be cleared.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalUtils.java
	(paintHorizontalGradient): Use paintHorizontalGradient2D when
	Graphics2D is available. Use fillRect instead of drawLine, this
	is much faster.
	(paintVerticalGradient): Use paintHorizontalGradient2D when
	Graphics2D is available. Use fillRect instead of drawLine, this
	is much faster.
	(paintHorizontalGradient2D): New method. Paints gradient
	using Graphics2D functions.
	(paintVerticalGradient2D): New method. Paints gradient
	using Graphics2D functions.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonListener.java
	(propertyChange): Create a TextLayout and store it in the button
	when the 'text' property changes.
	* javax/swing/plaf/basic/BasicButtonUI.java
	(paintText): Call BasicGraphicsUtils utility method for
	drawing strings, instead of Graphics.drawString().
	* javax/swing/plaf/basic/BasicGraphicsUtils.java
	(CACHE_TEXT_LAYOUT): New constant field. Used as a key for storing
	cached text layouts as client properties in JComponents.
	(drawString(JComponent,Graphics,String,int,int)): New helper method.
	(drawStringUnderlineCharAt): New helper method.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(PropertyChangeHandler.propertyChange): Update cached text layout
	when 'text' property changes. Use equals() instead of == for
	string comparison.
	(paintText): Use new BasicGraphicsUtils methods for painting
	the cached text layout.
	(installListeners): Call super.installListeners() and remove
	the unneeded listener installs.
	(uninstallListeners): Call super.uninstallListeners() and remove
	the unneeded listener uninstalls.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(PropertyChangeHandler.propertyChange): Handle document listener
	update here.
	(background): Removed unneeded fields.
	(inactiveBackground): Remove unneeded fields.
	(installUI): Install the document listener. Slightly changed
	order of operations. Don't trigger modelChanged().
	(installDefaults): Only install properties when the
	current properties are null or instances of UIResource.
	(installListeners): Removed unnecessary listener installs.
	(installDocumentListeners): Removed unneeded method.
	(uninstallListeners): Removed unnecessary listener uninstalls.
	(modelChanged): Removed call to installDocumentListeners().	
	* javax/swing/plaf/basic/BasicTextFieldUI.java
	(propertyChange): Update the colors by fetching them from
	SharedUIDefaults. Fixed conditions.
	* javax/swing/plaf/basic/SharedUIDefaults.java
	(getColor): New method.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SizeSequence.java
	(SizeSequence): Initialize array with correct number of entries.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JSplitPane.java
	(setDividerLocation): Substract divider size when computing
	the absolute size.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintChildrenWithOverlap): Determine opaque property by
	calling the corresponding Component method, without requiring
	a JComponent.
	(paintChildrenOptimized): Removed old unneeded code.
	(paintImmediately): Use JComponent's convertRectangleToAncestor()
	method instead of SwingUtilities.convertRectangle(). This is
	more efficient.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(init): Call setText() instead of setting the property directly,
	so that listeners (especially in the UI) get notified.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/UIManager.java
	(MultiplexUIDefaults): New inner class.
	(currentUIDefaults): Changed type to be MultiplexUIDefaults.
	(userUIDefaults): Changed name to be lookAndFeelDefaults.
	(<cinit>): Call setLookAndFeel(String) instead of trying to load
	directly. Print stacktrace if something goes wrong.
	(get): Delegate call to currentUIDefaults.
	(getDefaults): If currentUIDefaults is null, then lazily instantiate
	it.
	(getUI): Delegate call to currentUIDefaults.
	(put): Delegate call to currentUIDefaults.
	(setLookAndFeel): Initialize currentUIDefaults with
	MultiplexUIDefaults. Set lookAndFeelDefaults.
	(setLookAndFeel): Use current thread's context classloader for
	loading the L&F.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(GapContentPosition.GapContentPosition): Replace
	Collections.binarySearch with call to local search() to make
	sure we find the first object that equals the searched object.
	(setPositionsInRange): Likewise.
	(adjustPositionsInRange): Likewise.
	(search): New helper method.

2006-06-21  Gary Benson  <gbenson@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java: Add security check.
	* gnu/java/awt/peer/qt/QtGraphics.java: Likewise.
	* gnu/java/awt/java2d/AbstractGraphics2D.java: Likewise.

2006-06-20  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/plugin/Makefile.am (libgcjwebplugin_la_CXXFLAGS): Define
	APPLETVIEWER_EXECUTABLE to gappletviewer.

2006-06-20  Tom Tromey  <tromey@redhat.com>

	PR classpath/28095:
	* java/net/URL.java (URL): Throw MalformedURLException if a
	RuntimeException is caught.  Chain exceptions.

2006-06-20  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
	(create): Added check to prevent Seg Fault. Should not
	set the label if it is null.
	* gnu/java/awt/peer/gtk/GtkLabelPeer.java
	(setText): Changed to be a non-native function. Calls
	setNativeText if the String parameter is non-null.
	(setNativeText): Replaces old native setText function.
	* include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: Regenerated.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setText): Removed.
	Replaced by Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeText.
	(Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeText): Replaced
	Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setText.

2006-06-20  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/JTextComponent.java
	(AccessibleJTextComponent): Rewrote all javadocs
	for this inner class.

2006-06-20  Francis Kung  <fkung@redhat.com>

	* examples/gnu/classpath/examples/java2d/J2dBenchmark.java:
	Changed many members to be protected.
	(J2dBenchmark): moved to init() instead.
	(init): New method.
	(main): Call init() after creating object
	(testComplete): New method.
	(test_drawArc): Use maxTests varialbe instead of constant.
	(test_drawCubicCurve): Likewise.
	(test_drawEllipse): Likewise.
	(test_drawGeneralPath): Likewise.
	(test_drawImage): Likewise.
	(test_drawLine): Likewise.
	(test_drawQuadCurve): Likewise.
	(test_drawRectangle): Likewise.
	(test_drawRoundRectangle): Likewise.
	(test_drawTransparentImage): Likewise.
	(test_fillArc): Likewise.
	(test_fillEllipse): Likewise.
	(test_fillGeneralPath): Likewise.
	(test_fillRectangle): Likewise.
	(test_fillRoundRectangle): Likewise.
	(GraphicsTest.runSetNoClipping): Added runCount parameter.
	(GraphicsTest.runSetWithClipping): Likewise.
	(GraphicsTest.runSetZeroClipping): Likewise.
	(GraphicsTest.run): Added checks for more option flags.
	* examples/gnu/classpath/examples/java2d/J2dBenchmarkGUI.java:
	New file.

2006-06-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(GapContentPosition.mark): New field.
	(GapContentPosition.index): Removed.
	(GapContentPosition.GapContentPosition): Changed to take the
	real offset as parameter. Added handling of reference counter.
	Try to cleanup before creating new instances.
	(getOffset): Delegate to the Mark method with same name.
	(Mark): New class, encapsulating a mark.
	(positionMarks): Removed field.
	(numMarks): Removed field.
	(marks): New field.
	(queueOfDeath): New field.
	(GapContent): Removed init of old fields, added init of new fields.
	(createPosition): Added check for validity of arguments.
	Create GapContentPosition directly with offset.
	(shiftEnd): Pass end of buffer directly to adjustPositionsInRange.
	(shiftGap): Pass end of buffer directly to adjustPositionsInRange.
	(shiftGapStartDown): Call resetMarksAtZero().
	(shiftGapEndUp): Call resetMarksAtZero().
	(replace): Don't call resetMarksAtZero().
	(setPositionInRange): Replaced by simpler algorithm, similar to
	adjustPositionsInRange.
	(adjustPositionsInRange): Adapted to use of Mark objects.
	(resetMarksAtZero): Reset all marks that point to zero instead
	of only the first one.
	(dumpMarks): Adjusted to dump Mark objects.
	(insertMark): Removed.
	(garbageCollect): New method. Cleans up the marks list.
	(binarySearch): Removed.

2006-06-20  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Added call to updateColor because
	Cairo seems to lose the current color.

2006-06-20  Gary Benson  <gbenson@redhat.com>

	* java/awt/Toolkit.java: Add security check.
	* gnu/java/awt/peer/gtk/GtkToolkit.java: Likewise.
	* gnu/java/awt/peer/qt/QtToolkit.java: Likewise.

2006-06-20  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/key/dss/DSSKey.java: Source formatting.
	* gnu/java/security/key/dss/DSSKeyPairGenerator.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairRawCodec.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairX509Codec.java: Likewise.
	* gnu/java/security/key/dss/DSSPrivateKey.java: Likewise.
	* gnu/java/security/key/dss/DSSPublicKey.java: Likewise.
	* gnu/java/security/key/dss/FIPS186.java: Likewise.
	* gnu/java/security/key/rsa/GnuRSAKey.java: Likewise.
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java: Likewise.
	* gnu/java/security/key/rsa/GnuRSAPublicKey.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairRawCodec.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java: Likewise.
	* gnu/java/security/key/IKeyPairCodec.java: Likewise.
	* gnu/java/security/key/IKeyPairGenerator.java: Likewise.
	* gnu/java/security/key/KeyPairCodecFactory.java: Likewise.
	* gnu/java/security/key/KeyPairGeneratorFactory.java: Likewise.

2006-06-19  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Should always use getRGB to get the pixels.
	getData returns an incorrect array of pixels.

2006-06-19  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/jce/hash/HavalSpi.java: Source formatting.
	* gnu/java/security/jce/hash/MD2Spi.java: Likewise.
	* gnu/java/security/jce/hash/MD4Spi.java: Likewise.
	* gnu/java/security/jce/hash/MD5Spi.java: Likewise.
	* gnu/java/security/jce/hash/MessageDigestAdapter.java: Likewise.
	* gnu/java/security/jce/hash/RipeMD128Spi.java: Likewise.
	* gnu/java/security/jce/hash/RipeMD160Spi.java: Likewise.
	* gnu/java/security/jce/hash/Sha160Spi.java: Likewise.
	* gnu/java/security/jce/hash/Sha256Spi.java: Likewise.
	* gnu/java/security/jce/hash/Sha384Spi.java: Likewise.
	* gnu/java/security/jce/hash/Sha512Spi.java: Likewise.
	* gnu/java/security/jce/hash/TigerSpi.java: Likewise.
	* gnu/java/security/jce/hash/WhirlpoolSpi.java: Likewise.
	* gnu/java/security/jce/prng/HavalRandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/MD2RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/MD4RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/MD5RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/RipeMD128RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/RipeMD160RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/SecureRandomAdapter.java: Likewise.
	* gnu/java/security/jce/prng/Sha160RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/Sha256RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/Sha384RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/Sha512RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/TigerRandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/WhirlpoolRandomSpi.java: Likewise.
	* gnu/java/security/jce/sig/DSSKeyFactory.java: Likewise.
	* gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java: Likewise.
	* gnu/java/security/jce/sig/DSSParameters.java: Likewise.
	* gnu/java/security/jce/sig/DSSRawSignatureSpi.java: Likewise.
	* gnu/java/security/jce/sig/EncodedKeyFactory.java: Likewise.
	* gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java: Likewise.
	* gnu/java/security/jce/sig/RSAKeyFactory.java: Likewise.
	* gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.java: Likewise.
	* gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.java: Likewise.
	* gnu/java/security/jce/sig/SignatureAdapter.java: Likewise.

2006-06-19  Raif S. Naffah  <raif@swiftdsl.com.au>

	* NEWS: Updated (delayed) for security tools and tools.texinfo.

2006-06-19  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(drawImage): Clip volatile image correctly.
	(drawVolatileImage): Added arguments for clipping.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(drawVolatileImage): Added arguments for clipping. Clip image
	correctly.
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h: Regenerated.

2006-06-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28035
	* java/rmi/server/UID.java (constructor): Synchronized
	the whole constructor on the UID class.

2006-06-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(addInvalidComponent): Only add component that are displayable,
	that have displayable parents and that have a validateRoot.
	Also, don't validate components that have a CellRendererPane
	ancestor.

2006-06-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/IconUIResource.java
	(IconUIResource): Throw IllegalArgumentException for null icon.

2006-06-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28035
	* java/rmi/server/UID.java (constructor): First increment
	uidCounter, and then use the value.

2006-06-18  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/GridBagLayout.java (AdjustForGravity): Implement.
	* java/awt/GridBagConstraints.java: Indent.

2006-06-18  Tom Tromey  <tromey@redhat.com>

	* native/jni/gconf-peer/.cvsignore: New file.

2006-06-18  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/getopt/Parser.java (handleLongOption):
	Also handle short options.

2006-06-18  Jim Huang  <jserv@kaffe.org>

	PR classpath/28076:
	* native/jni/gconf-peer/Makefile.am (libgconfpeer_la_LIBADD):
	Fixed typo.

2006-06-19  Mark Wielaard  <mark@klomp.org>

	* include/Makefile.am: gnu_java_util_prefs_gconf_%.h should depend
	on gnu/java/util/prefs/gconf/%.class.
	* Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1class: Fix
	chache typo, should be cache.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1keys):
	Declare tmp early.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1nodes):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1remove_1dir):
	Don't return a value for void function.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1add_1dir)
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists):
	Mark clazz as unused.  Return JNI_FALSE, not NULL for jboolean
	function.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class):
	Mark clazz ad unused.

2006-06-18  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/hash/Whirlpool.java: Source formatting.
	* gnu/java/security/hash/Tiger.java: Likewise.
	* gnu/java/security/hash/Sha512.java: Likewise.
	* gnu/java/security/hash/Sha384.java: Likewise.
	* gnu/java/security/hash/Sha256.java: Likewise.
	* gnu/java/security/hash/Sha160.java: Likewise.
	* gnu/java/security/hash/RipeMD160.java: Likewise.
	* gnu/java/security/hash/RipeMD128.java: Likewise.
	* gnu/java/security/hash/MD5.java: Likewise.
	* gnu/java/security/hash/MD4.java: Likewise.
	* gnu/java/security/hash/MD2.java: Likewise.
	* gnu/java/security/hash/IMessageDigest.java: Likewise.
	* gnu/java/security/hash/Haval.java: Likewise.
	* gnu/java/security/hash/HashFactory.java: Likewise.
	* gnu/java/security/hash/BaseHash.java: Likewise.

2006-06-18  Sven de Marothy  <sven@physto.se>

	* java/awt/event/KeyEvent.java:
	(VK_WINDOWS, VK_CONTEXT_MENU, VK_BEGIN): Add new keysym fields.
	*  natve/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
	Implement WINDOWS, ALT_GR and CONTEXT_MENU keysyms.

2006-06-18  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/util/Prime2.java: Removed.
	* gnu/java/security/key/dss/FIPS186.java: Remove unused imports.
	(generateParameters): Use isProbablePrime() in BigInteger instead of Prime2.
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java: Remove unused imports.
	(generate): Use isProbablePrime() in BigInteger instead of Prime2.
	* gnu/javax/crypto/key/dh/RFC2631.java: Remove unused imports.
	(generateParameters): Use isProbablePrime() in BigInteger instead of Prime2.
	* gnu/javax/crypto/key/srp6/SRPAlgorithm.java: Remove unused imports.
	(checkParams): Use isProbablePrime() in BigInteger instead of Prime2.
	* gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java: Remove unused imports.
	(generateParameters): Use isProbablePrime() in BigInteger instead of Prime2.
	* gnu/javax/net/ssl/provider/KeyPool.java: Remove unused imports.
	(generateRSAKeyPair): Use isProbablePrime() in BigInteger instead of Prime2.

2006-06-18  Sven de Marothy  <sven@physto.se>

	* java/awt/GridBagLayout.java (AdjustForGravity): Implement.
	* java/awt/font/TextMeasurer.java: Fix copyright date, 
	remove commented-out code.

2006-06-18  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	(FreetypeGlyphVector, clone): Implement cloning.
	(getGlyphLogicalBounds): Bounds should be offset to the glyph position.
	* java/awt/font/TextMeasurer.java: Implement.
	* java/awt/font/LineBreakMeasurer.java: 
	Reimplement to use TextMeasurer.
	* java/awt/font/TextLayout.java
	New constructors.
	(getBlackboxBounds, getLogicalHighlightShape): Reimplement.
	(getText, getFont): New private static methods.
	(setCharIndices): New method.
	* java/text/AttributedString.java
	(AttributedString): Fix constructor to stop at end point.
	
2006-06-12  Mario torre  <neugens at limasoftware.net>

	* gnu/java/util/prefs/GConfBasedPreferences.java: new class.
	* gnu/java/util/prefs/GConfBasedFactory.java: new class.
	* gnu/java/util/prefs/gconf/GConfNativePeer.java: new class.
	* gnu_java_util_prefs_gconf_GConfNativePeer.h: generated
	header file.
	* classpath/native/jni/gconf-peer/GConfNativePeer.c: new C file.
	* configure.ac: update to introduce new files. Added options
	to build gconf native peer used by the GConf preference backend.
	* include/Makefile.am: update to introduce new files.
	* native/jni/Makefile.am update to introduce new files.
	* scripts/check_jni_methods.sh: added three new ignored file
	from check.
	* native/jni/gconf-peer/Makefile.am: new Makefile needed to
	build gconf-peer shared library.

2006-06-17  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java:
	Use Integer.valueOf() instead of new Integer().
	* gnu/java/security/jce/sig/EncodedKeyFactory.java: Likewise.
	* gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.java: Likewise.
	* gnu/java/security/util/Sequence.java: Likewise.
	* gnu/java/security/x509/ext/GeneralNames.java: Likewise.
	* gnu/java/security/x509/X509Certificate.java: Likewise.
	* gnu/javax/crypto/assembly/ModeStage.java: Likewise.
	* gnu/javax/crypto/cipher/Anubis.java: Likewise.
	* gnu/javax/crypto/cipher/Blowfish.java: Likewise.
	* gnu/javax/crypto/cipher/Cast5.java: Likewise.
	* gnu/javax/crypto/cipher/DES.java: Likewise.
	* gnu/javax/crypto/cipher/Khazad.java: Likewise.
	* gnu/javax/crypto/cipher/NullCipher.java: Likewise.
	* gnu/javax/crypto/cipher/Rijndael.java: Likewise.
	* gnu/javax/crypto/cipher/Serpent.java: Likewise.
	* gnu/javax/crypto/cipher/Square.java: Likewise.
	* gnu/javax/crypto/cipher/TripleDES.java: Likewise.
	* gnu/javax/crypto/cipher/Twofish.java: Likewise.
	* gnu/javax/crypto/jce/cipher/CipherAdapter.java: Likewise.
	* gnu/javax/crypto/jce/cipher/PBES2.java: Likewise.
	* gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.java: Likewise.
	* gnu/javax/crypto/jce/prng/ICMRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/prng/UMacRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/sig/DHKeyPairGeneratorSpi.java: Likewise.
	* gnu/javax/crypto/keyring/AuthenticatedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/EncryptedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordEncryptedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordProtectedEntry.java: Likewise.
	* gnu/javax/crypto/mac/UHash32.java: Likewise.
	* gnu/javax/crypto/mac/UMac32.java: Likewise.
	* gnu/javax/crypto/mode/BaseMode.java: Likewise.
	* gnu/javax/crypto/mode/EAX.java: Likewise.
	* gnu/javax/crypto/prng/ICMGenerator.java: Likewise.
	* gnu/javax/crypto/prng/UMacGenerator.java: Likewise.
	* gnu/javax/crypto/sasl/srp/KDF.java: Likewise.
	* gnu/javax/security/auth/callback/ConsoleCallbackHandler.java: Likewise.
	* java/security/cert/X509CertSelector.java: Likewise.

2006-06-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/DynamicMBean.java:
	(setAttribute): Fixed to return void.
	* javax/management/MBeanFeatureInfo.java:
	New file.
	
2006-06-17  Raif S. Naffah  <raif@swiftdsl.com.au>

	On behalf of Vivek Lakshmanan <vivekl@redhat.com>
	* gnu/javax/crypto/jce/cipher/CipherAdapter.java
	(engineInit(int, Key, SecureRandom)): Seperate common initialization logic
	into engineInitHandler and reuse the code in
	engineInit(int, Key, AlgorithmSpec, SecureRandom).
	(engineInitHandler): New method.
	(engineInit(int, Key, AlgorithmParameterSpec, SecureRandom)): When param is
	null, use random or default information when possible.

2006-06-16  Francis Kung  <fkung@redhat.com>

	* examples/gnu/classpath/examples/swing/Demo.java:
	(mkButtonBar): Rename FillRect to JNIOverhead.
	(mkMenuBar): Rename FillRect to JNIOverhead.
	* examples/gnu/classpath/examples/swing/FillRect.java: Removed.
	* examples/gnu/classpath/examples/java2d/J2dBenchmark.java: New file.
	* examples/gnu/classpath/examples/java2d/JNIOverhead.java:
	Moved from old FillRect.

2006-06-16  Tom Tromey  <tromey@redhat.com>

	* tools/.cvsignore: Added new tool names.

2006-06-16  Tom Tromey  <tromey@redhat.com>

	* vm/reference/sun/reflect/misc/ReflectUtil.java: Moved...
	* vm/reference/sun/misc/ReflectUtil.java: ...from here.

2006-06-16  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/EventManager.java (getDefault): Redo
	instantiation so that EventManager is created when getDefault
	is first called.
	* gnu/classpath/jdwp/Jdwp.java (Thread): Force creation
	of EventManager.

2006-06-16  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/Jdwp.java (_initLock): New field.
	(_initCount): New field.
	(Jdwp): Don't set isDebugging until fully initialized.
	(subcomponentInitialized): New method.
	(run): Wait for PacketProcessor and JdwpConnection to
	startup, then set isDebugging, and then let this thread
	die.
	* gnu/classpath/jdwp/transport/JdwpConnection.java
	(run): Add synchronization notification.
	* gnu/classpath/jdwp/processor/PacketProcessor.java
	(run): Likewise.

2006-06-16  Tom Tromey  <tromey@redhat.com>

	* NEWS: Updated for JSR 166.
	* vm/reference/sun/reflect/Reflection.java (verifyMemberAccess):
	Removed.
	(getCallerClass): Now static.
	* vm/reference/sun/reflect/misc/ReflectUtil.java: New file.

2006-06-16  Kyle Galloway  <kgallowa@redhat.com>

	* gnu/classpath/jdwp/event/ExceptionEvent:
	Added Object instance to javadoc in constructor
	* gnu/classpath/jdwp/event/MethodEntryEvent:
	Ditto.
	* gnu/classpath/jdwp/event/MethodExitEvent:
	Ditto,
	* gnu/classpath/jdwp/event/SingleStepEvent:
	Ditto. 

2006-06-16  Tom Tromey  <tromey@redhat.com>

	* external/jsr166: Removed files from cvs trunk.

2006-06-16  Lillian Angel  <langel@redhat.com>

	* java/awt/FileDialog.java
	(FileDialog): Added @since tag to API docs.
	(FileDialog): Likewise.
	(FileDialog): Likewise.
	* java/awt/Font.java:
	Added @since tag to TYPE1_FONT field docs.
	* javax/swing/plaf/basic/BasicScrollBarUI.java:
	(isThumbRollover): Likewise.
	(setThumbRollover): Likewise.
	(getSupportsAbsolutePositioning): Likewise.
	* javax/swing/plaf/basic/BasicSliderUI.java:
	(isDragging): Likewise.

2006-06-16  Lillian Angel  <langel@redhat.com>

	* java/awt/FileDialog.java
	(FileDialog): Implemented.
	(FileDialog): Implemented.
	(FileDialog): Implemented.
	* java/awt/Font.java:
	Added TYPE1_FONT constant field.

2006-06-16  Lillian Angel  <langel@redhat.com>

	* java/awt/font/TextLayout.java:
	Removed unneeded imports.
	* javax/swing/plaf/basic/BasicScrollBarUI.java:
	Added new thumbRollover field.
	(mouseMoved): Added code to set thumbRollover field.
	(isThumbRollover): New function.
	(setThumbRollover): New function.
	(getSupportsAbsolutePositioning): Implemented. This
	needs to be changed once the feature has been 
	implemented.
	* javax/swing/plaf/basic/BasicSliderUI.java:
	Added new dragging field.
	(mouseDragged): Initialized dragging field.
	(isDragging): New function.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(focusGained): Marked as not implemented.
	(focusLost): Likewise.

2006-06-16  Kyle Galloway  <kgallowa@redhat.com>

	* gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.java:
	Added check for null ThreadId to avoid null pointer
	exception.

2006-06-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultComboBoxModel.java
	(removeElementAt): Set new selected item by calling setSelectedItem().

2006-06-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultButtonModel.java
	(setSelected): Use 'this', not null, for the item in the ItemEvent.

2006-06-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/ListDataEvent.java: updated API docs, plus
	(ListDataEvent): Handle case where index0 > index1,
	(toString): Implemented.

2006-06-16  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/metal/MetalMenuBarUI.java:
	(update): Added subexpression to if-statement.

2006-06-16  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicRadioButtonUI.java:
	(installDefaults): Removed unneccessary code.
	(paint): Removed complex if-cascade, revert to default icon if
	icon property is not set.
	(getPreferredSize): New method.

2006-06-16  Roman Kennke  <kennke@aicas.com>

	PR 28027
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Don't use setClip() but instead clipRect() to
	intersect the current clip with a new one.

2006-06-15  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac: Rename appletviewer to gappletviewer, jarsigner to
	gjarsigner and keytool to gkeytool.
	* doc/tools.texinfo: Add note about tool exectable names.
	* tools/Makefile.am: Rename appletviewer to gappletviewer,
	jarsigner to gjarsigner and keytool to gkeytool.
	* tools/appletviewer.in: Rename ...
	* tools/gappletviewer.in: New file.
	* tools/jarsigner.in: Rename ...
	* tools/gjarsigner.in: New file.
	* tools/keytool.in: Rename ...
	* tools/gkeytool.in: New file.
	* tools/toolwrapper.c: Simplify TOOLS_ZIP macro.

2006-06-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/AttributeList.java:
	Add serialization UID.
	* javax/management/DynamicMBean.java:
	New file.
	* javax/management/JMRuntimeException.java:
	Add serialization UID and correct name
	of serialized field.
	* javax/management/MBeanInfo.java: New file.
	
2006-06-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/AttributeList.java,
	* javax/management/JMRuntimeException.java,
	* javax/management/RuntimeOperationsException.java:
	New files.
	
2006-06-15  Lillian Angel  <langel@redhat.com>

	* java/awt/font/TextLayout.java:
	DEFAULT_CARET_POLICY changed to be public static final.

2006-06-15  Tania Bento  <tbento@redhat.com>

	* javax/swing/plaf/metal/MetalScrollButton.java
	(MetalScrollButton): Should set 'focusable' to false.

2006-06-15  Tania Bento  <tbento@redhat.com>

	* javax/swing/plaf/basic/BasicArrowButton.java
	(BasicArrowButton): Should set 'focusable' to false.
	(BasicArrowButton): Should set 'focusable' to false.

2006-06-15  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(getGraphicsConfiguration): Return default screen device.
	* gnu/java/awt/peer/gtk/GtkVolatileImage.java (component):
	New field.
	(GtkVolatileImage): Record initiating component.
	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	(getDeviceConfiguration): Return configuration of image component.

2006-06-15  Mark Wielaard  <mark@klomp.org>

	* java/awt/geom/GeneralPath.java (closePath): Return if path already
	closed.

2006-06-15  Mark Wielaard  <mark@klomp.org>

	* java/awt/BasicStroke.java (createStrokedShape): Call getPathIterator
	with null argument.

2006-06-15  Kyle Galloway  <kgallowa@redhat.com>

	* gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java
	(matches): Added explicit brackets to return statement.

2006-06-15  Tania Bento  <tbento@redhat.com>

	* javax/swing/JRadioButtonMenuItem.java
	(JRadioButtonMenuItem): Should set 'focusable' to false.

2006-06-15  Tania Bento  <tbento@redhat.com>

	* javax/swing/JCheckBoxMenuItem.java
	(JCheckBoxMenuItem): Should set 'focusable' to false.

2006-06-15  Tania Bento  <tbento@redhat.com>

	* javax/swing/AbstractButton.java:
	(AbstractButton): 'Focusable' should be set to true and not false.

2006-06-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/ManagementFactory.java:
	Add private constructor to prevent instance creation.
	* java/lang/management/ManagementPermission.java:
	Make final.
	
2006-06-15  Francis Kung  <fkung@redhat.com>

	* javax/swing/plaf/basic/BasicArrowButton.java:
	(BasicArrowButton): move client property for not triggering out 
	of consturctor
	* javax/swing/plaf/basic/BasicComboBoxUI.java:
	(configureArrowButton): set client property for not triggering
	(installUI): set client property for not triggering
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	(PopupHelper.mousePressed): check client property for triggering

2006-06-15  Roman Kennke  <kennke@aicas.com>

	PR 28037
	* javax/swing/RepaintManager.java
	(blitBuffer): Substract coordinates the other way around.

2006-06-15  Roman Kennke  <kennke@aicas.com>

	PR 28027
	* javax/swing/JComponent.java
	(paintImmediately2): Only paint component without double buffering
	when all of it's parents have also double buffering disabled.
	(isPaintingDoubleBuffered): New helper method.

2006-06-15  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(draw(Shape)): Pass null transform to getPathIterator(),
	(getClip): Likewise,
	* gnu/java/print/PostscriptGraphics2D.java
	(drawStringShape): Pass null transform to getPathIterator(),
	(writeShape): Likewise,
	* java/awt/Shape.java: Small updates to API docs.

2006-06-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(getAccessibleChildrenCount): Implemented.
	(getAccessibleChild): Implemented.
	(isNavigationKey): Implemented.
	(KeyHandler.keyPressed): Implemented.

2006-06-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/ManagementPermission.java:
	Added serialization UID.
	* javax/management/Attribute.java: Likewise.
	* javax/management/MBeanException.java,
	* javax/management/ReflectionException.java:
	Added serialization UID and changed to extend
	javax.management.JMException.
	
2006-06-14  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(ignoreOldMouseEvents): Made static.
	(translateEvent): Made static.
	* java/awt/TextComponent.java
	(ignoreOldMouseEvents): Made static.

2006-06-14  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/ComponentGraphics.java (drawLine): Lock and
	call super.
	(drawRect): Likewise.
	(fillRect): Likewise.

2006-06-14  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(ignoreOldMouseEvents): New helper function.
	(translateEvent): Changed to be non-static and use new helper.
	* java/awt/TextComponent.java
	(ignoreOldMouseEvents): New helper function.

2006-06-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(MERGE_REGIONS): New constant flag.
	(commitBuffer): Exclude the merging of regions by default. This
	was causing painting artifacts in some applications, especially
	when different areas of the GUI are updated synchronously.

2006-06-14  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java:
	New file. This is a benchmark for AWT 1.1 style graphics operations.
	* examples/gnu/classpath/examples/awt/palme.gif: New file.
	* examples/gnu/classpath/examples/awt/aicas.gif: New file.

2006-06-14  Tom Tromey  <tromey@redhat.com>

	* java/io/File.java (getParent): Javadoc fix.

2006-06-14  Tom Tromey  <tromey@redhat.com>

	* gnu/java/net/loader/JarURLLoader.java (initialize): Skip our own
	jar.
	* gnu/java/net/IndexListParser.java (IndexListParser): Call clearAll
	when index entry does not exist.

2006-06-14  Tania Bento  <tbento@redhat.com>

	* javax/swing/AbstractButton.java
	(AbstractButton): Set focusable to false, not true.

2006-06-14  Tania Bento  <tbento@redhat.com>

	* javax/swing/JMenuItem.java
	(init): Changed horizontalAlignment from JButton.LEFT to JButton.LEADING.

2006-06-14  Tania Bento  <tbento@redhat.com>

	* javax/swing/JCheckBoxMenuItem.java
	(JCheckBoxMenuItem): Added check to set the selected state.

2006-06-14  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(cairoDrawLine): New native method.
	(cairoDrawRect): New native method.
	(cairoFillRect): New native method.
	(drawLine): Use special native method.
	(drawRect): Use special native method.
	(fillRect): Use special native method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(cairoDrawLine): New native method.
	(cairoDrawRect): New native method.
	(cairoFillRect): New native method.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Regenerated.

2006-06-14  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(Java_gnu_java_awt_peer_gtk_GtkImage_getPixels): Return when array
	cannot be allocated.

2006-06-14  Tom Tromey  <tromey@redhat.com>

	PR java/28024:
	* m4/acinclude.m4 (REGEN_WITH_JAY): Use backquote, not $(...).
	* configure.ac (QT_INCLUDE_DIR): Use backquote, not $(...).

2006-06-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(isRepainting): New flag.
	(paintImmediately2): Set isRepainting flag.
	(getRoot): Removed obsolete method.
	(paintDoubleBuffered): Differenciate between paint calls from
	RepaintManager and from AWT refresh. Call
	RepaintManager.commitBuffer with this and local coordinates.
	(findOpaqueParent): Stop searching at heavyweight component. These
	are always opaque.
	(paintChildrenOptimized): Don't paint heavyweight children. These
	should care for themselves.
	(paintChildrenWithOverlap): Don't paint heavyweight children. These
	should care for themselves.
	* javax/swing/RepaintManager.java
	(getOffscreenBuffer): Associate offscreen buffer with toplevel
	windows only.
	(getVolatileOffscreenBuffer): Associate offscreen buffer with
	toplevel windows only.
	(getRoot): Removed obsolete method.
	(commitBuffer): Blit buffer on nearest heavyweight.
	(blitBuffer): New helper method.
	(getHeavyweightParent): New helper method.
	(commitRemainingBuffers): Call blitBuffer instead of commitBuffer.
	* javax/swing/SwingUtilities.java
	(convertRectangleToAncestor): New helper method.

2006-06-14  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/security/auth/login/ConfigFileTokenizer.java: Fixed a typo.
	Condition all trace/debug code based on Configuration.DEBUG.
	Use logger instead of STDOUT and ot STDERR.

2006-06-13  Lillian Angel  <langel@redhat.com>

	* native/plugin/gcjwebplugin.cc
	(NP_Initialize): Removed code to create whitelist file.
	(GCJ_New): Added code to create whitelist file.
	(plugin_user_trusts_documentbase): Fixed error message.

2006-06-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(HorizontalSliderThumbIcon.gradientMask): Modified by 1 pixel to 
	prevent overwriting border,
	(VerticalSliderThumbIcon.gradientMask): Likewise.

2006-06-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/AttributeNotFoundException.java,
	* javax/management/InvalidAttributeValueException.java,
	* javax/management/JMException.java,
	* javax/management/MBeanException.java,
	* javax/management/OperationsException.java,
	* javax/management/ReflectionException.java:
	New files.
	
2006-06-13  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(dispatchEvent): Handle events even when consumed (this might be
	picked up later in the dispatching chain).
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(PopupHelper.mousePressed): Don't consume event. Only close popup
	when target component isn't flagged as DONT_CANCEL_POPUP.
	(DONT_CANCEL_POPUP): New package private constant for flagging
	special components that don't trigger popup closing.
	* javax/swing/plaf/basic/BasicArrowButton.java
	(BasicArrowButton): Set client property for not triggering closing
	of popups.

2006-06-13  Lillian Angel  <langel@redhat.com>

	* java/awt/image/PixelGrabber.java
	(PixelGrabber): Added to API documentation.

2006-06-13  Keith Seitz  <keiths@redhat.com>

	From Kyle Galloway  <kgallowa@redhat.com>:
	* gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java
	(ExceptionOnlyFilter): Allow null refId.

	* gnu/classpath/jdwp/event/BreakpointEvent.java: Added _instance for
	compatibility with filters.
	(getParameter): Modified to allow access to above. 

2006-06-13  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoSurface.java
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(create): Use stride in ints.

2006-06-13  Keith Seitz  <keiths@redhat.com>

	From Kyle Galloway  <kgallowa@redhat.com>:
	* gnu/classpath/jdwp/event/ClassUnloadEvent.java: New file.

2006-06-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(calculateThumbSize): Removed unnecessary code,
	(calculateThumbLocation): Shift position by one,
	(calculateTickRect): Shift position by one when ticks are displayed,
	(calculateLabelRect): Calculate rect differently according to whether
	or not the labels are visible,
	(paintTrack): Shift track down one pixel.

2006-06-13  Lillian Angel  <langel@redhat.com>

	* java/awt/image/PixelGrabber.java
	(PixelGrabber): Removed check to throw exception. JDK does
	not do this.
	(startGrabbing): Removed line to print stacktrace. 

2006-06-13  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java (drawImage): Don't
	allocate unused AffineTransform. Add comment about conversion to
	BufferedImage.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java (drawImage):
	Recognize identity transform as "easy". Always convert to
	BufferedImage before calling super.

2006-06-13  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(getGraphics): Translate child graphics correctly.
	(dispatchEvent): Only dispatch event if it hasn't been consumed
	yet by the global dispatcher.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	Added some API docs.
	(PopupHelper.mousePressed): Consume the event after closing
	opened menus.

2006-06-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicCheckBoxUI.java: Source code formatting 
	changes only,
	* javax/swing/plaf/basic/BasicComboBoxUI.java: Likewise,
	* javax/swing/plaf/basic/BasicComboPopup.java: Likewise,
	* javax/swing/plaf/basic/BasicFileChooserUI.java: Likewise,
	* javax/swing/plaf/basic/BasicInternalFrameUI.java: Likewise,
	* javax/swing/plaf/basic/BasicLookAndFeel.java: Likewise,
	* javax/swing/plaf/basic/BasicMenuItemUI.java: Likewise,
	* javax/swing/plaf/basic/BasicOptionPaneUI.java: Likewise,
	* javax/swing/plaf/basic/BasicProgressBarUI.java: Likewise,
	* javax/swing/plaf/basic/BasicRadioButtonUI.java: Likewise,
	* javax/swing/plaf/basic/BasicScrollBarUI.java: Likewise,
	* javax/swing/plaf/basic/BasicSliderUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTableHeaderUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTableUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTextUI.java: Likewise,
	* javax/swing/plaf/basic/BasicToolBarUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTreeUI.java: Likewise.

2006-06-12  Sven de Marothy  <sven@physto.se>

	* java/awt/font/LineBreakMeasurer.java): Implement.

2006-06-12  Keith Seitz  <keiths@redhat.com>

	From Kyle Galloway  <kgallowa@redhat.com>:
	* gnu/classpath/jdwp/event/SingleStepEvent.java: New file.

2006-06-12  Keith Seitz  <keiths@redhat.com>

	From Kyle Galloway  <kgallowa@redhat.com>:
	* gnu/classpath/jdwp/event/MethodEntryEvent.java: New file.

	* gnu/classpath/jdwp/event/MethodExitEvent.java: New file.

2006-06-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintDoubleBuffered): Correctly translate and clip the Graphics
	instance.
	(clipAndTranslateGraphics): New helper method.

2006-06-12  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(copy): Use getClip() to copy the clip. Make copied transform
	null when original transform is null. Set clip here.
	(setTransform): Correctly update the clip.
	(setTransformImpl): New method. Updates the actual transform for
	Cairo.
	(transform): Correctly update the clip.
	(translate): Correctly update the clip.
	(clip): Handle null clip and argument correctly.
	(clipRect): Avoid creating new Rectangle objects.
	(getClip): Get the correct copy of the clip.
	(setClip): Correctly handle null argument.
	* gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
	(CairoSurfaceGraphics): Don't set the clip here. The clip can either
	be null or whatever has been set in copy().
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(drawImage): Add translation to the image coordinates.
	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	(VolatileImageGraphics): Don't set clip here. The clip can either
	be null or whatever has been set in copy().

2006-06-12  Keith Seitz  <keiths@redhat.com>

	From Kyle Galloway  <kgallowa@redhat.com>:
	* gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java
	(forCaught): Removed unused/unnecessary method.
	(forUncaught): Likewise.
	(matches): Implement.

2006-06-12  Keith Seitz  <keiths@redhat.com>

	From Kyle Galloway  <kgallowa@redhat.com>:
	* gnu/classpath/jdwp/event/ExceptionEvent.java: New file.

2006-06-12  Keith Seitz  <keiths@redhat.com>

	From Kyle Galloway  <kgallowa@redhat.com>:
	* gnu/classpath/jdwp/event/Event.java: Added constants for
	type.
	(getParameter): Changed parameter type from Class to int.
	* gnu/classpath/jdwp/event/BreakpointEvent.java (getParameter):
	Changed from Class type to constants.
	* gnu/classpath/jdwp/event/ClassPrepareEventEvent.java (getParameter):
	Likewise.
	* gnu/classpath/jdwp/event/ThreadEndEvent.java (getParameter):
	Likewise.
	* gnu/classpath/jdwp/event/ThreadStartEvent.java (getParameter):
	Likewise.
	* gnu/classpath/jdwp/event/VmDeathEvent.java (getParameter):
	Likewise.
	* gnu/classpath/jdwp/event/VmInitEvent.java (getParameter):
	Likewise.
	* gnu/classpath/jdwp/event/ClassMatchFilter.java (matches):
	Likewise.
	* gnu/classpath/jdwp/event/ClassOnlyFilter.java (matches):
	Likewise.
	* gnu/classpath/jdwp/event/InstanceOnlyFilter.java (matches):
	Likewise.
	* gnu/classpath/jdwp/event/ThreadOnlyFilter.java (matches):
	Likewise.

2006-06-12  Lillian Angel  <langel@redhat.com>

	* tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java
	(StandaloneAppletWindow): Changed title of standalone window.

2006-06-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(layoutContainer): Added missing selectedComponent assignment.

2006-06-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(layoutContainer): Added check to prevent exception.

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

	* java/lang/Thread.java (uncaughtException): Javadoc fix.

2006-06-12  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/ComponentGraphics.java (hasLock):
	New static field.
	(ONE): Likewise.
	(lock): New method.
	(unlock): Likewise.
	(draw): Use lock() and unlock().
	(fill): Likewise.
	(drawRenderedImage): Likewise.
	(drawImage): Likewise.
	(drawGlyphVector): Likewise.

2006-06-12  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawPixels): Include alpha in parameter list.
	(cairoFill): Include alpha in parameter list.
	(setComposite): Don't modify the color.
	(draw(Shape))): Use fill when the current composite has an alpha
	of != 1.0, so that the stroked shaped will be composited.
	(fill(Shape)): Call cairoFill() with alpha.
	(drawImage): Call drawPixels or drawSurface with alpha.
	(drawGlyphVector): When composite alpha is != 1.0, render the
	outline using fill() to enable compositing for text.
	(drawRaster): Call drawPixels with alpha.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(nativeDrawSurface): Include alpha in parameter list.
	(drawSurface): Include alpha in parameter list. Pass it to
	nativeDrawSurface().
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
	* include/gnu_java_awt_peer_gtk_CairoSurface.h:
	Regenerated.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(drawPixels): Handle possible alpha for compositing.
	(cairoFill): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(nativeDrawSurface): Handle possible alpha for compositing.

2006-06-12  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java (streamImage):
	Notify data when completely done. Wait for worker thread to finish.
	Rethrow any pending exceptions.
	(exception): New field.
	(run): Store pending exception.

2006-06-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/ManagementPermission.java:
	New file.
	
2006-06-12  Raif S. Naffah  <raif@swiftdsl.com.au>

	* doc/tools.texinfo: Replaced original author with "The GNU Classpath Team".

2006-06-12  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/security/auth/login/ConfigFileParser.java (validateClassName):
	Use String.charAt().

2006-06-11  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* doc/tools.texinfo
	(Applet Tools): New chapter.
	(appletviewer Tool): New section.
	(gcjwebplugin): New section.

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

	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java (streamImage):
	Takes GdkPixbufWriter.
	(GdkPixbufWriter): Implements Runnable.
	(write(IIOMetadata,IIOImage,ImageWriteParam)): Start Thread for
	data processing.
	(DATADONE): New static final field.
	(data): New field.
	(write(byte[])): New method.
	(run): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initStaticState):
	Get dataOutputWriteID from writeClass.
	(stream_save_request): Change stream field to writer.
	(save_to_stream): Remove FIXME, call writer.
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_streamImage):
	Store writer.

2006-06-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Mention new VM interface and use of properties.
	* doc/vmintegration.texinfo:
	Update with new gnu.java.lang.management section.
	* gnu/java/lang/management/RuntimeMXBeanImpl.java:
	New file.
	* java/lang/management/ManagementFactory.java:
	(getRuntimeMXBean()): Implemented.
	* vm/reference/gnu/java/lang/management/RuntimeMXBeanImpl.java:
	New VM interface file.
	
2006-06-11  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/26065
	* gnu/javax/security/auth/login/GnuConfiguration.java: Condition all trace/
	debug code based on Configuration.DEBUG.
	Use logger instead of STDOUT and ot STDERR.
	* gnu/javax/security/auth/login/ConfigFileParser.java: Likewise.
	* gnu/javax/crypto/sasl/SaslOutputStream.java: Likewise.
	* gnu/javax/crypto/sasl/SaslInputStream.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPServer.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPClient.java: Likewise.
	* gnu/javax/crypto/prng/CSPRNG.java: Likewise.
	* gnu/javax/crypto/pad/TBC.java: Likewise.
	* gnu/javax/crypto/pad/PKCS7.java: Likewise.
	* gnu/javax/crypto/pad/PKCS1_V1_5.java: Likewise.
	* gnu/javax/crypto/pad/BasePad.java: Likewise.
	* gnu/javax/crypto/mac/OMAC.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordEncryptedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/GnuPublicKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/GnuPrivateKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/EnvelopeEntry.java: Likewise.
	* gnu/javax/crypto/keyring/Entry.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/jce/prng/UMacRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/prng/ICMRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/keyring/GnuKeyring.java: Likewise.
	* gnu/javax/crypto/cipher/Twofish.java: Likewise.
	* gnu/javax/crypto/cipher/Khazad.java: Likewise.
	* gnu/javax/crypto/cipher/Rijndael.java: Likewise.
	* gnu/javax/crypto/cipher/BaseCipher.java: Likewise.
	* gnu/javax/crypto/cipher/Anubis.java: Likewise.
	* gnu/java/security/Properties.java: Likewise.
	* gnu/java/security/x509/X509CRLEntry.java: Likewise.
	* gnu/java/security/x509/X509CRL.java: Likewise.
	* gnu/java/security/x509/ext/Extension.java: Likewise.
	* gnu/java/security/util/Prime2.java: Likewise.
	* gnu/java/security/util/Base64.java: Likewise.
	* gnu/java/security/sig/rsa/RSAPSSSignature.java: Likewise.
	* gnu/java/security/sig/rsa/EMSA_PSS.java: Likewise.
	* gnu/java/security/provider/PKIXCertPathValidatorImpl.java: Likewise.
	* gnu/java/security/pkcs/SignerInfo.java: Likewise.
	* gnu/java/security/pkcs/PKCS7SignedData.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java: Likewise.
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java: Likewise.
	* gnu/java/security/key/dss/DSSPrivateKey.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairGenerator.java: Likewise.
	* gnu/java/security/jce/sig/SignatureAdapter.java: Likewise.
	* gnu/java/security/jce/sig/EncodedKeyFactory.java: Likewise.
	* gnu/java/security/hash/Whirlpool.java: Likewise.

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

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
	(Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs):
	Remove unused variable glyph_index.

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

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java (drawImage):
	Don't recurse, return false if not an BufferedImage and no image
	source available.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java (draw): Add
	end_gdk_drawing() to finally block.
	(fill): Likewise.
	(drawRenderedImage): Likewise.
	(drawImage): Likewise.
	(drawGlyphVector): Likewise.

2006-06-11  Raif S. Naffah  <raif@swiftdsl.com.au>

	* doc/tools.texinfo: Added text for new -cacert command.
	Re-structured sections.
	* resource/gnu/classpath/tools/keytool/messages.properties: Added messages
	for -cacert command.
	* tools/gnu/classpath/tools/keytool/Main.java (CACERT_CMD): New constant.
	(_CACERT): Likewise.
	(shutdownThread): New field.
	(Main): Install shutdown thread.
	(main): Uninstall shutdown thread.
	(start): Handle new -cacert command.
	(getParser): Likewise.
	(teardown): Increased visibility.
	(ShutdownHook): New inner class.
	* tools/gnu/classpath/tools/keytool/CACertCmd.java: New file.

2006-06-11  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	(setupGlyphMetrics): New method. Add glyphmetrics caching.
	(getOutline): Operate on the shape directly.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(getGlyphMetrics,putGlyphMetrics): Add GlyphMetrics caching.
	* include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h
	(getGlyph renamed getGlyphs)
	* java/awt/geom/AffineTransform.java
	(getTranslateInstance): Set fields directly.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
	(getGlyphs): Get all glyph codes at once.
	
2006-06-11  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/27853
	* gnu/javax/crypto/RSACipherImpl.java (engineDoFinal): Was short by 1 byte.

2006-06-11  Sven de Marothy  <sven@physto.se>

	* java/awt/font/TextLayout.java
	(getLogicalHighlightShape): Add check.
	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	(getLogicalBounds, getGlyphPositions): Cache bounds, positions.

2006-06-11  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/security/auth/login/ConfigFileParser.java (validateClassName):
	Check that every component of 'cn' starts with a valid Java identifier char.

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

	* java/io/File.java (pathSeparator): Typo fix.

2006-06-10  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/cairographics2d.h (cp_gtk_get_cairo_t):
	Removed.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	Mark all unused parameters.
	(cp_gtk_get_cairo_t): Removed.
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetMatrix):
	Don't mix declerations and statements.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c:
	Mark all unused parameters.
	(Java_gnu_java_awt_peer_gtk_CairoSurface_nativeDrawSurface):
	Get cairographics2d pointer directly.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	(Java_gnu_java_awt_peer_gtk_GdkTextLayout_cairoDrawGdkTextLayout):
	Use jlong to pass pointer.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c:
	Mark all unused parameters.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Regenerated.
	* include/gnu_java_awt_peer_gtk_CairoSurface.h: Regenerated.
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h: Regenerated.
	* include/gnu_java_awt_peer_gtk_GdkTextLayout.h: Regenerated.
	* include/gnu_java_awt_peer_gtk_GtkVolatileImage.h: Regenerated.
	* include/java_io_VMFile.h: Regenerated.

2006-06-10  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	(VolatileImageGraphics(VolatileImageGraphics)): Use clipRect()
	instead of setClip(), so that an already present clip is intersected
	and not resetted.

2006-06-10  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkFontPeer.java (GdkFontLineMetrics):
	Call getSize() to avoid accessor method.

2006-06-10  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/html/HTMLDocument.java (addSpecialElement):
	Qualify ElementSpec.

2006-06-10  Mark Wielaard  <mark@klomp.org>

	* lib/.cvsignore: Add sun.
	* lib/Makefile.am (dist-hook): Likewise.

2006-06-10  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	* gnu/java/awt/peer/gtk/CairoSurface.java
	* gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	* gnu/java/awt/peer/gtk/GtkVolatileImage.java
	* native/jni/gtk-peer/cairographics2d.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c:
	Changed method signatures and calls to pass native pointers directly
	into the JNI code, in order to avoid costly lookups on each
	JNI call.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h,
	* include/gnu_java_awt_peer_gtk_CairoSurface.h,
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h,
	* include/gnu_java_awt_peer_gtk_GtkVolatileImage.h:
	Regenerated

2006-06-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27973
	* javax/swing/text/DefaultStyledDocument.java 
	(ElementBuffer.insertContentTag):
	Do not recreate leaves and do not remove elements here. 

2006-06-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.HiddenAction): Implemented.

2006-06-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(getVolatileOffscreenBuffer): Store the created buffer.
	* javax/swing/JComponent.java
	(paintDoubleBuffered): Try to use a volatile offscreen buffer
	for better performance.

2006-06-10  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	(VolatileImageGraphics(VolatileImageGraphics)): Initialize native
	context correctly.
	(getRealBounds): Overridden to return the correct bounds.

2006-06-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalButtonUI.java
	(update): Fixed to paint the gradient under the correct conditions.
	(updateWidthGradient): Removed.
	(isToolbarButton): New helper method.
	(isDrawingGradient): New helper method.

2006-06-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(setSelectedIndex): Don't change the visibility of the components,
	this is done by the UI class.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(TabbedPaneLayout.layoutContainer): Change visibility of component
	here, depending on the selected index. Only do this if the new
	selected component is not null. Some programs seem to expect
	this.
	(visibleComponent): New field.
	(getVisibleComponent): Changed to return visibleComponent field.
	(setVisibleComponent): Changed to set the visibility of
	the old and new visible component.

2006-06-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintChildrenOptimized): Paint component with a new Graphics
	object to protect the other painting code from modifications
	done in that object, and avoid cleanup ops on possibly dispose()ed
	Graphics object.

2006-06-09  Sven de Marothy  <sven@physto.se>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_disposeSurface):
	Use GTK locks while disposing (Xlib) surface.

2006-06-09  Tom Tromey  <tromey@redhat.com>

	* lib/Makefile.am (install-data-local): Copy 'sun' files.
	(uninstall-local): Delete 'sun' directory.
	(glibj.zip): Include 'sun' classes.
	(clean-local): Delete 'sun' directory.
	* lib/gen-classlist.sh.in: Search 'sun' subdirectories.

2006-06-09  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	(drawImage): Fixed scaling.
	(fillShape): Removed offset handling.
	(fillShapeImpl): Limit scanlining to device bounds.
	(getSegments): Removed offset handling.
	* gnu/java/awt/java2d/PolyEdge.java
	(toString): Include isClip flag in output.

2006-06-08  Sven de Marothy  <sven@physto.se>

	* java/awt/font/TextLayout.java
	(getOutline): Allow null transform.

2006-06-08  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawString): Use TextLayout instead of GlyphVector.

2006-06-08  Sven de Marothy  <sven@physto.se>

	* java/text/Bidi.java: Treat WS as neutral for rules N1 & N2.
	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	New constructor for bidirectionality.
	(getGlyphMetrics): Return whitespace glyphs.
	(getLogicalBounds): Offset rectangles to correct positions.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(getBaselineFor): Default to ROMAN_BASELINE.
	(GdkFontLineMetrics): Guess some values for underline and 
	strikethrough.
	(layoutGlyphVector): Use bidirectionality.
	* java/awt/font/TextLayout.java: Implement, mostly.
	
2006-06-09  Anthony Green  <green@redhat.com>

	PR classpath/27888:
	* javax/swing/text/GapContent.java (binarySearch): Use unsigned shift.
	* java/util/Collections.java (binarySearch): Use unsigned shift.
	* java/util/Arrays.java (binarySearch): Use unsigned shift.

2006-06-09  Tom Tromey  <tromey@redhat.com>

	* tools/.cvsignore: Added .deps.

2006-06-09  Kazuya Ujihara  <ujihara@aurora.dti.ne.jp>

	PR classpath/27966:
	* gnu/javax/security/auth/login/ConfigFileParser.java
	(validateClassName): Quote '.' in regexp.

2006-06-09  Tom Tromey  <tromey@redhat.com>

	PR classpath/23863:
	* native/fdlibm/dtoa.c (_dtoa): Free contents of _Jv_reent when
	finished.
	* native/fdlibm/mprec.c: New version from newlib.  Commented out
	some includes.  Added <assert.h>.
	(_reent, _Bigint): New defines.
	(_REENT_CHECK_MP, _REENT_MP_FREELIST, _REENT_MP_P5S): Likewise.
	(__ULong, __Long): New types.
	(_calloc_r): New function.
	(Balloc): Dynamically add new _freelist entries as needed.
	* native/fdlibm/mprec.h (struct _Jv_Bigint): Don't use
	MAX_BIGNUMS to size _x[].
	(struct _Jv_reent): _freelist now a _Jv_Bigint**.  Removed
	_allocation_map, num.  Added _max_k.

2006-06-09  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawGlyphVector): Added fallback for non-FreetypeGlyphVector
	implementations.

2006-06-09  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BufferedImage.java
	(BufferedImage(int, int, int)): Added API docs,
	(getProperty(String)): Return correct value for undefined properties,
	(getPropertyNames()): Added comments and removed FIXME.

2006-06-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/plugin/gcjwebplugin.cc (PLUGIN_ERROR_THREE): New macro.
	(NP_Initialize): Use PLUGIN_ERROR_THREE in place of g_strconcat.

2006-06-09  Francis Kung  <fkung@redhat.com>

	* javax/swing/plaf/basic/BasicComboBoxRenderer.java:
	(getPreferredSize): Return correct height for null or empty 
	items.

2006-06-09  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/datatransfer/DataFlavor.java
	(readExternal): Mark as stub,
	(writeExternal): Likewise,
	* java/awt/dnd/DropTargetContext.java
	(dropComplete): Mark as stub,
	(acceptDrag): Likewise,
	(rejectDrag): Likewise,
	(acceptDrop): Likewise,
	(rejectDrop): Likewise,
	(getCurrentDataFlavors): Likewise,
	(getTransferable): Likewise,
	* java/awt/dnd/DropTargetDropEvent.java
	(dropComplete): Mark as stub.

2006-06-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.java
	(constructor): Do not lowercase the values.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.addSpecialElement): Implemented.
	* examples/gnu/classpath/examples/swing/HtmlDemo.java: New file.

2006-06-09  Raif S. Naffah  <raif@swiftdsl.com.au>

	On behalf of Matthew Wringe <mwringe@redhat.com>
	* gnu/java/security/Registry.java (ISO10126_PAD): New constant.
	* gnu/javax/crypto/pad/ISO10126.java: New class.
	* gnu/javax/crypto/pad/PadFactory.java (names): New field.
	(getInstance): Added support for ISO-10126 scheme.
	(getNames): Likewise.
	Cache result for speed.

2006-06-09  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/pad/BasePad.java (selfTest): Re-factored to allow more
	flexible self-test by sub-classes.
	(test1BlockSize): New method.

2006-06-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Corrected 'ScrollBar.focusInputMap' entry,
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(installKeyboardActions): Implemented,
	(uninstallKeyboardActions): Implemented,
	(getInputMap): New method,
	(getActionMap): New method,
	(createActionMap): New method,
	(installUI): Call installKeyboardActions(),
	(uninstallUI): Call uninstallKeyboardActions().
	
2006-06-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(getActionMap): Use correct key to store action map.

2006-06-09  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/awt/font/opentype/truetype/VirtualMachine.java
	(executeInstruction): Added NOT support.

2006-06-09  Jeroen Frijters  <jeroen@frijters.net>

	* sun/reflect/annotation/AnnotationInvocationHandler.java:
	New file.

2006-06-08  Tom Tromey  <tromey@redhat.com>

	* java/text/Bidi.java (resolveNeutralTypes): Set j'th slot
	of 'types'.

2006-06-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/RuntimeMXBean.java:
	New file.
	
2006-06-08  Lillian Angel  <langel@redhat.com>

	* native/plugin/gcjwebplugin.cc:
	(NP_Shutdown): Freed whitelist_filename.

2006-06-08  Lillian Angel  <langel@redhat.com>

	* native/plugin/Makefile.am:
	Removed DATA_DIRECTORY.
	* native/plugin/gcjwebplugin.cc:
	Added new global fields for whitelist_file
	and data_directory. Removed WHITELIST_FILE.
	(NP_Initialize): Initialized new fields. Also,
	Changed to use new fields.
	(NP_Shutdown): Freed data_directory.
	(GCJ_New): Changed to use new fields.
	(plugin_ask_user_about_documentbase): Likewise.

2006-06-08  Lillian Angel  <langel@redhat.com>

	* native/plugin/Makefile.am:
	Changed DATA_DIRECTORY to be ~/.gcjwebplugin.
	* native/plugin/gcjwebplugin.cc:
	Changed all instances of PLUGIN_DATA_DIRECTORY
	to DATA_DIRECTORY.

2006-06-08  Roman Kennke  <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	(handleMouseEvent): Replaced calls to AWTUtilities.convertPoint()
	with convertPointToChild(). This is more efficient and avoids
	problems with getLocationOnScreen().
	(findTarget): Check for component beeing showing() early.
	Simplified AWTUtilities.convertPoint() to a simple substraction
	operation.
	(convertPointToChild): New helper method.

2006-06-08  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/plugin/gcjwebplugin.cc (SECURITY_DESCRIPTION): Update
	message.

2006-06-08  Tom Fitzsimmons  <fitzsim@redhat.com>
	    Lillian Angel  <langel@redhat.com>

	* native/plugin/gcjwebplugin.cc
	(NP_Shutdown): Added code to free plugin mutex and whitelist file.
	Also, reset initialized field.

2006-06-08  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicProgressBarUI.java
	(paintString): Fixed to paint string at the correct location.

2006-06-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(createDefaultActions): Added new actions.
	(TreePageAction.TreePageAction): Set action name.
	(TreePageAction.actionPerformed): Implemented.
	(TreePageAction.isEnabled): Implemented.
	(TreeToggleAction.TreePageAction): Set action name.
	(TreeToggleAction.actionPerformed): Implemented.
	(TreeToggleAction.isEnabled): Implemented.
	(TreeTraverseAction.TreeTraverseAction): Set action name.
	(TreeTraverseAction.actionPerformed): Use action name as command.
	(TreeTraverseAction.isEnabled): Implemented.

2006-06-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(installKeyboardActions): Rewritten to correctly install the UI
	input and action maps.
	(getActionMap): New helper method.
	(createDefaultActionMap): New helper method.
	(TreeHomeAction.TreeHomeAction()): Implemented.
	(TreeHomeAction.actionPerformed): Implemented.
	(TreeHomeAction.isEnabled): Implemented.
	(TreeIncrementAction.TreeIncrementAction()): Implemented.
	(TreeIncrementAction.actionPerformed): Use action name as command.
	(TreeIncrementAction.isEnabled): Implemented.

2006-06-08  Mark Wielaard  <mark@klomp.org>

	PR 27917
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(Java_gnu_java_awt_peer_gtk_GtkImage_loadImageFromData): Ref pixbuf
	and unref loader.

2006-06-08  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(attrs): Removed unused static.

2006-06-08  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(getInputMap): New method,
	(getActionMap): New method,
	(createActionMap): New method,
	(installKeyboardActions): Implemented,
	(uninstallKeyboardActions): Implemented.

2006-06-08  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/border/MatteBorder.java:
	(MatteBorder(int,int,int,int,Icon)): Removed if-statement and exception
	throwing.
	(paintBorder): Added if-statement to abort painting early.

2006-06-08  Robert Schuster  <robertschuster@fsfe.org>

        Fixes PR27864.
        * gnu/xml/dom/DomIterator.java:
        (successor): Changed expression.

2006-06-08  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	(defaultLayout): Do kerning.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
	(getKerning): Correct class name, removed unused variable.

2006-06-07  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/qt/QtToolkit.java (initToolkit): Load
	libqtpeer.so unconditionally.

2006-06-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/InputMismatchException.java:
	Documented.

2005-04-20  Tom Tromey  <tromey@redhat.com>

	* java/util/InputMismatchException.java: New file.
	
2006-06-07  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jawt/Makefile.am (AM_LDFLAGS): Add XTEST_LIBS.

2006-06-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(completeUIUninstall): Implemented.
	(uninstallUI): Moved some bits to completeUIUninstall(). Complete
	editing before uninstalling anything.
	(isToggleEvent): Implemented.
	(selectPathForEvent): Make use of isToggleEvent().
	(ComponentHandler.componentMoved): Implemented.
	(ComponentHandler.startTimer): Implemented.
	(ComponentHandler.getScrollPane): Implemented.
	(ComponentHandler.actionPerformed): Implemented.

2006-06-07  Francis Kung  <fkung@redhat.com>

	* javax/swing/JMenuBar.java:
	(getSubElements): Do not return null values.

2006-06-07  Roman Kennke  <kennke@aicas.com>

	PR 27902
	* gnu/regexp/BacktrackStack.java
	* gnu/regexp/CharIndexed.java
	* gnu/regexp/CharIndexedCharArray.java
	* gnu/regexp/CharIndexedCharSequence.java
	* gnu/regexp/CharIndexedInputStream.java
	* gnu/regexp/CharIndexedString.java
	* gnu/regexp/CharIndexedStringBuffer.java
	* gnu/regexp/RE.java
	* gnu/regexp/REException.java
	* gnu/regexp/REFilterInputStream.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/RETokenEndOfPreviousMatch.java
	* gnu/regexp/RETokenEndSub.java
	* gnu/regexp/RETokenIndependent.java
	* gnu/regexp/RETokenLookAhead.java
	* gnu/regexp/RETokenLookBehind.java
	* gnu/regexp/RETokenNamedProperty.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
	* gnu/java/util/regex/BacktrackStack.java
	* gnu/java/util/regex/CharIndexed.java
	* gnu/java/util/regex/CharIndexedCharArray.java
	* gnu/java/util/regex/CharIndexedCharSequence.java
	* gnu/java/util/regex/CharIndexedInputStream.java
	* gnu/java/util/regex/CharIndexedString.java
	* gnu/java/util/regex/CharIndexedStringBuffer.java
	* gnu/java/util/regex/RE.java
	* gnu/java/util/regex/REException.java
	* gnu/java/util/regex/REFilterInputStream.java
	* gnu/java/util/regex/REMatch.java
	* gnu/java/util/regex/REMatchEnumeration.java
	* gnu/java/util/regex/RESyntax.java
	* gnu/java/util/regex/REToken.java
	* gnu/java/util/regex/RETokenAny.java
	* gnu/java/util/regex/RETokenBackRef.java
	* gnu/java/util/regex/RETokenChar.java
	* gnu/java/util/regex/RETokenEnd.java
	* gnu/java/util/regex/RETokenEndOfPreviousMatch.java
	* gnu/java/util/regex/RETokenEndSub.java
	* gnu/java/util/regex/RETokenIndependent.java
	* gnu/java/util/regex/RETokenLookAhead.java
	* gnu/java/util/regex/RETokenLookBehind.java
	* gnu/java/util/regex/RETokenNamedProperty.java
	* gnu/java/util/regex/RETokenOneOf.java
	* gnu/java/util/regex/RETokenPOSIX.java
	* gnu/java/util/regex/RETokenRange.java
	* gnu/java/util/regex/RETokenRepeated.java
	* gnu/java/util/regex/RETokenStart.java
	* gnu/java/util/regex/RETokenWordBoundary.java
	* gnu/java/util/regex/UncheckedRE.java
	Moved gnu.regexp classes to gnu.java.util.regex package.
	* java/util/regex/Matcher.java
	* java/util/regex/Pattern.java
	Adjusted import statements for new package name for gnu regexp.

2006-06-07  Tom Tromey  <tromey@redhat.com>

	PR classpath/27905:
	* gnu/java/nio/charset/Provider.java (loadExtended): Now synchronized.
	Added missing charsets.
	(charsetForName): Don't check 'extendedLoaded'.

2006-06-07  Roman Kennke  <kennke@aicas.com>

	PR 27833
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(clip(Shape)): Implemented correctly, so that the current shape
	gets intersected by the parameter shape.

2006-06-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/math/BigDecimal.java:
	(compareTo(Object)): Make this call the other
	one.
	(compareTo(BigDecimal)): Recreated.
	
2006-06-07  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(getTabBounds): If this method is called with a tab index
	that is not in the rects array, we need to re-layout the container
	so it is created.

2006-06-07  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	(FreetypeGlyphVector): Removed assignment. Caused compilation error.
	* java/lang/String.java
	(codePointCount): Fixed check to match API. Shouldn't throw exception
	if end == count. end is 1 more than the endIndex, so end == count is 
	possible.

2006-06-07  Gary Benson  <gbenson@redhat.com>

	PR 24895
	* native/jni/java-io/java_io_VMFile.c
	(Java_java_io_VMFile_toCanonicalForm): New method.
	* configure.ac: Added checks for lstat and readlink.
	* include/java_io_VMFile.h: Added new method.
	* vm/reference/java/io/VMFile.java: Use new method.
	* gnu/java/io/PlatformHelper.java (toCanonicalForm): Removed.
	* NEWS: Documented the above.
	* java/io/File.java: Javadoc fix.

2006-06-07  Roman Kennke  <kennke@aicas.com>

	PR 27920
	* javax/swing/JTree.java
	(JTree()): Initialize with default model.
	(JTree(TreeModel)): Clear expanded state hashtable. Added comment
	on the updateUI() / setModel() order.
	(setModel): Correctly (un-)setup the listeners. Clear the expanded
	paths.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(BasicTreeUI()): Initialize listeners in installListeners().
	(setModel): Complete editing on model change. Correctly resetup
	the listeners. Update the layout cache accordingly.
	(setShowRootHandles): Complete editing and update layout. Do not
	call back into the JTree, this could cause cycles.
	(prepareForUIInstall): Implemented. Moved some init code from
	installUI() to this method.
	(completeUIInstall): Implemented. Moved some init code from
	installUI() to this method.
	(createDefaultCellEditor): Check for type of renderer, and install
	with null renderer when not DefaultTreeCellRenderer.
	(updateLayoutCacheExpandedNodes): Added null check for tree root
	to avoid NPE.
	(updateRenderer): Call updateEditor().
	(installListeners): Initialize the listeners here. Added some null
	checks to avoid NPEs.
	(installUI): Moved some init code to prepareForUIInstall() and
	completeUIInstall().
	(completeEditing): Return immediately if editing component is null
	or if the setting is to not stop editing on complete editing.
	(checkForClickInExpandControl): Call handleExpandControlClick()
	instead of toggleExpandState() directly.
	(isLocationInExpandControl): Rewritten to correctly determine the
	expand click location.
	(MouseHandler.mousePressed): Rewritten to make better use of the
	instance methods of BasicTreeUI to handle the click.
	(PropertyHandler.propertyChange): Handle model and cell renderer
	updates.
	* javax/swing/tree/DefaultTreeCellEditor.java
	(DefaultTreeCellEditor): Removed initialization of the icon. This
	is done so that the constructor can deal with null renderer as the
	RI does. Maybe this needs more fixing.
	* javax/swing/tree/TreePath.java
	(isDescendant): Fixed this method. The previous version did too
	much and compared the wrong things, which lead to a ClassCastException
	in equals().
	* javax/swing/tree/VariableHeightLayoutCache.java
	(update): Do nothing when model is null.
	(setModel): Clear the tables and update the layout. Added null
	check to prevent NPE.

2006-06-07  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GdkGlyphVector: Removed file.

2006-06-07  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	* include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
	New files.

	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(getGlyphVector): Removed native method.
	(createGlyphVector, getStringBounds): Use new GV class.

	* include/Makefile.am
	* native/jni/gtk-peer/Makefile.am
	Add new files.

	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(getGlyphVector): Removed native method.
	
2006-06-07  Chris Burdess  <dog@gnu.org>

	* gnu/classpath/debug/TeeInputStream.java,
	  gnu/classpath/debug/TeeOutputStream.java,
	  gnu/classpath/debug/TeeReader.java,
	  gnu/classpath/debug/TeeWriter.java: New classes for debugging streams.
	* gnu/xml/stream/XMLParser.java: Use tee streams for debugging. Don't
	  read more characters than absolutely necessary in tryRead method.

2006-06-07  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/Demo.java:
	(mkMenuBar): Put look and feel radio buttons into 
	appropriate button group.

2006-06-07  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XMLParser.java: Add command line options for setting
	  parsing parameters (for simpler debugging).
	* gnu/xml/transform/TransformerImpl.java: Try to ensure that I/O error
	  closing output stream is propagated to application.

2006-06-06  Mark Wielaard  <mark@klomp.org>

	PR 27917
	* gnu/java/awt/peer/gtk/CairoSurface.java (finalize): Call dispose.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java: Override dispose to
	call disposeSurface.
	(disposeSurface): New native method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_disposeNative): Free
	pattern_pixels.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(Java_gnu_java_awt_peer_gtk_CairoSurface_drawSurface): Call
	cairo_pattern_destroy.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_disposeSurface):
	New function to destroy the surface.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Regenerated.
	* include/gnu_java_awt_peer_gtk_CairoSurface.h: Likewise.
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h: Likewise.

2006-06-06  Mark Wielaard  <mark@klomp.org>

	* include/jni.h (JDK1_1InitArgs): Mark pointer-to-function types
	with JNICALL.

2006-06-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalSplitPaneDivider.java
	(paint): If has focus, paint special background color,
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(FocusHandler.focusGained): Implemented,
	(FocusHandler.focusLost): Implemented.

2006-06-06  Tom Tromey  <tromey@redhat.com>

	* javax/swing/text/StyleContext.java (registerStaticAttributeKey):
	Javadoc fix.
	(writeAttributeSet): Implemented.

2006-06-06  Tom Tromey  <tromey@redhat.com>

	* javax/swing/text/html/HTMLDocument.java (SpecialAction.start):
	Implement.
	(SpecialAction.end): Removed.
	(IsindexAction.end): Likewise.

2006-06-06  Tom Tromey  <tromey@redhat.com>

	* include/jni.h (JDK1_1InitArgs): New struct.
	(JDK1_1AttachArgs): Likewise.

2006-06-06  Tom Tromey  <tromey@redhat.com>

	* java/security/UnresolvedPermission.java (getUnresolvedType): New
	method.
	(getUnresolvedName): New method.
	(getUnresolvedActions): New method.
	(getUnresolvedCerts): New method.

2006-06-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/CharacterAttributeTranslator.java
	(getColor): Removed debugging code.

2006-06-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/CharacterAttributeTranslator.java
	(getColor): Added support for "rgb(red, green, blue)" notation.
	(translateTag): Use Boolean.TRUE, not new Boolean().

2006-06-06  Roman Kennke  <kennke@aicas.com>

	PR 27651
	* javax/swing/JTree.java
	(JTree(TreeModel)): Call updateUI() before setModel().
	(setModel): Don't call updateUI here.

2006-06-06  Lillian Angel  <langel@redhat.com>
	
	* native/plugin/gcjwebplugin.cc:
	Fixed failure message and commenting.
	(NP_Initialize): Added more comments.

2006-06-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSplitPane.java
	(AccessibleJSplitPane): API doc fixes,
	(setDividerLocation): Likewise,
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Additions to SplitPane.ancestorInputMap,
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(getInputMap): New method,
	(getActionMap): New method,
	(createActionMap): New method,
	(installKeyboardActions): Implemented,
	(uninstallKeyboardActions): Implemented.

2006-06-06  Roman Kennke  <kennke@aicas.com>

	PR 27523
	* javax/swing/MenuSelectionManager.java
	(processKeyEvent): Added check to avoid
	ArrayIndexOutOfBoundsException.

2006-06-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/htmlAttributeSet.java
	(getAttributeNames): Rewritten

2006-06-06  Chris Burdess  <dog@gnu.org>

	* gnu/xml/transform/TransformerImpl.java: Check type of created
	  document (more cases).

2006-06-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/htmlAttributeSet.java
	(clone): New method. (copyAttributes): New method.
	(getResolveParent): Comment fix. (getAttribute):
	Rewritten. (addAttribute): Rewritten.
	* gnu/javax/swing/text/html/SmallHtmlAttributeSet.java:
	New file.

2006-06-06  Roman Kennke  <kennke@aicas.com>

	PR 27522
	* javax/swing/JMenuBar.java
	(processKeyBindingHelper): Added null check to prevent NPE.

2006-06-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(ShowSystemMenuAction): New class.
	(installKeyboardActions): Implemented.
	(uninstallKeyboardActions): Implemented.
	* javax/swing/plaf/metal/MetalInternalFrameUI.java
	(installKeyboardActions): Overridden to remove showSystemMenu action.

2006-06-06  Chris Burdess  <dog@gnu.org>

	* gnu/xml/transform/TransformerImpl.java: Check type of created
	  document.

2006-06-06  Robert Schuster  <robertschuster@fsfe.org>

	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java:
	(getScreenDevices): Added explicit cast.

2006-06-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(installKeyboardActions): Use shared input map. Correctly
	install the input/action maps in the component's input/action
	map hierarchies.
	(getActionMap): New helper method for fetching an ActionMap from
	the UIManager or creating a default one if there is none supplied
	by the UIManager.
	(createActionMap): Add the TransferHandler's actions here. Made
	method private.
	(getInputMap): Leave out unnecessary method parameter. Load
	shared input map.
	* javax/swing/plaf/basic/SharedUIDefaults.java: New file.

2006-06-06  Robert Schuster  <robertschuster@fsfe.org>

	* configure.ac: Added missing [ to expression.

2006-06-06  Robert Schuster  <robertschuster@fsfe.org>

	* configure.ac: Added missing { to expression.

2006-06-06  Robert Schuster  <robertschuster@fsfe.org>

	* include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: Regenerated.
	* include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: New file.
	* include/Makefile.am: Added
	gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.
	* gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java:
	(GdkGraphicsConfiguration): Rewritten.
	(getColorModel): Rewritten.
	(getColorModel(int)): Rewritten.
	(getBounds): Rewritten.
	(createCompatibleVolatileImage): Implemented.
	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java: Added static
	initializer.
	(getDefaultScreenDevice): Rewritten.
	(nativeGetDefaultScreenDevice): New method.
	(getScreenDevices): Rewritten.
	(nativeGetScreenDevices): New method.
	(nativeInitState): New method.
	* gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java: Entirely
	rewritten.
	(X11DisplayMode): New inner class.
	* native/jni/gtk-peer/Makefile.am: Added gdkdisplay.h and
	gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c
	* native/jni/gtk-peer/gdkdisplay.h: New file.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c:
	(Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_initStaticState):
	New function.
	(Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeInitState):
	New function.
	(Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment
	_nativeGetScreenDevices):
	New function.
	(Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment
	_nativeGetDefaultScreenDevice):
	New function.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c:
	New file.
	* configure.ac: Added check for Xrandr library.

2006-06-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTableUI.java
	(getMaximumSize): Don't return null. Fixed calculation of
	table height.
	(getMinimumSize): Don't return null. Fixed calculation of
	table height.
	(getPreferredSize): Fixed calculation of with and height. Added
	API docs.
	(getHeight): New helper method.

2006-06-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(getInputMap(int)): Throw IllegalArgumentException for unknown 
	condition argument, and added API docs,
	(getInputMap()): Added API docs.

2006-06-06  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/BufferedImage.java: Added fourth 8 to bits4 field.

2006-06-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTable.java
	(AccessibleJTableHeaderCell.header): New field,
	(AccessibleJTableHeaderCell.columnIndex): Likewise,
	(AccessibleJTableHeaderCell.AccessibleJTableHeaderCell()): Initialise,
	(AccessibleJTableHeaderCell.getColumnHeaderRenderer): New method,
	(AccessibleJTableHeaderCell.getAccessibleContext): Implemented,
	(AccessibleJTableHeaderCell.getAccessibleRole): Implemented,
	(AccessibleJTable.getAccessibleChild(int)): Overridden,
	(AccessibleJTable.getAccessibleAt): Reimplemented.

2006-06-05  Sven de Marothy  <sven@physto.se>

	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(initFromVolatile): New method.
	* gnu/java/awt/peer/gtk/GtkVolatileImage.java
	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	Reimplement.
	* include/gnu_java_awt_peer_gtk_GtkVolatileImage.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
	(copyArea, drawVolatileImage): New methods.
	
2006-06-05  Tania Bento  <tbento@redhat.com>

	* javax/swing/JFrame.java
	(frameInit): Set background color and fixed layout parameters.

2006-06-05  Tom Tromey  <tromey@redhat.com>

	* NEWS: Mention VMURLConnection.

2006-06-05  Lillian Angel  <langel@redhat.com>

	* native/plugin/gcjwebplugin.cc:
	Added new field to keep track of initialization.
	(plugin_start_appletviewer): Fixed to return an error value, if
	an error was encountered when loading the appletviewer.
	(GCJ_NEW): Added call to plugin_failed if the loading of the appletviewer
	has failed.
	(plugin_failed): New helper function. Shows a warning if the appletviewer
	has not been installed.
	(NP_Initialize): Added code to make sure this function is only called
	once.

2006-06-05  Lillian Angel  <langel@redhat.com>

	* native/plugin/Makefile.am:
	Fixed to use a set plugin directory in the .mozilla directory.
	All applet logs are now stored here, instead of /tmp.
	* native/plugin/gcjwebplugin.cc:
	Added new fields for security warning.
	(GCJ_NEW): Added code to generate a security warning for all pages
	that spawn an appletviewer. This warning asks the user if they trust
	the applet and if they would like to add it to a 'whitelist'. This
	whitelist keeps track of all the addresses the user would like
	to trust indefinitely.
	(plugin_user_trusts_documentbase): New helper function.
	(plugin_add_documentbase_to_whitelist): New helper function.
	(plugin_ask_user_about_documentbase): New helper function.
	(plugin_in_pipe_callback): Fixed check to determine if channel_error 
	has been set.
	(plugin_start_appletviewer): Likewise.
	(plugin_create_applet_tag):  Reset all fields to null after they have been
	freed.
	(plugin_send_message_to_appletviewer): Fixed all error checks to determine 
	if channel_error has been set.
	(plugin_stop_appletviewer): Likewise.
	(NP_Initialize): Likewise. Also, added code to determine if directory and file
	should be created.	

2006-06-05  Francis Kung  <fkung@redhat.com>
	
	PR 27507
	* gnu/java/awt/peer/gtk/GtkImage.java
	(getSource): Added check to determine if in
	errorLoading state.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(createImage): Added check to prevent NPE.

2006-06-05  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLEditorKit.java (HTMLFactory.create):
	Create the ImageView, when applicable.
	* gnu/javax/swing/text/html/CombinedAttributes.java,
	javax/swing/text/html/ImageView.java: New files.

2006-06-05  Roman Kennke  <kennke@aicas.com>

	PR 27834
	* javax/swing/text/GapContent.java
	(setPositionsInRange): Compare with startIndex and endIndex
	rather than start and end.
	(dumpMarks): Only dump real marks.

2006-06-05  Sven de Marothy  <sven@physto.se>

	*  gnu/java/awt/peer/gtk/ComponentGraphics.java
	(ComponentGraphics): Use 0,0 as clip origin.
	
2006-06-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Formattable.java,
	* java/util/FormattableFlags.java,
	* java/util/Formatter.java:
	Documented.

2006-03-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Formatter.java:
	Make the class final.

2005-09-26  Tom Tromey  <tromey@redhat.com>

	* java/util/Formatter.java (format): Set fmtLocale.
	(applyLocalization): New method.
	(basicIntegralConversion): Likewise.
	(hexOrOctalConversion): Use it.
	(decimalConversion): New method.
	(format): Use decimalConversion, dateTimeConversion.
	(genericFormat): Upper-case earlier.  Justify correctly.
	(singleDateTimeConversion): New method.
	(dateTimeConversion): Likewise.

2005-09-25  Tom Tromey  <tromey@redhat.com>

	* java/util/Formatter.java (lineSeparator): Use SystemProperties.

2005-09-24  Tom Tromey  <tromey@redhat.com>

	* java/util/FormattableFlags.java (PLUS, SPACE, ZERO, COMMA,
	PAREN): New constants.
	* java/util/Formattable.java: New file.
	* java/util/Formatter.java: New file.

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

	* java/util/FormattableFlags.java: New file.

2006-06-04  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(createVolatileImage): Pass peer to VolatileImage constructor.
	* java/awt/Component.java
	(createVolatileImage): Call peer method directly.
	
2006-06-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/DuplicateFormatFlagsException.java,
	* java/util/FormatFlagsConversionMismatchException.java,
	* java/util/FormatterClosedException.java,
	* java/util/IllegalFormatCodePointException.java,
	* java/util/IllegalFormatConversionException.java,
	* java/util/IllegalFormatException.java,
	* java/util/IllegalFormatFlagsException.java,
	* java/util/IllegalFormatPrecisionException.java,
	* java/util/IllegalFormatWidthException.java,
	* java/util/MissingFormatArgumentException.java,
	* java/util/MissingFormatWidthException.java,
	* java/util/UnknownFormatConversionException.java,
	* java/util/UnknownFormatFlagsException.java:
	Documented.

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

	* java/util/UnknownFormatConversionException.java
	(serialVersionUID): New field.
	(s): Renamed from 'conv' for serialization.
	* java/util/MissingFormatWidthException.java (serialVersionUID):
	New field.
	(s): Renamed from 'width' for serialization.
	* java/util/MissingFormatArgumentException.java
	(serialVersionUID): New field.
	(s): Renamed from 'spec' for serialization.
	* java/util/IllegalFormatWidthException.java (serialVersionUID):
	New field.
	(w): Renamed from 'width' for serialization.
	* java/util/IllegalFormatPrecisionException.java
	(serialVersionUID): New field.
	(p): Renamed from 'precision' for serialization.
	* java/util/IllegalFormatFlagsException.java (serialVersionUID):
	New field.
	* java/util/IllegalFormatConversionException.java
	(serialVersionUID): New field.
	(c): Renamed from 'conv' for serialization.
	(arg): Renamed from 'argClass' for serialization.
	* java/util/IllegalFormatCodePointException.java
	(serialVersionUID): New field.
	(c): Renamed from 'codepoint' for serialization.
	* java/util/FormatFlagsConversionMismatchException.java
	(serialVersionUID): New field.
	(f): Renamed from 'flags' for serialization.
	(c): Renamed from 'conversion' for serialization.
	* java/util/DuplicateFormatFlagsException.java (serialVersionUID):
	New field.
	* java/util/IllegalFormatException.java (serialVersionUID): New
	field.
	* java/util/FormatterClosedException.java (serialVersionUID): New
	field.

2005-04-20  Tom Tromey  <tromey@redhat.com>

	* java/util/DuplicateFormatFlagsException.java: New file.
	* java/util/FormatFlagsConversionMismatchException.java: New file.
	* java/util/FormatterClosedException.java: New file.
	* java/util/IllegalFormatCodePointException.java: New file.
	* java/util/IllegalFormatConversionException.java: New file.
	* java/util/UnknownFormatFlagsException.java: New file.
	* java/util/UnknownFormatConversionException.java: New file.
	* java/util/MissingFormatWidthException.java: New file.
	* java/util/MissingFormatArgumentException.java: New file.
	* java/util/IllegalFormatWidthException.java: New file.
	* java/util/IllegalFormatPrecisionException.java: New file.
	* java/util/IllegalFormatFlagsException.java: New file.
	* java/util/IllegalFormatException.java: New file.

2006-06-04  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoSurface.java
	(getFlippedBuffer): New method.
	(getGtkImage): Renamed method.
	* gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java
	* gnu/java/awt/peer/gtk/GtkVolatileImage.java
	Renamed getSharedImage to getGtkImage.
	* include/gnu_java_awt_peer_gtk_CairoSurface.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(getFlippedBuffer): New method
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	Avoid window casts.
	
2006-03-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/System.java:
	(nanoTime()): Documented.

2006-03-20  Tom Tromey  <tromey@redhat.com>

	* java/lang/System.java:
	(nanoTime()): Implemented.

2006-03-01  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(precision): Fixed overflow problem with large numbers.
	(longValueExact): New method.
	(intValueExact): Likewise.
	(byteValueExact): Likewise.
	(shortValueExact): Likewise.

2006-03-01  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(remainder(BigDecimal)): New method.
	(divideAndRemainder(BigDecimal)): Likewise.
	(divideToIntegralValue(BigDecimal)): Likewise.
	(floor): New implementation method.

2006-02-28  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(divide(BigDecimal, int, RoundingMode)): New method.
	(divide(BigDecimal, RoundingMode)): Likewise.
	(divide(BigDecimal, int, int)): Removed incorrect throwing of exception
	when the new scale is < 0.
	(setScale(int, RoundingMode)): New method.
	(ulp): Likewise.

2006-02-27  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java: Replaced occurences of BigInteger.valueOf
	with BigInteger.ZERO, BigInteger.ONE, BigInteger.TEN where appropriate.
	(add(BigDecimal, MathContext)): New method.
	(subtract(BigDecimal, MathContext)): Likewise.
	(precision): Fixed to correctly handle BigIntegers with more than 19
	digits.
	(pow(int, MathContext)): New method.

2006-02-27  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java: Added @throws clause to constructors.
	(mathContext): Removed this unneeded field.
	(BigDecimal(int, MathContext)): New constructor.
	(BigDecimal(BigInteger, int, MathContext)): Likewise.
	(multiply(BigDecimal, MathContext)): New method.
	(negate(MathContext)): Likewise.
	(plus(MathContext)): Likewise.
	(numDigitsInLong): Fixed to properly handle negatives.

2006-02-24  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(BigDecimal(long, MathContext)): New constructor.
	(BigDecimal(BigInteger, MathContext)): Likewise.
	(BigDecimal(String, MathContext)): Likewise.
	(BigDecimal(double, MathContext)): Likewise.
	(round): Fixed a typo where the precision field was used instead of a
	call to the precision method, and also store the new precision in the
	returned BigDecimal.
	(abs(MathContext)): New method.

2006-02-24  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java
	(toBigInteger): Fixed problem where this method couldn't handle 
	negative values for scale.
	(toBigIntegerExact): New method.
	(stripTrailingZeros): Likewise.

2006-02-23  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(toString): Fixed a problem where the negative sign was being displayed
	twice in the exponent.
	(toEngineeringString): New method.
	(toPlainString): Likewise.
	(pow): Likewise.

2006-02-23  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(toString): Rewrote this method to behave as specified.  Added API
	comments to explain behaviour.
	(scaleByPowerOfTen): New method.

2006-02-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(BigDecimal(char[], int, int, MathContext)): New constructor.
	(BigDecimal(char[], MathContext)): Likewise.
	(BigDecimal(char[])): Likewise.
	(BigDecimal(char[], int, int)): Likewise.
	(BigDecimal(String)): Fixed handling of exponent and scale.

2006-02-21  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(mathContext): New field.
	(precision): Likewise.
	(BigDecimal(int)): New constructor.
	(BigDecimal(long)): Likewise.
	(BigDecimal(BigInteger)): Added API docs.
	(BigDecimal(BigInteger, int)): Removed incorrect NumberFormatException
	and added API docs.
	(plus): New method.
	(round): Likewise.
	(precision): Likewise.
	(valueOf): Likewise.
	(numDigitsInLong): New implementation method.

2006-02-21  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/MathContext.java: New class.

2006-06-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c:
	(drawVolatile): Add casts.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c:
	(getOutline): Add casts.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c:
	Comment out unused prototype.
	(getPixels): Add appropriate cast and comment out unused variable.
	
2006-06-04  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/sasl/SaslUtil.java: Remove unused import.
	* gnu/javax/crypto/sasl/srp/SRPRegistry.java (PASSWORD_DB): Fix javadoc @link.
	* gnu/javax/crypto/sasl/srp/PasswordFile.java: Removed unused import.
	* gnu/javax/crypto/prng/CSPRNG.java (FILE_SOURCES): Fix javadoc @see.
	(getSystemInstance): Fix javadoc @link.
	(counter): Increased visibility.
	* gnu/javax/crypto/pad/TLS1.java: Remove unused import.
	* gnu/javax/crypto/pad/IPad.java: Fix javadoc @link.
	* gnu/javax/crypto/pad/PKCS1_V1_5.java (PKCS1_V1_5): Likewise.
	* gnu/javax/crypto/pad/PKCS7.java (PKCS7): Likewise.
	* gnu/javax/crypto/pad/TBC.java (TBC): Likewise.
	* gnu/javax/crypto/mode/CTR.java: Remove unused import.
	* gnu/javax/crypto/mode/BaseMode.java (defaultBlockSize): Fix javadoc @see.
	* gnu/javax/crypto/key/dh/GnuDHPrivateKey.java (getEncoded): Fix javadoc @see.
	* gnu/javax/crypto/jce/spec/TMMHParameterSpec.java: Fix javadoc @link.
	* gnu/javax/crypto/keyring/AuthenticatedEntry.java: Remove unused imports.
	* gnu/javax/crypto/keyring/CertificateEntry.java: Likewise.
	* gnu/javax/crypto/keyring/CertPathEntry.java: Likewise.
	* gnu/javax/crypto/keyring/EncryptedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PublicKeyEntry.java: Likewise.
	* gnu/javax/crypto/mac/OMAC.java: Likewise.
	* gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/KhazadSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/RijndaelSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SerpentSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SquareSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/TwofishSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacImpl.java: Likewise.
	* gnu/javax/crypto/jce/prng/CSPRNGSpi.java: Likewise.
	* gnu/javax/crypto/cipher/IBlockCipherSpi.java: Fix javadoc @link.
	* gnu/javax/crypto/jce/cipher/CipherAdapter.java (CipherAdapter): Likewise.
	* gnu/javax/crypto/cipher/BaseCipher.java: Remove unused import.
	* gnu/javax/crypto/assembly/Cascade.java: Fix javadoc @link.
	* gnu/javax/crypto/assembly/Direction.java: Likewise.
	* gnu/javax/crypto/assembly/Transformer.java: Likewise.

2006-06-04  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/PolicyFile.java: Updated copyright year.
	(logger): Increased visibility.
	* gnu/java/security/x509/Util.java: Updated copyright year.
	(hexDump): Fix javadoc @link.
	* gnu/java/security/x509/ext/GeneralNames.java: Updated copyright year.
	Removed unused import.
	* gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java: Fix javadoc @link.
	* gnu/java/security/sig/ISignature.java (SOURCE_OF_RANDOMNESS): Likewise.
	* gnu/java/security/util/ExpirableObject.java: Likewise.
	(destroy): Likewise.
	* gnu/java/security/util/SimpleList.java (SimpleList): Likewise.
	* gnu/java/security/provider/PKIXCertPathValidatorImpl.java:
	Updated copyright year.
	(checkCRL): Fix javadoc @param.

2006-06-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/annotation/IncompleteAnnotationException.java:
	Documented.

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

	* java/lang/annotation/IncompleteAnnotationException.java: New
	file.

2006-06-02  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(cairoPreserveClip, cairoResetClip): New methods.
	(setClip, clip): Reimplement.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
	(cairoPreserveClip, cairoResetClip): New methods.
	
2006-06-02  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	* include/gnu_java_awt_peer_gtk_GtkVolatileImage.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
	New files.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(drawImage): Overloads for VolatileImage drawing.
	(drawVolatile): New method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h
	(drawVolatile): New method.
	* gnu/java/awt/peer/gtk/GtkVolatileImage.java
	Unstub implementation.
	* include/Makefile.am
	* native/jni/gtk-peer/Makefile.am
	Add new files.
	* native/jni/gtk-peer/gtkpeer.h
	New prototype.
	
2006-06-03  Roman Kennke  <kennke@aicas.com>

	PR 27418
	* javax/swing/plaf/basic/BasicTextUI.java
	(damageRange): Added null check to avoid NPE.

2006-06-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/PlainView.java
	(updateDamage): Check for valid longestLine and initialize if
	necessary.

2006-06-03  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c: Use C
	comments, not C++.

2006-06-02  Sven de Marothy  <sven@physto.se>

	PR 27879 
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(copyArea): Implement.
	(copyAreaImpl, getRealBounds): New methods.
	* gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(copyAreaImpl, getRealBounds): Implement.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(nativeCopyArea): Reimplement.	
	
2006-06-02  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.ac: Add -lX11 and -lXtst to XTEST_LIBS.
	(XTEST_LIBS): New, substitute.
	* native/jni/gtk-peer/Makefile.am (AM_LDFLAGS): Add XTEST_LIBS.

2006-06-02  Roman Kennke <kennke@aicas.com>

	PR 26738
	* javax/swing/text/PlainView.java
	(updateDamage): Rewritten for correct repainting and revalidating.
	(findLongestLine): New helper method.
	(getLineLength): New helper method.

2006-06-02  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	* gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(nativeCopyArea): Change stride parameter to use # of ints.
	(setPixels): Add checks.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(ComponentGraphics): Set background, clip.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(Cairographics2D): Don't set clip.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	Add flush.

2006-06-02  Lillian Angel  <langel@redhat.com>

	PR 24458
	* java/awt/DefaultKeyboardFocusManager.java
	(dispatchEvent): Fixed to getFocusOwner, if that fails it tries
	to get the focused window.

2006-06-01  Miriam Schuster  <schmir11@web.de>

	* Makefile.am: Add fallback if "mozilla-plugin" is not available.
	Fallbacks used: "firefox-plugin" and "xulrunner-plugin".

2006-06-02  Roman Kennke <kennke@aicas.com>

	* javax/swing/JTable.java
	(columnSelectionChanged): Don't return when there's only one
	column (might still need repainting). Correctly calculate
	repaint rectangle.
	(valueChanged): Use return value of SwingUtilities.computeUnion
	as dirty region.

2006-06-01  Keith Seitz  <keiths@redhat.com>

	From Martin Platter  <motse@complang.tuwien.ac.at>:
	* gnu/classpath/jdwp/processor/EventRequestCommandSet.java
	(executeSet): Fix buffer underflow reading reference ID.
	* gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.java
	(executeParent): Fix  NPE if ThreadGroup is top-level ThreadGroup. 
	* gnu/classpath/jdwp/processor/ClassTypeCommandSet.java
	(executeSuperclass): Handle case of Object with ID zero.

2006-06-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/StorePasswdCmd.java: Fixed typo.
	* tools/gnu/classpath/tools/keytool/CertReqCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/DeleteCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/ExportCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/GenKeyCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/IdentityDBCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/ImportCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/KeyCloneCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/ListCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/SelfCertCmd.java: Likewise.

2006-06-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/Command.java (shutdownThread): New field.
	(Command): Add the shutdown hook.
	(doCommand): Remove the shutdown hook.
	(ShutdownHook): New class.

2006-06-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/jarsigner.in: Use @VM_BINARY@.
	* tools/keytool.in: Likewise.

2006-06-01  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java:
	(setColor): Update the cairo paint.

2006-06-01  Mark Wielaard  <mark@klomp.org>

	* java/util/logging/LogManager.java (createInstance): Always add
	original exception on warning.

2006-06-01  Lillian Angel  <langel@redhat.com>

	* tools/gnu/classpath/tools/appletviewer/AppletTag.java
	(prependCodebase): Fixed check. No dirname was ever considered to 
	be a file, so every applet fell into the if-statement causing a lot
	of classloading problems with the applets.

2006-06-01  Sven de Marothy  <sven@physto.se>

	Patch submitted by Boris Dusek.
	* native/jni/qt-peer/qtmenupeer.cpp
	Fix segfault

2006-06-01  Roman Kennke <kennke@aicas.com>

	* javax/swing/JTable.java
	(AccessibleJTableCell.getAccessibleRow): Added comment explaining
	why the behaviour is like it is.
	(AccessibleJTableCell.getAccessibleStateSet): Implemented.
	(AccessibleJTableHeader): New inner class.
	(AccessibleJTableHeaderCell): New inner class.
	(AccessibleJTable.lastSelectedRow): New field.
	(AccessibleJTable.lastSelectedColumn): New field.
	(AccessibleJTable.caption): New field.
	(AccessibleJTable.summary): New field.
	(AccessibleJTable.rowDescriptions): New field.
	(AccessibleJTable.columnDescriptions): New field.
	(AccessibleJTable): Initialize lastSelectedRow and lastSelectedColumn.
	(AccessibleJTable.getAccessibleSelection(int)): Implemented.
	(AccessibleJTable.isAccessibleChildSelected): Implemented.
	(AccessibleJTable.addAccessibleSelection): Implemented.
	(AccessibleJTable.removeAccessibleSelection): Implemented.
	(AccessibleJTable.clearAccessibleSelection): Implemented.
	(AccessibleJTable.selectAllAccessibleSelection): Implemented.
	(AccessibleJTable.valueChange): Implemented.
	(AccessibleJTable.tableRowsInserted): Implemented.
	(AccessibleJTable.tableRowsDeleted): Implemented.
	(AccessibleJTable.handleRowChange): New helper method.
	(AccessibleJTable.columnAdded): Implemented.
	(AccessibleJTable.columnMarginChanged): Implemented.
	(AccessibleJTable.columnMoved): Implemented.
	(AccessibleJTable.columnRemoved): Implemented.
	(AccessibleJTable.columnSelectionChanged): Implemented.
	(AccessibleJTable.handleColumnChange): New helper method.
	(AccessibleJTable.editingCanceled): Implemented.
	(AccessibleJTable.editingStopped): Implemented.
	(AccessibleJTable.getAccessibleRow): Implemented.
	(AccessibleJTable.getAccessibleColumn): Implemented.
	(AccessibleJTable.getAccessibleIndex): Implemented.
	(AccessibleJTable.getAccessibleCaption): Implemented.
	(AccessibleJTable.setAccessibleCaption): Implemented.
	(AccessibleJTable.getAccessibleSummary): Implemented.
	(AccessibleJTable.setAccessibleSummary): Implemented.
	(AccessibleJTable.getAccessibleRowCount): Implemented.
	(AccessibleJTable.getAccessibleColumnCount): Implemented.
	(AccessibleJTable.getAccessibleAt): Implemented.
	(AccessibleJTable.getAccessibleRowExtentAt): Implemented.
	(AccessibleJTable.getAccessibleColumnExtentAt): Implemented.
	(AccessibleJTable.getAccessibleRowHeader): Implemented.
	(AccessibleJTable.setAccessibleRowHeader): Implemented.
	(AccessibleJTable.getAccessibleColumnHeader): Implemented.
	(AccessibleJTable.setAccessibleColumnHeader): Implemented.
	(AccessibleJTable.getAccessibleRowDescription): Implemented.
	(AccessibleJTable.setAccessibleRowDescription): Implemented.
	(AccessibleJTable.getAccessibleColumnDescription): Implemented.
	(AccessibleJTable.setAccessibleColumnDescription): Implemented.
	(AccessibleJTable.isAccessibleSelected): Implemented.
	(AccessibleJTable.isAccessibleRowSelected): Implemented.
	(AccessibleJTable.isAccessibleColumnSelected): Implemented.
	(AccessibleJTable.getSelectedAccessibleRows): Implemented.
	(AccessibleJTable.getSelectedAccessibleColumns): Implemented.
	(getAccessibleContext): Register listeners for the accessibility
	class on the JTable.

2006-06-01  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java:
	(setPaint): Scale +1 pixel larger.

2006-06-01  Sven de Marothy  <sven@physto.se>

	PR 27854
	* gnu/java/awt/Buffers.java (getData): Reimplement.
	* gnu/java/awt/peer/gtk/CairoSurface.java
	(getElem, setElem): Call native methods.

2006-06-01  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/ImageViewIconFactory.java: New file.

2006-06-01  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Check for zero size.
	* gnu/java/awt/peer/gtk/GdkTextLayout.java:
	(setFont): Declare new native method.
	(GdkTextLayout): Read some attributes.
	* include/gnu_java_awt_peer_gtk_GdkTextLayout.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	(setFont): New native method.
	
2006-06-01  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(updateBufferedImage): Fix some errors.

2006-06-01  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicButtonUI.java: Minor source code style 
	fixes,
	* javax/swing/plaf/basic/BasicDirectoryModel.java: Likewise,
	* javax/swing/plaf/basic/BasicFileChooserUI.java: Likewise,
	* javax/swing/plaf/basic/BasicIconFactory.java: Likewise,
	* javax/swing/plaf/basic/BasicListUI.java: Likewise,
	* javax/swing/plaf/basic/BasicOptionPaneUI.java: Likewise,
	* javax/swing/plaf/basic/BasicRootPaneUI.java: Likewise,
	* javax/swing/plaf/basic/BasicScrollPaneUI.java: Likewise,
	* javax/swing/plaf/basic/BasicSpinnerUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTextAreaUI.java: Likewise.
	
2006-06-01  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComboBox.java: Minor source code formatting fixes,
	* javax/swing/JEditorPane.java: Likewise,
	* javax/swing/JFormattedTextField.java: Likewise,
	* javax/swing/JLayeredPane.java: Likewise,
	* javax/swing/JScrollPane.java: Likewise,
	* javax/swing/JSlider.java: Likewise,
	* javax/swing/JSpinner.java: Likewise,
	* javax/swing/JTree.java: Likewise,
	* javax/swing/JViewport.java: Likewise,
	* javax/swing/UIDefaults.java: Likewise,
	* javax/swing/UIManager.java: Likewise.
	
2006-06-01  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(BufferedImageGraphics): Cache surfaces.
	(updateBufferedImage): Copy directly for certain color models.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Reimplement.

2006-06-01  Sven de Marothy  <sven@physto.se>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(setPixels): Don't swap, correct size.

2006-05-31  Anthony Green  <green@redhat.com>

	PR 27828
	* java/net/InetSocketAddress.java: Defer getting the host
	name until somebody calls InetSocketAddress.getHostName().
	Fix "represenation" typo.

2006-06-01  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(updateBufferedImage): Simplify.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(getPixels): Don't swap.

2006-06-01  Sven de Marothy  <sven@physto.se>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(setGradient): Reimplement.
	
2006-06-01  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/cairographics2d.h: Rename/prefix function
	CairoGraphics2D_getCairoT to cp_gtk_get_cairo_t correctly.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(Java_gnu_java_awt_peer_gtk_CairoSurface_drawSurface): Rename function
	CairoGraphics2D_getCairoT to cp_gtk_get_cairo_t.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	(Java_gnu_java_awt_peer_gtk_GdkTextLayout_cairoDrawGdkTextLayout):
	Likewise.

2006-05-31  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/JTableHeader.java
	(getColumnHeaderRenderer): New method,
	(getAccessibleColumnHeaderRenderer): Delegate part to new
	getColumnHeaderRenderer() method,
	(getLocale): Implemented.

2006-05-31  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(cp_gtk_grab_current_drawable): Rename
	cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable to
	cp_gtk_grab_current_drawable, remove static declaration.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState): Renamed above
	function.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_copyAreaNative): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c:
	Remove prototype of
	cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_getPixbuf): Rename
	function.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_copyPixbuf): Likewise.
	* native/jni/gtk-peer/gtkpeer.h: Add prototype for
	cp_gtk_grab_current_drawable here.

2006-05-31  Sven de Marothy  <sven@physto.se>

	Should fix PR 27835
	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(updateBufferedImage): Keep within image bounds.

2006-05-31  Thomas Fitzsimmons  <fitzsim@redhat.com>
	    Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.ac: Check for libXrender when the GTK peers are
	enabled, and set HAVE_XRENDER accordingly. Add -lXrender to
	X_EXTRA_LIBS.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_hasXRender)
	[HAVE_XRENDER]: Call XRenderQueryExtension conditionally.

2006-05-31  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicProgressBarUI.java
	(paintString): Implemented to paint the string vertically.

2006-05-31  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTable.java
	(AccessibleJTable.AccessibleJTable()): Check for null editor,
	(AccessibleJTable.getAccessibleRole()): Overridden to return correct 
	value,
	(AccessibleJTable.getAccessibleTable()): Likewise,
	(getAccessibleContext): Create new context if required.

2006-05-31  Roman Kennke <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(AccessibleJTabbedPane.stateChanged): Implemented.
	(Page.getAccessibleStateSet): Implemented.
	(Page.getAccessibleIndexInParent): Implemented.
	(getAccessibleContext): Add AccessibleJTabbedPane object
	as ChangeListener to the JTabbedPane.

2006-05-31  Roman Kennke <kennke@aicas.com>

	* javax/swing/JMenuItem.java
	(getAccessibleContext): Register accessible object as ChangeListener
	to the JMenuItem.
	(AccessibleJMenuItem.armed): New field.
	(AccessibleJMenuItem.focusOwner): New field.
	(AccessibleJMenuItem.pressed): New field.
	(AccessibleJMenuItem.selected): New field.
	(stateChanged): Implemented.

2006-05-31  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/ListSelectionModel.java: Added API docs all over.

2006-05-31  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/FillRect.java 
	(paintComponent): Optionally paint lines rather than rectangles.
	(createContent): Added option to test line painting.

2006-05-31  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/EventListenerList.java
	(getListenerList): Updated API docs.

2006-05-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Clip scaled image to dest rectangle.

2006-05-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoSurface.java:
	(CairoSurface): Convert pixels properly.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	Remove commented-out lines.

2006-05-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Use Toolkit to convert to BufferedImage.
	* gnu/java/awt/peer/gtk/CairoSurface.java
	(CairoSurface(GtkImage)): New Constructor.
	(getBufferedImage): New method.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	Don't fill background - FIXME.
	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
	Remove unused methods.
	* gnu/java/awt/peer/gtk/GtkImage.java:
	(pixbuflock): New field. Methods change to use this lock.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(createImage): Use Cairo-backed surfaces via GtkImage instead of 
	GtkPixbufDecoder.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(setPixels): Correct length in bytes.

2006-05-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java (static): Call
	System.loadLibrary unconditionally.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java: Likewise.
	* gnu/java/awt/peer/gtk/GdkTextLayout.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkToolkit.java: Likewise.

2006-05-30  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_copyAreaNative):
	Mark unused parameters, remove unused variables.

2006-05-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(copyArea): Implemented.
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c:
	(copyAreaNative): New method.

2006-05-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(Java_gnu_java_awt_peer_gtk_CairoSurface_getPixels): Define i only
	for non big endian systems.
	(Java_gnu_java_awt_peer_gtk_CairoSurface_setPixels): Likewise.

2006-05-30  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/TexturePaintContext.java: New file.
	* java/awt/TexturePaint.java
	(createContext): Implemented.

2006-05-30  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/table/DefaultTableMode.java: Initialize dataVector
	field early.

2006-05-30  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/Container.java:
	(removeAll): Reimplemented, added note.

2006-05-30  Robert Schuster  <robertschuster@fsfe.org>

        * java/awt/Container.java:
        (removeAll): Implemented different removal mechanism, added note.

2006-05-30  Lillian Angel  <langel@redhat.com>

	PR 27785
	* java/awt/Component.java:
	(translateEvent): Added handling to translate WindowEvents
	* java/awt/Window.java:
	Removed unneeded imports.

2006-05-30  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/Makefile.am (libgtkpeer_la_SOURCES): Add
	cairographics2d.h.

2006-05-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkImage.java: Fix constructor javadoc.

2006-05-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(clearRect): Do not reuse the fg field, call updateColor.
	(drawRaster): Likewise.
	(setColor): Call updateColor.
	(updateColor): New method.

2006-05-30  Mark Wielaard  <mark@klomp.org>

	* native/jni/classpath/jcl.h (JLONG_TO_PTR): New macro.
	(PTR_TO_JLONG): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(getPointer): Use new conversion macros.
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_init): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(Java_gnu_java_awt_peer_gtk_CairoSurface_newCairoContext):
	Likewise.
	(setNativeObject): Likewise.
	(getNativeObject): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable):
	Mark static.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState):
	Correctly cast XID and pointer values.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
	(Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_getPixbuf):
	Mark unused variables.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_copyPixbuf):
	Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	(Java_gnu_java_awt_peer_gtk_GdkTextLayout_cairoDrawGdkTextLayout):
	Remove unused cairographics2d struct.
	(_moveTo, _lineTo, _quadTo, _curveTo): Mark arguments const.
	(Java_gnu_java_awt_peer_gtk_GtkImage_initFromBuffer):
	Use new conversion macros.
	* native/jni/midi-dssi/dssi_data.h: Move conversion macros to jcl.h.

2006-05-30  Mark Wielaard  <mark@klomp.org>

	* include/Makefile.am (gnu_java_nio_VMChannel.h): Added.

2006-05-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(copy): Do not reuse the fd field.
	(setColor): Do not set the color if the parameter
	matches fd field.
	(translate(double, double): Rewritten to use
	AffineTransform.translate. 

2006-05-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java
	* include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
	New files.
	* include/Makefile.am
	* native/jni/gtk-peer/Makefile.am
	Add new files.
	* gnu/java/awt/peer/gtk/CairoSurface.java
	(getSharedGtkImage): New method.
	* gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	Fix copyArea.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	Support a non-xrender context.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	Plug memory leak.
	* gnu/java/awt/peer/gtk/GtkImage.java
	* include/gnu_java_awt_peer_gtk_GtkImage.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(initFromBuffer): New method.	
	* native/jni/gtk-peer/gtkpeer.h: 
	Remove declarations of previouslyremoved methods.

2006-05-29  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* tools/Makefile.am [FOUND_CACAO] (LIBJVM): Define to -ljvm.

2006-05-29  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_init): Mark unused
	arguments.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(Java_gnu_java_awt_peer_gtk_CairoSurface_setPixels): Declare size
	early. Remove unused return statement in void function.
	(Java_gnu_java_awt_peer_gtk_CairoSurface_newCairoContext): Declare
	ptr early.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_hasXRender): Mark
	unused arguments.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState): Likewise.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_start_1gdk_1drawing):
	Likewise.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_end_1gdk_1drawing):
	Likewise.

2006-05-29  Sven de Marothy  <sven@physto.se>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(setPixels): Remove superfluous return statement.	

2006-05-29  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	* gnu/java/awt/peer/gtk/CairoSurface.java
	* gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
	* include/gnu_java_awt_peer_gtk_CairoSurface.h
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h
	* native/jni/gtk-peer/cairographics2d.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	New files.

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	* include/gnu_java_awt_peer_gtk_GdkGraphics2D.h
	Removed

	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(releasePeerGraphicsResource): Moved to Font peer class.

	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
	(createGraphics): Use new context classes.

	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
	Use native BufferedImages where possible.

	* gnu/java/awt/peer/gtk/GdkTextLayout.java
	* include/gnu_java_awt_peer_gtk_GdkTextLayout.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	Move GdkGraphics2D.drawGdkTextLayout to the GdkTextLayout class,
	renamed to cairoDrawGdkTextLayout.
	
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(getGraphics): Use ComponentGraphics context.
	(createImage): Use native BufferedImage.
	
	* gnu/java/awt/peer/gtk/GtkImage.java:
	* include/gnu_java_awt_peer_gtk_GtkImage.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	Remove pixmap support. (GtkImage(int, int) constructor, getGraphics)
	Remove drawing methods.
		
	* gnu/java/awt/print/JavaPrinterGraphics.java:
	Use CairoSurface instead of GtkImage.
	
	* include/Makefile.am
	* native/jni/gtk-peer/Makefile.am
	Update for new files.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
	Remove superfluous GtkImage code for GdkPixmaps. 

	* native/jni/gtk-peer/gtkpeer.h
	Remove graphics2d structure.
	
2006-05-29  Mark Wielaard  <mark@klomp.org>

	* java/io/ObjectStreamConstants.java: Removed double declaration
	of SC_ENUM.

2006-05-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (copying constructor):
	Do not reuse fg in the constructor.

2006-05-29  Carsten Neumann  <cn-develop@gmx.net>

	* java/io/ObjectStreamConstants.java: Added API docs.

2006-05-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (setColor):
	Take no action if this color is already set.

2006-05-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (translate):
	Rewritten. 
	* examples/gnu/classpath/examples/swing/FillRect.java (paintComponent):
	Optionally paint with translation. (createContent): Added option
	to test painting with translation

2006-05-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/logging/FileHandler.java (FileHandler): Set the instance field
	pattern to the default value when null.
	Pass field pattern, and not parameter with same name to createFileStream.

2006-05-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/OperatingSystemMXBeanImpl.java:
	New class implementing the OS bean.
	* gnu/java/lang/management/package.html:
	New file to document the gnu.java.lang.management package.
	* java/lang/management/ManagementFactory.java:
	New class to provide access to the OS bean.
	* java/lang/management/OperatingSystemMXBean.java:
	New interface.
	* java/lang/management/package.html:
	New file to document the java.lang.management package.
	
2006-05-28  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/ImportCmd.java (GKR): New constant.
	(JKS): Likewise.
	(LIB): Likewise.
	(SECURITY): Likewise.
	(CACERTS): Likewise.
	(CACERTS_GKR): Likewise.
	(gkrCaCertsPathName): New field.
	(jksCaCertsPathName): Likewise.
	(selfSignedCertificate): Likewise.
	(start): Initialize trusted certificate key stores if -trustcacerts is
	specified.
	(ensureReplyIsOurs): Initialize selfSignedCertificate.
	(orderChain): Implemented.
	(findTrustAndUpdate): Check a cacerts.gkr (GKR) and a cacert (JKS) trusted
	certificate key stores if -trustcacerts option is specified.
	(findTrustInCACerts): Removed.
	(getCertPathParameters): New method.
	(validate): New method.
	* resource/gnu/classpath/tools/keytool/messages.properties: Added message.

2006-05-28  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/logging/FileHandler.java (PROPERTY_PREFIX): New constant.
	(PATTERN_KEY): Likewise.
	(DEFAULT_PATTERN): Likewise.
	(LIMIT_KEY): Likewise.
	(DEFAULT_LIMIT): Likewise.
	(COUNT_KEY): Likewise.
	(DEFAULT_COUNT): Likewise.
	(APPEND_KEY): Likewise.
	(DEFAULT_APPEND): Likewise.
	(FileHandler()): Use pattern value as set in logging.properties.
	Use constants defined above.
	(FileHandler(1)): Use constants defined above.
	(FileHandler(2)): Likewise.
	(FileHandler(3)): Likewise.
	(FileHandler(4)): Likewise.
	(createFileStream): Likewise.

2006-05-28  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/logging/FileHandler.java: Reverted previous patch.
	* java/util/logging/LogManager.java: Likewise.

2006-05-28  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/logging/FileHandler.java (PATTERN_KEY): New constant.
	(DEFAULT_PATTERN): Likewise.
	(FileHandler()): Use configured pattern property if any; otherwise use a
	default value as per RI documentation.
	* java/util/logging/LogManager.java (getStringProperty): New method.

2006-05-27  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* NEWS: Announce libjawtgnu.so-to-libjawt.so rename.

2006-05-27  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac (FOUND_CACAO): New automake conditional.
	Add --enable-tool-wrappers.
	* NEWS: Introduce the --enable-tool-wrappers option.
	* tools/Makefile.am[CREATE_WRAPPERS]: Build wrapper binaries.
	* tools/appletviewer.c: Remove file.  Make tool-indepedent and
	rename ...
	* tools/toolwrapper.c: New file.

2006-05-27  Dalibor Topic  <robilad@kaffe.org>

	* java/awt/Graphics2D.java: Use full class name for 
	PrinterJob in javadoc.

2006-05-27  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/qt-peer/eventmethods.h (callVoidMethod): Silence warning.
	(callMouseMethod): Likewise.

2006-05-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* native/jni/java-net/java_net_VMURLConnection.c:
	Fix function declarations to specify unused parameters.
	* scripts/check_jni_methods.sh:
	Remove copies of the same function using uniq.
	
2006-05-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* vm/reference/java/net/VMURLConnection.java:
	Make package-private and final.
	
2006-05-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/TableDemo.java
	(TModed): Added editor for the icons column.
	(createContent): Increase the row height by 2 px.

2006-05-26  Tom Tromey  <tromey@redhat.com>

	PR classpath/27685:
	* java/math/BigInteger.java (modPow): Correctly handle negative
	exponent.

2006-05-26  Tom Tromey  <tromey@redhat.com>

	* configure.ac: Check for magic.h and -lmagic.
	* vm/reference/java/net/VMURLConnection.java: New file.
	* include/java_net_VMURLConnection.h: New file.
	* include/Makefile.am (H_FILES): Add VMURLConnection.h.
	($(top_srcdir)/include/java_net_VMURLConnection.h): New target.
	* native/jni/java-net/Makefile.am (libjavanet_la_SOURCES):
	Mention new file.
	(libjavanet_la_LIBADD): Add $(LIBMAGIC).
	* native/jni/java-net/java_net_VMURLConnection.c: New file.

2006-05-26  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* tools/Makefile.am (installcheck-binSCRIPTS): Do nothing.

2006-05-26  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jawt/Makefile.am (nativeexeclib_LTLIBRARIES): Rename
	libjawtgnu.la libjawt.la.

2006-05-26  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/Makefile.am (libgtkpeer_la_SOURCES): Remove
	gtkcairopeer.h.

2006-05-25  Lillian Angel  <langel@redhat.com>
	
	PR 26174
	* java/awt/Window.java
	(Window): Moved code to helper.
	(addWindowFocusListener): New function. Handles focus
	listener code. Added code to handle focus lost/gained
	from the window.

2006-05-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* configure.ac:
	Make pkg-config check for GTK+ >= 2.8.
	
2006-05-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(flush): Remove debugging printfs.

2006-05-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(schedule_flush): New function.
	(end_drawing_operation): Call schedule_flush.

2006-05-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* examples/gnu/classpath/examples/swing/Demo.java: Add FillRect
	paint performance demo.
	* examples/gnu/classpath/examples/swing/FillRect.java: New file.

2006-05-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* INSTALL: Bump GTK requirement to 2.8 or higher.  Do not mention
	Cairo version requirement.  Do not mention --enable-gtk-cairo
	configure option.
	* NEWS: Add entry for GdkGraphics2D.
	* configure.ac: Remove --enable-gtk-cairo and explicit checks for
	Cairo library and headers.
	* .externalToolBuilders/Configure.launch: Remove
	--enable-gtk-cairo from configure line.
	* gnu/classpath/Configuration.java.in (GTK_CAIRO_ENABLED): Remove
	field.
	* gnu/java/awt/BitwiseXORComposite.java: Fix javadoc typo.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c : Remove
	useGraphics2D references.  Always assume Graphics2D is enabled.
	* gnu/java/awt/peer/gtk/GdkGraphics.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c: Remove.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c: Remove
	Unlocked method variants.  Remove GTK_CAIRO_ENABLED and
	useGraphics2D references.  Always assume Graphics2D is enabled.
	* gnu/java/awt/peer/gtk/GdkTextLayout.java: Remove instanceof
	Graphics2D check.  Always assume Graphics2D is enabled.
	* gnu/java/awt/peer/gtk/GtkCanvasPeer.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c
	(realize): Remove method.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(isRealized): Remove method.
	(realize): Implement as a native method.  Remove useGraphics2D
	references.  Always assume Graphics2D is enabled.
	* gnu/java/awt/peer/gtk/GtkImage.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c: Replace
	GdkGraphics references with GdkGraphics2D references.
	* gnu/java/awt/peer/gtk/GtkToolkit.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c: Remove
	useGraphics2D references.  Always assume Graphics2D is enabled.
	* include/Makefile.am (GTKPEER_H_FILES): Remove
	gnu_java_awt_peer_gtk_GdkGraphics.h.
	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h: Regenerate.
	* include/gnu_java_awt_peer_gtk_GdkGraphics.h: Remove.
	* include/gnu_java_awt_peer_gtk_GdkGraphics2D.h: Regenerate.
	* include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h: Likewise.
	* include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: Likewise.
	* native/jawt/Makefile.am (AM_LDFLAGS): Remove CAIRO_LIBS.
	* native/jni/gtk-peer/Makefile.am (libgtkpeer_la_SOURCES): Remove
	gnu_java_awt_peer_gtk_GdkGraphics.c.  Include
	gnu_java_awt_peer_gtk_GdkGraphics2D.c unconditionally.
	(AM_LDFLAGS): Remove CAIRO_LIBS.
	(AM_CFLAGS): Remove CAIRO_CFLAGS.
	* native/jni/gtk-peer/gtkcairopeer.h: Remove.  Move declarations
	to ...
	* native/jni/gtk-peer/gtkpeer.h: Add Graphics2D declarations.

2006-05-25  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked):
	Added check to prevent assertion error. If widget->window is null, then
	use the parent widget's window to set the cursor on.

2006-05-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (TreeCancelEditingAction):
	Implemented.

2006-05-24  Lillian Angel  <langel@redhat.com>

	* tools/gnu/classpath/tools/appletviewer/AppletTag.java
	(prependCodeBase): Added check to determine if the documentbase
	points to a directory or a file.

2006-05-24  Sven de Marothy  <sven@physto.se>

	* java/awt/dnd/DragGestureRecognizer.java
	(resetRecognizer): Implement.
	(fireDragGestureRecognized): Implement.

2006-05-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java: Marked stub methods and
	fixed source code formatting.

2006-05-24  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (valueChanged): If is editing, stop editing.

2006-05-24  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	Reported by Antony Balkisson.
	* javax/swing/JTable.java (selectAll): Return without action 
	if the table is empty.

2006-05-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/TableDemo.java:
	(SliderCell): New inner class. (setCustomEditors,
	setInformativeHeaders): New fields. (createContent):
	Rewritten.
	* javax/swing/DefaultCellEditor.java 
	(JComboBoxDelegate.shouldSelectCell): New method.
	* javax/swing/JTable.java (editCellAt): Call shouldSelectCell.
	* javax/swing/plaf/basic/BasicTableUI.java
	(MouseInputHandler.mouseClicked): Start editing on a single
	click if the cell editor is not a default cell editor.

2006-05-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/naming/CompositeName.java,
	javax/swing/naming/CompoundName.java:
	Documented.

2006-05-23  Archie Cobbs  <archie@dellroad.org>

	* vm/reference/java/lang/VMClassLoader.java: fix static initializer
	ordering problem.

2006-05-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/AbstractLayoutCache.java: Coding style fixes,
	* javax/swing/tree/DefaultMutableTreeNode.java: Likewise,
	* javax/swing/tree/DefaultTreeCellRenderer.java: Likewise,
	* javax/swing/tree/DefaultTreeModel.java: Likewise,
	* javax/swing/tree/DefaultTreeSelectionModel.java: Likewise,
	* javax/swing/tree/ExpandVetoException.java: Likewise,
	* javax/swing/tree/FixedHeightLayoutCache.java: Likewise,
	* javax/swing/tree/RowMapper.java: Likewise,
	* javax/swing/tree/TreeNode.java: Likewise,
	* javax/swing/tree/TreeSelectionModel.java: Likewise,
	* javax/swing/tree/VariableHeightLayoutCache.java: Likewise.

2006-05-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/DefaultTreeCellRenderer.java
	(DefaultTreeCellRenderer): Changed key for 
	setBackgroundNonSelectionColor(),
	plus API docs all over.

2006-05-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
	
	PR 27680
	* javax/swing/JTable.java (booleanInvertingEditor): New field.
	(defaultEditorsByColumnClass, defaultRenderersByColumnClass):
	Initialise in constructor. (columnMoved): Cancel editing.
	(createDefaultEditors): Rewritten. (editCellAt):
	Just invert the value if this is a boolean cell. 
	(initialiseLocalVars): Do not initialise renderer and editor tables.
	(setUI): Create editors and renderers here.

2006-05-23  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/awt/Demo.java:
	(MainWindow.MainWindow): Added ResolutionWindow and FullscreenWindow
	instance as subframe.
	(ResolutionWindow): New inner class.
	(FullscreenWindow): New inner class.

2006-05-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
	
	PR 27680
	* javax/swing/JTable.java (BooleanCellRenderer, IconCellRenderer):
	Set horizontal alignment to centered.

2006-05-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/accessibility/AccessibleContext.java
	(getAccessibleComponent): Fixed typo in docs,
	* javax/swing/JLabel.java:
	(AccessibleJLabel.getAccessibleName): Check for explicit 
	accessibleName,
	* javax/swing/JTableHeader.java
	(AccessibleJTableHeaderEntry.columnIndex): New field,
	(AccessibleJTableHeaderEntry.parent): New field,
	(AccessibleJTableHeaderEntry.table): New field,
	(AccessibleJTableHeaderEntry.AccessibleJTableHeaderEntry()): 
	Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleColumnHeaderRenderer): New 
	utility method,
	(AccessibleJTableHeaderEntry.addFocusListener): Implemented,
	(AccessibleJTableHeaderEntry.addPropertyChangeListener): Implemented,
	(AccessibleJTableHeaderEntry.contains): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleAction): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleAt): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleChild): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleChildrenCount): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleComponent): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleContext): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleDescription): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleIndexInParent): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleName): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleRole): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleSelection): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleStateSet): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleText): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleValue): Implemented,
	(AccessibleJTableHeaderEntry.getBackground): Implemented,
	(AccessibleJTableHeaderEntry.getBounds): Implemented,
	(AccessibleJTableHeaderEntry.getCursor): Implemented,
	(AccessibleJTableHeaderEntry.getFont): Implemented,
	(AccessibleJTableHeaderEntry.getFontMetrics): Implemented,
	(AccessibleJTableHeaderEntry.getForeground): Implemented,
	(AccessibleJTableHeaderEntry.getLocation): Implemented,
	(AccessibleJTableHeaderEntry.getLocationOnScreen): Implemented,
	(AccessibleJTableHeaderEntry.getSize): Implemented,
	(AccessibleJTableHeaderEntry.isEnabled): Implemented,
	(AccessibleJTableHeaderEntry.isFocusTraversable): Implemented,
	(AccessibleJTableHeaderEntry.isShowing): Implemented,
	(AccessibleJTableHeaderEntry.isVisible): Implemented,
	(AccessibleJTableHeaderEntry.removeFocusListener): Implemented,
	(AccessibleJTableHeaderEntry.removePropertyChangeListener): 
	Implemented,
	(AccessibleJTableHeaderEntry.requestFocus): Implemented,
	(AccessibleJTableHeaderEntry.setAccessibleDescription): Implemented,
	(AccessibleJTableHeaderEntry.setAccessibleName): Implemented,
	(AccessibleJTableHeaderEntry.setBackground): Implemented,
	(AccessibleJTableHeaderEntry.setBounds): Implemented,
	(AccessibleJTableHeaderEntry.setCursor): Implemented,
	(AccessibleJTableHeaderEntry.setEnabled): Implemented,
	(AccessibleJTableHeaderEntry.setFont): Implemented,
	(AccessibleJTableHeaderEntry.setForeground): Implemented,
	(AccessibleJTableHeaderEntry.setLocation): Implemented,
	(AccessibleJTableHeaderEntry.setSize): Implemented,
	(AccessibleJTableHeaderEntry.setVisible): Implemented,
	(AccessibleJTableHeader.getAccessibleRole): Implemented,
	(AccessibleJTableHeader.getAccessibleChildrenCount): Implemented,
	(AccessibleJTableHeader.getAccessibleChild): Implemented,
	(AccessibleJTableHeader.getAccessibleAt): Implemented.

2006-05-22  Tom Tromey  <tromey@redhat.com>

	* NEWS: Updated.

2006-05-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JLabel.java
	(AccessibleJLabel.getAccessibleName): New method (override),
	(setLabelFor): Fire 'labelFor' property change event before other
	events.

2006-05-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JLabel.java
	(AccessibleJLabel.getAccessibleRole): New method (override).

2006-05-22  Tom Tromey  <tromey@redhat.com>

	* resource/gnu/classpath/tools/serialver/messages.properties: New
	file.
	* tools/gnu/classpath/tools/serialver/Messages.java: New file.
	* tools/gnu/classpath/tools/serialver/SerialVer.java (classes): New
	field.
	(classpath): Likewise.
	(run): New method.
	(main): Use it.
	(addFileURL): New method.
	(getClassLoader): Likewise.
	(printMessage): Likewise.

2006-05-22  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/serialver/SerialVer.java: New file.

2006-05-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (doLayout): In the column
	resize mode, only repaing the changed part of the table.
	(getLeftResizingBoundary): New method.

2006-05-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/naming/spi/InitialContextFactory.java,
	javax/naming/spi/InitialContextFactoryBuilder.java,
	javax/naming/spi/NamingManager.java,
	javax/naming/spi/ObjectFactory.java,
	javax/naming/spi/ResolveResult.java,
	javax/naming/spi/Resolver.java,
	javax/naming/spi/StateFactory.java: Documented.

2006-05-21  Tom Tromey  <tromey@redhat.com>

	PR classpath/27688:
	* tools/gnu/classpath/tools/jar/Extractor.java (allItems): Now
	a WorkSet.
	(initSet): Removed.
	(shouldExtract): Removed.
	(run): Updated.
	* tools/gnu/classpath/tools/jar/WorkSet.java: New file.
	* tools/gnu/classpath/tools/jar/Lister.java (readUntilEnd): New
	method.
	(listJar): Use it.
	(allItems): New field.
	(run): Initialize it.
	(listJar): Use it.

2006-05-22  Sven de Marothy  <sven@physto.se>

	* java/nio/CharBuffer.java
	(wrap): Fix bounds checking.

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

	* java/io/OutputStream.java 
	(OutputStream): Implements Closeable, Flushable.

2006-04-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/io/ObjectOutputStream.java:
	(writeObject(Object)): Added enum support.
	(writeClassDescriptor(ObjectStreamClass)): Likewise.
	* java/io/ObjectStreamClass.java:
	(isEnum()): New package-private method.
	(setFlags(Class)): Added enum support.
	* java/io/ObjectStreamConstants.java:
	(SC_ENUM): Added.

2006-03-29  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/io/ObjectInputStream.java:
	(parseContent(byte)): Added enum support.
	* java/io/ObjectStreamConstants.java:
	(TC_ENUM): Added.
	(TC_MAX): Changed to new maximum, TC_ENUM.

2006-05-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/beans/beancontext/BeanContextSupport.java:
	(instantiateChild(String)): Implemented.
	
2006-05-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/beans/beancontext/BeanContextSupport.java:
	(add(Object)): Add further documentation.
	(isEmpty()): Documented.
	(propertyChange(PropertyChangeEvent)): Implemented.
	(remove(Object)): Documented.
	(remove(Object,boolean)): Documented and implemented.
	(vetoableChange(PropertyChangeEvent)): Marked as
	implemented (only subclasses appear to need this).
	
2006-05-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/beans/beancontext/BeanContextSupport.java:
	(add(Object)): Implement support for the child being
	a BeanContextChild.
	(avoidingGui()): Implemented.
	(dontUseGui()): Likewise.
	(needsGui()): Likewise.
	(okToUseGui()): Likewise.
	
2006-05-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/naming/Context.java,
	javax/naming/ContextNotEmptyException.java,
	javax/naming/Reference.java: Documented.

2006-05-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/MinimalHTMLWriter.java
	(writeComponent, writeImage): Declare that the method
	may throw the IOException.

2006-05-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
	
	PR 26972
	* javax/naming/InitialContext.java (colon_list): Changed type to
	hashset. (use_properties): New field. (init(Hashtable)): Rewritten.
	(merge): Rewritten.

2006-05-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/naming/InitialContext.java: Documented.

2006-05-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/naming/NameParser.java,
	javax/naming/NamingEnumeration.java,
	javax/naming/PartialResultException.java,
	javax/naming/SizeLimitExceededException.java,
	javax/naming/spi/ObjectFactory.java,
	javax/naming/spi/ObjectFactoryBuilder.java: Documented.

2006-05-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/net/loader/JarURLLoader.java:
	Use Map.Entry instead of LinkedHashMap.Entry
	
2006-05-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/naming/Context.java: Documented.

2006-05-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/naming/Referenceable.java: Documented.
	* javax/naming/spi/NamingManager.java: Documented.

2006-05-21  Raif S. Naffah  <raif@swiftdsl.com.au>

	* doc/tools.texinfo: Replaced references to MessageBundle.properties
	to messages.properties.
	* resource/gnu/classpath/tools/jarsigner/MessageBundle.properties:
	Renamed to messages.properties.
	* resource/gnu/classpath/tools/keytool/MessageBundle.properties:
	Likewise.
	* resource/gnu/classpath/tools/jarsigner/messages.properties:
	Renamed from MessageBundle.properties.
	Added copyright notice.
	* resource/gnu/classpath/tools/keytool/messages.properties:
	Likewise.
	* tools/gnu/classpath/tools/jarsigner/Messages.java
	(BUNDLE_NAME): Use messages instead of MessageBundle properties file.
	(getFormattedString): Fixed a spelling mistake.
	* tools/gnu/classpath/tools/keytool/Messages.java: Likewise.

2006-05-20  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/font/opentype/NameDecoder.java
	Made class public.
	(getName): Use getShort instead of getChar(), fix PS name.
	(decodeName): New method.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(getSubFamilyName): Implement.
	(getPostScriptName): Use the NameDecoder class instead.
	(parsePSName): Removed.
	(getName): Added

2006-05-20  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(getTrueTypeTable): New native method.
	(getPostScriptName): Reimplement.
	(parsePSName): New method.
	(getNumGlyphs): Implement.
	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h: New native method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTrueTypeTable):
	New function. File is now explicitly dependent on FT2.
	
2006-05-20  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/native2ascii/Messages.java: New file.
	* resource/gnu/classpath/tools/native2ascii/messages.properties: New
	file.
	* tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
	(HandleFile): New class.
	(input, output, encoding, reversed): New fields.
	(createParser): New method.
	(run): Likewise.
	(main): Use 'run'.
	* tools/gnu/classpath/tools/getopt/FileArgumentCallback.java
	(notifyFile): Throws OptionException.

2006-05-20  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/native2ascii/Native2ASCII.java: New file,
	from cp-tools.

2006-05-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* native/jni/java-nio/gnu_java_nio_VMChannel.c:
	(JCL_print_buffer): Fix to work with -Werror on 64-bit
	platforms.
	
2006-05-20  Sven de Marothy  <sven@physto.se>

	* java/awt/Font.java (getNumGlyphs): Call correct peer method.
	
2006-05-20  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/print/JavaPrinterJob.java 
	(print): Use PostScriptGraphics2D.
	* gnu/java/awt/print/PostScriptGraphics2D.java: New file.
	
2006-05-20  Sven de Marothy  <sven@physto.se>

	* javax/swing/text/html/MinimalHTMLWriter.java: New file
	
2006-05-20  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/OID.java: Updated copyright year.
	(OID): Removed unused Javadoc param tag.
	* gnu/java/security/prng/PRNGFactory.java: Removed unused import.
	* gnu/java/security/hash/MD4.java: Fixed a Javadoc link.

2006-05-20  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/jce/keyring/GnuKeyring.java (engineAliases):
	Formatting.
	Added trace/debug statements.
	(engineSetCertificateEntry): Ensure alias is not already used for a Key
	Entry.  Also ensure that any previous entry for this alias is removed
	before a new one is added.
	(engineGetKey): Do not trace/log passwords.
	Trace key's class name only.
	(engineSetKeyEntry): Ensure alias is not alredy used for a Trusted
	Certificate Entry. Also ensure that previous entry for this alias is
	removed before a new one is added.
	(engineLoad): Do not trace/log passwords.
	(engineStore): Likewise.
	(engineSize): Use size of enumeration instead of collection size.

2006-05-20  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/keyring/PrivateKeyEntry.java: Formatting.
	(toString): New method.
	* gnu/javax/crypto/keyring/PasswordEncryptedEntry.java (decrypt):
	Do not trace/log passwords.
	Set masked to false before decoding envelope.
	Do not set payload to null.
	(encrypt): Set masked to true.
	* gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java (verify):
	Do not trace/log passwords.
	Set masked to false before decoding envelope.
	Do not set payload to null.
	Added trace/debug statements.
	(authenticate): Do not trace/log passwords.
	Set masked to true.
	Added trace/debug statements.
	(getMac): Added trace/debug statements.
	* gnu/javax/crypto/keyring/MaskableEnvelopeEntry.java
	(remove(String)): Changed the signature to return a boolean.
	(toString): New method.
	* gnu/javax/crypto/keyring/GnuPublicKeyring.java (containsCertificate):
	Formatting
	(getCertificate): Likewise.
	(putCertificate): Likewise.
	(load): Likewise.
	Do not trace/log passwords.
	(store): Likewise.
	* gnu/javax/crypto/keyring/GnuPrivateKeyring.java (getPrivateKey):
	Do not trace/log passwords.
	Added more trace/logging statements.
	(putPrivateKey): Do not trace/log passwords.
	Trace only key's class name.
	Formatting.
	(containsPublicKey): Formatting.
	(getPublicKey): Likewise.
	Trace only key's class name.
	(putPublicKey): Trace only key's class name.
	(containsCertPath): Formatting.
	(getCertPath): Likewise.
	(putCertPath): Likewise.
	(load): Do not trace/log passwords.
	Formatting.
	(store): Likewise.
	* gnu/javax/crypto/keyring/EnvelopeEntry.java (log): New field.
	(add): Do not set payload to null.
	Added trace/debug statements.
	(containsAlias): Added trace/debug statements.
	(get): Likewise.
	(remove(Entry)): Likewise.
	(remove(String)): Likewise.
	Changed the signature to return a boolean.
	Do not set payload to null unless really removed.
	(toString): New method.
	(decodeEnvelope): Clear entries before proceeding.
	(makeAliasList): Added trace/debug statements.
	Ensure only non-null aliases and alias-lists are added.
	* gnu/javax/crypto/keyring/Entry.java (log): New field.
	(TYPES): New constant.
	(toString): New method.
	(defaultDecode): Add trace/debug statement.

2006-05-20  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/ListCmd.java (rfc):
	Increased visibility.
	(setup): Do not trace/log passwords.
	(parsed): Was not setting correct (rfc) field; fixed.
	(print1Chain): Formatting.
	* tools/gnu/classpath/tools/keytool/DeleteCmd.java (setup):
	Do not trace/log passwords.
	* tools/gnu/classpath/tools/keytool/ExportCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/GenKeyCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/IdentityDBCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/KeyCloneCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/StorePasswdCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/ImportCmd.java (setup): Likewise.
	(orderChain): Added FIXME.
	* tools/gnu/classpath/tools/keytool/CertReqCmd.java (setup):
	Do not trace/log passwords.
	Removed commented out code.
	* tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/SelfCertCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/Command.java (doCommand): Formatting.
	(setKeystoreURLParam): Likewise.
	(setKeystorePasswordParam): Do not trace/log passwords.
	(saveKeyStore): Likewise.

2006-05-19  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	Added class docs.
	(pixel): Removed obsolete field.
	(draw(Shape)): Removed commented out code.
	(drawImage): Formatting.
	(drawString): Added optimization hook.
	(setPaint): Removed rawSetForeground().
	(getFontRenderContext): Return context with correct transform.
	(drawGlyphVector): Draw complete outline in one go.
	(copyArea): Added optimization hook.
	(clearRect): Added optimization hook.
	(drawImage): Added optimization hook.
	(fillShape): (Temporarily) Set antialiasing off by default for
	font rendering. Adjust the shape by some bits to improve rendering.
	Pass clip bounds to the render methods.
	(drawPixel): Removed.
	(rawSetPixel): Removed.
	(rawSetForeground): Removed.
	(rawDrawLine): Default impl calls standard pipeline.
	(rawDrawString): New method, calls standard pipeline for rendering.
	(rawClearRect): New method, calls standard pipeline for rendering.
	(rawFillRect): New method, calls standard pipeline for rendering.
	(rawDrawImage): New method, calls standard pipeline for rendering.
	(rawCopyArea): New method.
	(copyAreaImpl): New method.
	(rawFillShape): Renamed to fillShapeImpl(). Small optimization
	for rendering.
	(fillShapeAntialias): Fixed AA rendering.
	(fillScanlineAA): Fixed AA rendering.
	(getSegments): Take offset into account.

2006-05-19  Sven de Marothy  <sven@physto.se>

	* javax/swing/text/AbstractWriter.java
	(getText): Fix parameters (start, length) not (start, end).
	
2006-05-19  Tom Tromey  <tromey@redhat.com>

	PR classpath/27444:
	* gnu/java/net/loader/URLLoader.java (getClassPath): Documented.
	Changed return type.
	* java/net/URLClassLoader.java (urlloaders): Removed.
	(addURLImpl): Updated.
	* gnu/java/net/loader/JarURLLoader.java (initialized): New field.
	(indexSet): Likewise.
	(classPath): Changed type.
	(JarURLLoader): New constructor.
	(initialize): New method.
	(getResource): Use index set if it exists.
	(getClassPath): Updated.
	* gnu/java/net/IndexListParser.java (IndexListParser): Avoid NPE.
	(prefixes): New field.
	(headers): Removed.
	(IndexListParser): Fill in prefixes.
	(clearAll): Clear prefixes.
	(getHeaders): Changed return type.

2006-05-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTableHeaderUI.java 
	(MouseInputHandler.mouseExitted): No nothing there.
	(MouseInputHandler.endDragging): Move column to the
	first/last position if released outside the horizontal
	table range.

2006-05-19  Lillian Angel  <langel@redhat.com>

	* java/awt/font/GlyphVector.java
	(getGlyphCharIndex): Implemented.
	(getGlyphCharIndices): Implemented.
	(getGlyphOutline): Implemented.
	(getGlyphVisualBounds): Implemented.
	(getGlyphVisualBounds): Implemented.
	(getPixelBounds): Implemented.
	(getLayoutFlags): Implemented.

2006-05-19  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/LightweightDispatcher.java: Added field dragButton and
	documentation for it.
	(handleMouseEvent): Rewritten MOUSE_PRESSED case in switch-statement,
	added subexpression to if-clause in MOUSE_RELEASED case.

2006-05-19  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/metal/MetalButtonUI.java:
	(update): Removed some subexpression from if-clause and call
	updateWithGradient.
	(updateWithGradient): New method.

2006-05-19  Roman Kennke <kennke@aicas.com>

	* javax/swing/JComponent.java
	(findOverlapFreeParent): Implemented algorithm for finding
	overlapping in component hierarchy.

2006-05-19  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/Thread.java
	(contextClassLoaderIsSystemClassLoader): New field.
	(Thread(ThreadGroup,Runnable)): Call createAnonymousThreadName.
	(Thread(VMThread,String,int,boolean)): Call createAnonymousThreadName
	and set contextClassLoaderIsSystemClassLoader.
	(Thread(ThreadGroup,Runnable,String,long)):
	Set contextClassLoaderIsSystemClassLoader.
	(createAnonymousThreadName): New method.
	(getContextClassLoader): Check contextClassLoaderIsSystemClassLoader
	and fixed security check.
	(setContextClassLoader): Clear contextClassLoaderIsSystemClassLoader.

2006-05-19  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicToolBarUI.java:
	(createNonRolloverBorder): Rewritten.
	(createRolloverBorder): Rewritten.
	(setToNonRolloverBorder): Store old border instance in hashtable.
	(setToRolloverBorder): Store old border instance in hashtable, use
	AbstractButton instead of JButton in statements.
	(setBorderToNormal): Rewritten.
	* javax/swing/plaf/metal/MetalLookAndFeel.java:
	(initComponentDefaults): Added values for ToolBar.rolloverBorder and
	ToolBar.nonrolloverBorder.

2006-05-18  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/stream/ImageInputStreamImpl.java: Complete.
	* javax/imageio/stream/MemoryCacheImageInputStream.java: Likewise.

2006-05-18  Lillian Angel  <langel@redhat.com>

	* java/awt/font/GlyphMetrics.java
	(getLSB): Implemented.
	(getRSB): Implemented.

2006-05-18  Lillian Angel  <langel@redhat.com>

	* java/awt/font/GraphicAttribute.java:
	Documented entire class.
	(GraphicAttribute): Added check for alignment.
	(getBounds): Implemented.
	(getJustificationInfo): Implemented.

2006-05-18  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/LightweightDispatcher.java:
	(handleMouseEvent): Added note, added subexpression to if-statement.

2006-05-18  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicToolBarUI.java:
	(navigateFocusedComp): Marked as stub.
	(createRolloverBorder): Create a different Border instance, added note.
	* javax/swing/plaf/metal/MetalBorders.java:
	(ButtonBorder): Added documentation.
	(ButtonBorder.paintDefaultButtonBorder): Added else-block.
	(ButtonBorder.paintOceanButtonBorder): Added else-block, added
	subexpression into if-else cascade, added note.

2006-05-18  Lillian Angel  <langel@redhat.com>

	* java/awt/font/ShapeGraphicAttribute.java:
	Documented entire class.
	(ShapeGraphicAttribute): Initialized bounds field.
	(draw): Implemented.
	(equals): Implemented.
	(getAdvance): Implemented.
	(getAscent): Implemented.
	(getBounds): Implemented.
	(getDescent): Implemented.
	(hashCode): Implemented.

2006-05-18  Roman Kennke <kennke@aicas.com>

	* javax/swing/CellRendererPane.java
	(CellRendererPane): Set CellRendererPane to invisible.

2006-05-18  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(clipRect): Removed old intersection statement.

2006-05-18  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(clipRect): Don't use Rectangle.intersection() to avoid creating
	2 unnecessary Rectangle instances and fix a clipping problem.
	(computeIntersection): New helper method, adapted from SwingUtilities.

2006-05-18  Roman Kennke <kennke@aicas.com>

	* javax/swing/JComponent.java
	(isCompletelyDirty): Removed.
	(paint): Don't mark children as clean, this is no longer necessary.
	(findOverlapFreeParent): Don't stop at Viewports, this breaks
	painting when something overlaps the viewport (like a popup/menu).
	* javax/swing/RepaintManager.java
	(currentRepaintManagers): Made package private to avoid accessor
	methods.
	(dirtyComponents): Made private.
	(dirtyComponentsWork): Made private.
	(markCompletelyDirty): Fixed bounds of dirtyrect to be
	component-local not parent-local. Do not set flag in JComponent.
	(markCompletelyClean): Don't set JComponent flag.
	(isCompletelyDirty): Rewritten to return true when the complete
	component is marked dirty.
	(paintDirtyRegions): Improved parent-merging so that the merged-in
	components don't get painted too. 'Outsourced' the compilation
	of the repaint root components.
	(compileRepaintRoots): New helper method.

2006-05-18  Roman Kennke <kennke@aicas.com>

	PR 26368
	* javax/swing/text/GapContent.java
	(GapContentPosition(int)): Use adapted binarySearch method to
	allow for having a greater array than number of entries.
	(numMarks): New field, holds the end of the marks list.
	(GapContent): Initialize positionMarks with size of 10 instead of 0.
	(shiftGapStartDown): Adjusted for new setPositionsInRange signature.
	(shiftGapEndUp): Adjusted for new setPositionsInRange signature.
	(setPositionsInRange): Changed signature to narrow the purpose and
	special cases inside. Reimplemented to crunch together equal marks.
	(adjustPositionsInRange): Added assertion to make sure we do
	not accidentally change the order of the mark. Added some debug
	output for a special case of which I don't know if it even exists.
	(resetMarksAtZero): Made impl simpler.
	(dumpMarks): New debug helper method.
	(insertMark): Grow array in bigger chunks to avoid excessive copying.
	(binarySearch): New method. An adaption of Arrays.binarySearch()
	that allows for an maxIndex parameter.

2006-05-18  Roman Kennke <kennke@aicas.com>

	* javax/swing/KeyboardManager.java
	(topLevelLookup): Use WeakHashMap to avoid memory leak.

2006-05-18  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/net/loader/JarURLLoader.java
	(JarURLLoader): Use a slightly more efficient URL constructor.

2006-05-18  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/java/awt/print/JavaPrinterGraphics.java
	(drawImage(Image, int, int, Color, ImageObserver)): Fix endless loop,
	(drawImage(Image, int, int, ImageObserver)): Likewise,
	(drawImage(Image, int, int, int, int, Color, ImageObserver)): Likewise,
	(drawImage(Image, int, int, int, int, ImageObserver)): Likewise,
	(drawImage(Image, int, int, int, int, int, int, int, int, Color, 
	ImageObserver)): Likewise,
	(drawImage(Image, int, int, int, int, int, int, int, int, 
	ImageObserver)): Likewise.

2006-05-17  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/jar/Indexer.java (indexJarFile): Use a
	LinkedHashSet.

2006-05-17  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/border/AbstractBorder.java: Source code formatting fixes,
	* javax/swing/border/BevelBorder.java: Likewise,
	* javax/swing/border/CompoundBorder.java: Likewise,
	* javax/swing/border/TitledBorder.java: Likewise.

2006-05-17  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/AbstractTableModel.java: Formatting fixes,
	* javax/swing/table/DefaultTableModel.java: Likewise,
	* javax/swing/table/TableCellEditor.java: Likewise,
	* javax/swing/table/TableCellRenderer.java: Likewise.

2006-05-17  Lillian Angel  <langel@redhat.com>

	* java/awt/font/ImageGraphicAttribute.java:
	Documented entire class.
	(ImageGraphicAttribute): Changed to call this.
	(ImageGraphicAttribute): Implemented.
	(draw): Implemented.
	(equals): Implemented.
	(getAdvance): Implemented.
	(getAscent): Implemented.
	(getBounds): Implemented.
	(getDescent): Implemented.
	(hashCode): Implemented.
	* javax/swing/text/html/HTMLDocument.java
	(create): Removed. Sufficent enough for
	super to be called.
	(insert): Likewise.
	(insertUpdate): Likewise.
	(processHTMLFrameHyperlinkEvent): Marked as stub.
	(start): Removed FIXME.
	(end): Likewise.
	(start): Called super. 
	(end): Called super.
	(getElement): removed unneeded code.
	(setParagraphAttribute): Removed. Sufficent enough
	for super to be called.
	(fireChangedUpdate): Likewise.
	(fireUndoableEditUpdate): Likewise.	

2006-05-17  Lillian Angel  <langel@redhat.com>

	* java/awt/TexturePaint.java:
	Added documentation for class and all functions.
	(getTransparency): Implemented.

2006-05-17  Roman Kennke <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	(findTarget): Translate point to child components.

2006-05-17  Roman Kennke <kennke@aicas.com>

	PR 26368
	* javax/swing/text/GapContent.java
	(GapContentPosition): Do no more implement Comparable.
	(GapContentPosition.mark): Removed field.
	(GapContentPosition.index): New field to hold the index into
	the positions array.
	(GapContentPosition(int)): Rewritten to use the new indirection
	to the positions array.
	(GapContentPosition.compareTo): Removed.
	(GapContentPosition.getOffset): Synchronized. Fetch mark from
	positionMarks array.
	(WeakPositionComparator): Removed obsolete class.
	(positions): Changed type to WeakHashMap.
	(positionMarks): New field, holds the marks of the positions.
	(GapContent): Initialize new fields.
	(createPosition): Rewritten to use the new indirection
	to the positions array.
	(getPositionsInRange): Rewritten to use the new indirection
	to the positions array.
	(setPositionsInRange): Rewritten to use the new indirection
	to the positions array.
	(adjustPositionsInRange): Rewritten to use the new indirection
	to the positions array.
	(insertMark): New helper method.
	(clearPositionReferences): Removed obsolete methods.

2006-05-17  Lillian Angel  <langel@redhat.com>

	* java/awt/GraphicsConfiguration.java
	(getImageCapabilities): Implemented.
	(getBufferCapabilities): Implemented.

2006-05-17  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(focusGained): Implemented.
	(focusLost): Implemented.
	(paint): Added code to paint the focus.
	* javax/swing/plaf/metal/MetalSliderUI.java
	(paintThumb): Added code to set the thumbColor.
	(paintFocus): Implemented properly.

2006-05-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27383
	* javax/naming/spi/NamingManager.java (getURLContext):
	Always search for the factory class in all possible places
	and use VMStackWalker.
	(forName): New method.

2006-05-17  Roman Kennke <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	(handleMouseEvent): Fixed search algorithm for finding the
	mouse event target.
	(findTarget): Fixed search algorithm for finding the
	mouse event target.

2006-05-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/naming/spi/NamingManager.java: Documented.

2006-05-17  Mark Wielaard  <mark@klomp.org>

	* THANKYOU: Add Trevor Linton <tlinton@xmission.com>.
	* gnu/javax/imageio/jpeg/DCT.java: Cleanup Todo copyright.
	* gnu/javax/imageio/jpeg/YCbCr_ColorSpace.java: Likewise.
	* gnu/javax/imageio/jpeg/ZigZag.java: Likewise.

2006-05-17  Robert Schuster  <robertschuster@fsfe.org>

	Fixes PR 26947.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java: Updated copyright
	year.
	(BorderListener.mouseClicked): Detect double-clicks in title pane,
	copied code from
	BasicInternalFrameTitlePaneUI.MaximizeAction.actionPerformed().

2006-05-17  Robert Schuster  <robertschuster@fsfe.org>

	Fixes PR 27626.
	* java/awt/LightweightDispatcher.java:
	(handleMouseEvent): Moved assignment into switch-block, added notes.

2006-05-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/StyleContext.java:
	Changed staticAttributeKeys  to be a Hashtable.
	(getStaticAttribute): Implemented.
	(getStaticAttributeKey): Implemented.
	(readAttributeSet): Implemented.
	(writeAttributeSet): Added FIXME. Not sure how
	to implement this.
	(readAttributes): Implemented.
	(writeAttributes): Implemented.
	(registerStaticAttibuteKey): Fixed to add key to 
	the hash table.

2006-05-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultButtonModel.java
	(setGroup): Removed event notification.

2006-05-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(installKeyboardActions): Implemented.
	(uninstallKeyboardActions): Implemented.
	* javax/swing/plaf/basic/BasicComboPopup.java
	(uninstallKeyboardActions): Removed FIXME. Nothing
	to be done here.
	(installKeyboardActions): Likewise.
	* javax/swing/plaf/basic/BasicTextUI.java
	(uninstallKeyboardActions): Implemented.
	* javax/swing/plaf/basic/BasicTreeUI.java:
	Added field for hashColor.
	Marked stub methods.
	(getHashColor): Implemented to use field.
	(setHashColor): Likewise.
	(getRowX): Implemented.
	(NodeDimensions.getRowX): Changed to use BasicTreeUI.getRowX.	

2006-05-16  Roman Kennke <kennke@aicas.com>

	PR 26521
	* javax/swing/JTable.java
	(rowHeights): New field.
	(initializeLocalVars): Call setRowHeigt instead of rowHeight=,
	in order to initialize rowHeights correctly.
	(tableChanged): Nullify rowHeights when model changes. Only
	create default columns from model when corresponding property
	is set. Sync table model with rowHeights as appropriate.
	(valueChanged): Call repaint with the correct rectangle.
	(rowAtPoint): Handle rowHeights.
	(getCellRect): Mostly rewritten. Check for boundaries
	of model and return (0,0,0,0) or (0,0,width,height) when outside.
	Handle component orientation. Round correctly.
	(getRowHeight(int)): Implemented for variable row height.
	(setRowHeight(int,int)): Implemented for variable row height.
	(setRowHeight(int)): Nullify rowHeights.
	(setModel): Notify tableChanged().
	* javax/swing/plaf/basic/BasicTableUI.java
	(installDefaults): Create rendererPane in installUI.
	(installUI): Create and install rendererPane.
	(uninstallUI): Uninstall rendererPane and nullify rendererPane
	and table.
	(paint): Correctly handle rowMargin.

2006-05-16  Tom Tromey  <tromey@redhat.com>

	PR classpath/27563:
	* java/text/NumberFormat.java (getIntegerInstance): Use
	"integerFormat", not "numberFormat".

2006-05-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/JPopupMenu.java
	(addMenuKeyListener): Implemented.
	(removeMenuKeyListener): Implemented.
	(getMenuKeyListeners): Implemented.
	* javax/swing/ProgressMonitor.java:
	Added new protected field.
	(getAccessibleContext): Implemented.

2006-05-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/JFileChooser.java:
	Added new private field.
	(setDragEnabled): Implemented.
	(getDragEnabled): Implemented.

2006-05-16  Lillian Angel  <langel@redhat.com>

	* java/awt/Window.java
	(applyResourceBundle): Implemented.

2006-05-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultButtonModel.java
	(setSelected): If new SELECTED state is false, clear ARMED and PRESSED
	states also.

2006-05-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JList.java (getSelectedValues):
	Ask the value for the indexed array element.

2006-05-16  Roman Kennke <kennke@aicas.com>

	* javax/swing/JTable.java
	(valueChanged): Also repaint when table has only 1 row. Fixed
	repaint rectangle to span the entire changed rows.

2006-05-16  Roman Kennke <kennke@aicas.com>

	PR 24031
	* javax/swing/JOptionPane.java
	(startModal): Rewritten. The events are now dispatched, even
	when the event dispatch thread gets blocked by the call
	to this method. Also, mouse events get intercepted outside the
	internal frame.

2006-05-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(BorderListener.mouseDragged):Do not set cursor 
	if the frame is being dragged.

2006-05-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(BorderListener): Rewritten. (InternalFrameBorder):
	Made package private.
	(InternalFrameBorder.offset):
	Renamed to cornerSize, made package private.
	(bSize): Made package private.

2006-05-16  Roman Kennke <kennke@aicas.com>

	* javax/swing/JMenu.java
	(AccessibleJMenu.getAccessibleChildrenCount): Implemented.
	(AccessibleJMenu.getAccessibleChild): Implemented.
	(AccessibleJMenu.getAccessibleSelection): Implemented.
	(AccessibleJMenu.getAccessibleSelection(int)): Implemented.
	(AccessibleJMenu.isAccessibleChildSelected): Implemented.
	(AccessibleJMenu.getAccessibleRole): Documented.
	(AccessibleJMenu.getAccessibleSelectionCount): Implemented.
	(AccessibleJMenu.addAccessibleSelection): Implemented.
	(AccessibleJMenu.removeAccessibleSelection): Implemented.
	(AccessibleJMenu.clearAccessibleSelection): Implemented.
	(AccessibleJMenu.selectAllAccessibleSelection): Implemented.
	(createPath): New helper method.

2006-05-15  Tom Tromey  <tromey@redhat.com>

	* java/net/URLClassLoader.java: Moved inner classes to
	gnu.java.net.loader.
	(factoryCache): Changed type.
	(URL_LOADER_PREFIX): New constant.
	(URLClassLoader): Updated for new factoryCache.
	(addURLImpl): Use reflection to search for a loader.
	(findClass): Use getClass method on URLLoader.
	(getURLStreamHandler): Removed.
	* gnu/java/net/loader/URLLoader.java: New file, extracted
	from URLClassLoader.
	* gnu/java/net/loader/Resource.java: Likewise.
	* gnu/java/net/loader/FileResource.java: Likewise.
	* gnu/java/net/loader/FileURLLoaderjava: Likewise.
	* gnu/java/net/loader/JarURLLoader.java: Likewise.
	* gnu/java/net/loader/JarURLResource.java: Likewise.
	* gnu/java/net/loader/RemoteURLLoader.java: Likewise.
	* gnu/java/net/loader/RemoteResource.java: Likewise.
	* gnu/java/net/loader/ULRStreamHandlerCache.java: New file.

2006-05-15  Sven de Marothy  <sven@physto.se>

	* native/target/generic/target_generic_network.h: 
	Add a pair of parenthesis.

2006-05-15  Mark Wielaard  <mark@klomp.org>

	* java/awt/Graphics2D.java: Remove PrinterJob import.

2006-05-15  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/announce/20060515.wml: New file.
	* doc/www.gnu.org/newsitems.txt: Add 0.91 release announcement.
	* doc/www.gnu.org/downloads/downloads.wml: Add 0.91.

2006-05-15  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* NEWS: Announce inclusion of gcjwebplugin.
	Announce inclusion of appletviewer.
	* INSTALL: Note gcjwebplugin dependencies.

2006-05-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/RepaintManager.java (paintDirtyRegions):
	Break loop as soon as the component repaint is merged
	with some parent. (ComponentComparator): Removed.
	(comparator): Removed.

2006-05-15  Roman Kennke <kennke@aicas.com>

	* javax/swing/border/TitledBorder.java
	(paintBorderWithTitle): Fixed indentation.

2006-05-15  Roman Kennke <kennke@aicas.com>

	* javax/swing/border/TitledBorder.java
	(layoutBorderWithTitle): Fetch border using getBorder() instead
	of using the border field directly. Allows for the use of
	an UI supplied border in the case when a null border was set.
	Fixed component orientation.
	(paintBorderWithTitle): Fetch border using getBorder() instead
	of using the border field directly. Allows for the use of
	an UI supplied border in the case when a null border was set.

2006-05-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/RepaintManager.java (paintDirtyRegions): Rewritten.
	(contains): New method.

2006-05-15  Tom Tromey  <tromey@redhat.com>

	* resource/gnu/classpath/tools/jar/messages.properties: Fixed
	argument indices.
	* resource/gnu/classpath/tools/getopt/Messages.properties: Fixed
	argument indices.

2006-05-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JComponent.java (findOverlapParent): Stop loop at
	 JViewport's.
	* javax/swing/RepaintManager.java (addDirtyRegion): Always add the given
	region. (paintDirtyRegions): Rewritten.

2006-05-15  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/jar/Main.java (setArchiveFile): Use
	MessageFormat.
	* tools/gnu/classpath/tools/jar/Indexer.java (indexJarFile): Use
	MessageFormat.
	* tools/gnu/classpath/tools/jar/Extractor.java: Externalized strings.
	(run): Use MessageFormat.
	* resource/gnu/classpath/tools/jar/messages.properties: New file.
	* tools/gnu/classpath/tools/jar/Creator.java: Externalized strings.
	(writeFile): Use MessageFormat.

2006-05-15  Jeroen Frijters  <jeroen@frijters.net>

	* java/awt/Toolkit.java (getDefaultToolkit): Use Class.forName()
	instead of directly calling the class loader.

2006-05-15  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/getopt/Option.java (getDescription):
	Removed old comment.
	* tools/gnu/classpath/tools/getopt/ClasspathToolParser.java:
	Externalized strings.
	(getVersionString): Use MessageFormat.
	* tools/gnu/classpath/tools/getopt/Messages.java: New file.
	* resource/gnu/classpath/tools/getopt/Messages.properties: New file.
	* tools/gnu/classpath/tools/getopt/Parser.java: Externalized strings.
	(getArgument): Use a MessageFormat.
	(handleLongOption): Likewise.
	(parse): Likewise.

2006-05-15  Robert Schuster  <robertschuster@fsfe.org>

	Fixes PR 27197.
	* javax/swing/text/FieldView.java:
	(paint): Calculate intersection between clip and allocation area and
	set that as new clip.

2006-05-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/JTextComponent.java: Marked stub methods.

2006-05-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTable.java: Marked stub methods.

2006-05-15  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/Main.java:
	Increased visibility of fields used by parser anonymous classes.
	(KEYTOOL_TOOL): New constant.
	(cmdLineParser): Changed type to ToolParser.
	(fileAndAlias): new field.
	(main): Don't catch OptionException.
	(processArgs): Removed validation checks; now handled by ToolParser.
	(getParser): Removed.
	(ToolParserCallback): New inner class.
	(ToolParser): Likewise.

2006-05-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (TableTextArea.scrollRectToVisible):
	Removed.

2006-05-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/DefaultDesktopManager.java (endDraggingFrame, 
	endResizingFrame): Do not repaint, unless in the outline mode.

2006-05-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTabbedPane.java
	(AccessibleJTabbedPane.getAccessibleRole): Implemented,
	(AccessibleJTabbedPane.getAccessibleChildrenCount): Implemented,
	(AccessibleJTabbedPane.getAccessibleSelection()): Implemented,
	(AccessibleJTabbedPane.getAccessibleAt): Implemented,
	(AccessibleJTabbedPane.getAccessibleSelectionCount): Implemented,
	(AccessibleJTabbedPane.getAccessibleSelection(int)): Implemented,
	(AccessibleJTabbedPane.isAccessibleChildSelected): Implemented,
	(AccessibleJTabbedPane.addAccessibleSelection): Implemented,
	(AccessibleJTabbedPane.removeAccessibleSelection): Implemented,
	(AccessibleJTabbedPane.clearAccessibleSelection): Implemented,
	(AccessibleJTabbedPane.selectAllAccessibleSelection): Implemented,
	(Page.getAccessibleName): Implemented.

2006-05-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/DefaultDesktopManager.java (setBoundsForFrame):
	Do not repaint nor revalidate here.

2006-05-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/RepaintManager.java (addDirtyRegion):
	If there is a lightweight parent, recursively add the corresponding
	region of the parent instead.

2006-05-15  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Graphics2D.java: Added some API doc comments.

2006-05-15  Mark Wielaard  <mark@klomp.org>

	* NEWS: Add release date and VMClassLoader.getBootPackages()
	changes.

2006-05-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTabbedPane.java
	(paramString): Reimplemented,
	(getAccessibleContext): Added API docs.

2006-05-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JFileChooser.java
	(paramString): Reimplemented,
	(getAccessibleContext): Updated API docs,
	(AccessibleJFileChooser): Added API docs.

2006-05-14  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/jar/Updater.java (run): No longer throws
	OptionException.
	* tools/gnu/classpath/tools/jar/Creator.java (run): No longer throws
	OptionException.
	* tools/gnu/classpath/tools/jar/Action.java (run): No longer throws
	OptionException.
	* tools/gnu/classpath/tools/jar/Indexer.java (run): Removed.  Moved
	validation to JarParser.
	* tools/gnu/classpath/tools/jar/Main.java (JarParser): New class.
	(run): Moved validation to JarParser.  Don't throw OptionException.
	(initializeParser): Create a JarParser.
	(main): Don't catch OptionException.
	* tools/gnu/classpath/tools/getopt/Parser.java (printHelp): No longer
	public.
	(validate): New method.
	(parse): Call it.  Print '-help' in error message when long-only.

2006-05-14  Tom Tromey  <tromey@redhat.com>

	* gnu/java/awt/print/JavaPrinterJob.java (setPrintable): Fixed
	assignment.

2006-05-15  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/print/JavaPrinterGraphics.java:
	Sweeping changes I can't be bothered to document in detail.
	* gnu/java/awt/print/JavaPrinterJob.java
	(getPageAttributes): New method.
	(setPageable,cancel,isCancelled): Implement.

2006-05-15  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* README: Added CACAO to list of VMs.

2006-05-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JCheckBoxMenuItem.java
	(requestFocus): Fixed typo in API docs,
	(paramString): Just call super.paramString(),
	(getAccessibleContext): Added API docs,
	(AccessibleJCheckBoxMenuItem): Likewise.

2006-05-14  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/jar/Indexer.java
	(writeCommandLineEntries): Simplify insertion.
	* tools/gnu/classpath/tools/jar/Main.java (run): Don't allow both
	-m and -M.

2006-05-14  Tom Tromey  <tromey@redhat.com>

	PR classpath/27514:
	* gnu/java/net/IndexListParser.java (JAR_INDEX_FILE): Renamed.  Now
	constant.
	(JAR_INDEX_VERSION_KEY): Likewise.
	(IndexListParser): Updated.
	(getVersionInfo): Likewise.
	* tools/gnu/classpath/tools/jar/Indexer.java: New file.
	* tools/gnu/classpath/tools/jar/Action.java (run): Now throws
	OptionException.
	* tools/gnu/classpath/tools/jar/Main.java (initializeParser): Handle
	-i.
	(ModeOption): New constructor.
	(parsed): Updated.  Use setArchiveFile.
	(setArchiveFile): New method.
	(run): Handle no-argument case.
	(main): Emit --help message on option error.
	* tools/gnu/classpath/tools/jar/Updater.java (inputJar): New field.
	(createManifest): New method.
	(run): Updated.  Throws OptionException.  Correctly copy zip entry.
	* tools/gnu/classpath/tools/jar/Creator.java (createManifest): New
	method.
	(writeManifest): Removed.
	(outputStream): Now a JarOutputStream.
	(writeCommandLineEntries): Changed parameters.  Updated callers.
	(run): Throws OptionException.
	* java/util/jar/JarOutputStream.java (putNextEntry): Typo fix.
	* java/util/jar/Manifest.java (read): Typo fix.

2006-05-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JMenuItem.java
	(paramString): Fixed class name in API doc comment.

2006-05-14  Tom Tromey  <tromey@redhat.com>

	* native/plugin/.cvsignore: Updated.

2006-05-14  Mark Wielaard  <mark@klomp.org>

	* native/jni/java-net/javanet.c (_javanet_accept): Don't use C++
	comments.

2006-05-14  Mark Wielaard  <mark@klomp.org>

	PR 27459
	* native/jni/java-net/javanet.c (_javanet_accept): Reset the
	inherited timeout on socket.

2006-05-14  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/Main.java (main): Formatting.

2006-05-14  Raif S. Naffah  <raif@swiftdsl.com.au>

	* resource/gnu/classpath/tools/keytool/MessageBundle.properties:
	Added help text.
	* tools/gnu/classpath/tools/keytool/keytool.txt: Removed
	* tools/gnu/classpath/tools/keytool/StorePasswdCmd.java: 
	Increased visibility of fields used by parser anonymous classes.
	(processArgs): Removed.
	(getParser): New method.
	* tools/gnu/classpath/tools/keytool/SelfCertCmd.java: Likewise.
	(setup): Mark (Eclipse) strings that need not be externalised.
	(start): Likewise.
	* tools/gnu/classpath/tools/keytool/PrintCertCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/Main.java: Amended to use getopt
	command line option parsing.
	* tools/gnu/classpath/tools/keytool/ListCmd.java: 
	Increased visibility of fields used by parser anonymous classes.
	(processArgs): Removed.
	(setup): set 'all' local field.
	(getParser): New method.
	* tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java: 
	Increased visibility of fields used by parser anonymous classes.
	(processArgs): Removed.
	(getParser): New method.
	* tools/gnu/classpath/tools/keytool/KeyCloneCmd.java: Likewise.
	(setNewKeyPassword): Fixed comments.
	* tools/gnu/classpath/tools/keytool/ImportCmd.java: 
	Increased visibility of fields used by parser anonymous classes.
	(processArgs): Removed.
	(getParser): New method.
	(findTrustInCACerts): Mark (Eclipse) strings that need not be
	externalised.
	* tools/gnu/classpath/tools/keytool/GenKeyCmd.java: 
	Increased visibility of fields used by parser anonymous classes.
	(processArgs): Removed.
	(setup): Mark (Eclipse) strings that need not be externalised.
	(getParser): New method.
	* tools/gnu/classpath/tools/keytool/IdentityDBCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/DeleteCmd.java: 
	Increased visibility of fields used by parser anonymous classes.
	(processArgs): Removed.
	(getParser): New method.
	* tools/gnu/classpath/tools/keytool/CertReqCmd.java: Likewise.
	(ATTRIBUTES_OPT): New constant.
	* tools/gnu/classpath/tools/keytool/ExportCmd.java: 
	Increased visibility of fields used by parser anonymous classes.
	(processArgs): Removed.
	(setup): Mark (Eclipse) strings that need not be externalised.
	(start): Likewise.
	Reduced logging level.
	(getParser): New method.
	* tools/gnu/classpath/tools/keytool/Command.java
	(processArgs): Made it concrete.
	(getParser): New abstract method.
	* tools/Makefile.am (KEYTOOL_HELPS): Removed.

2006-05-13  Casey Marshall  <csm@gnu.org>

	Patch by Michael Barker <mike@middlesoft.co.uk>.
	* gnu/java/nio/PipeImpl.java: Retrofitted to use VMChannel.
	* gnu/java/nio/SelectorImpl.java (register): Added condition for
	gnu.java.nio.SocketChannelSelectionKeyImpl.
	* gnu/java/nio/SocketChannelSelectionKeyImpl.java: new file.
	* gnu/java/nio/channels/FileChannelImpl.java: retrofitted to use
	VMChannel.
	* include/gnu_java_nio_VMChannel.h: new file.
	* java/nio/FileChannel.java (read,write): changed to call abstract
	method.
	* native/jni/java-nio/gnu_java_nio_VMChannel.c: new file.
	* native/jni/java-nio/Makefile.am (libjavanio_SOURCES): add
	`gnu_java_nio_VMChannel.c.'
	* vm/reference/gnu/java/nio/VMChannel.java: new file.

2006-05-14  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/AbstractDocument.java:
	(insertString): Flipped if-expression and its blocks.
	(remove): Dito.
	(replace): Flipped if-expression and its blocks, added note, invoke
	insertString and remove instead of insertStringImpl and removeImpl.

2006-05-13  Tom Tromey  <tromey@redhat.com>

	* java/nio/ByteBufferImpl.java (compact): Always set position.

2006-05-13  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/print/JavaPrinterGraphics.java
	(spoolPostScript): Use a faster writer.

2006-05-13  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/print/JavaPrinterGraphics.java
	(colorTripleHex): Reimplement better.

2006-05-13  Sven de Marothy  <sven@physto.se>

	* javax/swing/text/html/HTMLDocument.java
	(CharacterAction.start): Translate tag to StyleAttribute.
	(pushCharacterStyle): Push copy of attributes onto stack.
	* gnu/javax/swing/text/html/CharacterAttributeTranslator.java:
	New file

2006-05-13  Sven de Marothy  <sven@physto.se>

	* gnu/javax/print/ipp/IppRequest.java (send): Set a timeout.
	* java/awt/print/PrinterJob.java 
	(getPrinterJob): Return a JavaPrinterJob
	(setPrintService,getPrintService): Implement.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c:
	(getPixels): Gtk_threads_enter required.
	* gnu/java/awt/print/JavaPrinterGraphics.java
	* gnu/java/awt/print/JavaPrinterJob.java
	* gnu/java/awt/print/SpooledDocumet.java: 
	New files.
	
2006-05-13  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/TextAction.java:
	(HorizontalMovementAction): New inner class.
	(VerticalMovementAction): New inner class.
	* javax/swing/text/DefaultEditorKit.java: Added assigning instances of
	new inner classes to array 'defaultActions'.
	(SelectionBeginWordAction): New inner class.
	(SelectionEndWordAction): New inner class.
	(BeginWordAction): New inner class.
	(EndWordAction): New inner class.
	(PreviousWordAction.actionPerformed): Rewritten.
	(SelectLineAction): New inner class.
	(SelectWordAction): New inner class.
	(SelectionDownAction): Rewritten.
	(SelectionUpAction): Rewritten.
	(DownAction): Rewritten.
	(UpAction): Rewritten.
	(SelectionForwardAction): Rewritten.
	(SelectionBackwardAction): Rewritten.
	(ForwardAction): Rewritten.
	(BackwardAction): Rewritten.
	(BeginAction): New inner class.
	(EndAction): New inner class.
	(DefaultKeyTypedAction.actionPerformed): Use int variant of
	Character.isISOControl.

2006-05-13  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/NavigationFilterDemo.java:
	(WordFilter.getNextVisualPositionFrom): Added statement to check
	for variable pt not being null.

2006-05-13  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/Utilities.java:
	(getNextWord): Fixed grammar in exception message.
	(getPreviousWord): Changed expression in first if-clause, added sub-
	expression to if-clause in while-loop.
	(getWordStart): Changed expression in if-clause.
	getNextVisualPositionFrom): Added package-private helper method.

2006-05-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
	* javax/swing/tree/DefaultTreeSelectionModel.java (leadRow):
	Initialise to -1.

2006-05-13  Raif S. Naffah  <raif@swiftdsl.com.au>

	* resource/gnu/classpath/tools/jarsigner/MessageBundle.properties:
	Added help text.
	* tools/Makefile.am (JARSIGNER_HELPS): Removed.
	* tools/gnu/classpath/tools/jarsigner/jarsigner.txt: Removed.
	* tools/gnu/classpath/tools/jarsigner/Main.java:
	Increased visibility of fields used by parser anonymous classes.
	(HELP_PATH): Removed.
	(cmdLineParser): New field.
	(main): Handle JVM exit status.
	Handle command line parsing exceptions.
	(processArgs): Use getopt command line parser.
	(getParser): New method.
	(setupCommonParams): Removed checks now handled by processArgs().
	(setupSigningParams): Likewise.
	* tools/gnu/classpath/tools/jarsigner/JarSigner.java (start):
	Reuse an existing message-bundle constant.

2006-05-12  Tom Tromey  <tromey@redhat.com>

	* gnu/java/net/protocol/jar/Connection.java (getHeaderField):
	Explicitly specify class for synchronization.

2006-05-12  Tom Tromey  <tromey@redhat.com>

	* java/util/logging/Logger.java (resetLogger): Fixed typo.

2006-05-12  Sven de Marothy  <sven@physto.se>

	* gnu/java/net/protocol/http/HTTPConnection.java (get): Add timeout parameter.
	* gnu/java/net/protocol/http/HTTPURLConnection.java
	(setConnectTimeout): New method.
	(getConnection): Add timeout parameter.
	*  java/net/URLConnection.java  
	(getConnectTimeout, setConnectTimeout): Implement.
	* native/target/generic/target_generic_network.h: 
	Set correct socket parameters SO_SNDTIMEO and SO_RCVTIMEO.
	
2006-05-12  Sven de Marothy  <sven@physto.se>

	* gnu/javax/print/CupsServer.java
	(CupsServer): Make the Cups host configurable.
	* java/lang/System.java: Document the system property.
	
2006-05-12  Roman Kennke <kennke@aicas.com>

	* javax/swing/border/TitledBorder.java
	(paintBorder): Rewritten for simplicity and correctness.
	(layoutBorderWithTitle): New helper method.
	(paintBorderWithTitle): New helper method.
	(getBorderInsets): Rewritten.
	(getMinimumSize): Rewritten.
	(getRealJustification): Removed.
	(getMeasurements): Removed.
	(Measurements): Removed.

2006-05-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicPanelUI.java
	(sharedUI): New field,
	(createUI): Return a shared instance rather than a new instance,
	(installUI): Reformatted and added API docs,
	(installDefaults): Install border if one is defined,
	(uninstallDefaults): Uninstall border.

2006-05-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JProgressBar.java: Updated API docs all over.

2006-05-11  Lillian Angel  <langel@redhat.com>

	* java/awt/ContainerOrderFocusTraversalPolicy.java
	(getComponentAfter): Should not throw exception if
	the ancestor is null. Added a check for this.
	Also, changed to use new helper function, we should
	iterate through all the components at least once.
	(getNextAvailableComponent): New helper function.
	(getPrevAvailableComponent): New helper function.
	(getComponentBefore): Should not throw exception if
	the ancestor is null. Added a check for this.
	Also, changed to use new helper function, we should
	iterate through all the components at least once.
	(getFirstComponent): Changed check to manually check
	fields. Calling accept() casts the object to a Component,
	so different values may be returned.
	(getLastComponent): Likewise.

2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalBorders.java: Clean up formatting/style,
	* javax/swing/plaf/metal/MetalButtonUI.java: Likewise,
	* javax/swing/plaf/metal/MetalCheckBoxUI.java: Likewise,
	* javax/swing/plaf/metal/MetalComboBoxButton.java: Likewise,
	* javax/swing/plaf/metal/MetalComboBoxIcon.java: Likewise,
	* javax/swing/plaf/metal/MetalFileChooserUI.java: Likewise,
	* javax/swing/plaf/metal/MetalIconFactory.java: Likewise,
	* javax/swing/plaf/metal/MetalInternalFrameTitlePane.java: Likewise,
	* javax/swing/plaf/metal/MetalLookAndFeel.java: Likewise,
	* javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.java: Likewise,
	* javax/swing/plaf/metal/MetalRootPaneUI.java: Likewise,
	* javax/swing/plaf/metal/MetalScrollBarUI.java: Likewise,
	* javax/swing/plaf/metal/MetalSeparatorUI.java: Likewise,
	* javax/swing/plaf/metal/MetalSliderUI.java: Likewise,
	* javax/swing/plaf/metal/MetalSplitPaneDivider.java: Likewise,
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java: Likewise,
	* javax/swing/plaf/metal/MetalToolTipUI.java: Likewise,
	* javax/swing/plaf/metal/MetalUtils.java: Likewise.

2006-05-11  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultCaret.java: Made field 'textComponent'
	package-private, added field 'active'.
	(PropertyChangeHandler.propertyChange): Added variable 'name', added
	cases to update field 'active'.
	(mouseDragged): Added documentation, added if-clause to update
	selection or caret position.
	(mouseClicked): Added early return when text component is disabled.
	(focusGained): Moved statements into an if-clause.
	(focusLost): Added subexpression to if-clause.
	(install): Preset value of 'active'.
	(paint): Added subexpression to if-clause.
	(isVisible): Extended return expression.
	* javax/swing/text/JTextComponent.java:
	(copy): Copy only if component is enabled.
	(cut): Cut only if component is enabled and editable.
	(paste): Dito.

2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/multi/MultiComboBoxUI.java: Minor formatting change,
	* javax/swing/plaf/multi/MultiFileChooserUI.java: Likewise,
	* javax/swing/plaf/multi/MultiListUI.java: Likewise,
	* javax/swing/plaf/multi/MultiLookAndFeel.java: Likewise,
	* javax/swing/plaf/multi/MultiOptionPaneUI.java: Likewise,
	* javax/swing/plaf/multi/MultiSplitPaneUI.java: Likewise,
	* javax/swing/plaf/multi/MultiTabbedPaneUI.java: Likewise.	

2006-05-11  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/font/GNUGlyphVector.java
	(GNUGlyphVector): Don't apply the font renderer context's
	transform.

2006-05-11  Mark Wielaard  <mark@klomp.org>

	* java/util/logging/Logger.java (global): Initialize inside static
	PrivilegedAction.

2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JFrame.java
	(EXIT_ON_CLOSE): Added note to API docs,
	(close_action): Renamed closeAction,
	(JFrame()): Change title to "",
	(JFrame(String)): Added API docs,
	(getAccessibleContext): Likewise,
	(getDefaultCloseOperation): Updated for renamed field, added API docs,
	(processWindowEvent): Updated for renamed field,
	(setDefaultCloseOperation): Likewise, and updated API docs.

2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JFrame.java
	(paramString): Reimplemented,
	* javax/swing/SwingUtilities.java
	(convertWindowConstantToString): New method.

2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/WindowConstants.java: Updated API docs.

2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicToggleButtonUI.java: Updated API docs,
	(createUI): Removed 'final' qualifier for parameter,
	(paint): Reformatted.

2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicCheckBoxUI.java: Added API docs plus,
	(createUI): Removed 'final' qualifier on method argument.

2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicCheckBoxUI.java
	(getDefaultIcon): Removed this redundant method.

2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	(paint): Pass component size to paintFocus().

2006-05-11  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/Component.java:
	(dispatchEventImpl): Added comment.

2006-05-11  Mark Wielaard  <mark@klomp.org>

	* tools/gnu/classpath/tools/appletviewer/Main.java (main): Cast
	Option constructor null argument to String.

2006-05-11  Mark Wielaard  <mark@klomp.org>

	* java/awt/geom/GeneralPath.java (WIND_EVEN_ODD, WIND_NON_ZERO):
	Fully qualify PathIterator constants

2006-05-11  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/Component.java:
	(dispatchEventImpl): Added subexpression to if-clause.	

2006-05-11  Mark Wielaard  <mark@klomp.org>

	* java/util/Collections.java (UnmodifiableMapEntry): Qualify
	Map.Entry.

2006-05-10  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/TransferHandler.java: Marked stub methods.

2006-05-10  Roman Kennke <kennke@aicas.com>

	PR 27481
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installDefaults): Set background of content pane to null, if
	no custom color has been installed by the application yet.

2006-05-10  Sven de Marothy <sven@physto.se>

	* java/awt/print/PrinterJob.java:
	(lookupPrintServices): Un-comment-out.

2006-05-10  Roman Kennke <kennke@aicas.com>

	* javax/swing/JRootPane.java
	(createContentPane): Don't set background to null.

2006-05-11  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/getopt/OptionGroup.java
	(FILLER): New constant.
	(formatText(PrintStream,String,int)): New method.
	(formatText(PrintStream,String,int,Locale)): Likewise.
	(printHelp): Use formatText method.
	* tools/gnu/classpath/tools/getopt/Parser.java
	(MAX_LINE_LENGTH): New constant.
	(formatText(PrintStream,String)): New method.
	(formatText(PrintStream,String,Locale)): Likewise.
	(printHelp): New method.
	(printHelp(PrintStream)): Increased visibility to protected.
	Use formatText method.

2006-05-10  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalRadioButtonUI.java
	(installDefaults): Use getPropertyPrefix() to allow subclasses to 
	modify the lookup key.

2006-05-10  Lillian Angel  <langel@redhat.com>

	* java/util/SimpleTimeZone.java: Reverted patch.
	(SimpleTimeZone): Throw exception if startMonth == 
	endMonth.
	(SimpleTimeZone): Likewise.
	(checkRule): Rewritten to properly check all values (more 
	efficently).
	This code is now more stable, at least less buggy than before. 
	Fixed API documentation.
	(setStartRule): Moved checkRule call to end.
	(setStartRule): Likewise.
	(setEndRule): Likewise.
	(setEndRule): Likewise.

2006-05-10  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/peer/swing/SwingComponent.java:
	Some API comment fixlets.
	* gnu/java/awt/peer/swing/SwingComponentPeer.java:
	(createImage): Create a BufferedImage, not a Toolkit image.
	(paint): Removed bogus API comment.
	(prepareImage): Added checks to avoid NPE.
	* gnu/java/awt/peer/swing/SwingContainerPeer.java:
	(getInsets): Added check to avoid NPE.
	(handleMouseEvent): Added check to avoid NPE.
	* gnu/java/awt/peer/swing/SwingFramePeer.java:
	Some API comment fixlets.
	* gnu/java/awt/peer/swing/SwingMenuBarPeer.java:
	Some API comment fixlets.
	* gnu/java/awt/peer/swing/SwingTextFieldPeer.java:
	Changed start_pos name to startPos.
	* gnu/java/awt/peer/swing/SwingWindowPeer.java:
	Some API comment fixlets.

2006-05-10  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/BasicStroke.java
	(equals): Fixed typo in HTML tag for API doc comment.

2006-05-10  Gary Benson  <gbenson@redhat.com>

	* java/lang/ThreadGroup.java (parent): Make package-private.
	* java/lang/SecurityManager.java (checkAccess(Thread)):
	Reference ThreadGroup.parent directly to avoid extra checks.
	* java/lang/SecurityManager.java (checkAccess(ThreadGroup)):
	Likewise.

2006-05-10  Roman Kennke <kennke@aicas.com>

	Reported by Ingo Proetel (proetel@aicas.com)
	* java/awt/EventDispatchThread.java
	(DEFAULT_PRIORITY): New constant field.
	(EventDispatchThread()): Added gnu.awt.dispatchthread.priority
	system property for adjusting the priority of the event
	dispatch thread.

2006-05-10  Roman Kennke <kennke@aicas.com>

	Reported by Ingo Proetel (proetel@aicas.com)
	* java/awt/image/ColorModel.java
	(S_RGB_MODEL): New constant field.
	(getRGBDefault): Return constant SRGBColorModel.
	(SRGBColorModel): Specialized color model for sRGB.

2006-05-10  Roman Kennke <kennke@aicas.com>

	* java/awt/ColorPaintContext.java
	(getRaster): Create Raster with (0,0) as source location.

2006-05-10  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AlphaCompositeContext.java
	(compose): Don't premultiply alpha to alpha itself.

2006-05-10  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	(drawImage(Image,AffineTransform,ImageObserver)): Implemented.
	(drawImageImpl(Image,AffineTransform,ImageObserver,Rectangle)):
	New method.
	(drawImage(BufferedImage,BufferedImageOp,int,int)): Implemented.
	(drawRenderedImage(RenderedImage,AffineTransform)): Implemented.
	(drawRenderedImageImpl(RenderedImage,AffineTransform,Rectangle)):
	New method.
	(drawRenderableImage(RenderableImage,AffineTransform)): Implemented.
	(drawRenderableImageImpl(RenderableImage,AffineTransform,Rectangle)):
	New method.
	(scale): Inverse transform by doing 1/scale instead of -scale.
	(drawImage(Image,int,int,ImageObserver)): Implemented.
	(drawImage(Image,int,int,int,int,ImageObserver)): Implemented.
	(drawImage(Image,int,int,Color,ImageObserver)): Implemented.
	(drawImage(Image,int,int,int,int,Color,ImageObserver)): Implemented.
	(drawImage(Image,int,int,int,int,int,int,int,int,ImageObserver)):
	Implemented.
	(drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver)):
	Implemented.
	(fillScanline): Work on translated destination raster for
	correct compositin.
	(init): Fetch the clip after the destination raster is initialized.
	* gnu/java/awt/java2d/ImagePaint.java: New file.
	* gnu/java/awt/java2d/RasterGraphics
	(drawImage): Removed.

2006-05-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties:
	Clarify option descriptions.
	* tools/gnu/classpath/tools/appletviewer/Main.java: Use all
	uppercase for metasyntactic variables.

2006-05-09  Robert Schuster  <robertschuster@fsfe.org>

	Fixed PR24216.
	* javax/swing/text/AbstractDocument.java:
	(insertString): Added more documentation, added argument check.
	(remove): Added more documentation.
	(removeImpl): Added argument check.
	(replace): Added more documentation, added argument check.

2006-05-09  Tom Tromey  <tromey@redhat.com>

	* tools/.cvsignore: Added appletviewer.

2006-05-09  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/getopt/Parser.java (printHelp): Skip
	empty groups.

2006-05-09  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/getopt/OptionGroup.java (printHelp): 
	Special case for '-J'.  Use space instead of '='.
	* tools/gnu/classpath/tools/getopt/Parser.java (setHeader): Added
	comment.

2006-05-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac: Add --disable-plugin and --with-vm options.  Check
	for plugin support headers and libraries.
	* native/Makefile.am: Recurse into plugin directory.
	* native/plugin/.cvsignore: New file.
	* native/plugin/Makefile.am: New file.
	* native/plugin/gcjwebplugin.cc: New file.
	* tools/Makefile.am: Install appletviewer wrapper script.
	* tools/appletviewer.in: Replace VM location heuristic with
	VM_BINARY configure substitution.

2006-05-09  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/getopt/OptionGroup.java (printHelp): Added
	an initial pass to look for short options.  Added 'longOnly' option.
	* tools/gnu/classpath/tools/appletviewer/Main.java (main): Removed -J
	option.
	* tools/gnu/classpath/tools/getopt/Parser.java (parsed): Put stadnard
	options into final group.  Added -J.
	(add): Insert new groups before final group.
	(printHelp): Updated.

2006-05-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27518
	* tools/gnu/classpath/tools/giop/GRMIC.java (main),
	tools/gnu/classpath/tools/rmi/RMIC.java (main):
	Expect -classpath option.
	* tools/gnu/classpath/tools/rmi/RMIC.txt,
	tools/gnu/classpath/tools/giop/GRMIC.txt: Documenting
	-classpath option.
	tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java
	(classLoader): New field. (loadClass, setClassPath):
	New methods.

2006-05-09  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/RasterGraphics.java
	(RasterGraphics): Call init() and super().
	(drawImage): Temporary drawImage impl until AbstractGraphics2D has
	this.

2006-05-09  Gary Benson  <gbenson@redhat.com>

	* java/lang/Thread.java (Thread): Always perform threadgroup
	access checks on thread creation.

2006-05-09  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomNode.java: Permit comments and PIs in doctype nodes to
	  be preserved during cloneNode.

2006-05-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27517
	* tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java (compile): 
	Do not demand all thrown exceptions to be an instance of RemoteException.

2006-05-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties:
	Use hash-style comments.
	* resource/gnu/classpath/tools/appletviewer/MessagesBundle_de.properties:
	Likewise.

2006-05-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JLabel.java
	(paramString): Added more attribute details,
	* javax/swing/SwingUtilities.java
	(convertHorizontalAlignmentCodeToString): New method,
	(convertVerticalAlignmentCodeToString): New method.

2006-05-08  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/jar/Updater.java (run): Updated.
	* tools/gnu/classpath/tools/jar/Main.java: Use javadoc for fields.
	* tools/gnu/classpath/tools/jar/Lister.java (listJar): Use
	ZipInputStream.
	(run): Updated.
	* tools/gnu/classpath/tools/jar/Extractor.java (run): Use System.err
	for verbose.
	(run): Use ZipInputStream.
	(initSet): New method.
	(shouldExtract): Likewise.
	(run): Use new methods.
	* tools/gnu/classpath/tools/jar/Creator.java
	(writeCommandLineEntries): New overload.
	(writeFile): Use System.err for verbose.
	(writeManifest): New method.
	(writtenItems): New field.
	(writeFile): Update it.
	(writeCommandLineEntries): Return void.  Call writeManifest.
	(addEntries): Don't add extra '/'.
	* NEWS: Mention jar.

2006-05-08  Lillian Angel  <langel@redhat.com>

	* gnu/java/net/IndexListParser.java: New class.
	* java/net/URLClassLoader.java
	(JarURLLoader): Fixed code to use new class.

2006-05-08  Roman Kennke <kennke@aicas.com>

	* javax/swing/JComboBox.java
	(AccessibleJComboBox.getAccessibleChildrenCount): Implemented.
	(AccessibleJComboBox.getAccessibleChild): Implemented.
	(AccessibleJComboBox.getAccessibleSelection()): Implemented.
	(AccessibleJComboBox.getAccessibleSelection(int)): Implemented.
	(AccessibleJComboBox.isAccessibleChildSelected): Implemented.
	(AccessibleJComboBox.getAccessibleAction): Implemented.
	(AccessibleJComboBox.getAccessibleActionDescription): Implemented.
	(AccessibleJComboBox.getAccessibleActionCount): Implemented.
	(AccessibleJComboBox.doAccessibleAction): Implemented.
	(AccessibleJComboBox.getAccessibleSelectionCount): Implemented.
	(AccessibleJComboBox.addAccessibleSelection): Implemented.
	(AccessibleJComboBox.removeAccessibleSelection): Implemented.
	(AccessibleJComboBox.clearAccessibleSelection): Implemented.
	(AccessibleJComboBox.selectAllAccessibleSelection): Implemented.

2006-05-08  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac: Add support for building appletviewer.
	* resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties:
	New file.
	* resource/gnu/classpath/tools/appletviewer/MessagesBundle_de.properties:
	New file.
	* tools/appletviewer.c: New file.
	* tools/appletviewer.in: New file.
	* tools/gnu/classpath/tools/appletviewer/AppletClassLoader.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/AppletSecurityManager.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/AppletTag.java: New file.
	* tools/gnu/classpath/tools/appletviewer/AppletWarning.java: New
	file.
	* tools/gnu/classpath/tools/appletviewer/CommonAppletContext.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/ConsoleDialog.java: New
	file.
	* tools/gnu/classpath/tools/appletviewer/ErrorApplet.java: New
	file.
	* tools/gnu/classpath/tools/appletviewer/Main.java: New file.
	* tools/gnu/classpath/tools/appletviewer/PluginAppletContext.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/StandaloneAppletContext.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/TagParser.java: New
	file.

2006-05-08  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/getopt/ClasspathToolParser.java: New file.
	* tools/gnu/classpath/tools/jar/Action.java: New file.
	* tools/gnu/classpath/tools/jar/Creator.java: New file.
	* tools/gnu/classpath/tools/jar/Entry.java: New file.
	* tools/gnu/classpath/tools/jar/Extractor.java: New file.
	* tools/gnu/classpath/tools/jar/Lister.java: New file.
	* tools/gnu/classpath/tools/jar/Main.java: New file.
	* tools/gnu/classpath/tools/jar/Updater.java: New file.
	* tools/gnu/classpath/tools/getopt/Option.java: New file.
	* tools/gnu/classpath/tools/getopt/OptionException.java: New file.
	* tools/gnu/classpath/tools/getopt/OptionGroup.java: New file.
	* tools/gnu/classpath/tools/getopt/Parser.java: New file.
	* tools/gnu/classpath/tools/getopt/FileArgumentCallback.java: New
	file.

2006-05-08  Lillian Angel  <langel@redhat.com>

	* java/net/URLClassLoader.java
	(JarURLLoader): Added check to make sure the INDEX.LIST file
	exists.

2006-05-08  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	(fill): Removed commented out code.
	(fillShape): Also determine the outline of the clip and feed
	it into the rendering method. Use new helper method for
	converting the shapes into lists of segments.
	(getUserBounds): Removed obsolete method.
	(rawFillShape): Respect the clip when rendering shapes.
	(fillShapeAntialias): Adjusted signature for new clipped rendering.
	However, the implementation can't clip still.
	(getSegments): New helper method for converting a shape into
	a list of segments.
	(clipShape): Removed obsolete method.
	* gnu/java/awt/java2d/PolyEdge.java
	(isClip): New field.
	(PolyEdge): Added isField argument to constructor.

2006-05-08  Roman Kennke <kennke@aicas.com>

	PR 27481
	* javax/swing/JRootPane.java
	(createContentPane): Set background of the content pane to null,
	so that the content pane inherits its background from the
	root pane.

2006-05-08  Roman Kennke <kennke@aicas.com>

	PR 27480
	* javax/swing/ButtonGroup.java
	(add): Check if new button is selected and if so, deselect other
	buttons in the group.

2006-05-08  Lillian Angel  <langel@redhat.com>

	PR 27444
	* java/net/URLClassLoader.java
	(JarURLLoader): Added code to go through 
	META-INF/INDEX.LIST file to load all jars listed.

2006-05-08  Roman Kennke <kennke@aicas.com>

	PR 27461
	* javax/swing/ImageIcon.java
	(ImageIcon(URL)): Set description to URL.toString().

2006-05-08  Roman Kennke <kennke@aicas.com>

	PR 27482
	* javax/swing/JTable.java
	(IconCellRenderer.getTableCellRendererComponent): Set icon to
	null when cell value is null.

2006-05-08  Roman Kennke <kennke@aicas.com>

	PR 27484
	* javax/swing/DefaultDesktopManager.java
	(closeFrame): Don't perform default close action on the frame
	to prevent endless loop.

2006-05-08  Roman Kennke <kennke@aicas.com>

	PR 27485
	* javax/swing/table/DefaultTableModel.java
	(addExtraRows): New helper method.
	(checkSize): New helper method.
	(setRowCount): Use addExtraRows helper method.
	(addColumn): Use addExtraRows helper method.
	(getColumnName): Check and adjust size if necessary using
	checkSize().

2006-05-08  Roman Kennke <kennke@aicas.com>

	PR 27486
	* javax/swing/JTable.java
	(setValueAt): Allow setting values even when table is editable.

2006-05-08  Tom Tromey  <tromey@redhat.com>

	* java/text/SimpleDateFormat.java (compileFormat): Added missing
	space to error message.

2006-05-08  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractButton.java: Fixed comment typos.

2006-05-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	PR classpath/27435:
	* java/util/zip/DeflaterEngine.java:
	(deflateFast(boolean,boolean)): Empty buffer when full.
	
2006-05-07  Sven de Marothy <sven@physto.se>

	Fixed PR27343
	* java/util/Calendar.java (setTimeZone): Force recalculation.
	
2006-05-07  Sven de Marothy <sven@physto.se>

	Fixed PR27463
	* javax/swing/plaf/metal/MetalInternalFrameTitlePane.java
	(propertyChange): Handle FRAME_ICON_PROPERTY property.
	
2006-05-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	PR classpath/27311:
	* gnu/java/text/StringFormatBuffer.java:
	(toString()): Implemented so we can see the contents.
	* java/text/DecimalFormat.java:
	(formatInternal(double,StringFormatBuffer,FieldPosition)):
	Don't calculate the exponent when the number is 0 or less.
	Also, use log10 instead of log now it's available.
	
2006-05-07  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/keyring/PrimitiveEntry.java (PrimitiveEntry):
	Use instance's field creationDate not the constructor's argument.
	* gnu/javax/crypto/keyring/PasswordEncryptedEntry.java:
	Removed unused imports.
	Sorted imports.
	(log): New field.
	(decrypt): Added trace/debug/timing statements.
	(encrypt): Likewise.
	Use PRNG instead of instantiating every time a new SecureRandom.
	* gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java:
	Removed unused imports.
	Sorted imports.
	(log): New field.
	(verify): Added trace/debug/timing statements.
	(authenticate): Likewise.
	Use PRNG instead of instantiating every time a new SecureRandom.

2006-05-07  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/classpath/debug/Simple1LineFormatter.java (DAT_FORMAT): Removed.
	(THREAD_FORMAT): Likewise.
	(dateFormat): Added field.
	(threadFormat): Added field.
	(format): Initialize instance fields if null.
	Use StringBuilder instead of StringBuffer.

2006-05-07  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/RasterGraphics.java: New file.

2006-05-07  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	(fillShape): Determine user space bounds of shape and feed them
	into the actual rendering pipeline.
	(rawSetPixel): Made non-abstract for now. Maybe remove later.
	(rawSetForeground): Likewise.
	(getDestinationColorModel): Removed.
	(getDeviceBounds): Made non-abstract. Provide useful default impl.
	(rawFillShape): Handle paint context.
	(fillScanline): Implement painting and compositing.
	(fillShapeAntialias): Handle paint context.
	(fillScanlineAA): Implemented preliminary antialiasing based on
	composite context. Not working yet.
	(fillScanlineAlpha): Removed.
	(init): Fetch destination raster.
	(getDestinationRaster): New abstract method.
	(updateRaster): New backend method.

2006-05-07  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AlphaCompositeContext.java
	(compose): Fixed loops, conditions and logic to make compositing
	work correctly.

2006-05-07  Roman Kennke <kennke@aicas.com>

	* java/awt/ColorPaintContext.java
	(ColorPaintContext): Fixed filling of the raster.

2006-05-07  Sven de Marothy <sven@physto.se>

	Fixed PR27455
	* gnu/java/awt/peer/GLightweightPeer.java (mouseEntered): Remove.
	* java/awt/Component.java (processMouseEvent): 
	Do lightweight cursor handling.
	* javax/swing/plaf/basic/BasicTableHeaderUI.java 
	(endResizing,mouseMoved): Save and reset original cursor, not the 
	default one.

2006-05-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27298
	* javax/swing/plaf/basic/BasicTreeUI.java (NodeDimensionsHandler.
	getNodeDimensions): Mind the size of the node icon. (getRowX):
	use totalChildIndent. (TreeExpansionHandler): Set maximal height
	to zero on events. (nullIcon): New field. (getCurrentControlIcon):
	Return nullIcon if there is no other icon. (getNodeIcon): New method.
	(installDefaults): assign totalChildIndent. (installUI): Call
	updateExpandedDescendants. (paintHorizontalPartOfLeg): Rewritten.
	(paintRow): Rewritten. (updateRenderer): Do not set the renderer for
	the tree.

2006-05-06  Sven de Marothy <sven@physto.se>

	Fixed PR27454
	* gnu/java/awt/peer/gtk/GtkImage: (drawPixels,drawPixelsScaled): 
	Check for zero image sizes.
	
2006-05-06  Olivier Jolly  <olivier.jolly@pcedev.com>

	Fixed PR27362
	* java/util/Calendar.java (clear(int)): Forced internal state
	completion before performing a field clearing.

2006-05-06  Olivier Jolly  <olivier.jolly@pcedev.com>

	* java/util/Collections.java(UnmodifiableMap.UnmodifiableEntrySet.
	UnmodifiableMapEntry): New Map.Entry implementation which is immutable.
	(UnmodifiableMap.UnmodifiableEntrySet.iterator,
	UnmodifiableMap.UnmodifiableEntrySet.toArray,
	UnmodifiableMap.UnmodifiableEntrySet.toArray(Object[])): Used
	UnmodifiableMapEntry as part of their return value. 

2006-05-06  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/keytool.sh.in: Removed (renamed to keytool.in).
	* tools/jarsigner.in: Removed (renamed to jarsigner.in).
	* tools/Makefile.am: Include jarsigner and keytool classes in tools.zip.
	Generate jarsigner and keytool scripts.
	* tools/keytool.in: New file (renamed from keytool.sh.in).
	* tools/jarsigner.in: New file (renamed from jarsigner.sh.in).
	* tools/.cvsignore: Replaced *.sh with *
	* configure.ac: Replaced tools/*.sh with tools/*.

2006-05-05  Roman Kennke <kennke@aicas.com>

	* java/awt/image/ColorModel.java
	(getNormalizedComponents): Implemented.

2006-05-05  Roman Kennke <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	(paint): Query the button model for it's state, not the
	button itself.

2006-05-05  Roman Kennke <kennke@aicas.com>

	* javax/swing/JTable.java
	(tableChanged): Sync selection model with table model changes.

2006-05-05  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (paint): Return early
	if there are no visible nodes to paint.

2006-05-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JOptionPane.java: API doc updates.

2006-05-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JToolBar.java
	(paramString): Reimplemented.

2006-05-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JScrollBar.java
	(paramString): Reimplemented.

2006-05-04  Tom Tromey  <tromey@redhat.com>

	PR classpath/27375:
	* java/util/zip/ZipFile.java (entries): Now a LinkedHashMap.
	(readEntries): Updated.
	(getEntries): Likewise.
	(getEntry): Likewise.
	(getInputStream): Likewise.

2006-05-04  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/javax/imageio/jpeg/DCT.java,
	gnu/javax/imageio/jpeg/HuffmanTable.java,
	gnu/javax/imageio/jpeg/JPEGComponent.java,
	gnu/javax/imageio/jpeg/JPEGDecoder.java,
	gnu/javax/imageio/jpeg/JPEGException.java,
	gnu/javax/imageio/jpeg/JPEGFrame.java,
	gnu/javax/imageio/jpeg/JPEGImageInputStream.java,
	gnu/javax/imageio/jpeg/JPEGImageReader.java,
	gnu/javax/imageio/jpeg/JPEGImageReaderSpi.java,
	gnu/javax/imageio/jpeg/JPEGMarker.java,
	gnu/javax/imageio/jpeg/JPEGMarkerFoundException.java,
	gnu/javax/imageio/jpeg/JPEGScan.java,
	gnu/javax/imageio/jpeg/YCbCr_ColorSpace.java,
	gnu/javax/imageio/jpeg/ZigZag.java: New files.

2006-05-04  Lillian Angel  <langel@redhat.com>

	* javax/swing/JLabel.java
	(JLabel): Pass in an empty string for the text parameter.
	(JLabel): Likewise.
	(JLabel): Likewise.

2006-05-04  Roman Kennke <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonListener.java
	(mouseEntered): Fixed conditions for changing states.

2006-05-04  Roman Kennke <kennke@aicas.com>

	* javax/swing/JOptionPane.java
	(AccessibleJOptionPane.getAccessibleRole): Implemented method.

2006-05-04  Roman Kennke <kennke@aicas.com>

	* javax/swing/JLabel.java
	(AccessibleJLabel.getSelectedText): Return null instead of "".
	(AccessibleJLabel.getSelectionStart): Added comment why
	return -1 is correct here.
	(AccessibleJLabel.getSelectionEnd): Added comment why
	return -1 is correct here.
	(AccessibleJLabel.getCharacterAttribute): Added comment about what
	to do here.
	(AccessibleJLabel.getCharCount): Added comment about what
	to do here.
	(AccessibleJLabel.getCharacterBounds): Tagged as not implemented.
	(AccessibleJLabel.getIndexAtPoint): Tagged as not implemented.
	(paramString): Return super.paramString() here, this provides
	a more meaningful output.

2006-05-04  Roman Kennke <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paint): Added null check to avoid NPE when clip == null.

2006-05-04  Roman Kennke <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(addImpl): New method. Installs an OverlayLayout if no
	other layout has been installed before.
	(setLayout): New method. Detect if a client app installs a custom
	layout.

2006-05-04  Roman Kennke <kennke@aicas.com>

	* javax/swing/table/DefaultTableCellRenderer.java
	(noFocusBorder): Fixed width of empty border to 1.
	(getTableCellRendererComponent): Don't change the colors for
	focuses cells. Fixed border for focused cells.

2006-05-04  Roman Kennke <kennke@aicas.com>

	* javax/swing/JTable.java
	(moveToCellBeingEdited): Adjust bounding box of editing component
	to exactly cover the grid.
	* javax/swing/plaf/basic/BasicTableUI.java
	(paint): Paint grid to the bottom and right of the cells instead
	of left and top. Adjust bounding box of cells accordingly.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Fixed color of JTable selection border.
	* javax/swing/plaf/metal/OceanTheme.java
	(addCustomEntriesToTable): Fixed color of JTable selection border.

2006-05-04  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/ExportCmd.java (setup):
	Use _alias instead of alias.

2006-05-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* configure.ac:
	Set version to 0.92-pre.
	* NEWS:
	Add space for 0.92 entries.

2006-05-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* include/Makefile.am:
	Added rules for gnu.java.net.local.LocalSocketImpl.h
	* include/java_lang_VMSystem.h:
	Regenerated correctly.
	
2006-05-03  Sven de Marothy <sven@physto.se>
       
	PR 24023, 24701
	* java/awt/Image.java:
	(getScaledInstance): Default to AreaAveraging for "smooth", 
	don't thrown an error on illegal flag values.
	* java/awt/image/AreaAveragingScaleFilter.java: Implement.

2006-05-03  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/FieldView.java:
	(adjustAllocation): Added if-block to return null when shape argument
	is null.
	* javax/swing/text/PlainView.java:
	(updateDamage): Added if-block to return early if a is null.

2006-05-03  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTextUI.java:
	(changeUpdate): Added note.
	(removeUpdate): Dito.
	(insertUpdate): Dito.
	(damageRange): Added if-block to return early.
	(modelToView): Added check of getVisibleEditorRect's return value.
	(getVisibleEditorRect): Return null instead of empty rectangle.
	* javax/swing/text/DefaultCaret.java:
	(clearHighlight): Removed if-clause to create a highlight entry if it
	did not exist before.
	* javax/swing/text/WrappedPlainView.java:
	(WrappedLine.modelToView): Throw exception if allocation area is empty,
	removed 2nd part of if-expression.
	(WrappedLine.updateDamage): Added more documentation, added check
	whether allocation area rectangle is null.

2006-05-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JSplitPane.java (setDividerLocation(int)):
	Reset to preferred sizes if the argument is negative.

2006-05-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java: Added/updated API docs.

2006-05-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/JComponent.java
	(getRoot): New private function. Gets the root appropriate
	for painting. If an applet exists as a parent, then it is returned.
	(paintDoubleBuffered): Changed to use new function.
	* javax/swing/RepaintManager.java
	(getRoot): New private function. Gets the root appropriate
	for painting. If an applet exists as a parent, then it is returned.
	(getOffscreenBuffer): Changed to use new function.
	* javax/swing/SwingUtilties.java
	(getRoot): Reverted last patch to return Window, even if 
	an Applet exists.

2006-05-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/jce/keyring/GnuKeyring.java: Re-implemented using
	a pair of one public keyring and one private keyring.
	* gnu/javax/crypto/keyring/GnuPublicKeyring.java (log): New field.
	(containsCertificate): Added logging.
	(getCertificate): Likewise.
	(putCertificate): Likewsie.
	(load): Likewise.
	(store): Likewise.
	* gnu/javax/crypto/keyring/GnuPrivateKeyring.java (log): New field.
	(containsPrivateKey): Added logging.
	(getPrivateKey): Likewise.
	(putPrivateKey): Likewise.
	(containsPublicKey): Likewise.
	(getPublicKey): Likewise.
	(putPublicKey): Likewise.
	(containsCertPath): Likewise.
	(getCertPath): Likewise.
	(putCertPath): Likewise.
	(load): Likewise.
	(store): Likewise.

2006-05-03  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AlphaCompositeContext.java: New class.
	* java/awt/AlphaComposite.java
	(createContext): Implemented.

2006-05-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (drawRaster):
	Set the current color again after drawing the raster.

2006-05-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/WrappedPlainView.java (WrappedLine.modelToView):
	Do not check pos < currLineEnd if currLineStart == currLineEnd.

2006-05-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/Command.java (getCallbackHandler):
	Assign returned value to field handler.
	* tools/gnu/classpath/tools/jarsigner/Main.java (getCallbackHandler):
	Likewise.

2006-05-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/ScrollPaneLayout.java (layoutContainer):
	Return without action if there is no view in the viewport.
	* javax/swing/text/WrappedPlainView.java 
	(WrappedLine.getPreferredSpan): If metrics == null, update
	metrics.
	* javax/swing/tree/DefaultTreeModel.java (constructors):
	Do not call setRoot, assign the root node directly.

2006-05-02  Lillian Angel  <langel@redhat.com>

	* javax/swing/SwingUtilities.java
	(getRoot): Should return the Applet if it exists.
	Only return the Window if an Applet has not been
	encountered.

2006-05-02  Lillian Angel  <langel@redhat.com>

	* gnu/javax/swing/text/html/parser/support/Parser.java
	(readAttributes): Reverted Audrius' last patch. There is 
	a slight difference in code between the NUMTOKEN and SLASH case. 

2006-05-02  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/JTextComponent.java:
	(setText): Throw InternalError from catch-block.
	* javax/swing/text/GapContent.java:
	(removed): Removed if-expression, changed '>' to '>='.

2006-05-02  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	(AA_SAMPLING): New constant.
	(alpha): New field. Used in the antialiasing renderer.
	(edgeTable): New field. Used in the antialiasing renderer.
	(AbstractGraphics2D): Initialize rendering hints wrt
	anti-aliasing.
	(draw): Clip after stroking. Commented out clipping for now,
	it seems to be buggy.
	(fill): Commented out clipping for now, it seems to be buggy.
	(setComposite): Don't create composite context.
	(setPaint): Only change paint when parameter is not null.
	(translate): Call setClip() so subclasses can update their clip
	too.
	(clip): Call setClip() so subclasses can update their clip
	too.
	(drawGlyphVector): Added clipping, but left it commented out
	because it's buggy.
	(getClipBounds): Returns null when clip is null.
	(drawLine): Call rawDrawLine with translation applied.
	(filLRect): Call rawFillRect with translation applied.
	(fillShape): Added support for anti-aliasing.
	(rawSetForeground(int,int,int)): New method.
	(rawFillShape): A couple of painting fixes.
	(fillScanline): Implemented to call rawDrawLine.
	(fillShapeAntialias): New method. Implements an anti-aliasing
	shape filler.
	(fillScanlineAA): New method. Used for the anti-aliasing
	shape filler.
	(fillScanlineAlpha): New method. Used for the anti-aliasing
	shape filler.
	(init): Initialize clip with the device bounds.
	(updateOptimization): Fixed the optimization condition.

2006-05-02  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/GapContent.java:
	(GapContent): Restrict size argument by 2.
	(insertString): Changed expression from >= to >.
	(remove): Changed right side of expression to 'length - 1', changed
	exception message.
	(getChars): Throw exception if where below 0.
	(replace): Replaced call to setPositionsInRange() with
	resetMarksAtZero(), removed note.

2006-05-02  Roman Kennke <kennke@aicas.com>

	PR 27326
	* javax/swing/MenuSelectionManager.java
	(setSelectedPath): Rewritten.

2006-05-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/parser/support/Parser.java
	(readAttributes): Merge case NUMTOKEN: and case SLASH:
	sections.

2006-05-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/.cvsignore: Added keytool.sh.
	* configure.ac: Added tools/keytool.sh to AC_CONFIG_FILES.

2006-05-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* doc/tools.texinfo: New file.
	* doc/Makefile.am: Generate tools documentation.

2006-05-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/keytool.sh.in: New file.
	* tools/gnu/classpath/tools/keytool/CertReqCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/Command.java: Likewise.
	* tools/gnu/classpath/tools/keytool/DeleteCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/ExportCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/GenKeyCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/IdentityDBCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/ImportCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/KeyCloneCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/ListCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/Main.java: Likewise.
	* tools/gnu/classpath/tools/keytool/Messages.java: Likewise.
	* tools/gnu/classpath/tools/keytool/PrintCertCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/SelfCertCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/StorePasswdCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/keytool.txt: Likewise.
	* tools/gnu/classpath/tools/keytool/package.html: Likewise.
	* resource/gnu/classpath/tools/keytool/MessageBundle.properties: Likewise.

2006-05-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/jarsigner.txt: Re-arranged to
	resemble more closely man-page style text.
	* tools/gnu/classpath/tools/jarsigner/SFHelper.java:
	Mark (Eclipse) strings that need not be externalised.
	(writeSF): Likewise.
	(writeDSA): Likewise.
	Use package-private Messages class to provide i18n-ready strings.
	(startSigning):
	Use package-private Messages class to provide i18n-ready strings.
	(updateEntry): Likewise.
	Mark (Eclipse) strings that need not be externalised.
	(finishSigning): Likewise.
	* tools/gnu/classpath/tools/jarsigner/Main.java:
	Mark (Eclipse) strings that need not be externalised.
	(main): Do not use constant strings as class name.
	Use package-private Messages class to provide i18n-ready strings.
	Reduced logging level so INFO becomes FINER, and WARNING becomes FINE.
	(processArgs): Do not use constant strings as class name.
	Mark (Eclipse) strings that need not be externalised.
	Reduced logging level so INFO becomes FINER, and WARNING becomes FINE.
	(start): Do not use constant strings as class name.
	(teardown): Likewise.
	Use ProviderUtil.
	(setupCommonParams): Do not use constant strings as class name.
	Use package-private Messages class to provide i18n-ready strings.
	Reduced logging level so INFO becomes FINER, and WARNING becomes FINE.
	(installNewProvider): Do not use constant strings as class name.
	Use ProviderUtil.
	(setupSigningParams): Do not use constant strings as class name.
	Use package-private Messages class to provide i18n-ready strings.
	Mark (Eclipse) strings that need not be externalised.
	(getCallbackHandler): Use CallbackUtil.
	* tools/gnu/classpath/tools/jarsigner/JarSigner.java (start):
	Use package-private Messages class to provide i18n-ready strings.
	Reduced logging level so INFO becomes FINER, and WARNING becomes FINE.
	* tools/gnu/classpath/tools/jarsigner/JarVerifier.java (start): Likewise.
	(verifySF): Likewise.
	(verifySFEntries): Do not use constant strings as class name.
	Use Boolean.valueOf instead of new Boolean().
	(verifySFEntry): Mark (Eclipse) strings that need not be externalised.
	* resource/gnu/classpath/tools/jarsigner/MessageBundle.properties:
	New file.
	* tools/gnu/classpath/tools/jarsigner/package.html: Likewise.
	* tools/gnu/classpath/tools/jarsigner/Messages.java: Likewise.

2006-05-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/common/CallbackUtil.java: New file.
	* tools/gnu/classpath/tools/common/ProviderUtil.java: Likewise.
	* tools/gnu/classpath/tools/common/SecurityProviderInfo.java: Likewise.

2006-05-01  Tom Tromey  <tromey@redhat.com>

	* java/nio/ByteBufferImpl.java (compact): Don't reset position
	in empty case.
	* gnu/java/nio/ChannelReader.java (read): Synchronize.
	(close): Synchronize.
	* java/nio/ShortBufferImpl.java (compact): Rewrote.
	* java/nio/LongBufferImpl.java (compact): Rewrote.
	* java/nio/IntBufferImpl.java (compact): Rewrote.
	* java/nio/FloatBufferImpl.java (compact): Rewrote.
	* java/nio/DoubleBufferImpl.java (compact): Rewrote.
	* java/nio/CharBufferImpl.java (compact): Rewrote.
	* gnu/java/nio/ChannelWriter.java: New file.
	* java/nio/channels/Channels.java (newWriter): Implemented.

2006-05-01  Lillian Angel  <langel@redhat.com>

	* java/util/SimpleTimeZone.java
	(SimpleTimeZone): Do not throw exception if startMonth == endMonth.
	(SimpleTimeZone): Likewise.
	(checkRule): Rewritten to properly check all values (more efficently). 
	This code is now more stable, at least less buggy than before. Fixed
	API documentation.
	(setStartRule): Moved checkRule call to end.
	(setStartRule): Likewise.
	(setEndRule): Likewise.
	(setEndRule): Likewise.

2006-05-01  Tom Tromey  <tromey@redhat.com>

	* lib/.cvsignore: Added classes.2.

2006-05-01  Tom Tromey  <tromey@redhat.com>

	* java/util/jar/JarFile.java (provider): Now package-private.
	* java/lang/Enum.java (compareTo): Javadoc fix.
	* java/lang/Boolean.java (compareTo): Javadoc fix.

2006-05-01  Lillian Angel  <langel@redhat.com>

	* gnu/javax/swing/text/html/parser/support/Parser.java
	(readAttributes): Formatted function. Added handling for 
	SLASH token. The value of an attribute may start with a slash
	(i.e. a path). I added handling similar to to the NUMTOKEN code.
	We should not be skipping over these type of attributes.

2006-04-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* include/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.h,
	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h,
	* include/gnu_java_awt_peer_gtk_GdkGraphics.h,
	* include/gnu_java_awt_peer_gtk_GdkGraphics2D.h,
	* include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h,
	* include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h,
	* include/gnu_java_awt_peer_gtk_GdkRobotPeer.h,
	* include/gnu_java_awt_peer_gtk_GdkTextLayout.h,
	* include/gnu_java_awt_peer_gtk_GtkButtonPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkChoicePeer.h,
	* include/gnu_java_awt_peer_gtk_GtkClipboard.h,
	* include/gnu_java_awt_peer_gtk_GtkComponentPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkFramePeer.h,
	* include/gnu_java_awt_peer_gtk_GtkGenericPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkImage.h,
	* include/gnu_java_awt_peer_gtk_GtkLabelPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkListPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkPanelPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h,
	* include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkSelection.h,
	* include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkToolkit.h,
	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h,
	* include/gnu_java_awt_peer_qt_MainQtThread.h,
	* include/gnu_java_awt_peer_qt_QMatrix.h,
	* include/gnu_java_awt_peer_qt_QPainterPath.h,
	* include/gnu_java_awt_peer_qt_QPen.h,
	* include/gnu_java_awt_peer_qt_QtAudioClip.h,
	* include/gnu_java_awt_peer_qt_QtButtonPeer.h,
	* include/gnu_java_awt_peer_qt_QtCanvasPeer.h,
	* include/gnu_java_awt_peer_qt_QtCheckboxPeer.h,
	* include/gnu_java_awt_peer_qt_QtChoicePeer.h,
	* include/gnu_java_awt_peer_qt_QtComponentPeer.h,
	* include/gnu_java_awt_peer_qt_QtContainerPeer.h,
	* include/gnu_java_awt_peer_qt_QtDialogPeer.h,
	* include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h,
	* include/gnu_java_awt_peer_qt_QtFileDialogPeer.h,
	* include/gnu_java_awt_peer_qt_QtFontMetrics.h,
	* include/gnu_java_awt_peer_qt_QtFontPeer.h,
	* include/gnu_java_awt_peer_qt_QtFramePeer.h,
	* include/gnu_java_awt_peer_qt_QtGraphics.h,
	* include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h,
	* include/gnu_java_awt_peer_qt_QtImage.h,
	* include/gnu_java_awt_peer_qt_QtLabelPeer.h,
	* include/gnu_java_awt_peer_qt_QtListPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuBarPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuItemPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuPeer.h,
	* include/gnu_java_awt_peer_qt_QtPanelPeer.h,
	* include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h,
	* include/gnu_java_awt_peer_qt_QtScreenDevice.h,
	* include/gnu_java_awt_peer_qt_QtScrollPanePeer.h,
	* include/gnu_java_awt_peer_qt_QtScrollbarPeer.h,
	* include/gnu_java_awt_peer_qt_QtTextAreaPeer.h,
	* include/gnu_java_awt_peer_qt_QtTextFieldPeer.h,
	* include/gnu_java_awt_peer_qt_QtToolkit.h,
	* include/gnu_java_awt_peer_qt_QtVolatileImage.h,
	* include/gnu_java_awt_peer_qt_QtWindowPeer.h,
	* include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h,
	* include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h,
	* include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h,
	* include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h,
	* include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h,
	* include/gnu_xml_libxmlj_dom_GnomeAttr.h,
	* include/gnu_xml_libxmlj_dom_GnomeDocument.h,
	* include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h,
	* include/gnu_xml_libxmlj_dom_GnomeDocumentType.h,
	* include/gnu_xml_libxmlj_dom_GnomeElement.h,
	* include/gnu_xml_libxmlj_dom_GnomeEntity.h,
	* include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h,
	* include/gnu_xml_libxmlj_dom_GnomeNode.h,
	* include/gnu_xml_libxmlj_dom_GnomeNodeList.h,
	* include/gnu_xml_libxmlj_dom_GnomeNotation.h,
	* include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h,
	* include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathResult.h,
	* include/gnu_xml_libxmlj_sax_GnomeLocator.h,
	* include/gnu_xml_libxmlj_sax_GnomeXMLReader.h,
	* include/gnu_xml_libxmlj_transform_GnomeTransformer.h,
	* include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h,
	* include/java_lang_VMProcess.h:
	Regenerated.
	* native/jni/java-lang/java_lang_VMProcess.c:
	Redirect when pipe_count is 2 not 3.	

2006-04-30  Sascha Brawer <sascha@brawer.ch>

	* gnu/java/awt/font/FontDelegate.java,
	* gnu/java/awt/font/FontFactory.java,
	* gnu/java/awt/font/GNUGlyphVector.java,
	* gnu/java/awt/font/opentype/CharGlyphMap.java,
	* gnu/java/awt/font/opentype/GlyphNamer.java,
	* gnu/java/awt/font/opentype/MacResourceFork.java,
	* gnu/java/awt/font/opentype/NameDecoder.java,
	* gnu/java/awt/font/opentype/OpenTypeFont.java,
	* gnu/java/awt/font/opentype/OpenTypeFontFactory.java,
	* gnu/java/awt/font/opentype/Scaler.java,
	* gnu/java/awt/font/opentype/truetype/Fixed.java,
	* gnu/java/awt/font/opentype/truetype/GlyphLoader.java,
	* gnu/java/awt/font/opentype/truetype/GlyphLocator.java,
	* gnu/java/awt/font/opentype/truetype/GlyphMeasurer.java,
	* gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java,
	* gnu/java/awt/font/opentype/truetype/VirtualMachine.java,
	* gnu/java/awt/font/opentype/truetype/Zone.java,
	* gnu/java/awt/font/opentype/truetype/ZonePathIterator.java,
	* gnu/java/awt/font/opentype/truetype/doc-files/ZonePathIterator-1.dia,
	* gnu/java/awt/font/opentype/truetype/doc-files/ZonePathIterator-1.png:
	New files. Imported font framework from:
	http://www.brawer.ch/software/fonts/

2006-04-30  Roman Kennke <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(lastTabInRun): Fix calculation of the last tab in a run. This
	has caused painting problems sometimes, making the
	last tab painted incorrectly.

2006-04-30  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27297
	* javax/swing/JComponent.java (paintChildrenWithOverlap):
	Use for and not while to prevent the endless loop.

2006-04-29  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(paramString): Changed from public to protected.

2006-04-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/HelpPrinter.java (printHelp): New method.
	(printHelpAndExit): Re-factored to use the above method.

2006-04-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/jarsigner.sh.in: Changed license to GPL + Exception.
	Use -Xbootclasspath/p instead of -cp when invoking the main class.
	* tools/gnu/classpath/tools/jarsigner/Main.java:
	Changed license to GPL + Exception.
	(handler): New field.
	(getCallbackHandler): New method.
	(setupSigningParams): Use above method.
	* tools/gnu/classpath/tools/jarsigner/HashUtils.java:
	Changed license to GPL + Exception.
	* tools/gnu/classpath/tools/jarsigner/SFHelper.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/JarVerifier.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/JarSigner.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/jarsigner.txt: Updated copyright.

2006-04-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/security/auth/callback/ConsoleCallbackHandler.java
	(handleConfirmation): Use print instead of println.
	(handleConfirmation): When case is YES_NO_OPTION, print default option
	if one was set.
	(handleLanguage): Use print instead of println.

2006-04-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/x509/X500DistinguishedName.java: Updated copyright.
	(putComponent): Handle O and OU components.
	(getDer): Use correct (it2) iterator.
	(readAttributeValue): Read next character and break if end-of-stream.

2006-04-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/provider/Gnu.java (run):
	Add "RSA" as an alias to MD5withRSA.
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java (encodePublicKey):
	Always encode a NULL as the value of an algorithm parameters field.
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java (log): New field.
	(encodePrivateKey): Added trace/log statements.
	(decodePrivateKey): Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java (log): New field.
	(setup): Added trace/log statements.
	(generate): Likewise.
	* gnu/java/security/key/rsa/GnuRSAPublicKey.java (str): New field.
	(toString): New method.
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java (DEBUG): New constant.
	(str): New field.
	(toString): New method.
	* gnu/java/security/key/rsa/GnuRSAKey.java (str): New field.
	(getEncoded): Use defaultFormat.
	(toString): New method.
	* gnu/java/security/key/dss/DSSKey.java (toString):
	Include defaultFormat in string.
	* gnu/java/security/jce/sig/RSAKeyFactory.java (engineGeneratePublic):
	Break if successfully decoded public key.
	(engineGeneratePrivate): Break if successfully decoded private key.

2006-04-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/security/Security.java <clinit>: Add our Callback provider.
	* resource/java/security/classpath.security: Likewise

2006-04-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27296
	* javax/swing/ScrollPaneLayout.java (layoutContainer):
	Decide about scroll bars from the preferred view size, not
	the current size.
	* javax/swing/ViewportLayout.java (layoutContainer):
	Do not change returned preferred size. Do not treat JScrollPane
	specially.

2006-04-28  Sven de Marothy <sven@physto.se>

	* java/awt/image/ReplicateScaleFilter.java: Fix comment. 
	* javax/swing/ProgressMonitor.java (actionPerformed): 
	Avoid divide-by-zero.

2006-04-28  Sven de Marothy <sven@physto.se>

	* javax/swing/JSpinner.java: Fix default text justification.
	* javax/swing/plaf/basic/BasicSpinnerUI.java: Fix spinner layout size.

2006-04-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(getMinSelectionIndex): Return correct value, added API docs,
	(getMaxSelectionIndex): Added API docs.

2006-04-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(JList(Object[])): Pass new model directly to init(),
	(JList(Vector)): Likewise,
	(JList(ListModel)): Renamed argument and updated API docs,
	(init): Throw IllegalArgumentException for null argument,
	(setListData(Object[])): Delegate model creation,
	(setListData(Vector)): Likewise,
	(createListModel(Object[])): New private method,
	(createListModel(Vector)): New private method,
	(paramString): Implemented.

2006-04-28  Tom Tromey  <tromey@redhat.com>

	* java/lang/Class.java (SYNTHETIC, ENUM, ANNOTATION): New fields.
	(isEnum): Rewrote.
	(isSynthetic): Likewise.
	(isAnnotation): Likewise.
	* vm/reference/java/lang/VMClass.java (isSynthetic): Removed.
	(isAnnotation): Likewise.
	(isEnum): Likewise.

2006-04-28  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/View.java:
	(getNextVisualPositionFrom): Call modelToView and viewToModel on parent
	view.

2006-04-28  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/View.java:
	(getNextVisualPositionFrom): Rewritten.
	* javax/swing/text/CompositeView.java:
	(getNextEastWestVisualPositionFrom): Partly implemented.
	(getNextNorthSouthVisualPositionFrom): Partly implemented.

2006-04-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(setFixedCellHeight): Use correct property name for event.

2006-04-28  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/Utilities.java:
	(getNextWord): Use codePointAt instead of charAt, added note, changed
	if-expression, added throwing of exception.
	(getPreviousWord): Use codePointAt instead of charAt.

2006-04-28  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/StringBuilder.java
	(ensureCapacity, getChars, append(StringBuffer),
	append(char[],int,int), delete, replace, insert(int,char[],int,int),
	insert(int,String), insert(int,char), trimToSize): Replaced
	System.arraycopy calls with VMSystem.arraycopy.

2006-04-27  Tom Tromey  <tromey@redhat.com>

	* java/awt/image/renderable/RenderableImageProducer.java
	(requestTopDownLeftRightResend): Implemented.
	(run): Likewise.
	(startProduction): Add new consumer.

2006-04-27  Sven de Marothy  <sven@physto.se>

	* javax/swing/JLabel.java (setIcon): Repaint on setting the icon.

2006-04-27  Roman Kennke <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	Dispatch events only to targets that have a mouselistener
	attached. Changed to also handle null targets.

2006-04-27  Roman Kennke <kennke@aicas.com>

	* NEWS: Added entries about accessibility support and L&F
	window decorations.

2006-04-27  Robert Schuster  <robertschuster@fsfe.org>
	
	* javax/swing/text/Utilities.java:
	(getTabbedTextOffset): Introduced width variable, rewritten the check
	which ends the loop.
	(getBreakLocation): Call getTabbedTextOffset with rounding argument set
	to false.
	      
2006-04-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/TreeDemo.java
	(createContent): Added root visibility and selection listener demos.
	* javax/swing/JTree.java (setRootVisible): If false, unselect
	the root node, if it is selected.
	* javax/swing/plaf/basic/BasicTreeUI.java 
	(TreeTraverseAction.actionPerformed): Do not select the root if it
	is not visible.
	* javax/swing/tree/DefaultTreeSelectionModel.java (removeSelectionPath,
	removeSelectionPaths): Reset lead to null if the current lead path is
	removed from selection.
	* javax/swing/tree/TreePath.java (getParentPath): Cache the parent path.
	* javax/swing/tree/FixedHeightLayoutCache.java (NodeRecord.getPath):
	Return the same path regardless is root visible or not. (update):
	Reduce the identation if the root is not visible.
	* javax/swing/tree/VariableHeightLayoutCache.java (NodeRecord.getPath):
	Return the same path regardless is root visible or not. (update):
	Reduce the identation if the root is not visible.

2006-04-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org

	* javax/swing/plaf/basic/BasicTreeUI.java
	(TreeAction.actionPerformed):Newly obtain the current lead
	path that must stay visible.
	(TreeTraverseAction.actionPerformed):Rewritten.
	* javax/swing/tree/FixedHeightLayoutCache.java (countRows):
	Do not treat root specially. (setModel): Assume the root node
	initially expanded.
	* javax/swing/tree/VariableHeightLayoutCache.java:(countRows):
	Do not treat root specially. (setModel): Assume the root node
	initially expanded.

2006-04-26  Chris Burdess  <dog@gnu.org>

	Fixes PR 27290
	* javax/xml/datatype/DatatypeFactory.java: Use complete
	  implementation resolution mechanism.

2006-04-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/tree/DefaultTreeModel.java (nodeStructureChanged): 
	Implemented.
	* javax/swing/tree/DefaultTreeSelectionModel.java (toString):
	Removed NoImplementException form the implemented method.

2006-04-26  Tom Tromey  <tromey@redhat.com>

	* javax/net/ssl/HttpsURLConnection.java (HttpsURLConnection): Doesn't
	throw IOException.

2006-04-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultListSelectionModel.java
	(clone): Initialise empty listener list,
	(setSelectionMode): Throw IllegalArgumentException for bad input.

2006-04-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultListSelectionModel.java
	(clearSelection): Clear the Bitset.

2006-04-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTree.java (setLeadSelectionPath):
	Repaint the new and old lead pathes.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(FocusHandler): Repaint the lead row when focus changes.
	(PropertyChangeHandler): Use existing constants, not the
	string literals for the property names.
	(TreeIncrementAction): Shrink the selection when moving
	from the selection edge to the selection anchor.
	(TreeSelectionHandler.valueChanged): Repaint the 
	new and old lead pathes.
	(paintRow): Treat row as focused only if it is the lead row.
	* javax/swing/tree/DefaultTreeCellRenderer.java
	(getTreeCellRendererComponent): Set the vertical alignment to CENTER.
	(paint): Rewritten.
	* javax/swing/tree/DefaultTreeSelectionModel.java
	(addSelectionPath): Event construction fix (old and new lead were
	always the same).
	(addSelectionPaths): Likewise.
	* javax/swing/JComponent.java (setOpaque): Explained.
	* javax/swing/tree/FixedHeightLayoutCache.java (getBounds):
	Accept null.
	* javax/swing/tree/VariableHeightLayoutCache.java (getBounds):
	Accept null.

2006-04-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/TreeDemo.java
	(createContent): Call DefaultTreeModel.reload(), not the
	tree.repaint(). Expand the parent of the added node.
	* javax/swing/JTree.java (constructor): Do not call
	UpdateUI (and documented why). (treeDidChange):
	Added comment, excluding the misinterpretation of this method.
	* javax/swing/plaf/basic/BasicTreeUI.java (componentListener,
	focusListener, keyListener, mouseListener, propertyListener,
	selectionModelPropertyChangeListener, treeModelListener,
	treeSelectionListener): Made package private.
	(PropertyChangeHandler): If the model changes, install the
	listener on it. (installUI): Assign treeModel.
	* javax/swing/tree/DefaultMutableTreeNode.java (add): Added
	comment, excluding misinterpretation.
	* javax/swing/tree/DefaultTreeModel.java (reload): Implemented.
	(reload(TreeNode)): Implemented.

2006-04-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (MouseHandler.mousePressed):
	If clicked on the other row, cancel the current editing session.

2006-04-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(NodeDimensionsHandler.getRowX): Add half of the icon width.
	(paintExpandControl): Always paint in one gap distance from the left
	border of the path bounds.
	(paintHorizontalPartOfLeg): Rewritted, taking the icon width
	into consideration.
	(paintVerticalPartOfLeg): Paint two gaps from the parent's bounds
	left edge.

2006-04-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (paint): Rewritten.

2006-04-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/parser/support/Parser.java (readAttributes):
	Allow slashes (/) in the unquoted parameter value. 

2006-04-25  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	(drawString(String,int,int)): Implemented.
	(drawString(String,float,float)): Implemented.
	(drawString(AttributedCharacterIterator,int,int)): Implemented.
	(drawString(AttributedCharacterIterator,float,float)): Implemented.
	(getFontRenderContext): Implemented.
	(drawGlyphVector): Implemented.
	(getFont): Implemented.
	(setFont): Don't change font setting when null.
	(getFontMetrics): Implemented.
	(fillShape): Re-written to fill call rawFillShape() with a list
	of the edges instead of double arrays.
	(rawFillShape): Implemented using a polygon scanline conversion.
	(fillScanline): New helper method.
	(init): Initialize foreground black. Set font.
	* gnu/java/awt/java2d/PolyEdge.java: New file.
	* gnu/java/awt/java2d/PolyEdgeComparator.java: New file.

2006-04-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/DefaultTableColumnModel.java: More API doc updates.

2006-04-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTable.java: Fixed API doc tags,
	* javax/swing/text/AsyncBoxView.java: Likewise,
	* javax/swing/text/FlowView.java: Likewise.

2006-04-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/DefaultTableColumnModel.java
	(moveColumn): Call fireColumnMoved() not fireColumnAdded.

2006-04-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/DefaultTableColumnModel.java
	(DefaultTableColumnModel): Set selection model field and add 'this' as
	listener directly,
	(addColumn): Add 'this' as a PropertyChangeListener,
	(removeColumn): Remove column before firing event, and remove 'this' as
	a PropertyChangeListener,
	(setSelectionModel): Remove 'this' as a listener from old model, 
	(propertyChange): Check for 'width' property rather than
	TableColumn.COLUMN_WIDTH_PROPERTY.

2006-04-24  Chris Burdess  <dog@gnu.org>

	Fixes PR 27262
	* gnu/xml/dom/DomDocument.java: getElementById returns user-defined ID
	  attributes when no doctype exists.

2006-04-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/ChangeEvent.java: Updated API docs,
	* javax/swing/event/ChangeListener.java: Likewise,
	* javax/swing/event/TableColumnModelEventListener.java: Likewise,
	* javax/swing/table/DefaultTableColumnModel.java: Likewise,
	* javax/swing/table/TableColumnModel.java: Likewise.

2006-04-24  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/Utilities.java:
	(getBreakLocation): Introduced shift variable, added notes.
	* javax/swing/text/WrappedPlainView.java:
	(calculateBreakPosition): Decrease allocation area bounds by insets,
	added early return when allocation area is empty, provide start offset
	as argument.
	(WrappedPlainView.WrappedLine): Change default value for numLines to 1.
	(WrappedPlainView.WrappedLine.paint): Added count variable, update
	numLines after loop.
	(WrappedPlainView.WrappedLine.determineNumLines): Added early return.
	(WrappedPlainView.WrappedLine.getPreferredSpan): Removed if-statement.
	(WrappedPlainView.WrappedLine.viewToModel): Changed note, removed
	decreasing variable end by one, changed break condition in while-loop,
	added check for return value.
	(WrappedPlainView.WrappedLine.updateDamage): Set numLines to one if
	allocation area is empty.

2006-04-24  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/java2d/Segment.java: New file.
	* gnu/java/awt/java2d/CubicSegment.java: New file.
	* gnu/java/awt/java2d/QuadSegment.java: New file.
	* gnu/java/awt/java2d/LineSegment.java: New file.
	* java/awt/BasicStroke.java
	(start): New field.
	(end): New field.
	(createStrokedShape): Implemented.
	(solidStroke): New method.
	(dashedStroke): New method.
	(capEnds): New method.
	(convertPath): New method.
	(addSegments): New method.
	(capEnd): New method.
	(lineIntersection): New method.
	(joinSegments): New method.

2006-04-24  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java: Made implements
	Cloneable.
	(font): New field.
	(clip): Changed clip to be in user space not in target space.
	(isOptimized): Added flag to allow optimized drawing for
	primitive operations (e.g. for Swing).
	(AbstractGraphics2D()): Set foreground in init() to avoid trouble
	with the paint context etc.
	(draw): Clip the shape before drawing it.
	(fill): Clip the shape before drawing it.
	(setComposite): Update isOptimized flag.
	(setPaint): Likewise.
	(setStroke): Likewise.
	(translate): Update the clip.
	(rotate): Likewise.
	(scale): Likewise.
	(shear): Likewise.
	(transform): Likewise.
	(setTransform): Likewise.
	(clip): Added optimization for rectangle clips.
	(create): Implemented.
	(clone): New method.
	(setFont): Basic implementation.
	(setClip): Update opimization flag.
	(drawLine): Added possible optimization.
	(fillRect): Added possible optimization.
	(fillShape): Implemented shape-filling by filling the flattended
	shape using polygon fill.
	(drawPixel): Added basic painting.
	(rawSetPixel): Changed signature to only take coordinates.
	(rawSetForeground): New abstract method.
	(getUserBounds): Implemented default for this method.
	(rawDrawLine): New method.
	(rawFillRect): New method.
	(rawFillPolygon): New method.
	(init): New method.
	(updateOptimization): New method.
	(computeIntersection): New method.
	(updateClip): New method.
	(clipShape): New method.

2006-04-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/TreeDemo.java:
	(createContent): Added check box to swith between single and 
	multiple selection.
	* javax/swing/JTree.java (leadSelectionPath): Removed.
	(addSelectionInterval): Explained. (getLeadSelectionPath):
	Request the path from model. (getPathsBetweenRows): Explained.
	(setLeadSelectionPath): Set the path in model.
	* javax/swing/plaf/basic/BasicTreeUI.java 
	(TreeIncrementAction.actionPerformed, isMultiSelectionEvent, 
	isToggleSelectionEvent, selectPath, selectPathForEvent): Rewritten.
	(MouseHandler.mousePressed): Call selectPathForEvent.

2006-04-23  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java: New file.

2006-04-23  Jeroen Frijters  <jeroen@frijters.net>

	* NEWS: Added entry about new Package constructor.
	* java/lang/Package.java: Added compatibility constructor to ease
	VM interface migration.

2006-04-23  Jeroen Frijters  <jeroen@frijters.net>

	* NEWS: Added information about annotation support.
	* java/lang/Class.java: Implement AnnotatedElement.
	(equals): Reformatted to match generics branch.
	(getEnumConstants): Implemented.
	(getAnnotation, getAnnotations, getDeclaredAnnotations,
	isAnnotationPresent): Merged from generics branch.
	* vm/reference/java/lang/VMClass.java (getDeclaredAnnotations):
	New method.

2006-04-23  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/ClassLoader.java (definePackage): Added argument to
	Package constructor.
	* java/lang/Package.java (Package): Added ClassLoader argument.
	(loader): New field.
	(getAnnotation, getAnnotations, getDeclaredAnnotations,
	isAnnotationPresent): Merged from generics branch.
	* vm/reference/java/lang/VMClassLoader.java (static): Added argument
	to Package constructor.

2005-12-14  Nicolas Geoffray  <nicolas.geoffray@menlina.com>

	* java/lang/ClassLoader
	(defineClass(String,byte[],int,int,ProtectionDomain)):
	Calls VMClassLoader.defineClassWithTransformers instead
	of VMClassLoader.defineClass.

2006-04-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Mention changes to VMProcess and VMSystem.
	* doc/vmintegration.texinfo:
	Change documentation on VMProcess and VMSystem.
	* java/lang/reflect/Modifier.java:
	(toString(int,StringBuilder)): Merged from generics
	branch.
	* vm/reference/java/lang/reflect/Constructor.java
	(toString()): Use StringBuilder.
	(toGenericString()): Likewise.
	* vm/reference/java/lang/reflect/Field.java:
	(toString()): Use StringBuilder.
	(toGenericString()): Likewise.
	* vm/reference/java/lang/reflect/Method.java
	(toString()): Use StringBuilder.
	(toGenericString()): Likewise.
	* include/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.h,
	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h,
	* include/gnu_java_awt_peer_gtk_GdkGraphics.h,
	* include/gnu_java_awt_peer_gtk_GdkGraphics2D.h,
	* include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h,
	* include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h,
	* include/gnu_java_awt_peer_gtk_GdkRobotPeer.h,
	* include/gnu_java_awt_peer_gtk_GdkTextLayout.h,
	* include/gnu_java_awt_peer_gtk_GtkButtonPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkChoicePeer.h,
	* include/gnu_java_awt_peer_gtk_GtkClipboard.h,
	* include/gnu_java_awt_peer_gtk_GtkComponentPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkFramePeer.h,
	* include/gnu_java_awt_peer_gtk_GtkGenericPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkImage.h,
	* include/gnu_java_awt_peer_gtk_GtkLabelPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkListPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkPanelPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h,
	* include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkSelection.h,
	* include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkToolkit.h,
	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h,
	* include/gnu_java_awt_peer_qt_MainQtThread.h,
	* include/gnu_java_awt_peer_qt_QMatrix.h,
	* include/gnu_java_awt_peer_qt_QPainterPath.h,
	* include/gnu_java_awt_peer_qt_QPen.h,
	* include/gnu_java_awt_peer_qt_QtAudioClip.h,
	* include/gnu_java_awt_peer_qt_QtButtonPeer.h,
	* include/gnu_java_awt_peer_qt_QtCanvasPeer.h,
	* include/gnu_java_awt_peer_qt_QtCheckboxPeer.h,
	* include/gnu_java_awt_peer_qt_QtChoicePeer.h,
	* include/gnu_java_awt_peer_qt_QtComponentPeer.h,
	* include/gnu_java_awt_peer_qt_QtContainerPeer.h,
	* include/gnu_java_awt_peer_qt_QtDialogPeer.h,
	* include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h,
	* include/gnu_java_awt_peer_qt_QtFileDialogPeer.h,
	* include/gnu_java_awt_peer_qt_QtFontMetrics.h,
	* include/gnu_java_awt_peer_qt_QtFontPeer.h,
	* include/gnu_java_awt_peer_qt_QtFramePeer.h,
	* include/gnu_java_awt_peer_qt_QtGraphics.h,
	* include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h,
	* include/gnu_java_awt_peer_qt_QtImage.h,
	* include/gnu_java_awt_peer_qt_QtLabelPeer.h,
	* include/gnu_java_awt_peer_qt_QtListPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuBarPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuItemPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuPeer.h,
	* include/gnu_java_awt_peer_qt_QtPanelPeer.h,
	* include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h,
	* include/gnu_java_awt_peer_qt_QtScreenDevice.h,
	* include/gnu_java_awt_peer_qt_QtScrollPanePeer.h,
	* include/gnu_java_awt_peer_qt_QtScrollbarPeer.h,
	* include/gnu_java_awt_peer_qt_QtTextAreaPeer.h,
	* include/gnu_java_awt_peer_qt_QtTextFieldPeer.h,
	* include/gnu_java_awt_peer_qt_QtToolkit.h,
	* include/gnu_java_awt_peer_qt_QtVolatileImage.h,
	* include/gnu_java_awt_peer_qt_QtWindowPeer.h,
	* include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h,
	* include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h,
	* include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h,
	* include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h,
	* include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h,
	* include/gnu_xml_libxmlj_dom_GnomeAttr.h,
	* include/gnu_xml_libxmlj_dom_GnomeDocument.h,
	* include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h,
	* include/gnu_xml_libxmlj_dom_GnomeDocumentType.h,
	* include/gnu_xml_libxmlj_dom_GnomeElement.h,
	* include/gnu_xml_libxmlj_dom_GnomeEntity.h,
	* include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h,
	* include/gnu_xml_libxmlj_dom_GnomeNode.h,
	* include/gnu_xml_libxmlj_dom_GnomeNodeList.h,
	* include/gnu_xml_libxmlj_dom_GnomeNotation.h,
	* include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h,
	* include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathResult.h,
	* include/gnu_xml_libxmlj_sax_GnomeLocator.h,
	* include/gnu_xml_libxmlj_sax_GnomeXMLReader.h,
	* include/gnu_xml_libxmlj_transform_GnomeTransformer.h,
	* include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h,
	* include/java_lang_VMProcess.h,
	* include/java_lang_VMSystem.h:
	Regenerated with GCJ 4.1.

2005-12-05  Casey Marshall <csm@gnu.org>

	* native/jni/classpath/jcl.h (environ): define, or declare
	'extern.'
	* native/jni/java-lang/java_lang_VMProcess.c: include <jcl.h>.
	Remove 'extern' define.
	* native/jni/java-lang/java_lang_VMSystem.c
	(Java_java_lang_VMSystem_environ): don't declare 'environ.'

2005-09-25  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/System.java,
	vm/reference/java/lang/VMSystem.java: Removed generic type
	from VMSystem.environ() signature.

2005-05-04  Tom Tromey  <tromey@redhat.com>

	* native/jni/java-lang/java_lang_VMProcess.c
	(Java_java_lang_VMProcess_nativeSpawn): Added 'redirect'
	argument.  Use defines instead of contents.
	* vm/reference/java/lang/VMProcess.java (redirect): New field.
	(spawn): Updated.
	(setProcessInfo): Updated.
	(VMProcess): Added 'redirect' argument.
	(nativeSpawn): Likewise.
	(exec): New overload.

2005-01-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* include/java_lang_VMSystem.h:
	(Java_java_lang_VMSystem_environ): added
	* vm/reference/java/lang/VMSystem.java:
	(environ()): new native method

2006-04-22  Casey Marshall  <csm@gnu.org>

	Fixes PR classpath/27228.
	* gnu/javax/crypto/jce/sig/DHKeyPairGeneratorSpi.java
	(initialize): also accept `DHParameterSpec.'
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java (setup):
	handle a passed-in `DHParameterSpec' properly.
	(generate): don't check if the random exponent is less than `q -
	1' if no `q' was specified.

2006-04-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTree.java (TreeSelectionRedirector.valueChanged):
	Only repaint the patches, speficied in the passed event.
	(expandPath): Do nothing if the path is already expanded.
	(scrollPathToVisible): Only scroll to visible, do nothing else.
	* javax/swing/plaf/basic/BasicTreeUI.java 
	(TreeExpansionHandler.treeColapsed): Revalidate and repaint.
	(TreeExpansionHandler.treeExpanded): Revalidate and repaint.
	(TreeTraverseAction.actionPerformed): Collapse the node on the
	action "selectParent". (selectPath): Rewritten.
	* javax/swing/tree/DefaultTreeSelectionModel.java (clearSelection):
	Fire change event. (notifyPathChange): Implemented. (setSelectionPath):
	Do not reuse selection array.
	* javax/swing/tree/FixedHeightLayoutCache.java (getRowForPath):
	Accept null.
	* javax/swing/tree/VariableHeightLayoutCache.java (getRowForPath):
	Accept null.

2006-04-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/tree/DefaultTreeSelectionModel.java
	(addSelectionPath): If the path cannot be added, set it.
	(addSelectionPaths): Call insureRowContinuity.
	(arePathsContiguous): Implemented.
	(canPathBeAdded): New private method.
	(canPathsBeAdded): Implemented.
	(canPathsBeRemoved): Implemented.
	(getPath): New private method.
	(insureRowContinuity): Implemented.
	(removeSelectionPath): Call insureRowContinuity.
	(removeSelectionPaths): Call insureRowContinuity.
	(resetRowSelection): Removed stub marking, not used in implementation 
	(nothing to do there).
	(selectOne): New private method.
	(setSelectionMode) Call insureRowContinuity.
	(setSelectionPaths) Remove the current selection by clearing it.

2006-04-22  Carsten Neumann  <cn-develop@gmx.net>

	* javax/sql/Array.java: Fixed eclipse API doc warnings, named method
	parameters consistendly, documented some methods.
	* java/sql/Blob.java: Likewise.
	* java/sql/CallableStatement.java: Likewise.
	* java/sql/Clob.java: Likewise.
	* java/sql/Connection.java: Likewise.
	* java/sql/DatabaseMetaData.java: Likewise.
	* java/sql/Date.java: Likewise.
	* java/sql/Driver.java: Likewise.
	* java/sql/PreparedStatement.java: Likewise.
	* java/sql/ResultSet.java: Likewise.
	* java/sql/ResultSetMetaData.java: Likewise.
	* java/sql/SQLData.java: Likewise.
	* java/sql/SQLOutput.java: Likewise.
	* java/sql/SQLWarning.java: Likewise.
	* java/sql/Statement.java: Likewise.
	* java/sql/Time.java: Likewise.
	* java/sql/Timestamp.java: Likewise.

2006-04-21  Tom Tromey  <tromey@redhat.com>

	PR classpath/27163:
	* gnu/java/net/protocol/ftp/FTPConnection.java
	(changeWorkingDirectory): Do nothing if path is empty.

2006-04-21  Tom Tromey  <tromey@redhat.com>

	PR libgcj/27231:
	* gnu/java/net/protocol/http/HTTPURLConnection.java (connect): Handle
	case where no '/' appears in 'location'.

2006-04-21  Tom Tromey  <tromey@redhat.com>

	* java/security/Security.java (<clinit>): Add all default providers.
	* resource/java/security/classpath.security: Added comment.

2006-04-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SpinnerDateModel.java: Updated API docs all over,
	* javax/swing/SpinnerNumberModel.java: Likewise.

2006-04-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SpinnerDateModel.java
	(SpinnerDateModel(Date, Comparable, Comparable, int)): Fix argument
	checking to call compareTo() on start and end.

2006-04-21  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/reflect/AccessibleObject.java:
	Implemented AnnotatedElement.
	(getAnnotation, getAnnotations, getDeclaredAnnotations,
	isAnnotationPresent): New methods.

2006-04-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/border/AbstractBorder.java: API doc updates,
	* javax/swing/border/BevelBorder.java: Likewise,
	* javax/swing/border/CompoundBorder.java: Likewise,
	* javax/swing/border/EtchedBorder.java: Likewise,
	* javax/swing/border/LineBorder.java: Likewise,
	* javax/swing/border/MatteBorder.java: Likewise,
	* javax/swing/border/TitledBorder.java: Likewise.

2006-04-21  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/javax/crypto/cipher/Anubis.java:
	(selfTest): Use Boolean.valueOf() to avoid creating a new Boolean
	instance,
	* gnu/javax/crypto/cipher/Blowfish.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/cipher/Cast5.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/cipher/Khazad.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/cipher/Rijndael.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/cipher/Serpent.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/cipher/Square.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/cipher/Twofish.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/mac/UMac32.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/prng/CSPRNG.java:
	(getSystemInstance): Likewise.

2006-04-21  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/java/security/hash/Haval.java:
	(selfTest): Use Boolean.valueOf() to avoid creating new Boolean 
	instance,
	* gnu/java/security/hash/MD2.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/MD4.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/MD5.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/RipeMD128.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/RipeMD160.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/Sha160.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/Sha256.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/Sha384.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/Sha512.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/Tiger.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/Whirlpool.java:
	(selfTest): Likewise.

2006-04-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java 
	(PropertyChangeHandler.propertyChange): Set the row mapper
	for the selection model.
	* javax/swing/tree/AbstractLayoutCache.java 
	(NodeDimensions.getNodeDimensions): Explained.
	(getPreferredHeight, getPreferredWidth, isFixedRowHeight):
	Implemented. (setRowHeight): Invalidate sizes. 
	* javax/swing/tree/DefaultTreeSelectionModel.java
	(addSelectionPath, addSelectionPaths): Update lead row.
	(removeSelectionPath, removeSelectionPaths): Do nothing if
	selection is empty.
	(clone): Only clone list selection model if it is not null.
	(getRow): New method. (isRowSelected, getLeadSelectionRow, 
	setSelectionPath, setSelectionPaths, toString): Implemented.
	* javax/swing/tree/FixedHeightLayoutCache.java (NodeRecord.getBounds):
	Pass the empty rectangle. (isFixedRowHeight): New method.
	* javax/swing/tree/VariableHeightLayoutCache.java
	(NodeRecord.getBounds):	Pass the empty rectangle.
	
2006-04-21  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/java/security/Properties.java
	(init): Use Boolean.valueOf() to avoid creating new Boolean instances.

2006-04-21  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/classpath/jdwp/util/Value.java
	(getUntaggedObj(ByteBuffer, Class)): Use Boolean.valueOf() to avoid 
	creating new Boolean instances.

2006-04-20  Mark Wielaard  <mark@klomp.org>

	* java/awt/Toolkit.java (getDefaultToolkit): Get classloader in
	PrivilegedAction. Access awt.toolkit through SystemProperties.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/ActionMap.java: Removed unused imports,
	* javax/swing/DefaultListSelectionModel.java
	(clearSelection): Removed unused label,
	* javax/swing/JScrollPane.java: Removed unused imports,
	* javax/swing/UIManager.java: Likewise,
	* javax/swing/table/DefaultTableCellRenderer.java: Likewise.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicSpinnerUI.java: Removed unused imports,
	* javax/swing/plaf/basic/BasicTextAreaUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTextFieldUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTextUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTreeUI.java: Likewise.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* java/sql/Array.java: Fixed Eclipse API doc warnings,
	* java/sql/Blob.java: Likewise,
	* java/sql/CallableStatement.java: Likewise,
	* java/sql/Clob.java: Likewise,
	* java/sql/Connection.java: Likewise,
	* java/sql/DatabaseMetaData.java: Likewise,
	* java/sql/Date.java: Likewise,
	* java/sql/Driver.java: Likewise,
	* java/sql/PreparedStatement.java: Likewise,
	* java/sql/ResultSet.java: Likewise,
	* java/sql/ResultSetMetaData.java: Likewise,
	* java/sql/SQLData.java: Likewise,
	* java/sql/SQLOutput.java: Likewise,
	* java/sql/SQLWarning.java: Likewise,
	* java/sql/Statement.java: Likewise,
	* java/sql/Time.java: Likewise,
	* java/sql/Timestamp.java: Likewise.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* java/sql/DriverManager.java
	(setLoginTimeout): Use incoming argument,
	(setLogStream): Likewise,
	(println): Fix API doc comment.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JMenuItem.java
	(paramString): Updated API docs,
	(getAccessibleContext): Added API docs,
	(AccessibleJMenuItem.stateChanged): Marked as stub,
	(AccessibleJMenuItem.getAccessibleRole): Added API docs,
	* javax/swing/JSlider.java
	(paramString): Fix for API docs,
	* javax/swing/JToolTip.java
	(getAccessibleContext): Fix for API docs.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JRadioButtonMenuItem.java
	(paramString): Reimplemented,
	(getAccessibleContext): API docs added,
	(AccessibleJRadioButtonMenuItem.AccessibleJRadioButtonMenuItem()): 
	Likewise,
	(AccessibleJRadioButtonMenuItem.getAccessibleRole): Likewise.

2006-04-20  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(finish): Invalidate path bounds.
	(getMaxHeight): Set the row height to the layout cache.
	(startEditing): Do not request to recalculated 
	row height and preferred size.
	* javax/swing/tree/DefaultTreeCellEditor.java
	(ICON_TEXT_GAP, ICON_TREE_GAP): Removed, replacing
	with 0.
	* javax/swing/tree/FixedHeightLayoutCache.java:
	Rewritten.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JDesktopPane.java
	(paramString): Reimplemented,
	plus API doc updates in AccessibleJDesktopPane.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/ImageIcon.java:
	(AccessibleImageIcon.getAccessibleStateSet): Return null always,
	(AccessibleImageIcon.getLocale): Declared exception and always return 
	null,
	(getAccessibleContext): Updated API docs,
	plus updated API docs all over AccessibleImageIcon.

2006-04-20  Roman Kennke  <kennke@aicas.com>

	PR 27196
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(paintText): Fetch the ascent only once. Add the ascent to
	the text rect also when tabs are disabled.

2006-04-20  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* java/util/Locale.java (defaultLocale): Set to en_US per
	default and use user.country but prioritize user.region if
	defined.
	(getLocale(String language, String country)): Renamed region to
	country.
	(getLocale(String language, String region, String variant)):
	Likewise.
	(getAvailableLocales): Likewise.

2006-04-20  Roman Kennke  <kennke@aicas.com>

	PR 27222
	* javax/swing/JList.java
	(JList()): Call init() with DefaultListModel instance.
	(JList(Object[])): Call init() with null.
	(JList(Vector)): Call init() with null.
	(JList(ListModel)): Call init() with model.
	(init): Changed to take the model as argument. Don't call
	setter methods and initialize stuff directly instead.
	(getCellBounds): Check if UI is null.

2006-04-20  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/WrappedPlainView.java: Initialize
	WrappedLine.numLines with -1.
	(WrappedPlainView.WrappedLine.getPreferredSpan): Check whether
	numLines is -1 and reculcalate the value appropriately.
	(WrappedPlainView.WrappedLine.updateDamage): Set numLines to -1 if
	allocation area is empty.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTabbedPane.java
	(AccessibleJTabbedPane.stateChanged): Marked as stub,
	(AccessibleJTabbedPane.getAccessibleRole): Likewise,
	(AccessibleJTabbedPane.getAccessibleChildrenCount): Likewise,
	(AccessibleJTabbedPane.getAccessibleSelection): Likewise,
	(AccessibleJTabbedPane.getAccessibleAt): Likewise,
	(AccessibleJTabbedPane.getAccessibleSelectionCount): Likewise,
	(AccessibleJTabbedPane.getAccessibleSelection(int)): Likewise,
	(AccessibleJTabbedPane.isAccessibleChildSelected): Likewise,
	(AccessibleJTabbedPane.addAccessibleSelection): Likewise,
	(AccessibleJTabbedPane.removeAccessibleSelection): Likewise,
	(AccessibleJTabbedPane.clearAccessibleSelection): Likewise,
	(AccessibleJTabbedPane.selectAllAccessibleSelection): Likewise,
	(Page.getAccessibleStateSet): Likewise,
	(Page.getAccessibleIndexInParent): Likewise.

2006-04-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JProgressBar.java
	(paramString): Reimplemented.

2006-04-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JButton.java: Updated API docs all over.

2006-04-19  Roman Kennke  <kennke@aicas.com>

	* java/awt/Toolkit.java
	(getDefaultToolkit): Use system classloader to load the
	toolkit.

2006-04-19  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultCaret.java:
	(DefaultCaret.Bypass.setDot): Call DefaultCaret.setDotImpl
	instead of DefaultCaret.setDot.

2006-04-19  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/local.c
	(local_read): Handle EINTR correctly.
	(local_write): Likewise.

2006-04-19  Riccardo Mottola  <multix@gmail.com>

	PR classpath/27062, PR classpath/25650:
	* native/fdlibm/ieeefp.h: Check for _POWER and _IBMR2.

2006-04-19  Tom Tromey  <tromey@redhat.com>

	* java/text/SimpleDateFormat.java (formatWithAttribute): Take absolute
	value of 'pureMinutes'.  PR classpath/27189.

2006-04-19  Olivier Jolly  <olivier.jolly@pcedev.com>

   * vm/reference/java/lang/VMClassLoader.java (getBootPackages): Loads
   boot packages list from the META-INF/INDEX.LIST file if it exists. 

2006-04-19  Raif S. Naffah  <raif@swiftdsl.com.au>

	Suggested by Stephen White <stephen-gnu-crypto@randomstuff.org.uk>
	* gnu/javax/crypto/prng/IPBE.java: Updated documentation.
	(ITERATION_COUNT): Removed modifiers.
	(PASSWORD): Likewise.
	(SALT): Likewise.
	(PASSWORD_ENCODING): New property.
	(DEFAULT_PASSWORD_ENCODING): New constant.
	* gnu/javax/crypto/prng/PBKDF2.java (setup): Check for MAC's raw key
	material (bytes) before a password (chars).

2006-04-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JMenu.java
	(getAccessibleChildrenCount): Marked as stub,
	(getAccessibleChild): Likewise,
	(getAccessibleSelection): Likewise,
	(getAccessibleSelection(int)): Likewise,
	(isAccessibleChildSelected): Likewise,
	(getAccessibleSelectionCount): Likewise,
	(addAccessibleSelection): Likewise,
	(removeAccessibleSelection): Likewise,
	(clearAccessibleSelection): Likewise,
	(selectAllAccessibleSelection): Likewise.

2006-04-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSplitPane.java
	(getAccessibleContext): Added API docs,
	(paramString): Reimplemented,
	(setOrientation): Updated API docs,
	(setResizeWeight): Added argument checking and event notification.

2006-04-18  Casey Marshall  <csm@gnu.org>

	Fixes PR classpath/25673	
	* java/security/KeyStore.java (getDefaultType): return "gkr" if no
	property is set. Update JavaDoc to reflect this.

2006-04-18  Lillian Angel  <langel@redhat.com>

	* gnu/xml/dom/DomDocument.java
	(setCheckingCharacters): New function used to set
	checkingCharacters flag.
	* gnu/xml/dom/html2/DomHTMLParser.java
	(parseDocument): Added call to set checkingCharacters flag
	to false.

2006-04-18  Lillian Angel  <langel@redhat.com>

	* gnu/xml/dom/DomDocument.java
	(checkNCName): Reverted last patch. Added check for colon at
	last position back in.

2006-04-18  Robert Schuster  <robertschuster@fsfe.org>

        * examples/gnu/classpath/examples/swing/NavigationFilterDemo.java:
        New file.
        * examples/gnu/classpath/examples/swing/Demo.java:
        (mkMenuBar): Added NavigationFilter demo.

2006-04-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSeparator.java: Updated API docs all over, plus
	(setOrientation): Fire PropertyChangeEvent,
	(paramString): Reimplemented.

2006-04-18  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTextUI.java:
	(getNextVisualPositionFrom): Implemented.

2006-04-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JPanel.java: Updated API docs all over, plus
	(JPanel(LayoutManager, boolean)): Pass on null layout, set 
	double-buffer flag.

2006-04-18  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/DocumentFilterDemo.java:
	New file.
	* examples/gnu/classpath/examples/swing/Demo.java:
	(mkMenuBar): Added DocumenFilter demo.

2006-04-18  Tom Tromey  <tromey@redhat.com>

	* doc/www.gnu.org/include/layout.wml: Add FMJ.

2006-04-18  Mark Wielaard  <mark@klomp.org>

	Reported by John Sullivan (johns@fsf.org)
	* doc/www.gnu.org/stories.wml: Update JikesRVM location.

2006-04-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JInternalFrame.java
	(JDesktopIcon.getAccessibleContext): Added API docs,
	(getDefaultCloseOperation): Likewise,
	(paramString): Added 'title' attribute,
	(setDefaultCloseOperation): Added API docs.

2006-04-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSlider.java
	(paramString): Reimplemented.

2006-04-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComboBox.java
	(paramString): Reimplemented,
	(getAccessibleContext): Added API docs,
	(AccessibleJComboBox.getAccessibleRole): Likewise.

2006-04-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(dirtyComponentsWork): New field.
	(ComponentComparator): Use dirtyComponentsWork instead of
	dirtyComponents.
	(RepaintManager): Initialize new field.
	(paintDirtyRegions): Swap dirtyComponents with dirtyComponentsWork
	and work on the copy.

2006-04-18  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/swing/SwingComponentPeer.java
	(setBounds): Call reshape().
	* gnu/java/awt/peer/swing/SwingContainerPeer.java
	(SwingContainerPeer): Changed argument to be a Component
	instead a Container.
	(getInsets): Call insets().
	(handleMouseEvent): Added null check to avoid NPE.
	(handleMouseMotionEvent): Added null check to avoid NPE.
	
2006-04-18  Roman Kennke  <kennke@aicas.com>

	PR 27185
	* javax/swing/JComponent.java
	(paintChildrenWithOverlap): When one child is not opaque, propagate
	the dirty rectangles to the next child.
	(paintChildrenOptimized): Removed unnecessary 'optimization'.
	This actually didn't work right and probably gained nothing.

2006-04-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (getCallRect): Do not cache rectangles.
	(moveToCellBeingEdited): Do not clone the rectangle here.

2006-04-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(getActionMap): Fixed lookup key,
	(createActionMap): Modified actions to fetch slider/ui from the event
	source.

2006-04-17  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JToolBar.java
	(AccessibleJToolBar.AccessibleJToolBar()): Updated API docs,
	(AccessibleJToolBar.getAccessibleStateSet): Implemented,
	(AccessibleJToolBar.getAccessibleRole): Updated API docs,
	(getAccessibleContext): Likewise.

2006-04-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Enum.java: Documented.

2006-04-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Mention merge of instrumentation classes.
	* doc/vmintegration.texinfo:
	Move instrumentation to correct section.
	
2006-04-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/InstrumentationImpl.java:
	Moved from java.lang.
	* java/lang/InstrumentationImpl.java:
	Removed.
	* vm/reference/gnu/java/lang/VMInstrumentationImpl.java:
	Moved from java.lang.
	* vm/reference/java/lang/VMClassLoader.java:
	Corrected reference to InstrumentationImpl.
	* vm/reference/java/lang/VMInstrumentationImpl.java:
	Removed.

2005-12-14  Nicolas Geoffray  <nicolas.geoffray@menlina.com>

	* vm/reference/java/lang/VMClassLoader
	(defineClassWithTransformers): New method.
	(instrumenter): New Field. 

2005-12-04  Nicolas Geoffray  <nicolas.geoffray@menlina.com>

	* vm/reference/java/lang/VMInstrumentationImpl.java
	(redefineClasses): Added an extra parameter of type
	java.lang.instrument.Instrument.
	* java/lang/InstrumentationImpl.java
	(redefineClasses): Added the Instrumentation object
	to the arguments of VMInstrumentationImpl.redefineClasses
	call. 

2005-12-03  Nicolas Geoffray  <nicolas.geoffray@menlina.com>
	
	* java/lang/InstrumentationImpl.java:
	New file.
	* vm/reference/java/lang/VMInstrumentationImpl.java:
	New file. 

2006-04-17  Jeroen Frijters  <jeroen@frijters.net>

	* java/util/Collection.java: Implemented java.lang.Iterable.

2006-04-17  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/Boolean.java: Implemented Comparable.
	* java/lang/ClassLoader.java
	(getResources): Not final anymore in 1.5.
	* java/lang/Enum.java, java/lang/Iterable.java:
	Copied from generics branch.
	* java/lang/Thread.java (destroy): Marked deprecated.
	* java/lang/ThreadLocal.java (remove): New method.

2006-04-17  Dalibor Topic  <robilad@kaffe.org>

        * configure.ac:
        Added CLASSPATH_CONVENIENCE substitution for convenience library LDFLAGS.

        * native/fdlibm/Makefile.am,
        native/jni/classpath/Makefile.am:
        Don't use -module and -version-info for convenience libraries LDFLAGS.
        Fixes libtool warnings.

2006-04-17  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicComboPopup.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicInternalFrameUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicLabelUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicListUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicMenuBarUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicMenuUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicOptionPaneUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicPopupMenuUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicScrollBarUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicScrollPaneUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicSplitPaneUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicTableHeaderUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicTableUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicTextUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicToolBarUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise.	

2006-04-17  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(installKeyboardActions): Implemented,
	(uninstallKeyboardActions): Implemented,
	(scrollByBlock): Accept any value for direction,
	(scrollByUnit): Likewise,
	(getInputMap): New method,
	(getActionMap): New method,
	(createActionMap): New method.

2006-04-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/annotation/Annotation.java:
	Documented.

2005-06-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/reflect/AnnotatedElement.java: Documented.

2005-01-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/reflect/AnnotatedElement.java:
	Added import of java.lang.annotation.Annotation

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

	* java/lang/reflect/AnnotatedElement.java: New file.

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

	* java/lang/annotation/Annotation.java: New file.

2005-12-13  Tom Tromey  <tromey@redhat.com>

	* java/lang/instrument/ClassDefinition.java: Reformatted.
	* java/lang/instrument/UnmodifiableClassException.java: Reformatted.
	* java/lang/instrument/IllegalClassFormatException.java: Reformatted.

2005-12-13  Tom Tromey  <tromey@redhat.com>

	* java/lang/instrument/ClassDefinition.java (ClassDefinition): Now
	public.

2005-12-05  Tom Tromey  <tromey@redhat.com>

	* java/lang/instrument/Instrumentation.java (redefineClasses): Javadoc
	fix.
	* java/lang/instrument/ClassFileTransformer.java (transform): Javadoc
	fix.

2005-12-03  Nicolas Geoffray  <nicolas.geoffray@menlina.com>
	
	* java/lang/instrument: New directory.
	* java/lang/instrument/ClassDefinition.java:
	New file.
	* java/lang/instrument/ClassFileTransformer.java:
	New file.
	* java/lang/instrument/IllegalClassFormatException.java:
	New file.
	* java/lang/instrument/Instrumentation.java:
	New file.
	* java/lang/instrument/UnmodifiableClassException.java:
	New file.

2006-04-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
	
	* doc/vmintegration.texinfo:
	Fix sectioning.

2006-04-16  Tom Tromey  <tromey@redhat.com>

	* native/jni/java-net/Makefile.am (AM_CFLAGS): Removed --save-temps.

2006-04-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Mention generics additions to the VM interface.
	* doc/vmintegration.texinfo:
	Added information on VMClass 1.5 additions and
	VMSecureRandom.
	
2006-04-16  Casey Marshall  <csm@gnu.org>

	* NEWS: add an entry mentioning local socket support.

2006-04-16  Casey Marshall  <csm@gnu.org>

	* configure.ac (--enable-local-sockets): new enable argument.
	(ENABLE_LOCAL_SOCKETS): new define.
	* native/jni/java-net/Makefile.am (local_sources): new variable.
	(lib_javanet_la_SOURCES): append `local_sources.'
	* native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c,
	* native/jni/java-net/local.c,
	* native/jni/java-net/local.h,
	* include/gnu_java_net_local_LocalSocketImpl.h,
	* gnu/java/net/local/LocalServerSocket.java,
	* gnu/java/net/local/LocalSocket.java,
	* gnu/java/net/local/LocalSocketAddress.java,
	* gnu/java/net/local/LocalSocketImpl.java: new files.

2006-04-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/accessibility/AccessibleAction.java:
	(DECREMENT): Added field.
	(INCREMENT): Likewise.
	(TOGGLE_EXPAND): Likewise.
	* javax/accessibility/AccessibleRole.java:
	(EDITBAR): Added field.
	(FOOTER): Likewise.
	(HEADER): Likewise.
	(PARAGRAPH): Likewise.
	(PROGRESS_MONITOR): Likewise.
	(RULER): Likewise.
	* javax/accessibility/AccessibleState.java:
	(INDETERMINATE): Added field.
	(MANAGES_DESCENDANTS): Likewise.
	(TRUNCATED): Likewise.
	* vm/reference/java/lang/reflect/Constructor.java:
	Fixed copyright header to match generics branch.
	* vm/reference/java/lang/reflect/Field.java:
	Fixed copyright header to match generics branch.
	(toGenericString()): Ported from generics branch.
	(getGenericType()): Likewise.
	(getSignature()): Likewise.

2006-04-14  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultCaret.java:
	(getBypass): New method.
	(moveDot): Rewritten.
	(moveDotImpl): New method.
	(setDot): Rewritten.
	(setDotImpl): New method.
	(DefaultCaret.Bypass): New class.

2006-04-14  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/AbstractDocument.java:
	(getBypass): New method.
	(insertString): Rewritten.
	(remove): Rewritten.
	(replace): Rewritten.
	(insertStringImpl): New method.
	(removeImpl): New method.
	(replaceImpl): New method.
	(AbstractDocument.Bypass): New class.

2006-04-14  Casey Marshall  <csm@gnu.org>

	Fixes PR classpath/24642
	* NEWS: add note about SecureRandom changes, and addition of
	VMSecureRandom.
	* java/security/SecureRandom.java (isSeeded): new field.
	(setSeed, setSeed): set `isSeeded' to `true.'
	(nextBytes): seed this instance if `isSeeded' is false.
	(getSeed): call `generateSeed.'
	(SECURERANDOM_SOURCE, JAVA_SECURITY_EGD, logger): new constants.
	(generateSeed, generateSeed): new methods.
	* vm/reference/java/security/VMSecureRandom.java: new file.

2006-04-14  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/FieldView.java:
	(paint): Apply clipping rectangle of the allocation area
	before painting the text.
	* javax/swing/text/DefaultHighlighter.java:
	(DefaultHighlighter.DefaultHighlightPainter): Use SwingUtilities to
	compute union and intersection,	calculate intersection with allocation
	area before painting, adjust x and width when painting multiple lines
	by the range of the allocation area.

2006-04-14  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultHighlighter.java:
	(paintLayeredHighlights): Marked as stub.

2006-04-14  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTextFieldUI.java:
	(propertyChanged): Added note, change color only if current background
	is a ColorUIResource instance.

2006-04-14  Tom Tromey  <tromey@redhat.com>

	* java/beans/beancontext/BeanContextSupport.java (hasNext): No longer
	a stub.
	(next): Likewise.

2006-04-14  Tom Tromey  <tromey@redhat.com>

	* javax/swing/JComboBox.java (AccessibleJComboBox): Now public.

2006-04-14  Mark Wielaard  <mark@klomp.org>

	* java/lang/Thread.java (getUncaughtExceptionHandler): Return
	thread group when exceptionHandler isn't set.
	* vm/reference/java/lang/VMThread.java (run): Use result of
	thread.getUncaughtExceptionHandler directly.

2006-04-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSplitPane.java
	(AccessibleJSplitPane.getAccessibleStateSet): Implemented,
	(AccessibleJSplitPane.getAccessibleRole): Implemented,
	(AccessibleJSplitPane.getAccessibleValue): Implemented,
	(AccessibleJSplitPane.getCurrentAccessibleValue): Implemented,
	(AccessibleJSplitPane.setCurrentAccessibleValue): Implemented,
	(AccessibleJSplitPane.getMinimumAccessibleValue): Implemented,
	(AccessibleJSplitPane.getMaximumAccessibleValue): Implemented.

2006-04-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>
	
	* gnu/javax/crypto/assembly/Assembly.java,
	* gnu/javax/crypto/assembly/Cascade.java,
	* gnu/javax/crypto/assembly/CascadeStage.java,
	* gnu/javax/crypto/assembly/CascadeTransformer.java,
	* gnu/javax/crypto/assembly/Direction.java,
	* gnu/javax/crypto/assembly/LoopbackTransformer.java,
	* gnu/javax/crypto/assembly/ModeStage.java,
	* gnu/javax/crypto/assembly/Operation.java,
	* gnu/javax/crypto/assembly/PaddingTransformer.java,
	* gnu/javax/crypto/assembly/Stage.java,
	* gnu/javax/crypto/assembly/Transformer.java,
	* gnu/javax/crypto/cipher/Square.java,
	* gnu/javax/crypto/jce/cipher/AESSpi.java,
	* gnu/javax/crypto/jce/cipher/ARCFourSpi.java,
	* gnu/javax/crypto/jce/cipher/AnubisSpi.java,
	* gnu/javax/crypto/jce/cipher/BlowfishSpi.java,
	* gnu/javax/crypto/jce/cipher/CipherAdapter.java,
	* gnu/javax/crypto/jce/cipher/DESSpi.java,
	* gnu/javax/crypto/jce/cipher/KhazadSpi.java,
	* gnu/javax/crypto/jce/cipher/NullCipherSpi.java,
	* gnu/javax/crypto/jce/cipher/PBES2.java,
	* gnu/javax/crypto/jce/cipher/RijndaelSpi.java,
	* gnu/javax/crypto/jce/cipher/SerpentSpi.java,
	* gnu/javax/crypto/jce/cipher/SquareSpi.java,
	* gnu/javax/crypto/jce/cipher/TripleDESSpi.java,
	* gnu/javax/crypto/jce/cipher/TwofishSpi.java,
	* gnu/javax/crypto/jce/mac/HMacMD2Spi.java,
	* gnu/javax/crypto/jce/mac/HMacMD4Spi.java,
	* gnu/javax/crypto/jce/mac/HMacMD5Spi.java,
	* gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.java,
	* gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.java,
	* gnu/javax/crypto/jce/mac/HMacSHA160Spi.java,
	* gnu/javax/crypto/jce/mac/HMacSHA256Spi.java,
	* gnu/javax/crypto/jce/mac/HMacSHA384Spi.java,
	* gnu/javax/crypto/jce/mac/HMacSHA512Spi.java,
	* gnu/javax/crypto/jce/mac/HMacTigerSpi.java,
	* gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.java,
	* gnu/javax/crypto/jce/mac/MacAdapter.java,
	* gnu/javax/crypto/jce/mac/TMMH16Spi.java,
	* gnu/javax/crypto/jce/mac/UHash32Spi.java,
	* gnu/javax/crypto/jce/mac/UMac32Spi.java,
	* gnu/javax/crypto/key/dh/DiffieHellmanSender.java,
	* gnu/javax/crypto/key/srp6/SRP6TLSServer.java,
	* gnu/javax/crypto/keyring/PrivateKeyEntry.java,
	* gnu/javax/crypto/mode/IAuthenticatedMode.java,
	* gnu/javax/crypto/pad/WrongPaddingException.java,
	* gnu/javax/crypto/prng/ICMGenerator.java,
	* gnu/javax/crypto/prng/IPBE.java,
	* gnu/javax/crypto/prng/PBKDF2.java,
	* gnu/javax/crypto/sasl/ConfidentialityException.java,
	* gnu/javax/crypto/sasl/IllegalMechanismStateException.java,
	* gnu/javax/crypto/sasl/srp/IALG.java,
	* gnu/javax/crypto/sasl/srp/SRPServer.java:
	Remove CVS revision tags.

2006-04-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (getPreferredSize): 
	Removed debugging code.

2006-04-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
	* javax/swing/JTree.java (getPreferredSize): Return the
	cloned instance.
	* javax/swing/ViewportLayout.java (layoutContainer):
	Do not manage the view size and location if the view is
	in the scroll pane. Also manage size and location for
	Scrollable, if it is not in the scroll pane.
	* javax/swing/plaf/basic/BasicTreeUI.java,
	* javax/swing/tree/FixedHeightLayoutCache.java,
	* javax/swing/tree/VariableHeightLayoutCache.java: Rewritten.
	* gnu/javax/swing/tree/GnuPath.java: New file.

2006-04-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JToolBar.java
	(AccessibleJToolBar.getAccessibleStateSet): Marked as stub.

2006-04-13  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/TextAreaDemo.java:
	(createCustomColoredPanel): Set background color as demo intends,
	changed custom selection color to red.
	* examples/gnu/classpath/examples/swing/TextFieldDemo.java:
	Replaced various single variables with a Compound instance, added
	custom highlighter demo.
	(TextFieldDemo.DemoHighlightPainter): New class (taken from
	TextAreaDemo).
	(TextFieldDemo.Compound): New class.
	(createTextFieldCompound): New method.
	(createLeftAlignedPanel): Rewritten.
	(createRightAlignedPanel): Rewritten.
	(createCenteredPanel): Rewritten.
	(createCustomColoredPanel): Removed.
	(createCustomColoredPanel1): New method.
	(createCustomColoredPanel2): New method.
	(createCustomBordersPanel): New method.
	(createMiscPanel): Rewritten.
	(actionPerformed): Rewritten.
	(createContent): Add panels of new compounds to main panel, put
	main panel in a JScrollPane.
	* examples/gnu/classpath/examples/swing/Demo.java:
	(Demo): Put desktop in a scrollpane.
	(mkMenuBar): Check availability of MetalLookAndFeel.getCurrentTheme()
	method via reflection.

2006-04-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalDesktopIconUI.java
	(createUI): Return new instance rather than shared instance.

2006-04-13  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/FieldView.java:
	(checkContainer): Call updateVisibility() at the end.

2006-04-13  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/event/MouseEvent.java:
	(paramString): Add value of 'consumed' variable in string.

2006-04-13  Robert Schuster  <robertschuster@fsfe.org>

	PR 26967
	* javax/swing/JTextField.java: Removed scrollOffset variable.
	(JTextField): Moved up initialization of horizontalVisibility field.
	(getScrollOffset): Implemented.
	(setScrollOffset): Implemented.
	(getHorizonztalVisibility): Removed note.
	(scrollRectToVisible): New method.
	* javax/swing/text/FieldView.java: Added cachedSpan variable.
	(checkContainer): New method.
	(updateVisibility): New method.
	(calculateHorizontalSpan): New method.
	(adjustAllocation): Removed unneeded local variables, added code
	to handle scrolling.
	(getPreferredSpan): Use new method calculateHorizontalSpan,
	avoid calculation by returning cached value cachedSpan.
	(paint): Added check whether the hosted component is a JTextField.
	(insertUpdate): Invalidate cached span value, update visibility
	if neccessary.
	(removeUpdate): Dito.
	(changeUpdate): Dito.

2006-04-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JInternalFrame.java
	(setTitle): Set old value to 'this.title', not 'title'.

2006-04-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JInternalFrame.java
	(AccessibleJInternalFrame.getAccessibleName): Implemented,
	(AccessibleJInternalFrame.getAccessibleRole): Implemented,
	(AccessibleJInternalFrame.getAccessibleValue): Implemented,
	(AccessibleJInternalFrame.getCurrentAccessibleValue): Implemented,
	(AccessibleJInternalFrame.getMaximumAccessibleValue): Implemented,
	(AccessibleJInternalFrame.getMinimumAccessibleValue): Implemented,
	(AccessibleJInternalFrame.setCurrentAccessibleValue): Implemented,
	(JDesktopIcon.AccessibleJDesktopIcon.getAccessibleRole): Implemented,
	(JDesktopIcon.AccessibleJDesktopIcon.getAccessibleValue): Implemented,
	(JDesktopIcon.AccessibleJDesktopIcon.getCurrentAccessibleValue): 
	Implemented,
	(JDesktopIcon.AccessibleJDesktopIcon.getMaximumAccessibleValue): 
	Implemented,
	(JDesktopIcon.AccessibleJDesktopIcon.getMinimumAccessibleValue): 
	Implemented,
	(JDesktopIcon.AccessibleJDesktopIcon.setCurrentAccessibleValue): 
	Implemented,
	(JInternalFrame()): Use "" for default title,
	(getAccessibleContext): Updated API docs,
	(getDesktopIcon): Likewise,
	(getLayer): Check for layer in client properties, and return 
	DEFAULT_LAYER if no setting is found,
	(getTitle): Updated API docs,
	(setDesktopIcon): Fire property change event.

2006-04-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/ScrollPaneLayout.java (layoutContainer):
	Mind that the presence of one scroll bar may cause the
	need for another.

2006-04-12  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/REToken.java(unicodeAware): New field,
	(toLowerCase, toUpperCase): New methods.
	* gnu/regexp/RETokenBackRef.java, gnu/regexp/RETokenChar.java,
	gnu/regexp/RETokenNamedProperty.java, gnu/regexp/RETokenRange.java:
	Use toLowerCase and toUpperCase defined in REToken instead of
	those defined in java.lang.Character.
	* gnu/regexp/gnu/regexp/RE.java(REG_ICASE_USASCII): New flag.
	(initialize): Sets unicodeAware of the generated REToken to false if
	REG_ICASE_USASCII is set.
	* gnu/regexp/RETokenChar.java(constructor): Don't convert the character
	to lower case and keep the original value.
	(matchOneString): Use the new method charEquals to compare characters.
	(charEquals): New method to compare characters.
	* java/util/regex/Pattern.java: Sets the flag REG_ICASE_USASCII to true.

2006-04-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/InternalFrameEvent.java:
	(paramString): Implemented,
	updated API docs all over.
	
2006-04-12  Casey Marshall  <csm@gnu.org>

	* gnu/javax/crypto/prng/Fortuna.java (setup): call `fillBlock.'
	(Generator.setup): call `fillBlock.'

2006-04-12  Casey Marshall  <csm@gnu.org>

	Fixes PR classpath/24481.
	* gnu/java/security/jce/prng/SecureRandomAdapter.java (<init>):
	initialize the adaptee.
	(setSeed): call `addRandomBytes;' don't re-initialize the adaptee.
	* gnu/java/security/prng/MDGenerator.java (addRandomByte,
	addRandomBytes): new methods.

2006-04-12  Tom Tromey  <tromey@redhat.com>

	* java/io/DataOutputStream.java (writeUTF): Correctly handle zero
	length strings.

2006-04-12  Lillian Angel  <langel@redhat.com>

	* gnu/xml/dom/DomDocument.java
	(checkNCName): Removed unneeded part of check.
	* gnu/xml/dom/DomNode.java
	(dispatchEvent): Added code to grow ancestors array
	if needed. Changed checks to use depth of node instead.
	Fixes an infinite loop and segmentation fault.
	* gnu/xml/dom/html2/DomHTMLParser.java
	(handleEndTag): No need to use/make a copy of the node.
	Causes an infinite loop.

2006-04-12  Tom Tromey  <tromey@redhat.com>

	PR classpath/27131:
	* java/util/BitSet.java (get): Early return if to==from.

2006-04-12  Mark Wielaard  <mark@klomp.org>

	* java/security/SecureRandom.java (algorithm): New private field.
	(SecureRandom): Initialize algorithm.
	(SecureRandom(SecureRandomSpi,Provider,String)): New private
	constructor.
	(getInstance): Call 3 argument constructor.
	(getAlgorithm): New method.

2006-04-12  Mark Wielaard  <mark@klomp.org>

	Port UncaughtExceptionHandler support from generics branch.
	* NEWS: Document Thread.UncaughtExceptionHandler VMThread change.

2006-04-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Thread.java:
	(setUncaughtExceptionHandler(UncaughtExceptionHandler):
	Added docs and security check.
	(getUncaughtExceptionHandler()): Documented.
	(setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler):
	Added docs and security check.
	(getDefaultUncaughtExceptionHandler()): Documented.
	(getId()): Documented.

2006-04-12  Tom Tromey  <tromey@redhat.com>

	* vm/reference/java/lang/VMThread.java (run): Use thread's
	uncaught handler.
	* java/lang/Thread.java (defaultHandler): New field.
	(setDefaultUncaughtExceptionHandler,
	getDefaultUncaughtExceptionHandler, setUncaughtExceptionHandler,
	getUncaughtExceptionHandler): New methods.
	* java/lang/ThreadGroup.java (ThreadGroup): Implements
	UncaughtExceptionHandler.
	(uncaughtException): Use getDefaultUncaughtExceptionHandler.

2006-04-11  Bryce McKinlay  <mckinlay@redhat.com>

	* java/io/DataOutputStream.java (writeUTF): Re-use fixed length byte
	buffer. Loop only once to determine Utf8 length	when possible. Make
	the inner loop bounded by buf.length.
	(getUTFlength): New private method.
	(buf): New private field.

2006-04-11  Lillian Angel  <langel@redhat.com>

	* gnu/xml/dom/DomNodeIterator.java
	(nextNode): Moved line of code to avoid an infinite loop.
	* gnu/xml/dom/html2/DomHTMLAppletElement.java
	(getCls): New function.
	(setCls): Likewise.
	(getSrc): Likewise.
	(setSrc): Likewise.
	* gnu/xml/dom/html2/DomHTMLDocument.java:
	Added DomHTMLEmbedElement to map.
	(getApplets): Added node name, 'embed'.
	* gnu/xml/dom/html2/DomHTMLEmbedElement.java:
	New class.
	* gnu/xml/dom/html2/DomHTMLObjectElement.java
	(getJavaCode): New function.
	(setJavaCode): Likewise.
	(getObject): Likewise.
	(setObject): Likewise.
	(getJavaObject): Likewise.
	(setJavaObject): Likewise.
	(getJavaArchive): Likewise.
	(setJavaArchive): Likewise.
	(getJavaCodeBase): Likewise.
	(setJavaCodeBase): Likewise.
	(getJavaType): Likewise.
	(setJavaType): Likewise.
	(setMayscript): Likewise.
	(getMayscript): Likewise.
	(setScriptable): Likewise.
	(getScriptable): Likewise.
	* gnu/xml/dom/html2/DomHTMLParser.java
	(parseDocument): Should not check for well formedness
	when parsing an html document.
	* java/awt/Window.java
	(dispatchEvent): Added check to avoid NPE.

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

	* javax/accessibility/AccessibleStreamable.java (getStream): Fixed
	name.
	* javax/accessibility/AccessibleRelation.java (EMBEDS): Fixed value.
	(SUBWINDOW_OF, SUBWINDOW_OF_PROPERTY): Likewise.

2006-04-10  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTextUI.java:
	(getNextVisualPositionFrom): Marked as stub.

2006-04-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initSystemColorDefaults): Changed to use loadSystemColorDefaults
	and create the defaults as strings constants.
	(loadSystemColors): Implemented stubbed method.

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

	* .settings/org.eclipse.core.resources.prefs: Set encoding for
	ChangeLog.

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

	* java/io/CharArrayWriter.java (append): Javadoc fix.
	(append): Likewise.

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

	* javax/accessibility/AccessibleTextSequence.java: New file.
	* javax/accessibility/AccessibleRelation.java (CHILD_NODE_OF): New
	field.
	(CHILD_NODE_OF_PROPERTY, EMBEDDED_BY, EMBEDDED_BY_PROPERTY, EMBEDS,
	EMBEDS_PROPERTY, FLOWS_FROM, FLOWS_FROM_PROPERTY, FLOWS_TO,
	FLOWS_TO_PROPERTY, PARENT_WINDOW_OF, PARENT_WINDOW_OF_PROPERTY,
	SUBWINDOW_OF, SUBWINDOW_OF_PROPERTY): Likewise.
	* javax/accessibility/AccessibleExtendedText.java: New file.
	* javax/accessibility/AccessibleContext.java
	(ACCESSIBLE_COMPONENT_BOUNDS_CHANGED): New field.
	(ACCESSIBLE_INVALIDATE_CHILDREN): Likewise.
	(ACCESSIBLE_TEXT_ATTRIBUTES_CHANGED): Likewise.
	* javax/accessibility/AccessibleAttributeSequence.java: New file.
	* javax/accessibility/AccessibleStreamable.java: New file.
	* javax/accessibility/AccessibleText.java (getIndexAtPoint): Javadoc
	fix.

2006-04-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/tree/AbstractLayoutCache.java 
	(getNodeDimensions, getRowsForPath): Implemented.
	* javax/swing/tree/FixedHeightLayoutCache.java: Rewritten.
	* javax/swing/tree/VariableHeightLayoutCache.java: Rewritten.

2006-04-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/tree/AbstractLayoutCache.java: Reformatted.

2006-04-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(AccessibleJInternalFrame): Marked all stubbed methods as such
	by adding throws NotImplementedException.

2006-04-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JFileChooser.java
	(getAccessibleContext): Don't create a new instance on each
	call, instead store the accessible context in the
	accessibleContext field.

2006-04-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComboBox.java
	(AccessibleJComboBox): Marked all stubbed methods as such
	by adding throws NotImplementedException.

2006-04-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ActionMap.java
	(readObject): Removed.
	(writeObject): Removed.

2006-04-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/tree/DefaultTreeSelectionModel.java
	(addSelectionPaths, setSelectionPaths): Call 
	insureUniqueness. (clone, setRowMapper): Implemented.
	* TreePath (path): Marked final.

2006-04-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/tree/DefaultTreeSelectionModel.java:
	Documented and autoformatted. (insureUniqueness):
	Removed stub marking.

2006-04-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SizeSequence.java
	(sizes): Don't initialise here,
	(SizeSequence(int, int)): Initialise sizes field,
	(SizeSequence(int[])): Clone argument instead of calling setSizes(),
	(setSize): Do nothing when index is out of bounds,
	(getIndex): Implemented,
	(setSizes): Reimplemented,
	(getSizes): Likewise,
	(insertEntries): Likewise,
	(removeEntries): Likewise,
	plus added API docs all over.

2006-04-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org

	* gnu/CORBA/gnuRequest.java (submit): Do not read any response after
	one way message and retry after any IOException.

2006-04-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/CDR/EncapsulationStream.java (constructor):
	Set the byte order.

2006-04-09  Wolfgang Baer  <WBaer@gmx.de>

	* org/omg/PortableServer/ServantLocatorPOA.java: 
	(preinvoke, postinvoke): Remove default implementation.
	* org/omg/PortableServer/ServantActivatorPOA.java: 
	(incarnate, etherealize): Remove default implementation.	
	* org/omg/PortableInterceptor/ObjectReferenceFactory.java: 
	Extends from ValueBase and not from ObjectReferenceFactoryOperations.
	(make_object): Moved method from ObjectReferenceFactoryOperations.
	* org/omg/PortableInterceptor/ObjectReferenceFactoryOperations.java: 
	Removed unspecified interface.	
	* org/omg/DynamicAny/_DynAnyStub.java:
	(_DynAnyStub(Delegate)): Removed constructor.
	* org/omg/DynamicAny/_DynArrayStub.java,
	* org/omg/DynamicAny/_DynAnyFactoryStub.java,
	* org/omg/DynamicAny/_DynEnumStub.java,
	* org/omg/DynamicAny/_DynFixedStub.java,
	* org/omg/DynamicAny/_DynSequenceStub.java,
	* org/omg/DynamicAny/_DynStructStub.java,
	* org/omg/DynamicAny/_DynUnionStub.java,
	* org/omg/DynamicAny/_DynValueStub.java: 
	Extend from ObjectImpl and not from _DynAnyStub.
	(type, next, destroy, copy, rewind, assign, component_count, 
	current_component, equal, from_any, get_any, get_boolean, get_char, 
	get_double, get_dyn_any, get_float, get_long, get_longlong, get_octet, 
	get_reference, get_short, get_string, get_typecode, get_ulong, 
	get_ulonglong, get_ushort, get_val, get_wchar, get_wstring, insert_any,
	insert_boolean, insert_char, insert_double, insert_dyn_any, insert_float,
	insert_long, insert_longlong, insert_octet, insert_reference, 
	insert_short, insert_string, insert_typecode, insert_ulong, 
	insert_ulonglong, insert_ushort, insert_val, insert_wchar, 
	insert_wstring, seek, to_any): New methods copied from _DynAnyStub.		
	* org/omg/CosNaming/_BindingIteratorStub.java:
	(_BindingIteratorStub(Delegate)): Made package private.
	* org/omg/CosNaming/_NamingContextExtStub.java:
	(_NamingContextExtStub(Delegate)): Made package private.
	* org/omg/CosNaming/_NamingContextStub.java:
	(_NamingContextStub(Delegate)): Made package private.
	(throw4, throw5): Likewise.
	* gnu/CORBA/NamingService/NameParser.java (resolve): 
	Adapt to package private constructor. Use _set_delegate instead.	
	* org/omg/CosNaming/NamingContextOperations.java: Do not extend IDLEntity.
	* org/omg/CORBA/ORB.java: 
	(create_recursive_sequence_tc): Made abstract.
	(get_default_context): Likewise.
	* gnu/CORBA/OrbRestricted.java: 
	(create_recursive_sequence_tc): New moved method.
	(get_default_context): Likewise.	
	* org/omg/CORBA/ParameterMode.java: 
	(PARAM_IN, PARAM_OUT, PARAM_INOUT): Made final.	

2006-04-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/GIOP/MessageHeader.java (write): 
	More informative exception.
	* gnu/CORBA/IorDelegate.java (release): Do not close the socket.
	* gnu/CORBA/SocketRepository.java (get_socket):
	Removed debugging code.

2006-04-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/gnuRequest.java (submit): Try to read the response for the
	one way message, but ignore if EOF was received.
	* gnu/CORBA/GIOP/MessageHeader.java (read): Set the minor code to
	Minor.EOF if the end of file is received instead of the header.

2006-04-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalRootPaneUI.java
	(MetalTitlePane.IconifyAction): New inner class.
	(MetalTitlePane.MaximizeAction): New inner class.
	(MetalTitlePane.createActions): Create iconifyAction and
	maximizeAction.
	(MetalRootLayout.titlePane): New field.
	(MetalRootLayout.MetalRootLayout): Take titlePane parameter in
	constructor.
	(MetalRootLayout.preferredLayoutSize): Changed to not make
	assumptions about the actual component order.
	(MetalRootLayout.layoutContainer): Changed to not make
	assumptions about the actual component order.
	(installWindowDecorations): Pass the titlePane as parameter to
	the MetalRootLayout constructor.
	(uninstallWindowDecorations): Changed to not make
	assumptions about the actual component order.

2006-04-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalRootPaneUI.java
	(MetalTitlePane.MouseHandler): New inner class to handle dragging
	of frames.
	(MetalTitlePane.installListeners): Don't register a focus listener
	on the window. This is a potential memory leak and must be
	implemented on a different way. Install mouse listener here.
	(installWindowDecorations): Fixed assertion condition. Always
	insert the window decoration at index#1 in the layered 
	pane.

2006-04-08  Roman Kennke  <kennke@aicas.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBoundsUnlocked):
	Only resize window if actual width or height value changes.
	Avoids nasty flicker when only setLocation() is beeing called
	on a window.

2006-04-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/GIOP/MessageHeader.java (read): Throw more informative
	exception if the magic sequence does not match.

2006-04-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/gnuRequest.java (p_invoke, submit): Do not try to read
	response for the one way messages.

2006-04-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/MenuSelectionManager.java
	(processKeyEvent): Implemented stub method.
	* javax/swing/JMenu.java
	(processKeyEvent): Implemented stub method.
	* javax/swing/JMenu.java
	(processKeyEvent): Implemented stub method.
	(processMenuKeyEvent): Implemented stub method.

2006-04-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractAction.java
	(readObject): Removed unneeded method.
	(writeObject): Removed unneeded method.

2006-04-08  Wolfgang Baer  <WBaer@gmx.de>

	* javax/swing/plaf/synth/SynthPainter.java: 
	(paintSplitPaneDividerBorder): Removed.

2006-04-08  Wolfgang Baer  <WBaer@gmx.de>

	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java: 
	(CLOSE_CMD, ICONIFY_CMD, MAXIMIZE_CMD, MOVE_CMD, RESTORE_CMD, SIZE_CMD):
	No longer constants.
	(static_initializer): Added to initialize above fields.
	* javax/accessibility/AccessibleRelation.java (LABEL_FOR, LABELED_BY, 
	MEMBER_OF, CONTROLLER_FOR, CONTROLLED_BY): No longer constants.
	(static_initializer): Added to initialize above fields.

2006-04-08  Wolfgang Baer  <WBaer@gmx.de>

	* java/awt/Dialog.java: Improved documentation all over.
	(Dialog(Frame)): If gc is null use the owners GraphicsConfiguration.
	(Dialog(Dialog)): Likewise.

2006-04-08  Mark Wielaard  <mark@klomp.org>

	* java/util/jar/JarFile.java (provider): New static field.
	(verify, verifyHashes, EntryInputStream.<init>): Pass provider
	to `getInstance.'

2006-04-08  Mark Wielaard  <mark@klomp.org>

	PR 27081
	* java/lang/StackTraceElement.java (toString): Don't add space
	between type and source indicator.

2006-04-07  Casey Marshall  <csm@gnu.org>

	Fixes PR classpath/24464	
	* java/util/jar/JarFile.java (verify, verifyHashes,
	EntryInputStream.<init>): pass the Gnu provider directly to
	`getInstance.'

2006-04-08  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR classpath/27071
	* gnu/java/security/hash/Whirlpool.java: Updated documentation.
	(DIGEST0): Use version 3 test vector.
	(Sd): Removed.
	(S_box): New field: Version 3 S-box values.
	(<clinit>): Use Version 3 circulant matrix to construct lookup tables.
	(transform): Formating.
	(padBuffer): Likewise.
	(getResult): Likewise.
	(selfTest): Likewise.

2006-04-07  Tom Tromey  <tromey@redhat.com>

	* java/util/InvalidPropertiesFormatException.java
	(serialVersionUID): New field.
	(readObject, writeObject): New methods.
	* java/util/Arrays.java (toString): Javadoc fixes.
	* java/net/URLConnection.java: Cleaned up imports.
	* java/lang/reflect/ParameterizedType.java: Javadoc fix.
	* java/lang/reflect/MalformedParameterizedTypeException.java
	(serialVersionUID): New field.
	* java/lang/reflect/GenericSignatureFormatError.java
	(serialVersionUID): New field.
	* java/lang/Class.java (Class): Javado fixes.
	(getComponentType): Likewise.
	(getGenericInterfaces): Likewise.
	(getTypeParameters): Likewise.
	* java/io/CharArrayWriter.java (append): Javadoc fixes.
	* java/lang/annotation/AnnotationFormatError.java (serialVersionUID):
	New field.
	* java/lang/TypeNotPresentException.java (serialVersionUID): New
	field.
	* java/lang/EnumConstantNotPresentException.java (serialVersionUID):
	New field.

2006-04-07  Wolfgang Baer  <WBaer@gmx.de>

	* java/awt/Dialog.java 
	(AccessibleAWTDialog): Added api docs
	(AccessibleAWTDialog.getAccessibleStateSet):
	 Renamed from getAccessibleState.
	* java/awt/Frame.java 
	(AccessibleAWTFrame): Added api docs
	(AccessibleAWTFrame.getAccessibleStateSet):
	 Renamed from getAccessibleState.

2006-04-07  Wolfgang Baer  <WBaer@gmx.de>

	* java/awt/Dialog.java: Reformatted.

2006-04-07  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(eventTypeEnabled): Added code for HierarchyEvent.HIERARCHY_CHANGED,
	HierarchyEvent.ANCESTOR_MOVED and HierarchyEvent.ANCESTOR_RESIZED.

2006-04-07  Tom Tromey  <tromey@redhat.com>

	* java/beans/beancontext/BeanContextMembershipEvent.java
	(serialVersionUID): New field.
	* java/beans/beancontext/BeanContextServicesSupport.java
	(addBeanContextServicesListener): Synchronize.
	(addService): Implemented.
	(createBCSChild): Implemented.
	(BCSSChild): Added arguments.
	(fireServiceAdded): Implemented.
	(fireServiceRevoked): Implemented.
	(getCurrentServiceSelectors): Implemented.
	(hasService): Implemented.
	(removeBeanContextServicesListener): Implemented.
	(serviceAvailable): Implemented.
	(serviceRevoked): Implemented.
	* java/beans/beancontext/BeanContextSupport.java (BCSChild): Added
	arguments.
	(createBCSChild): Implemented.
	(BeanContextSupport): 
	(addBeanContextMembershipListener): Synchronize.
	(fireChildrenAdded): Implemented.
	(fireChildrenRemoved): Implemented.
	(BeanContextSupport): Use default locale.
	(isEmpty): Implemented.
	(isDesignTime): Implemented.
	(size): Implemented.
	(toArray): Synchronized.
	(toArray): Likewise.
	(iterator): Likewise.
	(BCSIterator): Implemented.
	(bcsChildren): Implemented.
	(validatePendingAdd): Implemented.
	(validatePendingRemove): Likewise.
	(childJustAddedHook): Implemented.
	(childJustRemovedHook): Likewise.
	(classEquals): Likewise.
	(toArray): Mark as stub.
	(setDesignTime): Implemented.
	(copyChildren): Implemented.
	(containsKey): Implemented.
	(contains): Likewise.
	(containsAll): Likewise.
	(getResource): Implemented.
	(getResourceAsStream): Likewise.
	(removeBeanContextMembershipListener): Likewise.
	* java/beans/beancontext/BeanContextServiceRevokedEvent.java
	(serialVersionUID): New field.
	* java/beans/beancontext/BeanContextServiceAvailableEvent.java
	(serialVersionUID): New field.
	* java/beans/beancontext/BeanContext.java (instantiateChild): Javadoc
	fix.

2006-04-06  Roman Kennke  <kennke@aicas.com>

	PR 26937
	* javax/swing/MenuSelectionManager.java
	(setSelectedPath): Search one more item in the loop.
	
2006-04-06  Tom Tromey  <tromey@redhat.com>

	* java/awt/image/renderable/RenderableImageProducer.java
	(image, context, consumers): New fields.
	(RenderableImageProducer): Implemented.
	(setRenderContext): Likewise.
	(addConsumer): Likewise.
	(isConsumer): Likewise.
	(removeConsumer): Likewise.
	(startProduction): Likewise.

2006-04-06  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(AccessibleAWTComponent.getBounds): Return the component
	bounds regardless of its showing state.
	(AccessibleAWTComponent.getLocation): Return the component
	location regardless of its showing state.
	(AccessibleAWTComponent.getSize): Return the component
	size regardless of its showing state.

2006-04-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JRootPane.java
	(getAccessibleContext): New method. Provides an accessibleContext
	for JRootPanes.

2006-04-06  Roman Kennke  <kennke@aicas.com>

	* java/awt/Toolkit.java
	(initAccessibility): Use the 'gnu.classpath.home.url' property
	to determine the system confiuration directory.
	* java/awt/Component.java
	(dispatchEvent): Trigger Toolkit dispatching here.
	(dispatchEventImpl): Moved Toolkit dispatching to dispatchEvent,
	so it can't be overridden by subclasses and is performed in
	any case.

2006-04-06  Wolfgang Baer  <WBaer@gmx.de>
	
	* javax/naming/Binding.java: Added API docs.
	* javax/naming/NameClassPair.java: Added API docs.
	(fullName): New field.
	(setNameInNamespace): New 1.5 method.
	(getNameInNamespace): Likewise.

2006-04-06  Wolfgang Baer  <WBaer@gmx.de>

	* javax/naming/CompositeName.java: 
	(readObject): New deserialization method.
	(writeObject): New serialization method.

2006-03-29  Nektarios K. Papadopoulos  <npapadop at inaccessnetworks.com>

	* javax/security/auth/x500/X500Principal.java
	(readAttributeValue) Check for separator after quoted value was
	failing in all cases.

2006-04-06  Mark Wielaard  <mark@klomp.org>

	* java/lang/Class.java (getClassLoader): Don't do security check
	when loader is null.

2006-04-06  Roman Kennke  <kennke@aicas.com>

	* java/awt/Toolkit.java
	(getDefaultToolkit): Initialize accessibility after setting
	up the toolkit.
	(initAccessibility): New helper method to setup accessibility.

2006-04-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(AccessibleAbstractButton.getAccessibleIcon): Implemented stub.
	(AccessibleAbstractButton.getAccessibleRelationSet): Implemented
	stub.
	(AccessibleAbstractButton.getIndexAtPoint): Implemented stub.
	(AccessibleAbstractButton.getAccessibleIcon): Implemented stub.
	(AccessibleAbstractButton.getCharacterBounds): Implemented stub.
	(AccessibleAbstractButton.getCharCount): Implemented stub.
	(AccessibleAbstractButton.getCaretPosition): Implemented stub.
	(AccessibleAbstractButton.getCharacterAttribute): Implemented stub.
	(AccessibleAbstractButton.getSelectionStart): Implemented stub.
	(AccessibleAbstractButton.getSelectionEnd): Implemented stub.
	(AccessibleAbstractButton.getSelectedText): Implemented stub.
	(AccessibleAbstractButton.getTextRectangle): Removed unneeded
	private method.

2006-04-06  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(AccessibleAWTComponent.getAccessibleStateSet): Don't handle opaque
	state here. This is only done in JComponent.
	* javax/swing/JComponent.java
	(AccessibleJComponent.getAccessibleStateSet): Handle opaque flag
	here.
	(getNextFocusableComponent): Implemented stub method.
	(grabFocus): Implemented stub method.
	(unregisterKeyboardAction): Implemented stub method.
	(setNextFocusableComponent): Implemented stub method.
	* javax/swing/CompatibilityFocusTraversalPolicy.java: New file.
	This is a helper class for providing compatibility with the older
	Swing focus API.

2006-04-06  Wolfgang Baer  <WBaer@gmx.de>

	Fixes bug #26995
	* javax/naming/directory/BasicAttribute.java,
	* javax/naming/directory/BasicAttributes.java: 
	(readObject): New deserialization method.
	(writeObject): New serialization method.

2006-04-06  Wolfgang Baer  <WBaer@gmx.de>

	* javax/xml/validation/SchemaFactory.java: Corrected since tag.
	(getErrorHandler): Made method abstract.
	(setErrorHanlder): Likewise.
	* gnu/xml/validation/relaxng/RELAXNGSchemaFactory.java
	(getErrorHandler): Implement abstract method from superclass.
	(setErrorHandler): Likewise.
	(errorHandler): New field.
	* gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.java: 	
	(getErrorHandler): Implement abstract method from superclass.
	(setErrorHandler): Likewise.
	(errorHandler): New field.	
	* javax/xml/XMLConstants.java: Corrected since tag.
	(XMLConstants): Added private constructor.
	* javax/xml/datatype/Duration.java: Corrected since tag.
	(multiply): Made method abstract.
	* javax/xml/datatype/DatatypeConstants.java: Corrected since tag.
	(DatatypeConstants): Added private constructor.
	* javax/xml/xpath/XPathConstants.java: Corrected since tag.
	(XPathConstants): Added private constructor.

2006-04-05  Tom Tromey  <tromey@redhat.com>

	* javax/security/auth/kerberos/ServicePermission.java: Now final.

2006-04-05  Tom Tromey  <tromey@redhat.com>

	PR libgcj/26625:
	* lib/Makefile.am (compile-classes): Touch the output file.

2006-04-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(AccessibleAbstractButton.getAccessibleStateSet): Removed handling
	of the focused state. This is already done in AccessibleAWTComponent.

2006-04-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(accessibleContext): Fixed API doc for this field.
	(AccessibleJComponent.AccessibleFocusHandler): Fixed API docs.
	(AccessibleJComponent.AccessibleFocusHandler.focusGained):
	Implemented and added API docs.
	(AccessibleJComponent.AccessibleFocusHandler.focusLost):
	Implemented and added API docs.
	(AccessibleJComponent.AccessibleContainerHandler): Fixed API docs.
	(AccessibleJComponent.AccessibleContainerHandler.componentAdded):
	Implemented and added API docs.
	(AccessibleJComponent.AccessibleContainerHandler.componentRemoved):
	Implemented and added API docs.
	(AccessibleJComponent.accessibleContainerHandler): Added API docs.
	(AccessibleJComponent.accessibleFocusHandler): Added API docs.
	(AccessibleJComponent.addPropertyChangeListener): Added API docs.
	(AccessibleJComponent.removePropertyChangeListener): Added API docs.
	(AccessibleJComponent.getAccessibleStateSet): Simply return
	super here. Added comment about this.

2006-04-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(AccessibleJComponent.addPropertyChangeListener): Install
	ContainerHandler and FocusHandler here.
	(AccessibleJComponent.removePropertyChangeListener): Uninstall
	ContainerHandler and FocusHandler here.
	(AccessibleJComponent.getAccessibleChildrenCount): Replaced
	by super.getAccessibleChildrenCount().
	(AccessibleJComponent.getAccessibleChild): Replaced
	by super.getAccessibleChild().
	(AccessibleJComponent.getAccessibleStateSet): Implemented by
	adding OPAQUE to the supported states.
	(AccessibleJComponent.getAccessibleName): Added titled border
	and label fallbacks.
	(AccessibleJComponent.getAccessibleDescription): Added tooltip
	and label fallbacks.
	(AccessibleJComponent.getAccessibleRole): Removed TODO.
	(AccessibleJComponent.getAccessibleKeyBinding): Added comment
	explaining why return null seems correct here.
	* javax/swing/JLabel.java
	(LABEL_PROPERTY): New constant.
	(setLabelFor): Store label in labeled component's client properties
	for the AccessibleJComponent to read.

2006-04-05  Tom Tromey  <tromey@redhat.com>

	* java/util/zip/ZipFile.java (available): Defer to super if
	entry's size is unknown.

2006-04-05  Tom Tromey  <tromey@redhat.com>

	* java/net/MimeTypeMapper.java (MimeTypeMapper): Look for system
	property with mime.types name.
	* gnu/classpath/SystemProperties.java: Set
	gnu.classpath.mime.types.file if not already set.
	* java/net/URLConnection.java (defaultFactory): New field.
	(guessContentTypeFromStream): Mark as unimplemented.
	(getContentHandler): Updated with libgcj's implementation.
	* gnu/java/net/DefaultContentHandlerFactory.java: New file,
	from libgcj.

2006-04-05  Bryce McKinlay  <mckinlay@redhat.com>

	PR classpath/27028
	PR classpath/24752
	* java/util/AbstractList.java (hasNext): Don't throw
	ConcurrentModificationException. Update Javadoc.
	(hasPrevious): Likewise.
	(nextIndex): Likewise.
	(previousIndex): Likewise.
	* java/util/HashMap.java (hasNext): Likewise.
	* java/util/Hashtable.java (hasNext): Likewise.
	* java/util/IdentityHashMap.java (hasNext): Likewise.
	* java/util/LinkedHashMap.java (hasNext): Likewise.
	* java/util/LinkedList.java (nextIndex): Likewise.
	(previousIndex): Likewise.
	(hasNext): Likewise.
	(hasPrevious): Likewise.
	* java/util/TreeMap.java (hasNext): Likewise.
	* java/util/WeakHashMap.java (hasNext): Likewise.

2006-04-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(AccessibleAbstractButton.getAccessibleStateSet): Implemented stub.
	(AccessibleAbstractButton.doAccessibleAction): Implemented stub.
	(AccessibleAbstractButton.getAccessibleAction): Implemented stub.
	(AccessibleAbstractButton.getAccessibleActionCount): Implemented stub.
	(AccessibleAbstractButton.getAccessibleActionDescription):
	Implemented stub.
	(AccessibleAbstractButton.getAccessibleText): Implemented stub.
	(AccessibleAbstractButton.getAccessibleAction): Implemented stub.
	(AccessibleAbstractButton.getCurrentAccessibleValue): Implemented stub.
	(AccessibleAbstractButton.setCurrentAccessibleValue): Implemented stub.
	(AccessibleAbstractButton.getMinimumAccessibleValue): Implemented stub.
	(AccessibleAbstractButton.getMaximumAccessibleValue): Implemented stub.

2006-04-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComboBox.java
	(selectWithKeyChar): Implemented stubbed method.

2006-04-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/LookAndFeel.java
	(installProperty): New method. Allows primitive typed properties
	to be handled like UIResources.
	* javax/swing/AbstractButton.java
	(clientBorderPaintedSet): New field.
	(clientRolloverEnabledSet): New field.
	(clientIconTextGapSet): New field.
	(clientContentAreaFilledSet): New field.
	(setRolloverEnabled): Set the client field to true.
	(setBorderPainted): Likewise.
	(setIconTextGap): Likewise.
	(setContentAreaFilled): Likewise.
	(setUIProperty): New helper method.
	* javax/swing/JComponent.java
	(clientOpaqueSet): New field.
	(clientAutoscrollsSet): New field.
	(setAutoscrolls): Set the client field to true.
	(setOpaque): Likewise.
	(setUIProperty): New helper method.
	* javax/swing/JDesktopPane.java
	(clientDragModeSet): New field.
	(setDragMode): Set the client field to true.
	(setUIProperty): New helper method.
	* javax/swing/JSplitPane.java
	(clientDividerSizeSet): New field.
	(clientOneTouchExpandableSet): New field.
	(setDividerSize): Set the client field to true.
	(setOneTouchExpandable): Likewise.
	(setUIProperty): New helper method.
	* javax/swing/JTable.java
	(clientRowHeightSet): New field.
	(setRowHeight): Set the client field to true.
	(setUIProperty): New helper method.
	* javax/swing/JTree.java
	(clientRowHeightSet): New field.
	(clientScrollsOnExpandSet): New field.
	(clientShowsRootHandlesSet): New field.
	(setRowHeight): Set the client field to true.
	(setShowsRootHandles): Likewise.
	(setScrollsOnExpand): Likewise.
	(setUIProperty): New helper method.

2006-04-05  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(getFont): Don't request the font from the peer's graphics. The
	graphics should instead get the font from the Component, which might
	result in a loop.
	(getFocusCycleAncestor): Don't special case Window.
	(nextFocus): Moved implementation from the DefaultKeyboardFocusManager
	to here. Correctly determine the focus cycle root.
	(transferFocusBackward): Likewise.
	(transferFocusUpCycle): Likewise.
	* java/awt/Container.java
	(transferFocusDownCycle): Moved implementation from
	DefaultKeyboardFocusManager to here.
	* java/awt/DefaultKeyboardFocusManager.java
	(focusPreviousComponent): Moved implementation to
	Component.transferFocusBackward().
	(focusNextComponent): Moved implementation to
	Component.nextFocus().
	(upFocusCycle): Moved implementation to
	Component.transferFocusUpCycle().
	(downFocusCycle): Moved implementation to
	Container.transferFocusDownCycle().

2006-04-05  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/ComponentSampleModel.java
	(equals): Implemented,
	(hashCode): Likewise.

2006-04-05  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/Class.java
	(cast): New method.

2006-04-05  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/ComponentSampleModel.java
	(getBankIndices): Return a copy of the array, not a reference to the
	original,
	(getBandOffsets): Likewise.

2006-04-05  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/ComponentSampleModel.java: Added API docs all over.

2006-04-04  Tom Tromey  <tromey@redhat.com>

	* java/net/MimeTypeMapper.java (MimeTypeMapper): Fixed indices.

2006-04-04  Tom Tromey  <tromey@redhat.com>

	* java/net/MimeTypeMapper.java (mime_types): No longer static.
	(MimeTypeMapper): Initialize.
	(fillFromFile): New method.
	(main): New method.
	(mime_strings): Updated.

2006-04-04  Tom Tromey  <tromey@redhat.com>

	* lib/gen-classlist.sh.in: Correct handle generated files.

2006-04-04  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/CharIndexed.java(setAnchor): New method.
	* gnu/regexp/CharIndexedInputStream.java(setAnchor): New method.
	* gnu/regexp/CharIndexedCharSequence.java: New file.
	* gnu/regexp/CharIndexedCharArray.java: Rewritten as an extention of
	gnu.regexp.CharIndexedCharSequence.
	* gnu/regexp/CharIndexedString.java: Likewise.
	* gnu/regexp/CharIndexedStringBuffer.java: Likewise.
	* gnu/regexp/RE.java(makeCharIndexed): Make a new CharIndexed
	using CharIndexedCharSequence. Use setAnchor when the input
	object is already a CharIndexed.
	* java/util/regex/Matcher.java(inputCharIndexed): New field
	to be used as a parameter of the RE#getMatch.

2006-04-04  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/SampleModel.java: Reformatted.

2006-04-04  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/ComponentSampleModel.java
	(ComponentSampleModel(int, int, int, int, int[])): Added API 
	documentation,
	(ComponentSampleModel(int, int, int, int, int[], int[]): Throw 
	IllegalArgumentException for DataBuffer.TYPE_UNDEFINED, take copies
	of the bandOffsets and bankIndices arguments, added API documentation,
	* java/awt/image/SampleModel.java
	(SampleModel(int, int, int, int): Throw IllegalArgumentException for
	unrecognised dataTypes, w * h exceeds Integer.MAX_VALUE, and numBands
	less than or equal to zero, added API documentation.

2006-04-04  Lillian Angel  <langel@redhat.com>

	* java/util/zip/ZipFile.java
	(getInputStream): Fixed to return size of ZipEntry
	minus the total bytes read. This guarantees that the 
	right value is returned even if some bytes have already
	been read.

2006-04-04  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/plugins/jpeg/JPEGImageWriteParam.java (messages):
	Remove static modifier.

2006-04-04  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/ComponentSampleModel.java: Reformatted.

2006-04-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/plugins/jpeg/JPEGImageWriteParam.java: New file.
	* javax/imageio/plugins/jpeg/JPEGImageReadParam.java: Add
	retrieval instructions to javadoc header.
	* javax/imageio/ImageWriteParam.java: Fix javadoc for
	compressionType field.
	* lib/Makefile.am (propertydirs): Add javax directory.
	(propertyfiles): Likewise.
	* resource/javax/imageio/plugins/jpeg/MessagesBundle.properties:
	New file.

2006-04-03  Tom Tromey  <tromey@redhat.com>

	PR classpath/26971:
	* javax/naming/directory/BasicAttribute.java: Added missing @since.
	(BasicAttributeEnumeration.where): Initialize to 0.
	(BasicAttributeEnumeration.nextElement): Post-increment 'where'.

2006-04-03  Lillian Angel  <langel@redhat.com>

	PR classpath/24596 and PR classpath/26930
	* java/util/zip/ZipFile.java
	(getInputStream): Override available function for 
	InflaterInputStream instance.

2006-04-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/reflect/ClassSignatureParser.java,
	* gnu/java/lang/reflect/FieldSignatureParser.java,
	* gnu/java/lang/reflect/GenericSignatureParser.java,
	* gnu/java/lang/reflect/MethodSignatureParser.java,
	* gnu/java/lang/reflect/TypeImpl.java,
	* java/lang/Class.java,
	* java/lang/reflect/GenericDeclaration.java,
	* java/lang/reflect/MalformedParameterizedTypeException.java,
	* java/lang/reflect/TypeVariable.java,
	* java/util/Arrays.java,
	* vm/reference/java/lang/VMClass.java,
	* vm/reference/java/lang/reflect/Constructor.java,
	* vm/reference/java/lang/reflect/Method.java:
	Incorporate changes from the generics branch.

2005-10-01  Jeroen Frijters  <jeroen@frijters.net>

	* vm/reference/java/lang/reflect/Constructor.java
	(getSignature): New method.
	(getGenericExceptionTypes): New method.
	(getGenericParameterTypes): New method.
	* vm/reference/java/lang/reflect/Method.java
	(getSignature): New method.
	(getGenericExceptionTypes): New method.
	(getGenericParameterTypes): New method.
	(getGenericReturnType): New method.

2005-09-30  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/lang/reflect/FieldSignatureParser.java: New file.
	* gnu/java/lang/reflect/ClassSignatureParser.java,
	gnu/java/lang/reflect/GenericSignatureParser.java,
	gnu/java/lang/reflect/MethodSignatureParser.java:
	Finished implementation.

2005-09-25  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/lang/reflect/ClassSignatureParser.java,
	gnu/java/lang/reflect/GenericSignatureParser.java,
	gnu/java/lang/reflect/MethodSignatureParser.java: New files.
	* java/lang/Class.java
	(getGenericInterfaces, getGenericSuperclass, getTypeParameters):
	Implemented.
	* vm/reference/java/lang/VMClass.java
	(getSimpleName, getDeclaredAnnotations, getCanonicalName,
	getEnclosingClass, getEnclosingConstructor, getEnclosingMethod,
	isAnonymousClass, isLocalClass, isMemberClass):
	Removed generic types from signatures.
	(getGenericInterfaces, getGenericSuperclass, getTypeParameters):
	Removed.
	(getClassSignature): New method.
	* vm/reference/java/lang/reflect/Constructor.java
	(getTypeParameters): Implemented.
	* vm/reference/java/lang/reflect/Method.java
	(getTypeParameters, getSignature): New methods.

2005-06-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Class.java:
	(asSubclass(Class)): Documented.
	(getCanonicalName()): Implemented.
	(getEnclosingClass()): Implemented.
	(getEnclosingConstructor()): Implemented.
	(getEnclosingMethod()): Implemented.
	(getGenericInterfaces()): Implemented.
	(getGenericSuperclass()): Implemented.
	(getTypeParameters()): Implemented.
	(isAnonymousClass()): Implemented.
	(isLocalClass()): Implemented.
	(isMemberClass()): Implemented.
	* vm/reference/java/lang/VMClass.java:
	(getSuperClass(Class<?>)): Updated return type.
	(getSimpleName(Class<?>)): Use VM methods directly.
	(getCanonicalName(Class<?>)): Implemented.
	(getEnclosingClass(Class<?>)): New native method.
	(getEnclosingConstructor(Class<?>)): New native method.
	(getEnclosingMethod(Class<?>)): New native method.
	(getGenericInterfaces(Class<?>)): New native method.
	(getGenericSuperclass(Class<?>)): New native method.
	(getTypeParameters(Class<T>)): New native method.
	(isAnonymousClass(Class<?>)): New native method.
	(isLocalClass(Class<?>)): New native method.
	(isMemberClass(Class<?>)): New native method.
	* vm/reference/java/lang/reflect/Constructor.java:
	(getTypeParameters()): Changed to native method.

2005-05-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Class.java:
	(getSimpleName()): Implemented.
	* vm/reference/java/lang/VMClass.java:
	(getSimpleName()): Reference implementation.

2005-04-20  Tom Tromey  <tromey@redhat.com>

	* java/util/Arrays.java (hashCode): New methods.
	(deepHashCode): New method.
	(deepEquals): Likewise.
	(toString): New methods.
	(deepToString): New method.

2005-04-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Class.java:
	(isEnum()): New method implemented.
	(isSynthetic()): New method implemented.
	(isAnnotation()): New method implemented.
	* vm/reference/java/lang/VMClass.java:
	(isEnum()): New native method.
	(isSynthetic()): New native method.
	(isAnnotation()): New native method.

2005-03-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Class.java:
	Implements java.lang.reflect.Type

2006-04-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/plugins/jpeg/JPEGImageReadParam.java: New file.

2006-04-03  Tom Tromey  <tromey@redhat.com>

	* javax/security/auth/kerberos/ServicePermission.java: New file.
	* javax/security/auth/kerberos/DelegationPermission.java: New file.
	* javax/security/auth/kerberos/KerberosKey.java: New file.
	* javax/security/auth/kerberos/KeyImpl.java: New file.
	* javax/security/auth/kerberos/KerberosTicket.java: New file.
	* javax/security/auth/kerberos/KerberosPrincipal.java: New file.

2006-04-03  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GtkClipboard.java: Add support for
	non-GtkImage images.

2006-04-03  Mark Wielaard  <mark@klomp.org>

	* lib/gen-classlist.sh.in: Use classes.tmp, not classes.2
	as temporary file name.

2006-04-03  Dalibor Topic  <robilad@kaffe.org>

	* INSTALL: Documented --with-glibj-zip option.

2006-04-03  Dalibor Topic  <robilad@kaffe.org>

	Fixed all pscan warnings.

	* native/jni/classpath/jcl.c (JCL_ThrowException),
	native/jni/classpath/jcl.h (DBG),
	native/target/generic/target_generic.h (TARGET_NATIVE_LAST_ERROR_STRING_FORMAT),
	native/target/generic/target_generic_misc.h (TARGET_NATIVE_MISC_FORMAT_STRING0):
	Use "%s" format in fprintf and snprintf explicitely when printing a single 
	string to prevent format string exploits.
	
	* native/jni/java-net/javanet.h (DBG): Removed duplicate
	definition. Included jcl.h instead.
 
2006-04-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/Main.java: Removed unused imports.
	(provider): Made it protected.
	(providerInstalled): New field.
	(Main): Made it a 0-arguments constructor.
	Removed throws clasue.
	(main): Removed throws clause.
	Call processArgs(args) after constructing instance.
	Call teardown() before existing.
	(processArgs): Added javadoc.
	Reduced to throws Exception.
	(start): Likewise.
	(teardown): New method.
	(setupCommonParams): Added javadoc.
	Install designated provider if not already installed.
	(installNewProvider): New method.
	(setupSigningParams): Added javadoc.
	Instantiate the KeyStore using type only.
	* tools/gnu/classpath/tools/jarsigner/JarSigner.java:
	Removed unused imports.
	(start): Reduced to throws Exception.
	* tools/gnu/classpath/tools/jarsigner/JarVerifier.java (start): Likewise.
	* tools/gnu/classpath/tools/jarsigner/HashUtils.java:
	Re-organized imports.
	* gnu/java/security/key/KeyPairGeneratorFactory.java (getInstance):
	Test ignoring case.
	(getNames): Add "dsa" as an algorithm provided by this Factory.
	(makeInstance): Construct IllegalArgumentException with 2 arguments.

2006-04-03  Roman Kennke  <kennke@aicas.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getGlyphVector):
	Replaced g_free() with pango_item_free() to avoid problems
	with the allocator.

2006-04-03  Rafael H. Schloming  <rafaels@redhat.com>

	Fixes bug #26668
	* java/util/logging/Level.java (parse): Document.
	* java/util/logging/LogManager.java (rootLogger): Removed.
	(LogManager): Just set loggers to new HashMap.
	(getLogManager): Make synchronized. Create and init LogManager if it
	doesn't exist yet.
	(static): Removed block.
	(MANAGER_PROPERTY): New private final string.
	(makeLogManager): Use new property string, move warning to
	createInstance() method.
	(CONFIG_PROPERTY): New private final string.
	(initLogManager): New method.
	(addLogger): Use Logger.root, not rootLogger.
	(findAncestor): Likewise.
	(readConfiguration): Move warning to createInstance() method.
	Add handlers directly to Logger.root. Warn about bad level values.
	(getClassProperty): Use new locateClass() method.
	(getInstanceProperty): Only catch specific newInstance Errors.
	(createInstance): Make private and takes a string to use in warning
	messages. Use new locateClass() method and generate appropriate
	warning message.
	(warn): New methods.
	(locateClass): Locates a class through the context class loader and
	system class loader as backup.
	* java/util/logging/Logger.java (root): New static final field.
	(Logger): Set parent to root.
	(setParent): Directly check root field.

2006-04-02  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/Segment.java:
	(setPosition): Make exception message more verbose.
	* javax/swing/text/WrappedPlainView.java:
	(insertUpdate): Removed unneeded repaint call.
	(changeUpdate): Dito.
	(removeUpdate): Dito.
	(WrappedLine.determineNumLines): Do not return numLines, break
	from loop if no new break point has been calculated.
	(WrappedLine.updateDamage): Rewritten.
	(WrappedLine.insertUpdate): Removed unneeded update code.
	(WrappedLine.removeUpdate): Removed unneeded update code, added
	comment.	

2006-04-02  Dalibor Topic  <robilad@kaffe.org>

	* configure.ac (with-glibj-zip): Added new option.

	* examples/Makefile.am,
	lib/Makefile.am,
	tools/Makefile.am: Adapted build classpath to use glibj.zip,
	in addition to classes in lib directory.

2006-04-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* tools/gnu/classpath/tools/giop/GRMIC.java,
	tools/gnu/classpath/tools/giop/IorParser.java,
	tools/gnu/classpath/tools/giop/grmic/CompilationError.java,
	tools/gnu/classpath/tools/giop/grmic/Generator.java,
	tools/gnu/classpath/tools/giop/grmic/GiopIo.java,
	tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java,
	tools/gnu/classpath/tools/giop/grmic/HashFinder.java,
	tools/gnu/classpath/tools/giop/grmic/MethodGenerator.java,
	tools/gnu/classpath/tools/rmi/RMIC.java,
	tools/gnu/classpath/tools/rmi/rmic/RmiMethodGenerator.java,
	tools/gnu/classpath/tools/rmi/rmic/RmicCompiler.java,
	tools/gnu/classpath/tools/rmi/rmic/WrapUnWrapper.java: Removed
	linking exception from the licensing header.
	* tools/gnu/classpath/tools/rmi/rmid/ActivationSystemImpl_Stub.java:
	Added licensing header.

2006-04-02  Mark Wielaard  <mark@klomp.org>

	* tools/Makefile.am (bin_SCRIPTS): Renamed to jarsigner.sh.
	(jarsigner): Removed.

2006-04-02  Dalibor Topic  <robilad@kaffe.org>

	* configure.ac: don't check for isnan function.
	* native/fdlibm/fdlibm.h: Always use the isnan macro.

2006-04-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* configure.ac: Added tools/jarsigner.sh to AC_CONFIG_FILES.
	* tools/Makefile.am: Generate jarsigner shell script.
	* tools/jarsigner.sh.in: New template.
	* tools/.cvsignore: Added jarsigner.sh.

2006-04-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/HashUtils.java: Use GPL.
	* tools/gnu/classpath/tools/jarsigner/SFHelper.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/JarVerifier.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/JarSigner.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/Main.java: Likewise.
	Re-organised imports.

2006-04-01  Bernhard Rosenkraenzer  <bero@arklinux.org>

	PR classpath/25924:
	* java/awt/image/DirectColorModel.java (extractAndNormalizeSample):
	Handle case where alpha==0.

2006-04-02  Robert Schuster  <robertschuster@fsfe.org>

	PR #26676
	* javax/swing/text/Utilities.java:
	(getTabbedTextOffset): Added check to decrement pos not below zero,
	changed	'>' comparison to '>='.
	* javax/swing/text/WrappedPlainView.java:
	(lineHeight): New field.
	(calculateBreakPosition): Throw InternalError in catch block, removed
	unneeded brackets, use specific version of
	Utilities.getTabbedTextOffset.
	(paint): Set various properties neccessary for drawing.
	(WrappedLine.paint): Removed code to set field of outer class.
	(WrappedLine.modelToView): Removed unneeded expression from
	if-statement.
	(WrappedLine.viewToModel): Initialize end with endOffset - 1, removed
	-1 from return statement, copy only a subset into the Segment, removed
	special	handling of mark value - just return it, simplified
	incrementation of currLineStart.
	(WrappedLine.insertUpdate): Recalculate numLines, report preference
	change to parent view.
	(WrappedLine.removeUpdate): Dito.

2006-04-02  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/Segment.java:
	(toString): Return empty string when array is null.

2006-04-02  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTextUI.java:
	(damageRange): Use SwingUtilities.computeUnion to avoid
	unneccessary Rectangle instantiation.

2006-04-01  Tom Tromey  <tromey@redhat.com>

	* java/security/cert/Certificate.java (serialVersionUID): Fixed.

2006-04-01  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/CompositeView.java: Fixed copyright header.
	* javax/swing/text/BoxView.java: Fixed copyright header.
	* javax/swing/text/WrappedPlainView.java: Fixed copyright header.
	* javax/swing/text/Utilities.java: Fixed copyright header.

2006-04-01  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/CompositeView.java:
	(modelToView): Throw BadLocationException when no child
	view can be found, restructed to throw exception as early
	as possible.
	(viewToModel): Use mutable allocation as argument for viewToModel
	call on child view.
	* javax/swing/text/BoxView.java:
	(getViewAtPoint): Call setBounds() r before method returns with
	suitable child view.
	* javax/swing/text/Utilities.java:
	(getPositionBelow): Added try-catch-block around modelToView call,
	added method return when BadLocationException was thrown.
	* javax/swing/text/WrappedPlainView.java:
	(WrappedLine.viewToModel): Changed '<=' to '<' in if-expression,
	added note about meaning of rect.x and rect.width, removed unneeded
	checks, added code to not return the last possible document offset.

2006-04-01  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/WrappedPlainView.java:
	(WrappedLine.viewToModel): Change < to <= in if-statement,
	removed addition of currLineStart to return value.
	* javax/swing/text/BoxView.java:
	(getViewAtPoint): Use copy instead of r for method call
	which modifies the second argument.

2006-04-01  Mark Wielaard  <mark@klomp.org>

	Fixes PR26973
	* java/util/jar/Attributes.java: Fully qualify java.util.Map.

2006-03-31  Tom Tromey  <tromey@redhat.com>

	* lib/split-for-gcj.sh: Updated for multi-field format.
	* lib/Makefile.am (CLEANFILES): Added classes.2.
	* lib/gen-classlist.sh.in (GCJ): Removed.  Create classes.1 and
	classes.2 using multiple fields.

2006-03-31  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (columnSelectionChanged):
	Removed print statement.
	* javax/swing/DefaultListSelectionModel.java
	(addSelectionInterval, removeSelectionInterval):
	Fire the difference between selection. (setLeadSelectionIndex):
	Fire the difference and mark current and previous lead
	selection indexes for repaint.

2006-03-31  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/plugins/jpeg/JPEGHuffmanTable.java: Eliminate
	unnecessary copying.
	* javax/imageio/plugins/jpeg/JPEGQTable.java: Likewise.

2006-03-31  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(translateEvent): oldKey should be the value of the
	key char.

2006-03-31  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (columnSelectionChanged):
	Treat second repaint parameter as width.

2006-03-31  Lillian Angel  <langel@redhat.com>
	
	PR classpath/26924
	* gnu/java/awt/peer/gtk/GtkCanvasPeer.java
	(realize): New native function.
	* include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h:
	Added new function declaration.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c
	(realize): New function.

2006-03-31  Robert Schuster  <robertschuster@fsfe.org>
	
	* javax/swing/text/GapContent.java:
	(replace): Move all Position instances from gap's end to
	it's start before increasing the gap start.
	* javax/swing/plaf/basic/BasicTextAreaUI.java:
	(propertyChanged): Update the view only instead of
	indicating a document change.

2006-03-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTextField.java
	(fireActionPerformed): Put the textfields text in the action
	instead of the action name.

2006-04-01  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/Main.java (setupCommonParams):
	Check for null jar-file argument.
	(setupSigningParams): Check for null alias argument.

2006-03-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintChildren): Split up in two cases, depending on the
	optimizedDrawingEnabled flag.
	(paintChildrenWithOverlap): New method. Paints children when
	not optimizedDrawingEnabled. This implements better painting
	algorithm for overlapping components, so that the painted
	regions are minimized.
	(paintChildrenOptimized): New method. Paints children when
	when optimizedDrawingEnabled. This implements a painting
	algorithm that is optimized for the case when all children
	are guaranteed to be tiled.

2006-03-31  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/SFHelper.java (updateEntry): Use
	Attributes.putValue(String,String).
	(finishSigning): Likewise.
	* gnu/java/util/jar/JarUtils.java (MANIFEST_VERSION): New constant.
	(SIGNATURE_VERSION): Likewise.
	(readSFManifest): Use local string constant.
	(readMainSection): Likewise.
	(readVersionInfo): Likewise.
	* java/util/jar/Attributes.java (MANIFEST_VERSION):
	Redefined using JarUtils constant.
	(SIGNATURE_VERSION): Likewise.
	(putValue(Name,String)): Made it private.

2006-03-31  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/DefaultListSelectionModel.java (fireDifference):
	New method. (clearSelection): Rewritten. (setSelectionInterval):
	Fire the difference between current and new selection.
	* javax/swing/JTable.java (columnSelectionChanged, valueChanged):
	Only repaint the region, where selection has been changed.
	* javax/swing/plaf/basic/BasicTableUI.java 
	(TableAction.actionPerformed): Do not change the column selection
	when only row selection change is wanted (and in reverse) and 
	do not call the repaint() here.

2006-03-31  David Gilbert  <david.gilbert@object-refinery.com>

	Fixes bug #26951
	* javax/swing/DefaultComboBoxModel.java
	(DefaultComboBoxModel(Vector)): Call getSize() instead of 
	vector.size(),
	(addElement): Call list.addElement() rather than list.add(), and only
	update selected item if it is currently null,
	(removeElementAt): Update selected item, then remove the element.

2006-03-31  David Gilbert  <david.gilbert@object-refinery.com>

	Fixes bug #26955
	* java/awt/geom/Point2D.java
	(distanceSq(double, double)): Fixed order of arguments,
	(distanceSq(Point2D)): Likewise,
	(distance(double, double)): Likewise,
	(distance(Point2D)): Likewise.

2006-03-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/plugins/jpeg/JPEGQTable.java: New file.
	* javax/imageio/plugins/jpeg/JPEGHuffmanTable.java
	(ACChrominanceLengths, ACChrominanceValues, ACLuminanceLengths,
	ACLuminanceValues, DCChrominanceLengths, DCChrominanceValues,
	DCLuminanceLengths, DCLuminanceValues): Remove fields.

2006-03-30  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax.swing.JTable (constructor): Initialize column
	model column margin and table row margin before setting the
	table column model. (initialiseLocalVars): Do not call 
	setIntercellSpacing.

2006-03-30  Chris Burdess  <dog@gnu.org>

	* javax/xml/datatype/DatatypeFactory.java (newDurationDayTime): Fix
	  method signature.
	* javax/xml/validation/SchemaFactoryLoader.java: New file.

2006-03-30  Mark Wielaard  <mark@klomp.org>

	PR 26848
	* java/awt/Window.java (dispatchEventImpl): On ComponentEvents
	adjust bounds. On resize invalidate and validate container.
	Always pass on ComponentEvents to Container super class.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java (setBounds): Adjust for
	menuBar and pass to GtkWindowPeer super class.
	(postConfigureEvent): Adjust menu bar width. Adjust y and height
	bounds and pass to GtkWindowPeer super class.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java (x, y, width, height):
	New fields for local bounds.
	(getX, getY): New methods.
	(getWidth): Don't call into awtComponent.
	(getHeight): Likewise.
	(create): Cache local bounds.
	(setLocation): Documented, made protected and just call
	nativeSetLocation.
	(setLocationUnlocked): Removed unused method.
	(setBoundsUnlocked): Likewise.
	(setBounds): Check whether bounds actually changed and cache local
	bounds.
	(setSize): Documented and made protected.
	(setResizable): Documented and cache local bounds.
	(postConfigureEvent): Update local bounds. Don't call awtComponent
	directly but post ComponentEvents.
	(show): Cache local bounds.
	(getBounds): Override to return cached bounds.

2006-03-30  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(drawImage): Added check to prevent NPE.
	(drawImage): Likewise.
	(drawImage): Likewise.
	* java/awt/Choice.java
	(dispatchEventImpl): New function. selectedIndex was
	not being updated properly otherwise.

2006-03-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(removeTabAt): Removed debug code.

2006-03-30  Roman Kennke  <kennke@aicas.com>

	PR 26045
	* javax/swing/plaf/basic/BasicTextUI.java
	(installKeyboardActions): Simply call getKeymap() and install this.
	(createKeymap): Reimplemented to fetch a keymap from the UIManager.

2006-03-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(removeTabAt): Adjust selection correctly when removing a tab
	before the selected tab. Also remove the component from the
	container, not only the tab object. Repaint and revalidate the
	component after the removal.
	(removeAll): Set selection to -1 before removing the tabs.

2006-03-29  Lillian Angel  <langel@redhat.com>

	Partial fix for bug #26929
	* gnu/java/awt/peer/gtk/GtkPanelPeer.java
	(updateComponent): Removed. We want to clear the panel
	before painting.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect): Fixed typo.
	Should set the background to the saved background color.

2006-03-29  Mark Wielaard  <mark@klomp.org>

	Partial fix for bug #26848 (pack).
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (setVisible):
	Always show instances of Window.

2006-03-29  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSlider.java
	(setPaintLabels): Only create standard labels if labelTable is null,
	* javax/swing/plaf/basic/BasicSliderUI.java
	(PropertyChangeHandler.propertyChange): Recalculate geometry for 
	"paintTicks" property change,
	(calculateThumbSize): Updated API docs,
	(calculateContentRect): Likewise,
	(calculateTrackBuffer): Take into account the lowest and highest 
	labels when calculating buffer space,
	(calculateTrackRect): Include labels, if visible, in the calculation of
	the trackRect position,
	(calculateTickRect): Height is zero if ticks are not painted,
	(calculateLabelRect): Use max dimensions of actual labels,
	(getWidthOfHighValueLabel): Use preferred size,
	(getWidthOfLowValueLabel): Likewise,
	(getHeightOfHighValueLabel): Likewise,
	(getHeightOfLowValueLabel): Likewise,
	(drawInverted): Just return slider setting,
	(getHighestValueLabel): Updated API docs,
	(paintTicks): Removed redundant (and buggy) code, replaced with calls 
	to xPositionForValue() and yPositionForValue(),
	(paintHorizontalLabel): Removed full qualification of class name,
	(paintVerticalLabel): Likewise,
	(xPositionForValue): Reimplemented,
	(yPositionForValue): Reimplemented,
	* javax/swing/plaf/metal/MetalSliderUI.java
	(paintTrack): Made track one pixel longer.

2006-03-29  Tom Tromey  <tromey@redhat.com>

	PR gcc/26901:
	* tools/Makefile.am (JCOMPILER): Added encoding options.
	* examples/Makefile.am (JCOMPILER): Added encoding options.

2006-03-29  Gary Benson  <gbenson@redhat.com>

	Partial fix for PR classpath/24895
	* java/io/FilePermission.java (implies): Canonicalize paths.

2006-03-29  Robert Schuster  <robertschuster@fsfe.org>

	PR 26888
	* javax/swing/text/GapContent.java:
	(replace): Added call to resetMarksAtZero.

2006-03-29  Roman Kennke  <kennke@aicas.com>

	PR 23527
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(cachedRect): New field.
	(BasicMenuItemUI): Initialize cachedRect field.
	(getPreferredMenuItemSize): Use layoutMenuItem() helper method
	to determine layout. Store maximum accelerator and text width
	in client properties of parent to allow correct alignment
	of accelerators among menu items of one menu.
	(paintMenuItem): Outsourced menu item layout into layoutMenuItem
	method. Align accelerators according to the values calculated
	in getPreferredMenuItemSize.
	(getAcceleratorString) New helper method.
	(layoutMenuItem): New helper method.

2006-03-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/activation/ActivationSystemTransient.java: Rewritten.
	* gnu/java/rmi/activation/BidiTable.java: Rewritten.
	* gnu/java/rmi/dgc/LeaseRenewingTask.java (constructor, sheduleLeases):
	Avoid NPEs.
	* gnu/java/rmi/server/ActivatableServerRef.java (getRefClass, 
	readExternal, writeExternal): New methods.
	* gnu/java/rmi/server/UnicastRef.java (invokeCommon): Splitten into
	two stages, invokeCommon(Remote, ...) and 
	invokeCommen(UnicastConnection, ...).
	* java/rmi/server/RemoteObject.java (readObject, writeObject): Expect
	also the ActivatableRef. toString(): Documented.
	* gnu/java/rmi/server/ActivatableRef.java,
	tools/gnu/classpath/tools/rmi/Persistent.java,
	tools/gnu/classpath/tools/rmi/PersistentBidiHashTable.java,
	tools/gnu/classpath/tools/rmi/PersistentHashTable.java,
	tools/gnu/classpath/tools/rmi/REGISTRY.java,
	tools/gnu/classpath/tools/rmi/REGISTRY.txt,
	tools/gnu/classpath/tools/rmi/RMID.java,
	tools/gnu/classpath/tools/rmi/RMID.txt,
	tools/gnu/classpath/tools/rmi/registry/RegistryImpl.java,
	tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Skel.java,
	tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Stub.java,
	tools/gnu/classpath/tools/rmi/registry/package.html,
	tools/gnu/classpath/tools/rmi/rmid/ActivationSystemImpl.java,
	tools/gnu/classpath/tools/rmi/rmid/ActivationSystemImpl_Stub.java: 
	New files.
	* tools/README: Documented.
	* NEWS: Added entry about the activation.

2006-03-29  Roman Kennke  <kennke@aicas.com>

	PR 23527
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(viewRect): New field.
	(textRect): New field.
	(accelRect): New field.
	(iconRect): New field.
	(arrowIconRect): New field.
	(checkIconRect): New field.
	(BasicMenuItemUI): Initialize new fields.
	(paintMenuItem): Rewritten to correctly layout and paint
	the menu item in a more straightforward way. Use cached rectangle
	objects for layout.
	(paintAccelerator): Pulled inside the paintMenuItem method.

2006-03-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12Method.jav:
	Do not use initCause with UnexpectedException.
	* tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12MethodVoid.jav:
	Likewise. 

2006-03-29  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(setCursorID): Removed unused static variable.

2006-03-29  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicSliderUI.java: Reformatted.

2006-03-29  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26527
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(gtkWidgetSetCursorUnlocked): Call gdk_flush().

2006-03-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/UIManager.java
	(installLookAndFeel): Implemented.
	(setInstalledLookAndFeels): Implemented.

2006-03-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalButtonUI.java
	(update): Paint gradient only when the background color
	is not a UIResource and if the button is neither armed nor
	pressed and if the button is contentAreaFilled.

2006-03-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLayeredPane.java
	(addImpl): Repaint added component.

2006-03-28  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* java/util/regex/Matcher.java: Reverted.

2006-03-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AsyncBoxView.java
	(setEstimatedMajorSpan): Made method protected.
	(getEstimatedMajorSpan): Made method protected.
	* javax/swing/text/BoxView.java
	(flipEastAndWestAtEnds): Fixed typo.
	* javax/swing/text/InternationalFormatter.java
	(getActions): Made method protected.
	* javax/swing/text/Position.java
	(Bias): Made class final.
	* javax/swing/text/html/HTML.java
	(MEDIA): Made field package private. Not specified.
	(NOBR): Made field package private. Not specified.
	* javax/swing/text/html/NullView.java
	Made class package private.
	* javax/swing/text/html/parser/Entity.java
	Made class non-serializable as specified.

2006-03-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalButtonUI.java
	(update): Don't paint gradient if the background color is
	no UIResource. Removed double getModel() call. Don't check for
	OceanTheme.

2006-03-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(paint): Call paintMenuItem with the selectionBackground as
	parameter.
	(paintBackground): Fixed the condition and color for the background
	painting.

2006-03-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(tabsOpaque): New field.
	(paintLeftTabBorder): Paint some parts only when the tabs are
	opaque. Determine the tab background using the paintLeftTabBorder()
	helper method.
	(paintRightTabBorder): Likewise.
	(installDefaults): Fetch tabsOpaque property from the UIDefaults.

2006-03-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/rmi/activation/ActivationGroup_Stub.java:
	Made final.
	
2006-03-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/io/CharArrayWriter.java:
	(append(char)): Documented.
	(append(CharSequence)): Likewise.
	(append(CharSequence,int,int)): Likewise.

2006-03-27  Tom Tromey  <tromey@redhat.com>
       
	* java/io/CharArrayWriter.java (append): New overloads.
	
2006-03-27  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_nativeDispose):
	Added check for colormap. Prevents assertion error.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_setFGColor):
	Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_nativeCopyState):
	Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_initState__II):
	Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_initFromImage):
	Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_initStateUnlocked):
	Likewise.

2006-03-27  Dalibor Topic  <robilad@kaffe.org>

	* m4/acinclude.m4 (CLASSPATH_FIND_JAVAC): Use 
	AC_MSG_ERROR instead of echoing the error message 
	that no compiler has been found manually.

2006-03-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(commitBuffer): Use simple drawImage() method instead of the
	scaling version.

2006-03-27  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/PlainView.java:
	(drawLine): Use 'endOffset' instead of 'selectionEnd'
	for painting the selected line.

2006-03-27  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(getThumbSize): Removed TODO and updated API docs.

2006-03-27  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultCaret.java:
	(mouseClicked): Word selection rewritten.
	(paint): Draw line inside the bounding rectangle.
	(damage): Retrieve caret height from line height.

2006-03-28  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/Main.java (processArgs): Check
	for null args.
	Check for -help option.
	* tools/gnu/classpath/tools/jarsigner/jarsigner.txt: Added -help option.

2006-03-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/FieldView.java
	(getPreferredSpan): Don't include trailing newline in
	calculations.
	* javax/swing/text/PlainView.java
	(drawLine): Don't include trailing newline.
	(determineMaxLineLength): Don't include trailing newline.
	(getLineBuffer): Made method final.

2006-03-27  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSlider.java
	(AccessibleJSlider.AccessibleJSlider): Minor API doc edit,
	(AccessibleJSlider.getAccessibleRole): Removed declaration of 
	NotImplementedException,
	(AccessibleJSlider.getAccessibleValue): Updated API docs.

2006-03-26  Tom Tromey  <tromey@redhat.com>

	* NEWS: Updated.
	* vm/reference/java/lang/reflect/Method.java (METHOD_MODIFIERS):
	New constant.
	(getModifiersInternal): Renamed from getModifiers.
	(getModifiers): New method.
	(isBridge): Likewise.
	(isSynthetic): Likewise.
	(isVarArgs): Likewise.
	* vm/reference/java/lang/reflect/Field.java (FIELD_MODIFIERS):
	New constant.
	(getModifiersInternal): Renamed from getModifiers.
	(getModifiers): New method.
	(isSynthetic): Likewise.
	(isEnumConstant): Likewise.
	* vm/reference/java/lang/reflect/Constructor.java
	(getModifiersInternal): Renamed from getModifiers.
	(getModifiers): New method
	(CONSTRUCTOR_MODIFIERS): New constant.
	(isSynthetic): New method.
	(isVarArgs): Likewise.
	* java/lang/reflect/Member.java (isSynthetic): New method.

2006-03-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/security/jce/hash/HavalSpi.java,
	* gnu/java/security/jce/hash/MD2Spi.java,
	* gnu/java/security/jce/hash/MD4Spi.java,
	* gnu/java/security/jce/hash/MD5Spi.java,
	* gnu/java/security/jce/hash/MessageDigestAdapter.java,
	* gnu/java/security/jce/hash/RipeMD128Spi.java,
	* gnu/java/security/jce/hash/RipeMD160Spi.java,
	* gnu/java/security/jce/hash/Sha160Spi.java,
	* gnu/java/security/jce/hash/Sha256Spi.java,
	* gnu/java/security/jce/hash/Sha384Spi.java,
	* gnu/java/security/jce/hash/Sha512Spi.java,
	* gnu/java/security/jce/hash/TigerSpi.java,
	* gnu/java/security/jce/hash/WhirlpoolSpi.java,
	* gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java,
	* gnu/java/security/jce/sig/DSSRawSignatureSpi.java,
	* gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java,
	* gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.java,
	* gnu/java/security/jce/sig/SignatureAdapter.java,
	* gnu/java/security/key/IKeyPairCodec.java,
	* gnu/java/security/key/IKeyPairGenerator.java,
	* gnu/java/security/key/KeyPairGeneratorFactory.java,
	* gnu/java/security/key/dss/DSSKey.java,
	* gnu/java/security/key/dss/DSSKeyPairRawCodec.java,
	* gnu/java/security/key/dss/DSSPrivateKey.java,
	* gnu/java/security/key/dss/DSSPublicKey.java,
	* gnu/java/security/key/dss/FIPS186.java,
	* gnu/java/security/key/rsa/GnuRSAKey.java,
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java,
	* gnu/java/security/key/rsa/GnuRSAPublicKey.java,
	* gnu/java/security/sig/ISignature.java,
	* gnu/java/security/sig/ISignatureCodec.java,
	* gnu/java/security/sig/dss/DSSSignature.java,
	* gnu/java/security/sig/dss/DSSSignatureRawCodec.java,
	* gnu/java/security/sig/rsa/RSAPSSSignature.java,
	* gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java,
	* gnu/java/security/util/Util.java:
	Remove CVS revision tags.

2006-03-26  Tom Tromey  <tromey@redhat.com>

	* java/io/InputStream.java (InputStream): Implements Closeable.
	
2006-03-26  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/CharIndexed.java(setLastMatch, getLastMatch, getAnchor):
	New methods.
	* gnu/regexp/CharIndexedCharArray.java(setLastMatch, getLastMatch,
	getAnchor): New methods.
	* gnu/regexp/CharIndexedInputStream.java(setLastMatch, getLastMatch,
	getAnchor): New methods.
	* gnu/regexp/CharIndexedString.java(setLastMatch, getLastMatch,
	getAnchor): New methods.
	* gnu/regexp/CharIndexedStringBuffer.java(setLastMatch, getLastMatch,
	getAnchor): New methods.
	* gnu/regexp/REMatch.java(start1): New field.
	* gnu/regexp/RE.java(initialize): Added support for \z and \G,
	(match): set the starting position to start1[] instead of start[],
	(getMatchImpl): Set the found REMatch to the input,
	(makeCharIndexed): Made public.
	* gnu/regexp/RETokenEndOfPreviousMatch.java: New file.
	* gnu/regexp/RETokenEndSub.java(matchThis, findMatch):
	set the value of start[] copying from start1[].
	* gnu/regexp/RETokenLookBehind.java(matchThis): Added the settings of
	offset.
	* java/util/regex/Matcher.java(inputCharIndexed): New field
	to be used as a parameter of the RE#getMatch.

2006-03-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/activation/DefaultActivationGroup.java: 
	Documented the default jre spawning strategy (none).
	* java/rmi/activation/ActivationGroup.java (currentGroupId,
	getSystem): Obtain the acticivation system from the 
	DefaultActivationSystem.

2006-03-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/Main.java (setupSigningParams):
	Ask user for keystore password if one was not provided.

2006-03-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/README: Added Security tools section.
	Documented the jarsigner tool.

2006-03-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JScrollBar.java
	(AccessibleJScrollBar.getAccessibleStateSet): Implemented,
	(AccessibleJScrollBar.getAccessibleRole): Likewise,
	(AccessibleJScrollBar.getAccessibleValue): Likewise,
	(AccessibleJScrollBar.getCurrentAccessibleValue): Likewise,
	(AccessibleJScrollBar.setCurrentAccessibleValue): Likewise,
	(AccessibleJScrollBar.getMinimumAccessibleValue): Likewise,
	(AccessibleJScrollBar.getMaximumAccessibleValue): Likewise,
	(getAccessibleContext): Updated API docs.

2006-03-25  Tom Tromey  <tromey@redhat.com>

	* .externalToolBuilders/CreateLocaleData.launch: Run if resource files
	change or if generator script changes.

2006-03-25  Tom Tromey  <tromey@redhat.com>

	* javax/naming/ldap/StartTlsRequest.java: New file.
	* javax/naming/ldap/StartTlsResponse.java: New file.

2006-03-25  Olivier Jolly  <olivier.jolly@pcedev.com>

    * java/net/URLClassLoader.java (FileURLLoader.getResource): Added test
    to validate all components of a resource path.
    (FileURLLoader.walkPathComponents): Helper which ensures that we are
    allowed to walk through every component of a resource path.
    
2006-03-25  Michael Koch  <konqueror@gmx.de>

	* NEWS: Added item for CLDR 1.3 update.

2006-03-25  Michael Koch  <konqueror@gmx.de>

	* resource/gnu/java/locale/LocaleInformation_ar_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ar_IQ.properties,
	resource/gnu/java/locale/LocaleInformation_ar_KW.properties,
	resource/gnu/java/locale/LocaleInformation_ar_LY.properties,
	resource/gnu/java/locale/LocaleInformation_mn_MN.properties,
	resource/gnu/java/locale/LocaleInformation_uz_AF.properties:
	Removed locales.

2006-03-25  Michael Koch  <konqueror@gmx.de>

	* resource/gnu/java/locale/LocaleInformation_az.properties,
	resource/gnu/java/locale/LocaleInformation_bs.properties,
	resource/gnu/java/locale/LocaleInformation_byn.properties,
	resource/gnu/java/locale/LocaleInformation_byn_ER.properties,
	resource/gnu/java/locale/LocaleInformation_el_CY.properties,
	resource/gnu/java/locale/LocaleInformation_gez.properties,
	resource/gnu/java/locale/LocaleInformation_gez_ER.properties,
	resource/gnu/java/locale/LocaleInformation_gez_ET.properties,
	resource/gnu/java/locale/LocaleInformation_haw.properties,
	resource/gnu/java/locale/LocaleInformation_haw_US.properties,
	resource/gnu/java/locale/LocaleInformation_kok.properties,
	resource/gnu/java/locale/LocaleInformation_kok_IN.properties,
	resource/gnu/java/locale/LocaleInformation_sid.properties,
	resource/gnu/java/locale/LocaleInformation_sid_ET.properties,
	resource/gnu/java/locale/LocaleInformation_sl_SI.properties,
	resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties,
	resource/gnu/java/locale/LocaleInformation_sr_BA_Latn.properties,
	resource/gnu/java/locale/LocaleInformation_sr_Cyrl.properties,
	resource/gnu/java/locale/LocaleInformation_syr.properties,
	resource/gnu/java/locale/LocaleInformation_syr_SY.properties,
	resource/gnu/java/locale/LocaleInformation_tig.properties,
	resource/gnu/java/locale/LocaleInformation_tig_ER.properties,
	resource/gnu/java/locale/LocaleInformation_uz_AF_Arab.properties,
	resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
	resource/gnu/java/locale/LocaleInformation_uz_Latn.properties,
	resource/gnu/java/locale/LocaleInformation_wal.properties,
	resource/gnu/java/locale/LocaleInformation_wal_ET.properties:
	New locales.

2006-03-25  Michael Koch  <konqueror@gmx.de>

	* resource/gnu/java/locale/LocaleInformation_fa.properties,
	resource/gnu/java/locale/LocaleInformation_kn.properties,
	resource/gnu/java/locale/LocaleInformation_kn_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ko.properties,
	resource/gnu/java/locale/LocaleInformation_sl.properties,
	resource/gnu/java/locale/LocaleInformation_so.properties,
	resource/gnu/java/locale/LocaleInformation_so_DJ.properties,
	resource/gnu/java/locale/LocaleInformation_so_ET.properties,
	resource/gnu/java/locale/LocaleInformation_so_SO.properties,
	resource/gnu/java/locale/LocaleInformation_sr.properties:
	Random fixes I forgot to commit before.

2006-03-25  Michael Koch  <konqueror@gmx.de>

	* resource/gnu/java/locale/LocaleInformation_ar_JO.properties,
	resource/gnu/java/locale/LocaleInformation_ar_QA.properties,
	resource/gnu/java/locale/LocaleInformation_ar_SA.properties,
	resource/gnu/java/locale/LocaleInformation_ar_SY.properties,
	resource/gnu/java/locale/LocaleInformation_ar_TN.properties,
	resource/gnu/java/locale/LocaleInformation_ar_YE.properties,
	resource/gnu/java/locale/LocaleInformation_as_IN.properties,
	resource/gnu/java/locale/LocaleInformation_be_BY.properties,
	resource/gnu/java/locale/LocaleInformation_bn_IN.properties,
	resource/gnu/java/locale/LocaleInformation_en.properties,
	resource/gnu/java/locale/LocaleInformation_en_IN.properties,
	resource/gnu/java/locale/LocaleInformation_en_PK.properties,
	resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties,
	resource/gnu/java/locale/LocaleInformation_es_PY.properties,
	resource/gnu/java/locale/LocaleInformation_fa.properties,
	resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
	resource/gnu/java/locale/LocaleInformation_fa_IR.properties,
	resource/gnu/java/locale/LocaleInformation_gu_IN.properties,
	resource/gnu/java/locale/LocaleInformation_hi_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ja_JP.properties,
	resource/gnu/java/locale/LocaleInformation_kn_IN.properties,
	resource/gnu/java/locale/LocaleInformation_mr_IN.properties,
	resource/gnu/java/locale/LocaleInformation_or_IN.properties,
	resource/gnu/java/locale/LocaleInformation_pa.properties,
	resource/gnu/java/locale/LocaleInformation_pa_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ps_AF.properties,
	resource/gnu/java/locale/LocaleInformation_ru_RU.properties,
	resource/gnu/java/locale/LocaleInformation_sa.properties,
	resource/gnu/java/locale/LocaleInformation_sa_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ta_IN.properties,
	resource/gnu/java/locale/LocaleInformation_te_IN.properties:
	Updated currency formats.

2006-03-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(getAttributeContext): Made method final.
	(getCurrentWriter): Likewise.
	(getEndPosition): Likewise.
	(getProperty): Likewise.
	(getStartPosition): Likewise.
	(putProperty): Likewise.
	(readLock): Likewise.
	(readUnlock): Likewise.
	(writeLock): Likewise.
	(writeUnlock): Likewise.

2006-03-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/InputMap.java
	(allKeys): Check if parent keys is null.
	* javax/swing/KeyboardManager.java
	(registerEntireMap): Also register map's parent keys.
	* javax/swing/plaf/metal/MetalRootPaneUI.java
	(propertyChange): Also call super.propertyChange().

2006-03-25  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/HashUtils.java: New file.
	* tools/gnu/classpath/tools/jarsigner/JarSigner.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/JarVerifier.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/Main.java (Main): Likewise.
	* tools/gnu/classpath/tools/jarsigner/SFHelper.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/jarsigner.txt: Likewise.

2006-03-25  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/util/jar/JarUtils.java: New file.
	* java/util/jar/Manifest.java (CRLF): Removed.
	(read_main_section): Likewise.
	(read_version_info): Likewise.
	(expect_header(String,BufferedReader)): Likewise.
	(expect_header(String,BufferedReader,String)): Likewise.
	(read_header_value): Likewise.
	(read_attributes): Likewise.
	(read_attribute): Likewise.
	(read_individual_sections): Likewise.
	(read_section_name): Likewise.
	(write_main_section): Likewise.
	(write_version_info): Likewise.
	(write_header): Likewise.
	(write_main_attributes): Likewise.
	(write_attribute_entry): Likewise.
	(write_individual_sections): Likewise.
	(write_entry_attributes): Likewise.
	(read): use JarUtils.
	(write): Likewise.

2006-03-25  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/pkcs/SignerInfo.java (log): New field.
	(DEBUG): Removed.
	(debug): Likewise.
	(SignerInfo(BERReader)): Updated javadoc.
	Use JDK logging.
	(SignerInfo(X500Principal,BigInteger,OID,byte[],OID,byte[],byte[])):
	New constructor.
	(encode): New method.
	* gnu/java/security/pkcs/PKCS7SignedData.java (log): New field.
	(PKCS7_DATA): Removed.
	(DEBUG): Likewise.
	(debug): Likewise.
	(PKCS7SignedData(BERReader)): Updated javadoc.
	Use JDK logging.
	(PKCS7SignedData(Set,PKCS7Data,Certificate[],X509CRL[],Set)): New
	constructor.
	(encode): New method.
	* gnu/java/security/pkcs/PKCS7Data.java: New file.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java (log): New field.
	(encodePrivateKey): Encode x (private MPN) as an OCTET STRING.
	(decodePrivateKey): Decode x from an OCTET STRING.
	* gnu/java/security/key/dss/DSSPublicKey.java (str): New field.
	(toString): New method.
	* gnu/java/security/key/dss/DSSPrivateKey.java (DEBUG): New field.
	(str): Likewise.
	(toString): New method.
	* gnu/java/security/key/dss/DSSKey.java (str): New Field.
	(toString): New method.
	* gnu/java/security/provider/DSAParameterGenerator.java: Removed.

2006-03-25  Roman Kennke  <kennke@aicas.com>

	* java/util/GregorianCalender.java
	(computeTime): Fix comparison to correctly calculate the
	calendar.

2006-03-25  Wolfgang Baer  <WBaer@gmx.de>

	Fixes bug #26837
	* java/awt/Window.java:         
	(setFocusCycleRoot): New overriden method.
	(isFocusCycleRoot): Likewise.
	(getFocusCycleRootAncestor): Likewise.
	* java/awt/Container.java:
	(getFocusTraversalPolicy): Check also for anchestor == null.

2006-03-25  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26863 reported by John K Peterson <johnandtina@byu.net>
	* gnu/java/util/prefs/NodeWriter.java (writeRoot): Don't immediately
	close root tag.

2006-03-24  Tom Tromey  <tromey@redhat.com>

	* javax/imageio/stream/ImageOutputStreamImpl.java (writeBytes):
	Rewrote.
	(writeChar): Removed useless cast.
	(writeChars(String)): Implemented.
	(writeDouble): Rewrote.
	(writeFloat): Likewise.
	(writeUTF): Implemented.
	* javax/imageio/stream/ImageInputStreamImpl.java (byteOrder): Default
	to big endian.

2006-03-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JButton.java
	(def): Replaced field with defaultCapable field.
	(is_def): Removed field.
	(JButton): Initialize defaultCapable with true.
	(isDefaultButton): Documented and implemented method by querying
	the button's root pane if present.
	(isDefaultCapable): Changed def field to defaultCapable.
	Added documentation.
	(paramString): Call isDefaultButton() instead of accessing field,
	which got removed.
	(setDefaultCapable): Changed def field to defaultCapable.
	Added documentation.
	* javax/swing/JRootPane.java
	(setDefaultButton): Only change the default button if the
	new button is defaultCapable.
	* javax/swing/plaf/basic/BasicRootPaneUI.java
	(DefaultPressAction): New class.
	(DefaultReleaseAction): New class.
	(installKeyboardActions): Implemented.
	(uninstallKeyboardActions): Implemented.
	(propertyChange): Implemented.
	* javax/swing/plaf/metal/MetalBorders.java
	(ButtonBorder.paintBorder): 'Outsourced' default theme
	painting to paintDefaultButtonBorder().
	(ButtonBorder.paintDefaultButtonBorder): New helper method
	to paint the border in the default theme. This also fixes
	painting of the border for default buttons.
	(ButtonBorder.paintOceanButtonBorder): Added support for
	default button painting. Fixed border for pressed/default state.
	* javax/swing/plaf/metal/MetalButtonUI.java
	(update): Only paint gradient when in OceanTheme and when the
	button is not armed.

2006-03-24  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/activation/ActivationSystemTransient.java:
	Inherit from Activator.

2006-03-24  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/activation/DefaultActivationGroup.java (newInstance):
	Print debug message if debug flag is set.
	* gnu/java/rmi/activation/DefaultActivationSystem.java: Rewritten.
	* gnu/java/rmi/server/ActivatableServerRef.java (activate): assign
	detail, do not call iniCause(). (exportClass): New method.
	* gnu/java/rmi/server/CombinedClassLoader.java (constructor):
	Ignore null (bootstrap) class loader.
	* gnu/java/rmi/server/UnicastServerRef.java (methods, skel, stub,
	buildMethodHash, findStubSkelClass, getHelperClass): Changed 
	visibility to protected.
	* java/rmi/activation/Activatable.java (export, register): Rewritten.
	(toStub): New method.
	* java/rmi/activation/ActivationGroup.java (getSystem): Rewritten.
	* java/rmi/activation/ActivationSystem.java (SYSTEM_PORT): 
	Explained property java.rmi.activation.port.

2006-03-24  Tom Tromey  <tromey@redhat.com>

	* .externalToolBuilders/CreateLocaleData.launch: Updated.
	* gnu/java/locale/.cvsignore: New file.
	* lib/Makefile.am (LocaleData.java): Put in gnu/java/locale.
	* java/util/Locale.java (getAvailableLocales): Clone result.
	(getISOCountries): Likewise.
	(getISOLanguages): Likewise.
	* scripts/generate-locale-list.sh: Make class public.  Added new
	array.
	* gnu/java/locale/LocaleHelper.java (getCollatorLocales): New method.
	(getLocaleCount): Likewise.
	* java/text/Collator.java (getInstance): Javadoc typo fix.
	(getAvailableLocales): Wrote.

2006-03-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(getSelectedComponent): Return null when no component is
	selected.

2006-03-24  Mark Wielaard  <mark@klomp.org>

	* NEWS: Add cursor and selection improvements.

2006-03-23  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Component.java
	(getAccessibleName): Just return accessibleName,
	* javax/swing/AbstractButton.java
	(getAccessibleStateSet): Mark as stub,
	(getAccessibleName): Implemented,
	(getAcessibleIcon): Mark as stub,
	(getAccessibleRelationSet): Likewise,
	(getAccessibleAction): Likewise,
	(getAccessibleValue): Likewise,
	(getAccessibleActionCount): Likewise,
	(getAccessibleActionDescription): Likewise,
	(doAccessibleAction): Likewise,
	(getCurrentAccessibleValue): Likewise,
	(setCurrentAccessibleValue): Likewise,
	(getMinimumAccessibleValue): Likewise,
	(getMaximumAccessibleValue): Likewise,
	(getAccessibleText): Likewise,
	(getIndexAtPoint): Likewise,
	(getCharacterBounds): Likewise,
	(getCharCount): Likewise,
	(getCaretPosition): Likewise,
	(getAtIndex): Likewise,
	(getAfterIndex): Likewise,
	(getBeforeIndex): Likewise,
	(getCharacterAttribute): Likewise,
	(getSelectionStart): Likewise,
	(getSelectionEnd): Likewise,
	(getSelectedText): Likewise,
	(getTextRectangle): Likewise,
	(setIconTextGap): Fire PropertyChangeEvent, not state changed,
	(getIconTextGap): Added @since 1.4,
	(setContentAreaFilled): Reordered code to make event sequence match
	reference implementation,
	* javax/swing/JButton.java
	(getSelectedObjects): Removed,
	*javax/swing/JComponent.java
	(getAccessibleName): Call super.

2006-03-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JProgressBar.java
	(AccessibleJProgressBar.getAccessibleStateSet): Implemented,
	(AccessibleJProgressBar.getAccessibleRole): Added API docs,
	(AccessibleJProgressBar.getAccessibleValue): Implemented,
	(AccessibleJProgressBar.getCurrentAccessibleValue): Likewise,
	(AccessibleJProgressBar.setCurrentAccessibleValue): Likewise,
	(AccessibleJProgressBar.getMinimumAccessibleValue): Likewise,
	(AccessibleJProgressBar.getMaximumAccessibleValue): Likewise,
	(getAccessibleContext): Added API docs.

2006-03-23  Robert Schuster  <robertschuster@fsfe.org>

        * javax/swing/plaf/basic/BasicTextUI.java:
        (FocusListener.focusLost): Put current selection into the system
        clipboard.

2006-03-23  Robert Schuster  <robertschuster@fsfe.org>

        * java/awt/Component.java:
        (processMouseEvent): Remove call to consume event.
        (dispatchEventImpl): Handle specific events first, do focus request
        only when mouse event was not yet consumed.
        * javax/swing/text/DefaultCaret.java:
	(mousePressed): Rewritten.
	(setDot): Changed order of operations.
	(moveDot): Dito.

2006-03-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(AccessibleJComponent.changeSupport): Removed field,
	(AccessibleJComponent.AccessibleJComponent): Updated for removed field,
	(AccessibleJComponent.addPropertyChangeListener): Call super,
	(AccessibleJComponent.removePropertyChangeListener): Likewise,
	* javax/swing/JSlider.java
	(AccessibleJSlider.getAccessibleStateSet): Implemented,
	(AccessibleJSlider.getAccessibleRole): Likewise,
	(AccessibleJSlider.getAccessibleValue): Likewise,
	(AccessibleJSlider.getCurrentAccessibleValue): Likewise,
	(AccessibleJSlider.setCurrentAccessibleValue): Likewise,
	(AccessibleJSlider.getMinimumAccessibleValue): Likewise,
	(AccessibleJSlider.getMaximumAccessibleValue): Likewise,
	(getAccessibleContext): Added API docs.

2006-03-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/activation/ActivationSystemTransient.java
	(debug): Made public. (constructor): Made protected.
	(activate, getActivationDesc): Throw more informative exceptions.
	* gnu/java/rmi/server/UnicastConnectionManager.java (toString):
	New method.
	* gnu/java/rmi/server/UnicastRef.java (remoteToString): 
	Stub, implemented.
	* gnu/java/rmi/server/UnicastServer.java (incomingMessageCall):
	Documented.
	* gnu/java/rmi/server/UnicastServerRef.java (incomingMessageCall):
	Better exception.
	* java/rmi/activation/Activatable.java (obtainId): Use the activation
	system, passed in the activation descriptor field.
	* java/rmi/activation/ActivationGroup.java (createGroup): Likewise.
	* java/rmi/activation/ActivationGroupID.java (system, uid): Changed
	to package private final. (equals): Compare uid, not the system. 
	(hashCode): Forward to uid.hashCode(). toString(): New method.
	* java/rmi/activation/ActivationID.java (readObject, writeObject):
	Rewritten. (equals): Compare UID only. toString(): New method.
	* java/rmi/server/ObjID.java (eq): New method. (equals): Compare also
	UID (space). (hashCode, toString): Rewritten.
	* java/rmi/server/RemoteObjectInvocationHandler.java (noArgs): 
	New method. (invoke): Treat null as an empty array for parameters.
	* java/rmi/server/UID.java (toString): Rewritten. (hashCode):
	Include count, do not include the static machineId.

2006-03-23  Tom Tromey  <tromey@redhat.com>

	* java/net/URLConnection.java (getContent(Class[])): Implemented.

2006-03-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* tools/gnu/classpath/tools/giop/GRMIC.java (main): Accept -force.
	* tools/gnu/classpath/tools/giop/GRMIC.txt: Explain -force.
	* tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java
	(force): New field. (setForce): New method. (compile): Handle -force.
	* tools/gnu/classpath/tools/rmi/RMIC.java (main): Accept -force.
	* tools/gnu/classpath/tools/rmi/RMIC.txt: Explain -force.

2006-03-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(Page.getBackground): Return the JTabbedPane's background,
	rather than the page's component background.
	(Page.getForeground): Return the JTabbedPane's foreground,
	rather than the page's component foreground.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(uninstallUI): Don't set colors to null.
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(paintTabBackground): Correctly determine the tab background.
	(getUnselectedBackground): New helper method to
	handle the UI property 'TabbedPane.unselectedBackground'
	correctly.

2006-03-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(BorderListener.showingResizeCursor): New field.
	(BorderListener.mouseMoved, BorderListner.mouseExited):
	Implemented.

2006-03-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComboBox.java
	(selectWithKeyChar): Mark as stub,
	* javax/swing/JFileChooser.java
	(setDragEnabled): Mark as stub,
	(getDragEnabled): Likewise,
	* javax/swing/JSlider.java
	(AccessibleJSlider.getAccessibleStateSet): Mark as stub,
	(AccessibleJSlider.getAccessibleRole): Likewise,
	(AccessibleJSlider.getAccessibleValue): Likewise,
	(AccessibleJSlider.getCurrentAccessibleValue): Likewise,
	(AccessibleJSlider.setCurrentAccessibleValue): Likewise,
	(AccessibleJSlider.getMinimumAccessibleValue): Likewise,
	(AccessibleJSlider.getMaximumAccessibleValue): Likewise,
	* javax/swing/UIManager.java
	(installLookAndFeel): Mark as stub,
	(setInstalledLookAndFeels): Likewise.

2006-03-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/filechooser/UnixFileSystemView.java
	(getSystemDisplayName): Mark as stub,
	(getSystemIcon): Likewise,
	(getSystemTypeDescription): Likewise.

2006-03-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/AbstractLayoutCache.java
	(getNodeDimensions): Mark as stub,
	(getPreferredHeight): Likewise,
	(getPreferredWidth): Likewise,
	(getRowsForPaths): Likewise,
	(isFixedRowHeight): Likewise,
	* javax/swing/tree/DefaultTreeModel.java
	(reload()): Mark as stub,
	(reload(TreeNode)): Likewise,
	(nodeStructureChanged): Likewise,
	* javax/swing/tree/DefaultTreeSelectionModel.java
	(clone): Mark as stub,
	(setRowMapper): Likewise,
	(setSelectionPaths): Likewise,
	(isRowSelected): Likewise,
	(resetRowSelection): Likewise,
	(insureRowContinuity): Likewise,
	(arePathsContiguous): Likewise,
	(canPathsBeAdded): Likewise,
	(canPathsBeRemoved): Likewise,
	(notifyPathChange): Likewise,
	(updateLeadIndex): Likewise,
	(insureUniqueness): Likewise,
	* javax/swing/tree/FixedHeightLayoutCache.java: Marked all methods as
	stubs,
	* javax/swing/tree/VariableHeightLayoutCache.java: Likewise.

2006-03-22  Tom Tromey  <tromey@redhat.com>

	* javax/swing/text/StyleContext.java (getStaticAttribute): Mark as
	stub.
	(getStaticAttributeKey): Likewise.
	(readAttributeSet): Likewise.
	(writeAttributeSet): Likewise.
	(readAttributes): Likewise.
	(writeAttributes): Likewise.
	* javax/swing/text/html/HTMLEditorKit.java (insertAtBoundary): Mark
	as stub.
	* javax/swing/text/html/HTMLDocument.java (setParagraphAttributes):
	Mark as stub.
	(fireChangedUpdate): Likewise.
	(start): Likewise.
	(end): Likewise.
	(handleEndOfLineString): Likewise.
	(textAreaContent): Likewise.
	(preContent): Likewise.
	(addSpecialElement): Likewise.
	(setInnerHTML): Likewise.
	(setOuterHTML): Likewise.
	(insertBeforeStart): Likewise.
	(insertBeforeEnd): Likewise.
	(insertAfterEnd): Likewise.
	(insertAfterStart): Likewise.
	* javax/swing/table/JTableHeader.java (AccessibleJTableHeaderEntry):
	Mark all methods as stub.s
	* javax/swing/plaf/metal/MetalTreeUI.java (decodeLineStyle): Mark
	as stub.
	(paintHorizontalSeparators): Likewise.
	* javax/swing/plaf/basic/BasicLookAndFeel.java (loadSystemColors):
	Mark as stub.
	* javax/swing/MenuSelectionManager.java (processKeyEvent): Mark as
	stub.
	* java/beans/beancontext/BeanContextSupport.java: Mark most methods
	as stubs.
	* java/beans/beancontext/BeanContextServicesSupport.java: Mark most
	methods as stubs.

2006-03-22  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkCursor.java: New class.

2006-03-22  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26527
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (gtkWidgetSetCursor):
	Takes GtkImage, x and y coordinates.
	(gtkWidgetSetCursorUnlocked): Likewise.
	(GtkComponentPeer): Set cursor when set.
	(setCursor): Handle GtkCursor.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (createCustomCursor):
	New method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(gtkWidgetSetCursor): Takes GtkImage, x and y coordinates.
	(gtkWidgetSetCursorUnlocked): Likewise. Handle custom image.
	* include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: Regenerated.

2006-03-23  Roman Kennke  <kennke@aicas.com>

	PR 26805
	* gnu/java/security/Registry.java
	(PKCS5_PAD): Added pad PKCS#5 algorithm.
	* gnu/javax/crypto/pad/PadFactory.java
	(getInstance): For PKCS#5, also return PKCS#7 pad
	algorithm.
	(getNames): Added PKCS#5.
	* javax/crypto/KeyGenerator.java
	(getInstance): Initialize key generator before returning
	it.

2006-03-23  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/RE.java(REG_X_COMMENTS): New copilation flag,
	(initialize): Ignore whiltespaces and comments if REG_X_COMMENTS is set.
	* java/util/regex/Pattern.java(constructor): Set RE.REG_X_COMMENTS
	if COMMENTS is set.

2006-03-22  Tom Tromey  <tromey@redhat.com>

	* javax/swing/plaf/synth/SynthStyle.java (getInt): Implemented.
	(getBoolean): Likewise.
	(getString): Likewise.
	(getIcon): Likewise.

2006-03-22  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26301
	* gnu/java/awt/peer/GLightweightPeer.java: Extend MouseAdapter.
	(GLightweightPeer(Component)): Install MouseListener.
	(setCursor): Implement.
	(mouseEntered): New method.

2006-03-22  Tom Tromey  <tromey@redhat.com>

	* javax/swing/plaf/synth/ColorType.java (MAX_COUNT): No longer
	constant.
	* javax/swing/plaf/synth/SynthStyle.java (getColorForState): Now
	protected.
	(getFontForState): Likewise.
	(getInsets): Added 'result' argument.
	(getPainter): Renamed.

2006-03-22  Tom Tromey  <tromey@redhat.com>

	* javax/swing/plaf/synth/SynthPainter.java
	(paintScrollBarThumbBackground): Added 'orientation' argument.
	(paintScrollBarThumbBorder): Likewise.
	(paintSliderThumbBackground): Likewise.
	(paintSliderThumbBorder): Likewise.
	(paintTabbedPaneTabBackground): Added 'index' argument.
	(paintTabbedPaneTabBorder): Likewise.

2006-03-22  Tom Tromey  <tromey@redhat.com>

	* java/awt/ScrollPaneAdjustable.java (paramString): Implemented.
	(toString): New method.

2006-03-22  Tom Tromey  <tromey@redhat.com>

	* doc/hacking.texinfo (Source Code Style Guide): Mention
	NotImplementedException.
	* javax/imageio/stream/MemoryCacheImageOutputStream.java
	(flushBefore): Mark as stub.
	(read): Likewise.
	* javax/imageio/stream/MemoryCacheImageInputStream.java (flushBefore):
	Mark as stub.
	* javax/imageio/stream/ImageOutputStreamImpl.java (flushBits): Mark
	as stub.
	(write): Likewise.
	(writeBit): Likewise.
	(writeChars): Likewise.
	(writeUTF): Likewise.
	* javax/imageio/stream/FileCacheImageOutputStream.java (read): Mark
	as stub.
	(read): Likewise.
	* java/net/URLConnection.java (getContent): Mark as stub.
	* java/awt/Window.java (applyResourceBundle): Mark as stub.
	* java/awt/TexturePaint.java (createContext): Mark as stub.
	(getTransparency): Mark as stub.
	* java/awt/ScrollPaneAdjustable.java (paramString): Mark as stub.
	* java/awt/GridBagLayout.java (AdjustForGravity): Mark as stub.
	* java/awt/GraphicsConfiguration.java (getBufferCapabilities): Mark as
	stub.
	(getImageCapabilities): Likewise.
	* java/awt/BasicStroke.java (createStrokedShape): Mark as stub.
	* java/awt/AlphaComposite.java (createContext): Mark as stub.
	* java/awt/image/renderable/RenderableImageProducer.java: Mark all
	methods as stubs.
	* java/awt/font/TextMeasurer.java (deleteChar): Mark as stub.
	(getAdvanceBetween): Likewise.
	(getLayout): Likewise.
	(insertChar): Likewise.
	(getLineBreakIndex): Likewise.
	* java/awt/font/ShapeGraphicAttribute.java (draw): Mark as stub.
	(getAdvance): Likewise.
	(getAscent): Likewise.
	(getDescent): Likewise.
	* java/awt/font/LineBreakMeasurer.java (deleteChar): Mark as stub.
	(insertChar): Likewise.
	(nextLayout): Likewise.
	(nextLayout): Likewise.
	(nextOffset): Likewise.
	(nextOffset): Likewise.
	* java/awt/font/ImageGraphicAttribute.java (draw): Mark as stub.
	(equals): Likewise.
	(getAdvance): Likewise.
	(getAscent): Likewise.
	(getBounds): Likewise.
	(getDescent): Likewise.
	(hashCode): Likewise.
	(ImageGraphicAttribute): Likewise.
	* java/awt/font/GraphicAttribute.java (getBounds): Mark as stub.
	(getJustificationInfo): Likewise.
	* java/awt/font/GlyphVector.java (getGlyphCharIndex): Mark as stub.
	(getGlyphCharIndices): Likewise.
	(getGlyphOutline): Likewise.
	(getGlyphPixelBounds): Likewise.
	(getLayoutFlags): Likewise.
	(getPixelBounds): Likewise.
	* java/awt/font/GlyphMetrics.java (getLSB): Mark as stub.
	(getRSB): Likewise.
	* java/nio/channels/Channels.java (newWriter): Mark as stub.
	* java/awt/dnd/DragSourceContext.java: Marked most methods as stubs.
	* java/awt/dnd/DragGestureRecognizer.java (fireDragGestureRecognized):
	Mark as stub.
	(resetRecognizer): Likewise.
	* java/awt/datatransfer/SystemFlavorMap.java (getFlavorsForNative):
	Mark as stub.
	(getNativesForFlavor): Likewise.
	* javax/swing/plaf/synth/SynthStyle.java: Mark all methods as stub.s
	* javax/swing/plaf/synth/SynthLookAndFeel.java (updateStyles): Mark
	as stub.
	(getRegion): Likewise.
	(createUI): Likewise.
	(initialize): Likewise.
	(uninitialize): Likewise.
	(getDefaults): Likewise.
	(load): Likewise.
	(shouldUpdateStyleOnAncestorChanged): Likewise.
	* javax/swing/plaf/synth/SynthGraphicsUtils.java (getMinimumSize):
	Mark as stub.
	(getPreferredSize): Likewise.
	(getMaximumSize): Likewise.
	(paintText): Likewise.
	* java/text/RuleBasedCollator.java (getCollationElementIterator): Mark
	as stub.
	* java/text/Collator.java (getAvailableLocales): Mark as stub.

2006-03-22  Wolfgang Baer  <WBaer@gmx.de>

	* java/io/ObjectStreamConstants.java: Added since tag.
	(PROTOCOL_VERSION_1): Added javadoc.
	(PROTOCOL_VERSION_2): Likewise.
	* java/io/ObjectOutputStream.java: 
	(setDefaultProtocolVersion): Removed.
	(useProtocolVersion): Fixed parameter tests. Updated javadoc.
	
2006-03-21  Lillian Angel  <langel@redhat.com>

	* gnu/javax/imageio/bmp/BMPInfoHeader.java
	(BMPInfoHeader): Removed debug lines.
	* gnu/javax/imageio/bmp/EncodeRLE4.java
	(encode): Implemented.
	(uncompress): New function implemented to
	uncompress the image before encoding.
	* gnu/javax/imageio/bmp/EncodeRLE8.java
	(encode): Implemented.
	(uncompress): New function implemented to
	uncompress the image before encoding.

2006-03-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/FormView.java
	(getImageData): New helper method.

2006-03-21  Tom Tromey  <tromey@redhat.com>

	* vm/reference/gnu/classpath/Unsafe.java (arrayBaseOffset): Javadoc
	fix.
	(Unsafe): Now final.

2006-03-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/FormView.java
	(MouseEventListener): New inner class.

2006-03-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/ListView.java: New file.

2006-03-21  Tom Tromey  <tromey@redhat.com>

	* java/text/Bidi.java: Completed.

2006-03-21  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTable.java:
	(columnAtPoint): Removed the null check, this method should throw a NPE
	if the argument is null.

2006-03-21  Robert Schuster  <robertschuster@fsfe.org>

        * javax/swing/text/DefaultHighlighter.java:
        (DefaultHighlighter.DefaultHighlightPainter.paint): Rewritten.

2006-03-21  Robert Schuster  <robertschuster@fsfe.org>

        * javax/swing/text/DefaultCaret.java: Added class variable denoting
        the textcomponent having a selection.
        (clearSelection): Clear 'componentWithSelection' variable.
        (handleSelection): Clear selection of current component having a
        selection before setting a new selection in another component.
	(mouseDragged): Only react on left mouse button.
	(mouseClicked): Only react on left mouse button.

2006-03-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(paintContentBorderTopEdge): Implemented.
	(paintContentBorderBottomEdge): Implemented.
	(paintContentBorderLeftEdge): Implemented.
	(paintContentBorderRightEdge): Implemented.
	(isLastTabInRun): New helper method.

2006-03-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(Page.getForeground): Fall back to returning the tabbed pane's
	foreground if no foreground has been exclicitly set.

2006-03-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalComboBoxButton.java
	(setEnabled): Update colors of button correctly.
	* javax/swing/plaf/metal/MetalComboBoxUI.java
	(MetalPropertyChangeListener.propertyChange): Update the colors
	of the list and the button when any of the color properties
	of the ComboBox change.

2006-03-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(uninstallDefaults): Only nullify button colors if they are
	not UIResource instances.

2006-03-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(AccessibleJComponent.getAccessibleDescription): Call super,
	* javax/swing/JToolTip.java: API doc updates all over, plus
	(AccessibleJToolTip.getAccessibleDescription): Implemented,
	(AccessibleJToolTip.getAccessibleRole): Implemented,
	(getAccessibleContext): Implemented,
	(paramString): Reimplemented,
	(setComponent): Fire PropertyChangeEvent,
	(setTipText): Likewise.

2006-03-20  Tom Tromey  <tromey@redhat.com>

	* java/security/cert/PKIXCertPathChecker.java: Javadoc fix.
	* java/security/cert/CertStoreSpi.java: Added import for javadoc.
	(CertStoreSpi): Updated throws clause.
	* java/security/cert/CertPathValidatorSpi.java: Added import for
	javadoc.
	(engineValidate): Updated 'throws' clause.
	* java/security/cert/PKIXParameters.java: Javadoc fix.
	* java/security/cert/X509CertSelector.java
	(setAuthorityKeyIdentifier): Javadoc fix.

2006-03-20  Tom Tromey  <tromey@redhat.com>

	* .classpath: Build gnu.javax.swing.plaf.

2006-03-20  Lillian Angel  <langel@redhat.com>

	* gnu/javax/imageio/bmp/BMPDecoder.java:
	Removed unneeded import.
	* gnu/javax/imageio/bmp/BMPEncoder.java:
	New class.
	* gnu/javax/imageio/bmp/BMPFileHeader.java
	(BMPFileHeader): New constructor used to create info header
	for an output stream.
	(write): Fixed indexes.
	* gnu/javax/imageio/bmp/BMPImageReaderSpi.java:
	Initialized writerSpiNames field.
	* gnu/javax/imageio/bmp/BMPImageWriter.java:
	New class.
	* gnu/javax/imageio/bmp/BMPImageWriterSpi.java:
	New class.
	* gnu/javax/imageio/bmp/BMPInfoHeader.java:
	Change visibility for fields.
	(BMPInfoHeader): New constructor used to create
	file header for an output stream.
	(intToDWord): New method. Converts an int to a
	double word.
	(intToWord): New method. Converts an int to a word.
	* gnu/javax/imageio/bmp/DecodeBF32.java:
	Removed unneeded imports.
	* gnu/javax/imageio/bmp/EncodeRGB1.java:
	New class.
	* gnu/javax/imageio/bmp/EncodeRGB16.java:
	New class.
	* gnu/javax/imageio/bmp/EncodeRGB24.java:
	New class.
	* gnu/javax/imageio/bmp/EncodeRGB32.java:
	New class.
	* gnu/javax/imageio/bmp/EncodeRGB4.java:
	New class.
	* gnu/javax/imageio/bmp/EncodeRGB8.java:
	New class.
	* gnu/javax/imageio/bmp/EncodeRLE4.java:
	New class.
	* gnu/javax/imageio/bmp/EncodeRLE8.java:
	New class.
	* javax/imageio/ImageIO.java:
	Fixed comment.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(TabbedPaneLayout.normalizeTabRuns): New method.
	(createLayoutManager): Return the Metal TabbedPaneLayout, not super.
	(paintTabBorder): Replaced if-else chain with switch.
	(paintTopTabBorder): Rewritten to correctly paint tab. Also support
	Ocean theme.
	(paintBottomTabBorder): Rewritten to correctly paint tab. Also support
	Ocean theme.
	(paintLeftTabBorder): Rewritten to correctly paint tab. Also support
	Ocean theme.
	(paintRightTabBorder): Rewritten to correctly paint tab. Also support
	Ocean theme.
	(paintTabBackground): Fetch background color from the TabbedPane.
	Fixed painting and improved by not using fillPolygon, and instead
	using fillRectangle. Replaced if-else chain with switch.
	(calculateMaxTabHeight): Added overridden method with FIXME.
	(getTabRunOverlay): Overridden to provide overlay for LEFT or RIGHT
	placement.
	(paintContentBorderTopEdge): Added stub with FIXME.
	(paintContentBorderBottomEdge): Added stub with FIXME.
	(paintContentBorderLeftEdge): Added stub with FIXME.
	(paintContentBorderRightEdge): Added stub with FIXME.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(tabsOpaque): New field.
	(installDefaults): Fetch tabsOpaque property from UIManager.
	(paintTab): Fill tab background when tabsOpaque property is true.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added TabbedPane.tabsOpaque property.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(Pane.getBackground): When no background was explicitly set, return
	the JTabbedPane's background.

2006-03-20  Wolfgang Baer  <WBaer@gmx.de>

	* org/omg/CORBA/ACTIVITY_COMPLETED.java,
	* org/omg/CORBA/ACTIVITY_REQUIRED.java,
	* org/omg/CORBA/BAD_INV_ORDER.java,
	* org/omg/CORBA/BAD_CONTEXT.java,
	* org/omg/CORBA/BAD_OPERATION.java,
	* org/omg/CORBA/BAD_PARAM.java,
	* org/omg/CORBA/BAD_QOS.java,
	* org/omg/CORBA/BAD_TYPECODE.java,
	* org/omg/CORBA/CODESET_INCOMPATIBLE.java,
	* org/omg/CORBA/COMM_FAILURE.java,
	* org/omg/CORBA/CurrentHolder.java,
	* org/omg/CORBA/DATA_CONVERSION.java,
	* org/omg/CORBA/FREE_MEM.java,
	* org/omg/CORBA/IMP_LIMIT.java,
	* org/omg/CORBA/INITIALIZE.java,
	* org/omg/CORBA/INTERNAL.java,
	* org/omg/CORBA/INTF_REPOS.java,
	* org/omg/CORBA/INVALID_ACTIVITY.java,
	* org/omg/CORBA/INVALID_TRANSACTION.java,
	* org/omg/CORBA/INV_FLAG.java,
	* org/omg/CORBA/INV_IDENT.java,
	* org/omg/CORBA/INV_OBJREF.java,
	* org/omg/CORBA/INV_POLICY.java,
	* org/omg/CORBA/MARSHAL.java,
	* org/omg/CORBA/NO_RESOURCES.java,
	* org/omg/CORBA/NO_MEMORY.java,
	* org/omg/CORBA/NO_IMPLEMENT.java,
	* org/omg/CORBA/NO_PERMISSION.java,
	* org/omg/CORBA/NO_RESPONSE.java,
	* org/omg/CORBA/OBJECT_NOT_EXIST.java,
	* org/omg/CORBA/OBJ_ADAPTER.java,
	* org/omg/CORBA/ParameterModeHolder.java,
	* org/omg/CORBA/PolicyError.java,
	* org/omg/CORBA/PolicyErrorHolder.java,
	* org/omg/CORBA/PolicyHolder.java,
	* org/omg/CORBA/PolicyListHolder.java,
	* org/omg/CORBA/REBIND.java,
	* org/omg/CORBA/TIMEOUT.java,
	* org/omg/CORBA/TRANSACTION_MODE.java,
	* org/omg/CORBA/TRANSACTION_REQUIRED.java,
	* org/omg/CORBA/TRANSACTION_ROLLEDBACK.java,
	* org/omg/CORBA/TRANSACTION_UNAVAILABLE.java,
	* org/omg/CORBA/TRANSIENT.java,
	* org/omg/CORBA/TypeCodeHolder.java,
	* org/omg/CORBA/UNKNOWN.java,
	* org/omg/CORBA/UnionMember.java,
	* org/omg/CORBA/UnknownUserException.java,
	* org/omg/CORBA/UnknownUserExceptionHolder.java,
	* org/omg/CORBA/WrongTransactionHolder.java,
	* org/omg/IOP/IOR.java,
	* org/omg/IOP/IORHolder.java,
	* org/omg/IOP/MultipleComponentProfileHolder.java,
	* org/omg/IOP/ServiceContextHolder.java,
	* org/omg/IOP/ServiceContextListHolder.java,
	* org/omg/IOP/TaggedComponentHolder.java,
	* org/omg/IOP/TaggedProfileHolder.java,
	* org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.java,
	* org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.java,
	* org/omg/PortableInterceptor/IORInterceptor_3_0Holder.java,
	* org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.java:
	Made class final, various javadoc fixlets.	
	* org/omg/CORBA/CompletionStatus.java, 
	* org/omg/CORBA/PERSIST_STORE.java,
	* org/omg/CORBA/ValueMember.java,
	* org/omg/PortableInterceptor/ForwardRequest.java,
	* org/omg/PortableInterceptor/InvalidSlot.java,
	* org/omg/IOP/CodecPackage/TypeMismatch.java,
	* org/omg/IOP/CodecPackage/InvalidTypeForEncoding.java,
	* org/omg/IOP/CodecPackage/FormatMismatch.java,
	* org/omg/IOP/CodecFactoryPackage/UnknownEncoding.java,
	* org/omg/IOP/Encoding.java,
	* org/omg/IOP/TaggedComponent.java,
	* org/omg/IOP/TaggedProfile.java: Made class final.
	* org/omg/CORBA/SystemException.java: Made class abstract.	
	* org/omg/CORBA/UserException.java: Made class abstract.
	(UserException): Now protected.
	(UserException(String)): Likewise.
	* org/omg/Messaging/SyncScopeHelper.java: Now abstract, javadoc fixes.
	(typecode): Removed unused private variable.

2006-03-20  Chris Burdess  <dog@gnu.org>

	Fixes PR 26761
	* gnu/xml/stream/XMLParser.java: Permit U+fffd as XML Char.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(paintTabArea): Look up tab run indices in tabRuns array instead
	of using the index directly.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(paintTab): Fixed painting.
	(paintText): Fixed text painting.
	(paintFocusIndicator): Fixed painting of the focus rectangle.
	(paintContentBorder): Fixed painting of the content area.

2006-03-20  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java (pixbufLock): New
	static lock Object field.
	(produce): Synchronize on pixbufLock when calling initState(),
	pumpBytes() and pumpDone().
	(finalize): Likewise when calling finish().
	(GdkPixbufWriter.write): Likewise when calling streamImage().
	* gnu/java/awt/peer/gtk/GtkImage.java (GtkImage(String)): Likewise
	when calling loadPixbuf. Chain exception.
	(GtkImage(byte[])): Likewise when calling loadImageFromData.
	(GtkImage(URL)): Likewise.
	(GtkImage(int,int)): Likewise when calling createPixmap().
	(GtkImage(GtkImage,int,int,int)): Likewise when calling
	createScaledPixmap().
	(GtkImage(Pointer)): Likewise when calling createFromPixbuf().
	(setImage): Likewise when calling createPixmap() and setPixels().
	(getSource): Likewise when calling getPixels().
	(flush): Likewise when calling freePixmap().
	(finalize): Likewise.
	(drawImage): Likewise when calling drawPixelsScaledFlipped() and
	drawPixelsScaledFlipped().
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initState): Remove
	gdk_threads_enter/leave().
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_finish): Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpDone): Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_streamImage): Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(Java_gnu_java_awt_peer_gtk_GtkImage_loadPixbuf): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkImage_loadImageFromData): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkImage_createFromPixbuf): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkImage_getPixels): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkImage_setPixels): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkImage_createPixmap): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkImage_freePixmap): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkImage_createScaledPixmap): Likewise.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(calculateTabHeight): Not need to use SwingUtilities here.
	(getTabInsets): Do not rotate insets.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(paint): Make sure the layout is valid before painting.
	(paintTabArea): Made tab painting more straightforward and efficient.

2006-03-20  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (ROWS_PER_WHEEL_CLICK): Removed.
	(getScrollableUnitIncrement): Rewritten.
	* javax/swing/JTree.java (ROWS_PER_WHEEL_CLICK): Removed.
	(getScrollableUnitIncrement): Rewritten.
	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(ROWS_PER_WHEEL_CLICK): New field. 
	(MouseWheelHandler.mouseWheelMoved): Rewritten.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(paint): Make sure the layout is valid before painting.
	(paintTabArea): Made tab painting more straightforward and efficient.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(MouseHandler.mousePressed): Rewritten for clearer and simpler
	code.
	(MouseHandler.mouseEntered): Implemented to set the rollover tab.
	(MouseHandler.mouseMoved): Implemented to set the rollover tab.
	(MouseHandler.mouseExited): Implemented to unset the rollover tab.
	(TabbedPaneLayout.calculateLayoutInfo): Don't set the component's
	bounds here. That is moved into layoutContainer().
	(calculateSize): Correctly respect insets. Made code slightly more
	clear and efficient.
	(calculateTabRects): Rewritten completely. The old code was
	not quite right and unstable in some situations.
	(layoutContainer): Moved layout of tabbed pane's subcomponents
	here.
	(tabRunsDirty): New field.
	(rolloverTab): New field.
	(tabForCoordinate): Rewritten for simplicity and correctness.
	(setRolloverTab): New method.
	(getRolloverTab): New method.

2006-03-20  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (getScrollableUnitIncrement): Rewritten.
	* javax/swing/JTree.java (getScrollableUnitIncrement): Rewritten.
	(getScrollableUnitIncrement
	* javax/swing/Scrollable.java: Documented.
	* javax/swing/plaf/basic/BasicScrollPaneUI.java 
	(MouseWheelHandler):Rewritten.

2006-03-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* doc/vmintegration.texinfo:
	Updated with gnu.classpath.Unsafe
	
2006-03-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Updated with VMArray and Unsafe changes.
	
2006-03-20  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (ROWS_PER_WHEEL_CLICK): New field.
	(getScrollableUnitIncrement): Rewritten.
	* javax/swing/JTree.java (ROWS_PER_WHEEL_CLICK): New field.
	(getScrollableUnitIncrement): Rewritten. 
	(getScrollableBlockIncrement): Rewritten.
	* javax/swing/plaf/basic/BasicScrollPaneUI.java 
	(MouseWheelHandler): Implemented. (ViewportContainerListener): 
	New class. (containerListener): New field. (SCROLL_NON_SCROLABLES): 
	New field. (installListeners): Install wheel listeners. 
	(uninstallListeners): Uninstall wheel listeners.
	* javax/swing/plaf/basic/BasicTableUI.java: Remove the implementation
	of the MouseWheelListener. (installListeners): Do not install wheel
	listener. (ROWS_PER_WHEEL_CLICK): Removed.

2006-03-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* vm/reference/gnu/classpath/Unsafe.java:
	Documented.
	(getUnsafe()): Updated to handle security.

2006-03-19  Tom Tromey  <tromey@redhat.com>

	* vm/reference/gnu/classpath/Unsafe.java:
	New class to handle low-level facilities for concurrency.

2006-03-19  Mark Wielaard  <mark@klomp.org>

	* include/Makefile.am: Rename PlainDatagramSocketImpl to
	VMPlainDatagramSocketImpl and PlainSocketImpl to VMPlainSocketImpl.
	* include/gnu_java_net_VMPlainDatagramSocketImpl.h: Regenerated.
	* include/gnu_java_net_VMPlainSocketImpl.h: Likewise.

2006-03-19  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkFontPeer.java (getPostScriptName): Return
	familyName.
	* gnu/java/awt/peer/gtk/GtkFontPeer.java: Removed unused file.

2006-03-19  Michael Koch  <konqueror@gmx.de>

	* resource/gnu/java/locale/LocaleInformation_aa_ET.properties,
	resource/gnu/java/locale/LocaleInformation_am.properties,
	resource/gnu/java/locale/LocaleInformation_am_ET.properties,
	resource/gnu/java/locale/LocaleInformation_as_IN.properties,
	resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties,
	resource/gnu/java/locale/LocaleInformation_bg.properties,
	resource/gnu/java/locale/LocaleInformation_bn_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ca.properties,
	resource/gnu/java/locale/LocaleInformation_cs.properties,
	resource/gnu/java/locale/LocaleInformation_cy.properties,
	resource/gnu/java/locale/LocaleInformation_da.properties,
	resource/gnu/java/locale/LocaleInformation_de.properties,
	resource/gnu/java/locale/LocaleInformation_dv.properties,
	resource/gnu/java/locale/LocaleInformation_el.properties,
	resource/gnu/java/locale/LocaleInformation_en.properties,
	resource/gnu/java/locale/LocaleInformation_en_GB.properties,
	resource/gnu/java/locale/LocaleInformation_en_IN.properties,
	resource/gnu/java/locale/LocaleInformation_en_PK.properties,
	resource/gnu/java/locale/LocaleInformation_en_SG.properties,
	resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties,
	resource/gnu/java/locale/LocaleInformation_es.properties,
	resource/gnu/java/locale/LocaleInformation_es_AR.properties,
	resource/gnu/java/locale/LocaleInformation_es_BO.properties,
	resource/gnu/java/locale/LocaleInformation_es_CL.properties,
	resource/gnu/java/locale/LocaleInformation_es_CO.properties,
	resource/gnu/java/locale/LocaleInformation_es_CR.properties,
	resource/gnu/java/locale/LocaleInformation_es_DO.properties,
	resource/gnu/java/locale/LocaleInformation_es_EC.properties,
	resource/gnu/java/locale/LocaleInformation_es_ES.properties,
	resource/gnu/java/locale/LocaleInformation_es_GT.properties,
	resource/gnu/java/locale/LocaleInformation_es_HN.properties,
	resource/gnu/java/locale/LocaleInformation_es_MX.properties,
	resource/gnu/java/locale/LocaleInformation_es_NI.properties,
	resource/gnu/java/locale/LocaleInformation_es_PA.properties,
	resource/gnu/java/locale/LocaleInformation_es_PE.properties,
	resource/gnu/java/locale/LocaleInformation_es_PR.properties,
	resource/gnu/java/locale/LocaleInformation_es_PY.properties,
	resource/gnu/java/locale/LocaleInformation_es_SV.properties,
	resource/gnu/java/locale/LocaleInformation_es_US.properties,
	resource/gnu/java/locale/LocaleInformation_es_UY.properties,
	resource/gnu/java/locale/LocaleInformation_es_VE.properties,
	resource/gnu/java/locale/LocaleInformation_fa.properties,
	resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
	resource/gnu/java/locale/LocaleInformation_fa_IR.properties,
	resource/gnu/java/locale/LocaleInformation_fi.properties,
	resource/gnu/java/locale/LocaleInformation_fr.properties,
	resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
	resource/gnu/java/locale/LocaleInformation_ga.properties,
	resource/gnu/java/locale/LocaleInformation_gu_IN.properties,
	resource/gnu/java/locale/LocaleInformation_hi_IN.properties,
	resource/gnu/java/locale/LocaleInformation_hr.properties,
	resource/gnu/java/locale/LocaleInformation_hu.properties,
	resource/gnu/java/locale/LocaleInformation_id.properties,
	resource/gnu/java/locale/LocaleInformation_is.properties,
	resource/gnu/java/locale/LocaleInformation_it.properties,
	resource/gnu/java/locale/LocaleInformation_ja.properties,
	resource/gnu/java/locale/LocaleInformation_kk.properties,
	resource/gnu/java/locale/LocaleInformation_kl.properties,
	resource/gnu/java/locale/LocaleInformation_km.properties,
	resource/gnu/java/locale/LocaleInformation_ky.properties,
	resource/gnu/java/locale/LocaleInformation_lo.properties,
	resource/gnu/java/locale/LocaleInformation_lo_LA.properties,
	resource/gnu/java/locale/LocaleInformation_lt.properties,
	resource/gnu/java/locale/LocaleInformation_lt_LT.properties,
	resource/gnu/java/locale/LocaleInformation_lv.properties,
	resource/gnu/java/locale/LocaleInformation_mk.properties,
	resource/gnu/java/locale/LocaleInformation_mn.properties,
	resource/gnu/java/locale/LocaleInformation_mr.properties,
	resource/gnu/java/locale/LocaleInformation_mr_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ms.properties,
	resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
	resource/gnu/java/locale/LocaleInformation_mt.properties,
	resource/gnu/java/locale/LocaleInformation_nb.properties,
	resource/gnu/java/locale/LocaleInformation_nl.properties,
	resource/gnu/java/locale/LocaleInformation_nn.properties,
	resource/gnu/java/locale/LocaleInformation_om_ET.properties,
	resource/gnu/java/locale/LocaleInformation_or_IN.properties,
	resource/gnu/java/locale/LocaleInformation_pa.properties,
	resource/gnu/java/locale/LocaleInformation_pl.properties,
	resource/gnu/java/locale/LocaleInformation_pt.properties,
	resource/gnu/java/locale/LocaleInformation_ru.properties,
	resource/gnu/java/locale/LocaleInformation_ru_RU.properties,
	resource/gnu/java/locale/LocaleInformation_ru_UA.properties,
	resource/gnu/java/locale/LocaleInformation_sa.properties,
	resource/gnu/java/locale/LocaleInformation_sa_IN.properties,
	resource/gnu/java/locale/LocaleInformation_sk.properties,
	resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
	resource/gnu/java/locale/LocaleInformation_sv.properties,
	resource/gnu/java/locale/LocaleInformation_sw.properties,
	resource/gnu/java/locale/LocaleInformation_sw_TZ.properties,
	resource/gnu/java/locale/LocaleInformation_ta_IN.properties,
	resource/gnu/java/locale/LocaleInformation_te.properties,
	resource/gnu/java/locale/LocaleInformation_te_IN.properties,
	resource/gnu/java/locale/LocaleInformation_th.properties,
	resource/gnu/java/locale/LocaleInformation_ti.properties,
	resource/gnu/java/locale/LocaleInformation_ti_ER.properties,
	resource/gnu/java/locale/LocaleInformation_ti_ET.properties,
	resource/gnu/java/locale/LocaleInformation_tr.properties,
	resource/gnu/java/locale/LocaleInformation_tt.properties,
	resource/gnu/java/locale/LocaleInformation_uk.properties,
	resource/gnu/java/locale/LocaleInformation_ur.properties,
	resource/gnu/java/locale/LocaleInformation_uz.properties,
	resource/gnu/java/locale/LocaleInformation_zh.properties,
	resource/gnu/java/locale/LocaleInformation_zh_Hant.properties:
	More updates for CLDR 1.3.
	
2006-03-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* doc/vmintegration.texinfo:
	Updated to include VMArray.
	* include/Makefile.am:
	Replace java_lang_reflect_Array.h with
	java_lang_reflect_VMArray.h
	* include/java_lang_reflect_VMArray.h:
	New autogenerated header.
	* include/java_lang_reflect_Array.h:
	Removed.
	* java/lang/reflect/Array.java:
	(newInstance(Class,int)): Calls VMArray.
	(createMultiArray(Class,int[],int)): Likewise.
	(createObjectArray(Class,int)): Removed.
	* native/jni/java-lang/Makefile.am:
	Replaced java_lang_reflect_Array.c with
	java_lang_reflect_VMArray.c
	* native/jni/java-lang/java_lang_reflect_VMArray.c:
	Renamed from java_lang_reflect_Array.c.
	* vm/reference/java/lang/reflect/VMArray.java:
	(createObjectArray(Class,int)): Native method moved
	from java.lang.reflect.Array.

2006-03-19  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/plaf/metal/CustomizableTheme.java: New class.
	* examples/gnu/classpath/examples/swing/MetalThemeEditor.java:
	New class.
	* examples/gnu/classpath/examples/swing/Demo.java
	(mkButtonBar): Hook up theme editor.
	(mkMenuBar): Hook up theme editor.

2006-03-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(ApproveSelectionAction.actionPerformed): Added case for when
	nothing has been selected but the user has typed a filename
	into the textfield.
	(getFileName): Return the value of the text field.

2006-03-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JColorChooser.java
	(createDialog): Create JDialog instead of ModalDialog. Make this
	dialog modal by calling setModal(true).
	(ModalDialog): Removed unnecessary inner class.

2006-03-19  Tom Tromey  <tromey@redhat.com>

	* java/awt/font/NumericShaper.java: Rewrote.

2006-03-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTableUI.java:
	Implement MouseWheelListener. (ROWS_PER_WHEEL_CLICK):
	New field. MouseInputHandler.mouseWheelMoved): New method.
	(installListeners): Register MouseInputHandler as
	wheel listener also.
	
2006-03-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 26746
	* javax/swing/ViewportLayout.java (layoutContainer):
	If Scrollable tracks dimension, set view size to the port size. 
	If port is larger than the view, move the view to the top/left.

2006-03-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/MenuSelectionManager.java
	(isComponentPartOfCurrentMenu): Also consider the first element
	in a menu selection list. Make a isDescendentFrom check instead
	of simple equals to also catch sub components.

2006-03-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComboBox.java
	(actionPerformed): Fetch selected item directly from the editor
	instead of trying to get it from the event.

2006-03-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboBoxEditor.java
	(listener): Removed field.
	(BasicComboBoxEditor): Removed initialization of listener field.
	(addActionListener): Add listener directly to editor.
	(removeActionListener): Remove listener directly from editor.
	(ComboBoxEditorListener): Removed class.
	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(getPreferredSize): Fixed to return the minimumSize.
	(getMinimumSize): Improved code for more clearness.
	(getMaximumSize): Return (32767,32767) as requested by the mauve test.
	(rectangleForCurrentValue): Correctly respect insets.
	(getDefaultSize): Return preferredSize here. Dont override height
	with 100.
	(getDisplaySize): Moved around code for more clearness. Added
	handling of prototype renderer.
	(ComboBoxLayoutManager.layoutContainer): Set editor bounds after
	arrowButton bounds since the former depends on the latter.
	* javax/swing/plaf/metal/MetalComboBoxButton.java:
	(MetalComboBoxButton): Make button rollover disabled.
	(isFocusTraversable): Return false unconditionally.
	* javax/swing/plaf/metal/MetalComboBoxEditor.java:
	(EditorTextField): New class. Fixes the size properties.
	(MetalComboBoxEditor): Create instance of EditorTextField.
	* javax/swing/plaf/metal/MetalComboBoxUI.java:
	(getMinimumSize): Fixed editable size.

2006-03-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (BooleanCellRenderer): Rewritten.

2006-03-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalToolBarUI.java
	(update): Added overridden method to support OceanTheme.

2006-03-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTableUI.java (KeyHandler.keyTyped): 
	Activate the cell editing on character keystroke.

2006-03-18  Mark Wielaard  <mark@klomp.org>

	* java/awt/Component.java (eventTypeEnabled): Handle
	MouseEvent.MOUSE_WHEEL.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (postMouseWheelEvent):
	New callback method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(AWT_MOUSE_WHEEL): New constant.
	(AWT_WHEEL_UNIT_SCROLL): Likewise.
	(postMouseWheelEventID): New static variable.
	(cp_gtk_component_init_jni): Record postMouseWheelEventID.
	(cp_gtk_component_connect_mouse_signals): Connect scroll-event.
	(button_number): Renamed to ...
	(button_number_direction): variable to hold button number or scroll
	direction.
	(component_button_press_cb): Use button_number_direction.
	(component_scroll_cb): New static callback function.

2006-03-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax.swing.JTable.java (TableTextField.scrollRectToVisible):
	Return without action.

2006-03-18  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (paintComponent):
	Don't cast graphics object to GdkGraphics.
	(updateComponent): Likewise.

2006-03-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/TableDemo.java
	(TModel.getColumnClass): Set second column to Icon.
	(TModel.isCellEditable): Say icons are not editable.
	(createContent): Fill the in second column with some icons from 
	MetalIconFactory.

2006-03-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/Demo.java
	(mkButtonBar): Set maximal button bar height to the preferred height.

2006-03-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboPopup.java
	(show): Substract insets from scroller width.
	(getPopupHeightForRowCount): If height==0, return a default of 100
	instead for empty ComboBoxes.

2006-03-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(PopupHelper.autoClosePopups): Removed field.
	(PopupHelper.mousePressed): Removed processing of registered
	autoclose popups.
	(registerForAutoClose): Removed unneeded method.
	(autoClosePopups): Removed unneeded method.
	(registerForAutoClose): Removed unneeded method.

2006-03-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax.swing.JTable.java (TableTextField): Set border.
	(moveToCellBeingEdited): Do not adjust the editor boundaries

2006-03-18  Michael Koch  <konqueror@gmx.de>

	* resource/gnu/java/locale/LocaleInformation_aa.properties,
	resource/gnu/java/locale/LocaleInformation_af.properties,
	resource/gnu/java/locale/LocaleInformation_am.properties,
	resource/gnu/java/locale/LocaleInformation_ar.properties,
	resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties,
	resource/gnu/java/locale/LocaleInformation_be.properties,
	resource/gnu/java/locale/LocaleInformation_bg.properties,
	resource/gnu/java/locale/LocaleInformation_bn.properties,
	resource/gnu/java/locale/LocaleInformation_ca.properties,
	resource/gnu/java/locale/LocaleInformation_cs.properties,
	resource/gnu/java/locale/LocaleInformation_cy.properties,
	resource/gnu/java/locale/LocaleInformation_da.properties,
	resource/gnu/java/locale/LocaleInformation_de.properties,
	resource/gnu/java/locale/LocaleInformation_de_CH.properties,
	resource/gnu/java/locale/LocaleInformation_dz.properties,
	resource/gnu/java/locale/LocaleInformation_en.properties,
	resource/gnu/java/locale/LocaleInformation_eo.properties,
	resource/gnu/java/locale/LocaleInformation_es.properties,
	resource/gnu/java/locale/LocaleInformation_et.properties,
	resource/gnu/java/locale/LocaleInformation_eu.properties,
	resource/gnu/java/locale/LocaleInformation_fa.properties,
	resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
	resource/gnu/java/locale/LocaleInformation_fi.properties,
	resource/gnu/java/locale/LocaleInformation_fo.properties,
	resource/gnu/java/locale/LocaleInformation_fr.properties,
	resource/gnu/java/locale/LocaleInformation_ga.properties,
	resource/gnu/java/locale/LocaleInformation_gl.properties,
	resource/gnu/java/locale/LocaleInformation_gu.properties,
	resource/gnu/java/locale/LocaleInformation_he.properties,
	resource/gnu/java/locale/LocaleInformation_hi.properties,
	resource/gnu/java/locale/LocaleInformation_hr.properties,
	resource/gnu/java/locale/LocaleInformation_hu.properties,
	resource/gnu/java/locale/LocaleInformation_hy.properties,
	resource/gnu/java/locale/LocaleInformation_id.properties,
	resource/gnu/java/locale/LocaleInformation_is.properties,
	resource/gnu/java/locale/LocaleInformation_it.properties,
	resource/gnu/java/locale/LocaleInformation_ja.properties,
	resource/gnu/java/locale/LocaleInformation_ka.properties,
	resource/gnu/java/locale/LocaleInformation_km.properties,
	resource/gnu/java/locale/LocaleInformation_ko.properties,
	resource/gnu/java/locale/LocaleInformation_lo.properties,
	resource/gnu/java/locale/LocaleInformation_lt.properties,
	resource/gnu/java/locale/LocaleInformation_lv.properties,
	resource/gnu/java/locale/LocaleInformation_mk.properties,
	resource/gnu/java/locale/LocaleInformation_mr.properties,
	resource/gnu/java/locale/LocaleInformation_ms.properties,
	resource/gnu/java/locale/LocaleInformation_mt.properties,
	resource/gnu/java/locale/LocaleInformation_nb.properties,
	resource/gnu/java/locale/LocaleInformation_nl.properties,
	resource/gnu/java/locale/LocaleInformation_nn.properties,
	resource/gnu/java/locale/LocaleInformation_om.properties,
	resource/gnu/java/locale/LocaleInformation_pl.properties,
	resource/gnu/java/locale/LocaleInformation_ps.properties,
	resource/gnu/java/locale/LocaleInformation_pt.properties,
	resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
	resource/gnu/java/locale/LocaleInformation_ro.properties,
	resource/gnu/java/locale/LocaleInformation_ru.properties,
	resource/gnu/java/locale/LocaleInformation_sk.properties,
	resource/gnu/java/locale/LocaleInformation_sl.properties,
	resource/gnu/java/locale/LocaleInformation_so.properties,
	resource/gnu/java/locale/LocaleInformation_sq.properties,
	resource/gnu/java/locale/LocaleInformation_sr.properties,
	resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
	resource/gnu/java/locale/LocaleInformation_sv.properties,
	resource/gnu/java/locale/LocaleInformation_sw.properties,
	resource/gnu/java/locale/LocaleInformation_ta.properties,
	resource/gnu/java/locale/LocaleInformation_te.properties,
	resource/gnu/java/locale/LocaleInformation_th.properties,
	resource/gnu/java/locale/LocaleInformation_tr.properties,
	resource/gnu/java/locale/LocaleInformation_uk.properties,
	resource/gnu/java/locale/LocaleInformation_uz.properties,
	resource/gnu/java/locale/LocaleInformation_vi.properties,
	resource/gnu/java/locale/LocaleInformation_zh.properties,
	resource/gnu/java/locale/LocaleInformation_zh_Hant.properties:
	Updated to use the new localized strings for currencies, languages,
	variants, territories, etc.

2006-03-18  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/REMatch.java(matchedCharIndexed): New field,
	(start, end): Added comment about the negative values of them,
	(finish): Saves the input text in matchedCharIndexed,
	(toString): If the start or end index is out of bounds of the
	matched text, get the substring from matchedCharIndexed.
	Added special handlings in case start/end index < -1,
	(getSubStartIndex, getStartIndex, getSubEndIndex, getEndIndex):
	Added special handlings in case start/end index < -1,
	* gnu/regexp/RETokenLookAhead.java(matchThis): Return the newly
	found match, but keep the index as the original match.
	* gnu/regexp/RETokenLookBehind.java(matchThis): Return the newly
	found match, but keep the index as the original match.
	* gnu/regexp/RETokenBackRef.java(matchThis): Added special handlings
	in case start/end index < -1.
	
2006-03-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/activation/ActivationSystemTransient.java (debug):
	Set to false. 	

2006-03-17  Robert Schuster  <robertschuster@fsfe.org>
  	 
	* javax/swing/text/DefaultCaret.java:
	(mouseClicked) Use setDot() and moveDot() instead of
	JTextComponent.select().

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalComboBoxEditor.java
	(MetalComboBoxEditorBorder.paintBorder): Implemented special
	border painting for the Ocean theme.
	(MetalComboBoxEditor): Create editor directly instead of going
	to super.
	
2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/JTextComponent.java
	(JTextComponent): Make text components opaque.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalComboBoxUI.java
	(MetalComboBoxLayoutManager.layoutContainer): Forward to
	layoutComboBox().
	(MetalPropertyChangeListener.propertyChange): Update focusable
	flag according to the enable and editable state.
	(editablePropertyChanged): Removed unnecessary code.
	(getMinimumSize): Rewritten to correctly compute the
	size, respecting the insets of the components and the icon,
	the visual properties of the combobox, etc.
	(configureEditor): Update listeners correctly.
	(unconfigureEditor): Update listeners correctly.
	(layoutComboBox): Implemented.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalComboBoxEditor.java
	(MetalComboBoxEditorBorder): Made this a subclass of AbstractBorder
	instead of Flush3DBorder.
	(paintBorder): Fixed border painting.
	(editorBorderInsets): Fixed border's insets.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalComboBoxButton.java
	(rendererPane): Documented.
	(MetalComboBoxButton): Set enabled flag from ComboBox.
	Set focusable flag from ComboBox's enabled flag.
	(isFocusTraversable): Make button focus traversable if
	ComboBox is not editable but enable.
	(paintComponent): Fixed painting to correctly adjust
	the boxes of the renderer and button.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(installDefaults): Only install UI margin if installed margin.
	is null or a UIResource. 	 
	(uninstallDefaults): Only uninstall margin if it's 	 
	a UIResource. 	 
  	 
 2006-03-17  Robert Schuster  <robertschuster@fsfe.org> 	 
  	 
         * javax/swing/text/DefaultCaret.java: 	 
         (mouseClicked) Use setDot() and moveDot() instead of 	 
         JTextComponent.select(). 	 
 
2006-03-17  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultEditorKit.java: Refactored anonymous
	inner classes into package-private inner classes, added actions
	for caret movement and selection to the next and previous word
	and an action which selects the whole text.

2006-03-17  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/swing/Spring.java: Uncomment springdebug methods and
	rename them toString.
	* javax/swing/SpringLayout.java: Likewise.

2006-03-17  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/FieldView.java:
	(viewToModel): Added call to adjust allocation area.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(mouseListener): Removed field.
	(buttonBackground): Removed field.
	(buttonShadow): Removed field.
	(buttonDarkShadow): Removed field.
	(buttonHighlight): Removed field.
	(BasicComboBoxUI): Initialize currentValuePane and cachedMinimumSize.
	(installUI): Initialize and configure renderer and editor here.
	(uninstallUI): Close popup before uninitializing.
	Message popup that we are uninitializing. Clear layout.
	(installDefaults): Install UI border. Don't install colors.
	(installListeners): Install listeners fetched from the popup.
	Remove handling of mouseListener.
	(uninstallDefaults): Uninstall border. Don't handle colors.
	(uninstallListeners): Don't handle mouseListener. Uninstall
	listener from the popup.
	(createMouseListener): Removed method.
	(createRenderer): Create UIResource.
	(installComponents): Cleaned up.
	(uninstallComponents): Only remove renderer when it is
	a UIResource.
	(addEditor): Remove editor before adding new one.
	Fetch editor from comboBox.
	(removeEditor): Only do something when editor != null. Unconfigure
	editor before removing.
	(configureEditor): Add key listener. Call comboBox.configureEditor.
	(unconfigureEditor): Removed key listener.
	(configureArrowButton): Only handle when arrowButton != null.
	Add mouse listeners to arrow button.
	(unconfigureArrowButton): Remove listeners.
	(createArrowButton): Don't handle colors here.
	(setPopupVisible): Don't handle focus here.
	(paint): Only paint when comboBox is not editable. Update
	hasFocus flag.
	(getPreferredSize): Implemented to be minimumSize + 4 pixels width.
	(getMinimumSize): Respect insets here.
	(getMaximumSize): Return preferredSize with width of 32767.
	(getInsets): Return ComboBox insets.
	(paintCurrentValue): Paint using currentValuePane.
	Install correct colors. Don't revalidate.
	(paintCurrentValueBackground): Implemented.
	(getDefaultSize): Reimplemented using a default renderer.
	(getDisplaySize): Reimplemented to use renderer.
	(ComboBoxLayoutManager.preferredLayoutSize): Forward to component.
	(ComboBoxLayoutManager.minimumLayoutSize): Forward to component.
	(ComboBoxLayoutManager.layoutContainer): Fixed layout.
	(FocusHandler.focusGained): Don't invalidate minimumSize.
	(FocusHandler.focusLost): Don't invalidate minimumSize.
	Only close popup if focus change is not temporary.
	(ItemHandler.itemStateChanged): Don't invalidate minimumSize.
	Reconfigure editor if not null.
	(ListDataHandler.contentsChanged): Revalidate and reconfigure
	editor if necessary.
	(ListDataHandler.intervalAdded): Fixed updating of the display size.
	(ListDataHandler.intervalRemoved): Forward to contentsChanged.
	(MouseHandler): Removed unnecessary class.

2006-03-17  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/Demo.java:
	(Demo): Set default closing operation to shutdown the runtime.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboPopup.java
	(BasicComboPopup): Create listeners here.
	Configure components here.
	(show): Correctly calculate bounds using computePopupBounds().
	Make scroller fixed-size. Removed special autocloser handling.
	(hide): Rewritten to use MenuSelectionHandler.
	(createList): Don't set selection mode here.
	(configureList): Correctly install colors and fonts and selectionMode.
	(createScroller): Set scrollpane policies.
	(configureScroller): Make scroller and scrollbar not-focusable.
	(configurePopup): Make popup opaque and borderPainted.
	(installComboBoxListeners): Don't install mouse listener on ComboBox.
	(delegateFocus): Implemented.
	(convertMouseEvent): Implemented.
	(updateListBoxSelectionForEvent): Implemented to also handle
	autoscrolling.
	(InvocationMouseHandler.mousePressed): Delegate focus correctly.
	Only open popup on left mouse-click.
	(InvocationMouseHandler.mouseReleased): Rewritten.
	(InvocationMouseMotionHandler.mouseDragged): Rewritten to better
	support autoscrolling.
	(ItemHandler.itemStateChanged): Implemented to sync selection with
	the comboBox.
	(ListMouseHandler.mouseReleased): Fetch selected index directly
	from list.
	(ListMouseMotionHandler.mouseMoved): Only update when mouse is inside
	the list box.
	(PropertyChangeHandler.propertyChange): Don't revalidate/repaint here.
	When model changes, then update listeners correctly.
	(uninstallListeners): Don't uninstall list listeners.
	(uninstallComboBoxListeners): Don't uninstall mouse listeners
	from comboBox.
	(syncSelection): New helper method.

2006-03-17  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/PlainView.java:
	(drawLine): Rewritten.
	(drawSelectedText): Corrected last argument for
	Utilities.drawTabbedText() call.
	(paint): Store start and end of selection in object variables,
	store constant values of for-loop in local variables.
	* javax/swing/text/Utilities.java:
	(drawTabbedText): Add 'pixelWidth' to the return value, store
	constant value of for-loop in local variable.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboPopup.java
	(BasicComboPopup): Create listeners here.
	Configure components here.
	(show): Correctly calculate bounds using computePopupBounds().
	Make scroller fixed-size. Removed special autocloser handling.
	(hide): Rewritten to use MenuSelectionHandler.
	(createList): Don't set selection mode here.
	(configureList): Correctly install colors and fonts and selectionMode.
	(createScroller): Set scrollpane policies.
	(configureScroller): Make scroller and scrollbar not-focusable.
	(configurePopup): Make popup opaque and borderPainted.
	(installComboBoxListeners): Don't install mouse listener on ComboBox.
	(delegateFocus): Implemented.
	(convertMouseEvent): Implemented.
	(updateListBoxSelectionForEvent): Implemented to also handle
	autoscrolling.
	(InvocationMouseHandler.mousePressed): Delegate focus correctly.
	Only open popup on left mouse-click.
	(InvocationMouseHandler.mouseReleased): Rewritten.
	(InvocationMouseMotionHandler.mouseDragged): Rewritten to better
	support autoscrolling.
	(ItemHandler.itemStateChanged): Implemented to sync selection with
	the comboBox.
	(ListMouseHandler.mouseReleased): Fetch selected index directly
	from list.
	(ListMouseMotionHandler.mouseMoved): Only update when mouse is inside
	the list box.
	(PropertyChangeHandler.propertyChange): Don't revalidate/repaint here.
	When model changes, then update listeners correctly.
	(uninstallListeners): Don't uninstall list listeners.
	(uninstallComboBoxListeners): Don't uninstall mouse listeners
	from comboBox.
	(syncSelection): New helper method.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboBoxRenderer.java
	(noFocusBorder): Make border with insets of (1,1,1,1).
	(BasicComboBoxRenderer): Make renderer opaque.
	No need to explicitly set alignment.
	(getListCellRendererComponent): Rewritten to correctly initialize
	color and font.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JPopupMenu.java
	(setVisible): Handle JPopupMenu opening and closing via
	the MenuSelectionHandler.

2006-03-17  Wolfgang Baer  <WBaer@gmx.de>

	* org/omg/DynamicAny/DynAnyPackage/InvalidValue.java: Now final.
	* org/omg/DynamicAny/DynAnyPackage/TypeMismatch.java: Likewise.
	* org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.java: 
	Likewise.	
	* org/omg/CORBA/portable/RemarshalException.java: Likewise
	* org/omg/CORBA/TypeCodePackage/BadKind.java: Likewise.
	* org/omg/CORBA/TypeCodePackage/Bounds.java: Likewise.
	* org/omg/CORBA/ORBPackage/InvalidName.java: Likewise.
	* org/omg/CORBA/ORBPackage/InconsistentTypeCode.java: Likewise.
	* org/omg/CORBA/DynAnyPackage/TypeMismatch.java: Likewise.
	* org/omg/CORBA/DynAnyPackage/InvalidValue.java: Likewise.
	* org/omg/CORBA/DynAnyPackage/InvalidSeq.java: Likewise.
	* org/omg/CORBA/DynAnyPackage/Invalid.java: Likewise.
	* org/omg/Dynamic/Parameter.java: Now final, javadoc fixes.

2006-03-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/activation/Activatable.java: Implemented.
	java/rmi/activation/ActivationDesc.java: Implemented.
	java/rmi/activation/ActivationGroup.java: Implemented.
	java/rmi/activation/ActivationGroupDesc.java: Implemented.
	java/rmi/activation/ActivationID.java: Implemented.
	java/rmi/activation/ActivationSystem.java: Implemented.
	* gnu/java/rmi/server/UnicastServerRef.java 
	(exportObject, incommingMessageCall): Documented.
	* java/rmi/activation/package.html: Documented.
	* java/rmi/server/ObjID.java (objNum, space): Made package
	protected.
	* gnu/java/rmi/server/UnicastServer.java: Rewritten.
	* gnu/java/rmi/server/CombinedClassLoader.java (constructor):
	Iteration bug fix.
	* gnu/java/rmi/activation/ActivationSystemTransient.java: New file.
	gnu/java/rmi/activation/BidiTable.java: New file.
	gnu/java/rmi/activation/DefaultActivationGroup.java: New file.
	gnu/java/rmi/activation/DefaultActivationSystem.java: New file.
	gnu/java/rmi/server/ActivatableServerRef.java: New file.

2006-03-17  Mark Wielaard  <mark@klomp.org>

	* java/security/BasicPermission.java (BasicPermission): Check
	name equals empty string to force NullPointerException.

2006-03-16  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR classpath/26606
	Commit patch by Caolan McNamara  <caolanm@redhat.com>
	* javax/swing/Spring.java: Complete implementation
	* javax/swing/SpringLayout.java: Likewise.

2006-03-16  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/Jdwp.java (_mainThread): Not needed. Removed
	all references.
	(run): Remove catch clause for InterruptedException. It is no
	longer necessary.

2006-03-16  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(getFontMetrics): Handle monospaced fonts specially.

2006-03-16  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/Jdwp.java (getJdwpThreadGroup): New method.
	* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
	(suspendAllThreads): Use Jdwp.getJdwpThreadGroup.
	Don't suspend the current thread unless it is not part of the JDWP
	thread group.

2006-03-16  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkFontMetrics.java (getLeading): Always
	return 0.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java (getFontMetrics): Get
	font metrics through toolkit.
	* gnu/java/awt/peer/gtk/GdkGraphics.java (getFontMetrics):
	Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(getFontMetrics): To calculate Java logical ascent and descent
	values, average Pango ink and logical values.

2006-03-16  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/lang/Character.java: Updated header comment.

2006-03-16  Tom Tromey  <tromey@redhat.com>

	* javax/sound/sampled/AudioSystem.java (getAudioFileFormat): New
	constructor.
	* javax/sound/sampled/FloatControl.java: Now abstract.
	* javax/sound/sampled/EnumControl.java: Now abstract.
	* javax/sound/sampled/CompoundControl.java: Now abstract.
	* javax/sound/sampled/BooleanControl.java: Now abstract.

2006-03-16  Tom Tromey  <tromey@redhat.com>

	* java/awt/image/ConvolveOp.java (getBounds2D): Now final.

2006-03-16  Roman Kennke  <kennke@aicas.com>

	* java/util/zip/ZipFile.java
	(openFile): New helper method.
	(ZipFile): Use new openFile method to ensure the proper
	exception is thrown. This applies for all overloaded constructors.

2006-03-16  Roman Kennke  <kennke@aicas.com>

	* java/text/DateFormatSymbols.java
	(setAmPmStrings): Added null check and throw NPE.
	(setEras): Likewise.
	(setLocalPatternChars): Likewise.
	(setMonths): Likewise.
	(setShortMonths): Likewise.
	(setShortWeekdays): Likewise.
	(setWeekdays): Likewise.
	(setZoneStrings): Likewise.

2006-03-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/DefaultDesktopManager.java
	(iconifyFrame): Repaint after removing the frame.
	(removeIconFor): Repaint after removing the icon.

2006-03-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(remove): Respect the rootPaneCheckingEnabled flag here.

2006-03-16  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/plaf/gnu/GNULookAndFeel.java
	Moved from examples into gnu.javax.swing.. namespace.
	* examples/gnu/classpath/examples/swing/GNULookAndFeel.java
	Moved to gnu.javax.swing.. namespace.
	* examples/gnu/classpath/examples/swing/Demo.java:
	(themesMenu): New field. Used to disable theme switch in
	non-Metal-L&Fs.
	(mkMenuBar): Added L&F menu.
	(ChangeThemeAction.actionPerformed): Only switch theme when
	in Metal L&F.
	(ChangeLAFAction): New class used for changing themes.
	* javax/swing/UIManager.java
	(installed): Added GNU L&F as installed L&F.

2006-03-16  Mark Wielaard  <mark@klomp.org>

	* examples/gnu/classpath/examples/swing/badge.png: Removed.
	* examples/gnu/classpath/examples/icons/badge.png: Added.
	* examples/gnu/classpath/examples/swing/DemoDesktop.java: Use badge
	from icon directory.

2006-03-15  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* examples/gnu/classpath/examples/awt/AnimationApplet.java: New
	example.
	* examples/gnu/classpath/examples/swing/FillRect.java: Likewise.
	* examples/gnu/classpath/examples/awt/Demo.java: Add
	AnimationApplet demo.
	* examples/gnu/classpath/examples/swing/Demo.java: Add FillRect
	demo.

2006-03-15  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR classpath/26486
	* gnu/java/awt/peer/gtk/GtkCanvasPeer.java (getGraphics): Remove
	method.
	(handleEvent): Likewise.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (isInRepaint):
	Remove field.
	(beginNativeRepaint): Remove method.
	(endNativeRepaint): Likewise.
	(handleEvent): Call paintComponent and updateComponent.
	(paintComponent): New method.
	(updateComponent): Likewise.
	(repaint): Return early if width or height is less than one.
	(postExposeEvent): Remove isInRepaint reference.
	* gnu/java/awt/peer/gtk/GtkContainerPeer.java: (getGraphics):
	Remove method.
	* gnu/java/awt/peer/gtk/GtkDialogPeer.java (getGraphics): Inherit
	from GtkWindowPeer.
	(postMouseEvent): Likewise.
	(postExposeEvent): Likewise.
	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java (updateComponent):
	Override to do nothing.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java (getGraphics): Inherit
	from GtkWindowPeer.
	(postMouseEvent): Likewise.
	(postExposeEvent): Likewise.
	* gnu/java/awt/peer/gtk/GtkPanelPeer.java (handleEvent): Inherit
	paint and update handling from GtkComponentPeer.
	(updateComponent): Override to call paintComponent.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c: Replace
	gdk_flush calls with schedule_flush calls.
	(flush): New function.
	(schedule_flush): Likewise.

2006-03-15  Tom Tromey  <tromey@redhat.com>

	* java/beans/beancontext/BeanContextSupport.java (BCSChild): New
	constructor.
	(BCSIterator): Likewise.
	* java/beans/beancontext/BeanContextServicesSupport.java (BCSSChild):
	New constructor.
	(BCSSProxyServiceProvider): Likewise.
	(BCSSServiceProvider): Likewise.

2006-03-15  Tom Tromey  <tromey@redhat.com>

	* javax/sound/midi/Track.java (Track): New constructor.
	(events): Now package-private.
	* javax/sound/midi/MidiUnavailableException.java
	(MidiUnavailableException): Removed invalid constructors.
	* javax/sound/midi/MidiSystem.java (MidiSystem): New constructor.
	* javax/sound/midi/InvalidMidiDataException.java
	(InvalidMidiDataException): Removed invalid constructors.
	* javax/sound/midi/Sequencer.java (hashCode): Now final.
	* javax/sound/midi/SysexMessage.java (SysexMessage): Now protected.
	* javax/sound/midi/ShortMessage.java (ShortMessage): Now protected.
	(SYSTEM_EXCLUSIVE): Removed.
	(getDataLength): Updated.
	* javax/sound/midi/MidiDevice.java (Info): Now protected.
	(equals): Now final
	(getName): Now final.
	(getVendor): Now final.
	(getDescription): Likewise.
	(hashCode): Likewise.
	(getVersion): Likewise.
	(toString): Likewise.
	* javax/sound/midi/MetaMessage.java (MetaMessage): Now protected.
	* javax/sound/sampled/ReverbType.java (getDecayTime): Now final.
	(getEarlyReflectionDelay): Likewise.
	(getEarlyReflectionIntensity): Likewise.
	(getLateReflectionDelay): Likewise.
	(getLateReflectionIntensity): Likewise.
	(toString): Likewise.
	* javax/sound/sampled/Port.java (toString): Now final.
	* javax/sound/sampled/LineEvent.java (getFramePosition): Now final.
	(getLine): Likewise.
	(getType): Likewise.
	* javax/sound/sampled/Mixer.java (Info): Now protected.
	(getDescription): Now final.
	(getName): Likewise.
	(getVendor): Likewise.
	(getVersion): Likewise.
	(toString): Likewise.
	* javax/sound/sampled/Control.java: Now abstract.
	(Type.toString): Now final.

2006-03-15  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/util/LineTable.java (lines): Remove all occurances
	of this redundant variable.
	(LineTable): Assert that the number of line numbers and the number of
	code indicies is the same.

2006-03-15  Tom Tromey  <tromey@redhat.com>

	* javax/imageio/stream/ImageOutputStreamImpl.java (flushBits): Now
	final.
	* javax/imageio/stream/ImageOutputStream.java (flushBefore): Javadoc
	fix.
	* java/util/zip/ZipFile.java (ENDNRD): New constant.
	* java/util/zip/ZipConstants.java (ENDNRD, ENDDCD): Removed.
	* java/util/zip/Inflater.java (end): Not deprecated.
	* java/util/zip/Deflater.java (end): Not deprecated.
	* java/text/Bidi.java (Bidi): Now final.
	* java/nio/MappedByteBuffer.java (finalize): Now protected.

2006-03-15  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/util/Location.java: Rewrite using VMMethod.
	(Location): Index is a long, not an int.
	(getMethod): New method.
	(getIndex): New method.
	(toString): New method.

2006-03-15  Tom Tromey  <tromey@redhat.com>

	* java/awt/image/RescaleOp.java (getRenderingHints): Now final.
	* java/awt/image/LookupOp.java (filter): Now final.
	(getBounds2D): Likewise.
	(getPoint2D): Likewise.
	(getTable): Likewise.
	(getRenderingHints): Likewise.
	* java/awt/image/ConvolveOp.java (filter): Now final.
	(getBounds2D): Likewise.
	(getKernel): Likewise.
	(getPoint2D): Likewise.
	(getRenderingHints): Likewise.
	* java/awt/image/BandCombineOp.java (getPoint2D): Now final.
	(getMatrix): Likewise.
	(getBounds2D): Likewise.
	(getRenderingHints): Likewise.
	* java/awt/image/AffineTransformOp.java (getPoint2D): Now final.
	* java/awt/Button.java (AccessibleAWTButton.serialVersionUID): Now
	private.
	* java/awt/dnd/DropTargetContext.java (TransferableProxy): Now
	protected.
	* java/awt/dnd/DropTarget.java (DropTargetAutoScroller): Now
	protected.
	* java/awt/MenuItem.java (AccessibleAWTMenuItem): Now protected.

2006-03-15  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/filters/LocationOnlyFilter.java:
	Update javadoc.
	(matches): Implement.

2006-03-15  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/BreakpointEvent.java: New file.
	
	* gnu/classpath/jdwp/exception/NativeMethodException.java: New file.

2006-03-15  Tom Tromey  <tromey@redhat.com>

	* java/lang/StrictMath.java (signum): New methods.

2006-03-15  Tom Tromey  <tromey@redhat.com>

	* .settings/org.eclipse.jdt.core.prefs: Set tabs to 8 spaces.

2006-03-15  Lillian Angel  <langel@redhat.com>

	PR classpath/24211
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSurfaceSetFilterUnlocked):
	Added check to avoid segmentation fault.

2006-03-15  Lillian Angel  <langel@redhat.com>

	* java/awt/Container.java
	(getComponentAt): Fixed documentation.
	(getComponentAt): Likewise.

2006-03-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(dragBuffer): New field.
	(dragBufferInitialized): New field.
	(paint): Added facility for buffered dragging of components.
	(initializeDragBuffer): New method.
	(getConditionForKeyStroke): Removed deprecated flag. Adjusted
	API docs.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(BorderListener.mouseDragged): Turn on buffered dragging.
	(BorderListener.mouseReleased): Turn off buffered dragging.

2006-03-15  Lillian Angel  <langel@redhat.com>

	* java/awt/Container.java
	(getComponentAt): Fixed documentation.
	(getComponentAt): Likewise.
	(findComponentAt): Likewise.
	(findComponentAt): Likewise.

2006-03-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(PropertyChangeHandler.propertyChange): Call enableActions().
	Fixed 'iconable' property name.

2006-03-15  Chris Burdess  <dog@gnu.org>

	Fixes PR 26700
	* gnu/xml/stream/XMLParser.java: Fix for detectEncoding false positive.

2006-03-15  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/Demo.java:
	(desktop): New field.
	(mkMenuBar): Added new subdemos.
	(mkButtonWorld): Removed.
	(CheckCellRenderer): Moved to ListDemo.
	(LabelCellRenderer): Moved to ListDemo.
	(mkTreeWorld): Moved to TreeDemo.
	(mkDesktopWorld): Removed.
	(mkTabWorld): Moved to TabbedPaneDemo.
	(mkTabbedPane): Removed.
	(Demo): Replaced 'worlds' tabbed pane with desktop.
	(PopupAction): Made class non-static.
	(PopupAction.actionPerformed): Bring up subdemos in internal
	frame.
	(mkButtonBar): Added new demos.
	(createDesktop): New method.
	* examples/gnu/classpath/examples/swing/DemoDesktop.java: New class.
	* examples/gnu/classpath/examples/swing/ListDemo.java: New demo.
	* examples/gnu/classpath/examples/swing/TreeDemo.java: New demo.
	* examples/gnu/classpath/examples/swing/TabbedPaneDemo.java: New demo.
	* examples/gnu/classpath/examples/swing/badge.png: New image file.

2006-03-15  Lillian Angel  <langel@redhat.com>
	
	* java/awt/Container.java
	(getComponentAt): Fixed mistake in comments.
	(getComponentAt): Likewise.
	(locate): Likewise. Also, handled lightweight components.
	Heavyweights take precedence over lightweights, so we should
	iterate through the heavyweights first.

2006-03-15  Lillian Angel  <langel@redhat.com>

	* java/awt/Container.java
	(getComponentAt): Added API documentation.
	(getComponentAt): Likewise.
	(locate): Likewise. Also, removed lines to ignore
	invisible components.
	(findComponentAt): Added API documentation.
	(findComponentAt): Added API documentation.
	(findComponentForMouseEvent): Removed, never used.

2006-03-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/Popup.java
	(LightweightPopup.show): Repaint the panel after showing it.

2006-03-15  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(show): repaint should only be called if the component
	isShowing and isLightweight.

2006-03-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(setClosable): Made this property bound.
	(setResizable): Made this property bound.
	(setIconifiable): Made this property bound.
	(setMaximizable): Made this property bound.

2006-03-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/TableColumn.java
	(sizeWidthToFit): Implemented.

2006-03-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/TableColumn.java: API docs updated all over, plus
	(setIdentifier): Fire required PropertyChangeEvent,
	(setCellEditor): Likewise.

2006-03-15  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/ButtonDemo.java,
	* examples/gnu/classpath/examples/swing/ComboBoxDemo.java,
	* examples/gnu/classpath/examples/swing/FileChooserDemo.java,
	* examples/gnu/classpath/examples/swing/ProgressBarDemo.java,
	* examples/gnu/classpath/examples/swing/ScrollBarDemo.java,
	* examples/gnu/classpath/examples/swing/SliderDemo.java,
	* examples/gnu/classpath/examples/swing/SpinnerDemo.java,
	* examples/gnu/classpath/examples/swing/TableDemo.java,
	* examples/gnu/classpath/examples/swing/TextAreaDemo.java,
	* examples/gnu/classpath/examples/swing/TextFieldDemo.java:
	Reworked to implemented DemoFactory and lazy loading of Sub-demos.
	* examples/gnu/classpath/examples/swing/Demo.java:
	Cleaned up. Reworked handling of Sub-demos to load lazily.
	* examples/gnu/classpath/examples/swing/DemoFactory.java:
	New interface. Used for loading the subdemos lazily.

2006-03-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicToolBarUI.java
	(PropertyListener.propertyChange): Added null check to avoid NPE.

2006-03-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/TableColumn.java
	(COLUMN_WIDTH_PROPERTY): Updated API docs,
	(width): Likewise.
	(minWidth): Likewise,
	(preferredWidth): Likewise,
	(maxWidth): Likewise,
	(headerRenderer): Likewise,
	(cellRenderer): Likewise,
	(cellEditor): Likewise,
	(changeSupport): Likewise,
	(firePropertyChange(String, Object, Object)): Removed,
	(firePropertyChange(String, int. int)): Likewise,
	(firePropertyChange(String, boolean, boolean)): Likewise,
	(setModelIndex): Fire property change,
	(setHeaderValue): Call changeSupport directly to generate event,
	(setHeaderRenderer): Likewise,
	(setCellRenderer): Likewise,
	(setWidth): Likewise,
	(setPreferredWidth): Likewise,
	(setMinWidth): Likewise,
	(setMaxWidth): Likewise,
	(createDefaultHeaderRenderer): Added API docs.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	Removed static initializer.
	(mkMenuBar): Made method non-static. Added themes menu.
	(ChangeThemeAction): New inner class, used to change themes.

2006-03-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/TableColumn.java
	(setMaxWidth): Updated width and preferredWidth if necessary,
	(getMaxWidth): Updated API docs.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(TrackListener.mouseDragged): Only process event when slider is
	enabled.
	(TrackListener.mouseReleased): Only process event when slider is
	enabled.
	(TrackListener.mousePressed): Only process event when slider is
	enabled.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* NEWS: Added note about OceanTheme support.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(HorizontalSliderThumbIcon.gradientMask): New field
	(HorizontalSliderThumbIcon.paintIcon): Added support for the
	OceanTheme.
	(VerticalSliderThumbIcon.gradientMask): New field
	(VerticalSliderThumbIcon.paintIcon): Added support for the
	OceanTheme.
	* javax/swing/plaf/metal/MetalUtils.java
	(paintHorizontalGradient): Fixed painting of 'masked' gradients.
	(paintVerticalGradient): Fixed painting of 'masked' gradients.

2006-03-14  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26641
	* java/awt/LightweightDispatcher.java (dispatchEvent): Return result
	of handleMouseEvent.
	(handleMouseEvent): Return boolean to indicate whether we handled the
	event by passing it to a lightweight.

2006-03-14  Wolfgang Baer  <WBaer@gmx.de>

	* org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.java,
	* org/omg/PortableServer/ServantActivatorPOA.java,
	* org/omg/PortableServer/ServantLocatorPOA.java: 
	Make class abstract and minor api docs fixlets.
	* org/omg/PortableServer/ForwardRequest.java, 
	* org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java, 
	* org/omg/PortableServer/POAPackage/AdapterAlreadyExists.java, 
	* org/omg/PortableServer/POAPackage/AdapterNonExistent.java, 
	* org/omg/PortableServer/POAPackage/InvalidPolicy.java, 
	* org/omg/PortableServer/POAPackage/NoServant.java, 
	* org/omg/PortableServer/POAPackage/ObjectAlreadyActive.java, 
	* org/omg/PortableServer/POAPackage/ObjectNotActive.java, 
	* org/omg/PortableServer/POAPackage/ServantAlreadyActive.java, 
	* org/omg/PortableServer/POAPackage/ServantNotActive.java, 
	* org/omg/PortableServer/POAPackage/WrongAdapter.java, 
	* org/omg/PortableServer/POAPackage/WrongPolicy.java, 
	* org/omg/PortableServer/POAManagerPackage/AdapterInactive.java, 
	* org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java,
	* org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java,
	* org/omg/PortableServer/CurrentPackage/NoContext.java: Make class final.

2006-03-14  Wolfgang Baer  <WBaer@gmx.de>

	* NEWS: Added entry about printing support.

2006-03-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/TableColumn.java
	(COLUMN_WIDTH_PROPERTY): Updated API docs,
	(isResizable): Likewise,
	(setWidth): Likewise,
	(getWidth): Likewise,
	(setPreferredWidth): Likewise,
	(getPreferredWidth): Likewise,
	(setMinWidth): Check for negative argument and update width and 
	preferredWidth if necessary,
	(getMinWidth): Updated API docs.

2006-03-14  Lillian Angel  <langel@redhat.com>
	
	* java/awt/Container.java
	(addImpl): Removed call to repaint. No need to repaint here.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalSliderUI.java
	(paintTrack): Added OceanTheme support.

2006-03-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/TableColumn.java
	(setResizable): Fire PropertyChangeEvent if the flag value changes,
	(isResizable): Updated API docs.

2006-03-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/LookAndFeel.java: Updated API docs.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalUtils.java
	(paintGradient): Added support for 'masked' gradients.
	(paintHorizontalGradient): Likewise.
	(paintVerticalGradient): Likewise.
	* javax/swing/plaf/metal/MetalIconFactory.java
	(RadioButtonIcon.gradientMask): New field.
	(RadioButtonIcon.paintIcon): Added mask for gradient painting.

2006-03-14  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26645.
	* javax/swing/plaf/basic/BasicComboBoxEditor.java (listener):
	New field.
	(removeActionListener): Add listener to ComboBoxEditorListener.
	(removeActionListener): Remove listener from ComboBoxEditorListener.
	(ComboBoxEditorListener): New static helper class.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(getToolBarButtonBorder): Don't create a UIResource border
	here.
	* javax/swing/plaf/metal/MetalToolBarUI.java
	(installUI): New overridden method. Installs the rollover property.
	(uninstallUI): New overridden method. Resets the rollover property.
	* javax/swing/plaf/metal/MetalUtils.java
	(paintGradient): Fetch Float values from the UIManager. Adjusted
	method signatures accordingly.
	(paintHorizontalGradient): Adjusted signature to accept float
	instead of double.
	(paintVerticalGradient): Adjusted signature to accept float
	instead of double.
	* javax/swing/plaf/metal/OceanTheme.java
	(addCustomEntriesToTable): Added missing UIDefaults entries,
	except of Icons. Fixed gradient entries to use Float instead
	of Double.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(JInternalFrame): Make JInternalFrame opaque.
	* javax/swing/JToolBarFrame.java
	(JToolBar): Make JToolBar opaque.

2006-03-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/TreeNode.java: Fixed bad API doc tags,
	* javax/swing/tree/TreePath.java: Likewise.

2006-03-13  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
	(executeMethods): Output number of methods.

2006-03-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(uninstallDefaults): Only uninstall border if it's a UIResource.
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(SystemMenuBar.isFocusTraversable): Fixed typo in signature.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installUI): Don't touch the opaque flag of the glassPane and
	the frame. Don't invalidate.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installUI): Don't touch the opaque flag of the glassPane.
	* javax/swing/plaf/basic/BasicMenuBarUI.java
	(properyChangeListener): Made field private.
	(ChangeHandler): Made class private.
	(ContainerHandler): Made class private.
	(PropertyChangeHandler): Made class private.
	* javax/swing/plaf/basic/BasicMenuUI.java
	(MenuHandler): Made class private.
	(PropertyChangeHandler): Removed unneeded class.
	(MenuDragMouseHandler): Made class private.
	(MenuKeyHandler): Made class private.
	* javax/swing/plaf/basic/BasicPanelUI.java
	(installDefaults): Made method protected. Don't set opaque
	flag.
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(TrackListener.shouldScroll): Made method private.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(BasicHorizontalLayoutManager.BasicHorizontalLayoutManager):
	Made constructor package private.
	* javax/swing/plaf/basic/BasicTableHeaderUI.java
	(cellBorder): Made field private.
	* javax/swing/plaf/basic/BasicTextUI.java
	(installDefaults): Don't make component opaque.
	* javax/swing/plaf/basic/BasicToolBarUI.java
	(createNonRollOverBorder): Don't create UIResource border.
	(createRollOverBorder): Don't create UIResource border.
	(installComponents): Moved setRolloverBorders call here.
	(installDefaults): Moved setRolloverBorders call from here.
	(installUI): Don't make toolbar opaque.
	(setBorderToNonRollover): Handle AbstractButton instead of
	JButton here.
	(uninstallComponents): Don't nullify class fields here.

2006-03-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SwingUtilities.java
	(calculateInnerArea): handle null component, and replace 
	getLocalBounds() with getBounds(Rectangle) to avoid unnecessary object
	creation.

2006-03-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JColorChooser.java
	(updateUI): Don't call revalidate().
	* javax/swing/JComboBox.java
	(updateUI): Don't call invalidate().
	* javax/swing/JDesktopPane.java
	(updateUI): Don't call invalidate().
	* javax/swing/JFileChooser.java
	(updateUI): Don't call revalidate().
	* javax/swing/JMenu.java
	(updateUI): Don't call invalidate().
	* javax/swing/JMenuBar.java
	(updateUI): Don't call invalidate().
	* javax/swing/JMenuItem.java
	(updateUI): Don't call invalidate().
	* javax/swing/JOptionPane.java
	(updateUI): Don't call invalidate().
	* javax/swing/JPopupMenu.java
	(updateUI): Don't call invalidate().
	* javax/swing/JProgressBar.java
	(updateUI): Don't call invalidate().
	* javax/swing/JScrollBar.java
	(updateUI): Don't call invalidate() and repaint().
	* javax/swing/JScrollPane.java
	(updateUI): Rewritten to be like the other updateUI()
	methods.
	* javax/swing/JSlider.java
	(updateUI): Don't call invalidate() and repaint().
	* javax/swing/JSplitPane.java
	(updateUI): Don't call invalidate() and repaint().
	* javax/swing/JTabbedPane.java
	(updateUI): Don't call invalidate().
	* javax/swing/JTable.java
	(updateUI): Don't call revalidate() and repaint().
	* javax/swing/JToolBar.java
	(updateUI): Don't call revalidate() and repaint().
	* javax/swing/JToolTip.java
	(updateUI): Don't call revalidate() and repaint().

2006-03-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(updateComponentTreeUI): Rewritten to be more robust. Handling of
	menus and non-Swing components is improved.
	(updateComponentTreeUIImpl): New helper method.
	(replaceUIActionMap): Added check for uiActionMap==parent to
	avoid loop.
	(replaceUIInputMap): Added check for uiInputMap==parent to
	avoid loop.

2006-03-13  Wolfgang Baer  <WBaer@gmx.de>

	* gnu/classpath/debug/Component.java: 
	(IPP) New component for IPP debugging. 
	(EVERYTHING): Adapted to include IPP.
	* javax/print/PrintServiceLookup.java: 
	(registerServiceProvider): New method.
	(registerService): Likewise.
	(lookupPrintServices): Likewise.
	(lookupMultiDocPrintServices): Likewise.
	(lookupDefaultPrintService): Likewise.
	(static_initializer): Likewise.
	(printServiceLookups): New field for found service providers.
	(printServices): New field for application registered providers.
	(systemProvider): New field for the system provider.	
	* javax/print/ServiceUI.java: New file.	
	* javax/print/package.html: Added more usage content.
	* javax/print/event/package.html: Likewise.
	* javax/print/attribute/package.html: Likewise.
	* javax/print/attribute/standard/package.html: Likewise.
	* gnu/javax/print/PrintUriException.java,
	gnu/javax/print/PrintFlavorException.java,
	gnu/javax/print/PrinterDialog.java,
	gnu/javax/print/PrintAttributeException.java,
	gnu/javax/print/CupsPrintServiceLookup.java,
	gnu/javax/print/CupsServer.java,
	gnu/javax/print/CupsPrintService.java,
	gnu/javax/print/CupsMediaMapping.java,
	gnu/javax/print/CupsIppOperation.java:
	New implementation files of the Java Print Service API.
	* gnu/javax/print/ipp/IppValueTag.java,
	gnu/javax/print/ipp/MultiDocPrintJobImpl.java,
	gnu/javax/print/ipp/IppStatusCode.java,
	gnu/javax/print/ipp/IppUtilities.java,
	gnu/javax/print/ipp/IppResponse.java,
	gnu/javax/print/ipp/IppException.java,
	gnu/javax/print/ipp/IppPrintService.java,
	gnu/javax/print/ipp/IppRequest.java,
	gnu/javax/print/ipp/IppMultiDocPrintService.java,
	gnu/javax/print/ipp/IppDelimiterTag.java,
	gnu/javax/print/ipp/DocPrintJobImpl.java:
	New files of the IPP client implementation.
	* gnu/javax/print/ipp/attribute/UnknownAttribute.java,
	gnu/javax/print/ipp/attribute/StatusMessage.java,
	gnu/javax/print/ipp/attribute/RequestedAttributes.java,
	gnu/javax/print/ipp/attribute/NaturalLanguageSyntax.java,
	gnu/javax/print/ipp/attribute/DocumentAccessError.java,
	gnu/javax/print/ipp/attribute/DetailedStatusMessage.java,
	gnu/javax/print/ipp/attribute/DefaultValueAttribute.java,
	gnu/javax/print/ipp/attribute/CharsetSyntax.java: 
	New attribute syntax/role files of the printing implementation.
	* gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.java,
	gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.java,
	gnu/javax/print/ipp/attribute/supported/SidesSupported.java,
	gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.java,
	gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.java,
	gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.java,
	gnu/javax/print/ipp/attribute/supported/PageRangesSupported.java,
	gnu/javax/print/ipp/attribute/supported/
	OrientationRequestedSupported.java, 
	gnu/javax/print/ipp/attribute/supported/OperationsSupported.java,
	gnu/javax/print/ipp/attribute/supported/
	MultipleDocumentHandlingSupported.java, 
	gnu/javax/print/ipp/attribute/supported/
	MultipleDocumentJobsSupported.java, 
	gnu/javax/print/ipp/attribute/supported/MediaSupported.java,
	gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.java,
	gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.java,
	gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.java,
	gnu/javax/print/ipp/attribute/supported/
	GeneratedNaturalLanguageSupported.java,
	gnu/javax/print/ipp/attribute/supported/FinishingsSupported.java,
	gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.java,
	gnu/javax/print/ipp/attribute/supported/CompressionSupported.java,
	gnu/javax/print/ipp/attribute/supported/CharsetSupported.java:
	New supported attribute files.
	* gnu/javax/print/ipp/attribute/printer/CharsetConfigured.java,
	gnu/javax/print/ipp/attribute/printer/DocumentFormat.java,
	gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.java,
	gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.java,
	gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.java,
	gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.java,
	gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.java,
	gnu/javax/print/ipp/attribute/printer/PrinterUpTime.java:
	New printer description attribute files.
	* gnu/javax/print/ipp/attribute/job/AttributesCharset.java,
	gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.java,
	gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.java,
	gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.java,
	gnu/javax/print/ipp/attribute/job/JobPrinterUri.java,
	gnu/javax/print/ipp/attribute/job/JobId.java,
	gnu/javax/print/ipp/attribute/job/JobMoreInfo.java,
	gnu/javax/print/ipp/attribute/job/JobUri.java,
	gnu/javax/print/ipp/attribute/job/JobStateMessage.java:
	New job description attribute files.
	* gnu/javax/print/ipp/attribute/defaults/CopiesDefault.java,
	gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.java,
	gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java,
	gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.java,
	gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.java,
	gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.java,
	gnu/javax/print/ipp/attribute/defaults/MediaDefault.java,
	gnu/javax/print/ipp/attribute/defaults/
	MultipleDocumentHandlingDefault.java,
	gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.java,
	gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.java,
	gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.java,
	gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.java,
	gnu/javax/print/ipp/attribute/defaults/SidesDefault.java:
	New default printing attribute files.
	* resource/gnu/javax/print/PrinterDialog.properties: New file.
	* resource/gnu/javax/print/PrinterDialog_de.properties: Likewise.
	* examples/gnu/classpath/examples/print/Demo.java: 
	New demo application of the current implemented functionality.

2006-03-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/activation/ActivationGroupDesc.java: Implemented.
	java/rmi/activation/ActivationDesc.java.java,
	java/rmi/activation/ActivationGroup.java,
	java/rmi/activation/ActivationID.java,
	java/rmi/activation/ActivationMonitor.java,
	java/rmi/activation/ActivationSystem.java,
	java/rmi/activation/package.html: Documenting.

2006-03-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(setSelected): Repaint frame when it is showing and the selection
	state changes.

2006-03-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(AbstractAccessibleButton.getAccessibleRelationSet): Return super....()
	instead of null.

2006-03-13  Roman Kennke  <kennke@aicas.com>

	* javax/accessibility/AccessibleContext.java
	(getAccessibleRelationSet): Return empty set instead of null.

2006-03-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ImageIcon.java
	(loadImage): Remove completed images from the MediaTracker. This
	avoids a potential memory leak.

2006-03-12  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/MultiDocPrintService.java, 
	* javax/print/MultiDocPrintJob.java, 
	* javax/print/MultiDoc.java: Added and enhanced documentation.

2006-03-12  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/activation/ActivationID.java (uid): New field.
	(writeExternal, readExternal): New methods. 
	(equals, hashCode): Rewritten.
	* java/rmi/activation/ActivationInstantiator.java,
	* java/rmi/activation/ActivationSystem.java,
	* java/rmi/activation/Activator.java,
	* java/rmi/activation/Activatable.java,
	* java/rmi/activation/ActivationGroup.java,
	* java/rmi/activation/ActivationGroupDesc.java: 
	Documented and autoformatted.
	* java/rmi/activation/package.html: Added content.
	
2006-03-12  Chris Burdess  <dog@gnu.org>

	Fixes PR 26652
	* gnu/xml/stream/XMLParser.java: Fix for case when both reader and
	  encoding are specified.

2006-03-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultSingleSelectionModel.java: API docs all over, plus
	(changeEvent): Initialise in fireStateChange(),
	(setSelectedIndex): Check if change is made before firing event,
	(clearSelection): Delegate to setSelectedIndex(),
	(fireStateChanged): Initialise changeEvent if necessary,
	* javax/swing/SingleSelectionModel.java: API docs all over.

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

	* java/util/zip/InflaterInputStream.java: Reverted previous
	patch.

2006-03-11  Mark Wielaard  <mark@klomp.org>

	* java/text/AttributedCharacterIterator.java (Attribute.readResolve):
	Compare name.

2006-03-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/TreeSelectionEvent.java
	(isAddedPath(TreePath)): Throw IllegalArgumentException if path is
	not one of the added/removed paths,
	(cloneWithSource): Reformatted.

2006-03-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/TreeCellEditor.java: Added API docs,
	* javax/swing/tree/TreeCellRenderer.java: Likewise.

2006-03-10  Casey Marshall  <csm@gnu.org>

	Fixes PR 23768.
	* javax/crypto/Cipher.java (doFinal, doFinal, doFinal): don't
	reset `state.'
	(doFinal, update): new methods.
	(init, init, init, init): initialize `state' after trying the
	implementation, which can throw an exception.
	* javax/crypto/CipherSpi.java (engineDoFinal, engineUpdate): new
	methods.

2006-03-11  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/BacktrackStack.java: New file.
	* gnu/regexp/RE.java(findMatch): New method.
	* gnu/regexp/REMatch.java(next,matchFlags,MF_FIND_ALL,
	REMatchList): Removed. (backtrackStack): New field.
	* gnu/regexp/REToken.java(match): Changed from an abstract
	method to an ordinary method defined with the new method
	matchThis. (matchThis, getNext, findMatch, returnsFixedLengthMatches,
	findFixedLengthMatches, backtrack, toString): New methods.
	* gnu/regexp/RETokenAny.java: Inplemented new methods of REToken.
	* gnu/regexp/RETokenBackRef.java: Likewise.
	* gnu/regexp/RETokenChar.java: Likewise.
	* gnu/regexp/RETokenEnd.java: Likewise.
	* gnu/regexp/RETokenEndSub.java: Likewise.
	* gnu/regexp/RETokenIndependent.java: Likewise.
	* gnu/regexp/RETokenLookAhead.java: Likewise.
	* gnu/regexp/RETokenLookBehind.java: Likewise.
	* gnu/regexp/RETokenNamedProperty.java: Likewise.
	* gnu/regexp/RETokenPOSIX.java: Likewise.
	* gnu/regexp/RETokenRange.java: Likewise.
	* gnu/regexp/RETokenStart.java: Likewise.
	* gnu/regexp/RETokenWordBoundary.java: Likewise
	* gnu/regexp/RETokenOneOf.java: Rewriten.
	* gnu/regexp/RETokenRepeated.java: Rewriten.

2006-03-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(RolloverButtonBorder.paintBorder): Only call super here.
	* javax/swing/plaf/metal/MetalButtonListener.java
	(propertyChange): Only call super here.
	* javax/swing/plaf/metal/MetalButtonUI.java
	(update): Changed condition from isOpaque() to isContentAreaFilled()
	for the gradient fill.
	* javax/swing/plaf/metal/MetalToggleButtonUI.java
	(paintText): API doc fix. Makes paintText not deprecated as specified
	but adds comment that this is obsolete.
	* javax/swing/plaf/metal/MetalUtils.java
	(fillMetalPattern): Fixed condition so that the Java2D is not
	used when the noGraphics2D property is set.

2006-03-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(createDefaultTheme): Set OceanTheme as default metal theme.

2006-03-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/WrappedPlainView.java
	(metrics): Made field package private to avoid accessor method.
	(WrappedLine.paint): Call drawLine with y offset of the font ascent.
	The drawLine (righly) interprets the y parameter as the baseline.
	* javax/swing/text/Utilities.java
	(getBreakLocation): Don't consider the offset. The returned value
	for getTabbedTextOffset is already relative to the offset.

2006-03-10  Wolfgang Baer  <WBaer@gmx.de>

	* gnu/java/net/protocol/http/Headers.java: Added documentation all over.
	(dateFormat): Made private.
	(put): Replace only the last occurance and the value.
	(putAll): Save one iteration. Clarified documentation.

2006-03-10  Tom Tromey  <tromey@redhat.com>

	* java/util/zip/InflaterInputStream.java (read): Replace with libgcj
	implementation.
	* java/util/zip/GZIPInputStream.java (readHeader): Use DEFLATED,
	not '8'.

2006-03-10  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c
	(comboboxgroup_get_widget): New function.
	(removed): Fixed to use new function to get the correct widget.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(nativeSetCheckboxGroup): Reverted last patch to use get_widget
	function.

2006-03-10  Lillian Angel  <langel@redhat.com>

	* java/awt/GridBagLayout.java
	(ArrangeGrid): Added checks to determine if component
	is placed last in a row or column. If so, the location
	of the last component should be used to get the location
	of the current component.

2006-03-10  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(nativeSetCheckboxGroup): No need to use new function here.
	Should just pass in pointer.

2006-03-10  Lillian Angel  <langel@redhat.com>

	* java/awt/GridBagLayout.java
	(distributeSizeAndWeight): Change else if to else. This
	allows for components to be added to a new row when 
	their gridheight is REMAINDER.

2006-03-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/activation/ActivationDesc.java,
	java/rmi/activation/ActivationGroupID.java,
	java/rmi/activation/Activator.java,
	java/rmi/server/Operation.java,
	java/rmi/server/RemoteServer.java: Documented and formatted.

2006-03-10  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JToggleButton.java: Fixed API doc tags,
	* javax/swing/OverlayLayout.java: Likewise.

2006-03-10  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultCellEditor.java
	(cancelCellEditing): Removed spurious API doc tag.

2006-03-10  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(create): Put checkbox widget into an event box so it paints properly.
	(connectSignals): Fixed to use new function.
	(nativeSetCheckboxGroup): Likewise.
	(gtkToggleButtonSetActive): Likewise.
	(gtkWidgetModifyFont): Likewise.
	(gtkButtonSetLabel): Likewise.
	(combobox_get_widget): New function.

2006-03-10  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/rtf/package.html: New file.
	
2006-03-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/OceanTheme.java
	(addCustomEntriesToTable): Fixed ScrollBar.gradient value.
	* javax/swing/plaf/metal/MetalScrollBarUI.java
	(paintThumb): Only draw Metal pattern if theme is not OceanTheme.
	(paintThumbHorizontal): Added handling of OceanTheme.
	(paintThumbVertical): Added handling of OceanTheme.

2006-03-10  Roman Kennke  <kennke@aicas.com>

	Reported by Fridjof Siebert <siebert@aicas.com>
	* java/awt/MediaTracker.java
	(removeImage): Only set prev to e when the the images of the
	entries are not the same. This avoids a potentially corrupt list.

2006-03-10  Chris Burdess  <dog@gnu.org>

	PR 26620:
	* gnu/xml/transform/TransformerImpl.java: Suspend wellformedness
	  checking while reindenting.

2006-03-10  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/plugins/jpeg/JPEGHuffmanTable.java: New file.

2006-03-09  Tom Tromey  <tromey@redhat.com>

	PR classpath/26585:
	* tools/Makefile.am (TOOLSdir): Don't put tools.zip in tools
	subdir.  Added README.
	(install-data-local): Removed.
	(uninstall-local): Likewise.
	(EXTRA_DIST): Removed.

2006-03-09  Tom Tromey  <tromey@redhat.com>

	PR classpath/26623:
	* native/jni/qt-peer/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/midi-alsa/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/java-net/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/java-lang/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/xmlj/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/gtk-peer/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/midi-dssi/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/java-io/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/java-nio/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/java-util/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jawt/Makefile.am (nativeexeclib_LTLIBRARIES): Renamed.
	* configure.ac (nativeexeclibdir): Renamed from nativelibdir.

2006-03-09  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/processor/MethodCommandSet.java
	(executeVariableTable): Use VMMethod instead of reflection.
	(executeLineTable): Likewise.
	* gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
	(executeMethods): Rewrite to use new VMVirtualMachine.getAllClassMethods.
	* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
	(getLineTable): Removed. Now resides in VMMethod.
	(getVarTable): Likewise.
	(getAllClassMethods): New method.
	
2006-03-09  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/EventManager.java: Update javadoc.
	* gnu/classpath/jdwp/event/ThreadStartEvent.java
	(ThreadStartEvent): Likewise.
	* gnu/classpath/jdwp/event/VmDeathEvent.java (VmDeathEvent): Likewise.
	* gnu/classpath/jdwp/event/filters/ConditionalFilter.java
	(ConditionalFilter): Likewise.
	* gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java
	(ExceptionOnlyFilter): Likewise.
	* gnu/classpath/jdwp/event/filters/FieldOnlyFilter.java
	(FieldOnlyFilter): Likewise.
	* gnu/classpath/jdwp/event/filters/StepFilter.java (getDepth): Likewise.
	(getSize): Likewise.
	(StepFilter): Likewise.
	* gnu/classpath/jdwp/id/JdwpId.java: Likewise (for _tag).
	* gnu/classpath/jdwp/transport/JdwpPacket.java
	(JdwpPacket): Likewise.
	(fromBytes): Likewise.
	* gnu/classpath/jdwp/transport/JdwpReplyPacket.java
	(JdwpReplyPacket): Likewise.
	* gnu/classpath/jdwp/util/Value.java (getUntaggedObj): Likewise.
	* vm/reference/gnu/classpath/jdwp/VMIdManager.java
	(getReferenceType): Likewise.
	(newObjectId): Likewise.
	* vm/reference/gnu/classpath/jdwp/VMMethod.java (readId): Likewise.
	* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
	(getFrames): Fix typo in parameter name and update javadoc.
	(getClassMethod): Update javadoc.

2006-03-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/TreeSelectionEvent.java: Updated API docs,
	* javax/swing/event/TreeSelectionListener.java: Likewise.

2006-03-09  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c
	(getHScrollbarHeight): Fixed property name.
	(getVScrollbarHeight): Likewise.

2006-03-09  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(get_widget): New function.
	(gtkWidgetSetParent): Changed to use new function.
	(gtkWidgetSetCursorUnlocked): Likewise.
	(gtkWidgetSetSensitive): Likewise.
	(gtkWidgetRequestFocus): Likewise.
	(gtkWindowGetLocationOnScreen): Likewise.
	(gtkWidgetGetDimensions): Likewise.
	(gtkWidgetGetPreferredDimensions): Likewise.
	(setNativeBounds): Likewise.
	(gtkWidgetGetBackground): Likewise.
	(gtkWidgetGetForeground): Likewise.
	(gtkWidgetSetBackground): Likewise.
	(gtkWidgetSetForeground): Likewise.
	(setVisibleNativeUnlocked): Likewise.
	(isEnabled): Likewise.
	(isRealized): Likewise.
	(setNativeEventMask): Likewise.

2006-03-09  Lillian Angel  <langel@redhat.com>

	PR Classpath\22163
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
	(create): Added combobox widget to an event box.
	(connectSignals): Added call to choice_get_widget to get the
	combobox out of the event box.
	(append): Likewise.
	(nativeRemoveAll): Likewise.
	(nativeRemove): Likwise.
	(nativeAdd): Likewise.
	(selectNative): Likewise.
	(choice_get_widget): New function.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
	(create): Added list scroll window widget to an event box.
	(connectSignals): Changed call to use new function to get the
	correct widget out of the event box.
	(getWidgetModifyFont): Likewise.
	(getWidgetRequestFocus): Likewise.
	(append): Likewise.
	(add): Likewise.
	(delItems): Likewise.
	(select): Likewise.
	(deselect): Likewise.
	(getSize): Likewise.
	(getSelectedIndexes): Likewise.
	(makeVisible): Likewise.
	(setMultipleMode): Likewise.
	(list_get_widget): New function.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c
	(create): Added scrollpane to an eventbox.
	(setScrollPosition): Changed call to use new function to get the
	correct widget out of the event box.
	(gtkScrolledWindowSetHScrollIncrement): Likewise.
	(gtkScrolledWindowSetVScrollIncrement): Likewise.
	(getHScrollbarHeight): Likewise.
	(getVScrollbarWidth): Likewise.
	(setPolicy): Likewise.
	(scrollpane_get_widget): New function.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c
	(connectSignals): Changed call to use new function to get the
	correct widget out of the event box.
	(create): Added scrollbar to an eventbox.
	(setLineIncrement): Changed call to use new function to get the
	correct widget out of the event box.
	(setPageIncrement): Likewise.
	(setBarValues): Likewise.
	(scrollbar_get_widget): New function.
	* native/jni/gtk-peer/gnu_java_gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
	(create): Added text area scroll window widget to an event box.
	(connectSignals): Changed call to use new function to get the
	correct widget out of the event box.
	(insert): Likewise.
	(replaceRange): Likewise.
	(gtkWidgetModifyFont): Likewise.
	(gtkWidgetRequestFocus): Likewise.
	(getHScrollbarHeight): Likewise.
	(getVScrollbarWidth): Likewise.
	(getCaretPosition): Likewise.
	(setCaretPosition):Likewise.
	(getSelectionStart): Likewise.
	(getSelectionEnd): Likewise.
	(select): Likewise.
	(setEditable): Likewise.
	(getText): Likewise.
	(setText): Likewise.
	(textarea_get_widget): New function.

2006-03-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/dgc/VMID.java: 
	(equals, hashCode, static initializer):	Rewritten.
	* java/rmi/dgc/package.html: Documented.
	
2006-03-09  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkClipboard.java (clipboard, selection):
	New static field.
	(stringMimeType, imageMimeType, filesMimeType): Initialize directly.
	(canCache): Likewise.
	(GtkClipboard): Take String argument.
	(getInstance): Removed.
	(getClipboardInstance, getSelectionInstance): New static methods.
	(setSystemContents): Make synchronized. Takes boolean argument.
	(initNativeState): Add clipboard and selection.
	* gnu/java/awt/peer/gtk/GtkClipboardNotifier.java
	(announceClipboardChange, announcePrimaryChange): New static field.
	(announce): Take GtkClipboard as argument.
	(run): Check which clipboard to announce change for.
	* gnu/java/awt/peer/gtk/GtkSelection.java (clipboard): New final
	boolean field.
	(GtkSelection): Take GtkClipboard as argument.
	(requestText, requestImage, requestURIs, requestBytes): Add boolean
	clipboard argument.
	(requestMimeTypes): Likewise.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (getSystemSelection):
	New method.
	* java/awt/Toolkit.java (getSystemSelection): Document.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
	(cp_gtk_selection_instance): New var.
	(current_selection, owner): Removed.
	(clipboard_owner_change_cb): Use clipboard argument.
	(initNativeState): Store clipboard and selection instances. Cache
	setSystemContentsID, provideContentID, provideTextID, provideImageID,
	and provideURIsID.
	(clipboard_get_func): Use clipboard argument.
	(clipboard_clear_func): Likewise. Always call method.
	(advertiseContent): Don't cache method ids here. Check whether to
	use clpboard or selection. Don't set owner or current_selection.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
	(requestText, requestImage, requestURIs, requestBytes): Use extra
	boolean argument to select clipboard.
	* native/jni/gtk-peer/gtkpeer.h (cp_gtk_selection): New extern.
	(cp_gtk_clipboard_instance, cp_gtk_selection_instance): Likewise.
	* include/gnu_java_awt_peer_gtk_GtkClipboard.h: Regenerate.
	* include/gnu_java_awt_peer_gtk_GtkSelection.h: Likewise.

2006-03-09  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/Jdwp.java: Remove unused imports.
	* gnu/classpath/jdwp/event/EventRequest.java: Likewise.
	* gnu/classpath/jdwp/event/filters/ClassMatchFilter.java: Likewise.
	* gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.java: Likewise.
	* gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java: Likewise.
	* gnu/classpath/jdwp/transport/ITransport.java: Likewise.
	* vm/reference/gnu/classpath/jdwp/VMIdManager.java: Likewise.
	* vm/reference/gnu/classpath/jdwp/VMMethod.java: Likewise.
	* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java: Likewise.

2006-03-09  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JList.java (ensureIndexIsVisible): Check whether cell
	bounds for index is valid.
	* javax/swing/plaf/basic/BasicListUI.java (valueChanged): Likewise.
	(paint): Likewise.
	(getCellBounds): Update documentation.

2006-03-09  Arnaud Vandyck  <avdyk@gnu.org>

	* .classpath: added exclude pattern on source folders
	(Makefiles, README and .cvsignore)

2006-03-08  Keith Seitz  <keiths@redhat.com>

	* vm/reference/gnu/classpath/jdwp/VMMethod.java: New file.
	* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
	(getClassMethod): New method.

2006-03-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/server/UID.java (getMachineId): Include the host IP address.
    
2006-03-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/server/ObjID.java: Documented and autoformatted.

2006-03-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 26584
	* tools/Makefile.am (install-data-local,
	uninstall-local): Install/uninstall the tools/README only.
	* tools/gnu/classpath/tools/giop/README: Updated.
	* tools/README: New file.

2006-03-08  Lillian Angel  <langel@redhat.com>

	* java/awt/GridBagLayout.java
	(GetLayoutInfo): If the last component added had gridwidth == REMAINDER,
	then the next item should be set to current_y (not 0).

2006-03-08  Lillian Angel  <langel@redhat.com>

	* java/awt/GridBagLayout.java
	(GetLayoutInfo): If gridy is RELATIVE and there is no component
	in the bottom-most spot of the column, we need to place that component
	at the y-location of the other components in that row. If there are
	no other components in that row, then place it at y = 0.

2006-03-08  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/ProgressMonitor.java: Updated API docs,
	* javax/swing/ProgressMonitorInputStream.java: Likewise.

2006-03-08  Michael Koch  <konqueror@gmx.de>

	* java/net/InetSocketAddress.java
	(InetSocketAddress(String,int,resolve)): New private contructor.
	(InetSocketAddress(String,int)): Use new private constructor.
	(createUnresolved): New method.

2006-03-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/server/UID.java (constructor): Assign last and time fields
 	after pause.

2006-03-07  Tom Tromey  <tromey@redhat.com>

	* java/lang/System.java (clearProperty): New method, merged from
	generics branch.
	(getProperty): Removed 'else'.
	(getProperty): Check for empty key.
	(setProperty): Likewise.
	* gnu/classpath/SystemProperties.java (remove): New method, merged
	from generics branch.

2006-03-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/server/UID.java: New file (replacing). 

2006-03-08  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/jar/Manifest.java: Removed unused imports.
	(CRLF): New constant.
	(read): Added method documentation.
	Use UTF-8 encoding instead of 8859_1.
	(write): Added method documentation.
	Use BufferedOutputStream (w/ 4K buffer) instead of PrintWriter.
	(write_main_section): Replace PrintWriter arg with OutputStream.
	Replace JarException with IOException.
	(write_version_info): Likewise.
	(write_main_attributes): Likewise.
	(write_attribute_entry): Likewise.
	(write_individual_sections): Likewise.
	(write_entry_attributes): Likewise.
	(write_header): Replace PrintWriter arg with OutputStream.
	Re-implemented.

2006-03-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/DefaultMutableTreeNode.java
	(getFirstChild): Updated API docs,
	(getLastChild): Likewise,
	(getChildAfter): Likewise,
	(getChildBefore): Likewise,
	(isNodeSibling): Return true if node == this,
	(getSiblingCount): Updated API docs,
	(getNextSibling): Likewise,
	(getPreviousSibling): Likewise,
	(isLeaf): Likewise,
	(getFirstLeaf): Likewise,
	(getLastLeaf): Likewise,
	(getNextLeaf): Implemented,
	(getPreviousLeaf): Implemented.

2006-03-07  Tom Tromey  <tromey@redhat.com>

	* java/awt/image/ColorModel.java (getComponents): Javadoc fix.
	* java/awt/datatransfer/FlavorEvent.java: Added missing @since.
	* java/awt/dnd/DropTargetEvent.java (serialVersionUID): New field.
	* java/awt/DefaultFocusTraversalPolicy.java (serialVersionUID): New
	field.

2006-03-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/DefaultMutableTreeNode.java: API docs all over plus
	(clone): Reimplemented,
	(add): Throw IllegalArgumentException if child is an ancestor,
	(remove(int)): Set child's parent to null,
	(remove(MutableTreeNode)): Check arguments and set child's parent to 
	null,
	(insert): Check allowsChildren flag, check for null argument, and
	check for a node that is an ancestor,
	(getIndex): Throw IllegalArgumentException for null argument,
	(setAllowsChildren): If setting to false, remove existing children,
	(removeAllChildren): Set parent to null for removed children.

2006-03-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/TreeNode.java: Reformatted and added API docs all
	over.

2006-03-06  Tom Tromey  <tromey@redhat.com>

	* java/lang/StrictMath.java (ulp): New methods.
	* java/lang/Math.java (ulp): New methods.

2006-03-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/server/UnicastRef.java,
	gnu/java/rmi/server/UnicastServer.java: Formatted.

2006-03-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/server/CombinedClassLoader.java (findClass,
	findLibrary, findResouce, findResources): check all loaders in
	array.

2006-03-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 25526
	* gnu/java/rmi/dgc/DGCImpl.java (LeaseRecord, leaseCache): Removed. 
	(RefProtector):	new inner class. (dirty): Rewritten.
	* gnu/java/rmi/server/UnicastRef.java (dgcId, dgcInterfaceHash,
	dgcSequence, DIRTY, this_id): New fields. (equals, hashCode, notifyDGC):
	new methods. (readExternal): Create LeaseRenewingTask if non local.
	* gnu/java/rmi/server/UnicastServer.java (objects): 
	Use WeakHashMap. (refcache): Use WeakIdentityHashMap. 
	(getExported): New method.
	* gnu/java/rmi/dgc/LeaseRenewingTask.java: New file.

2006-03-06  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/announce/20060306.wml: New file.
	* doc/www.gnu.org/newsitems.txt: Add 0.90 release announcement.
	* doc/www.gnu.org/downloads/downloads.wml: Add 0.90.

2006-03-06  Mark Wielaard  <mark@klomp.org>

	* NEWS: Fix typo.

2006-03-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Use Boolean.TRUE for 
	'CheckBoxMenuItem.borderPainted'.

2006-03-06  Lillian Angel  <langel@redhat.com>
	
	PR classpath/26569
	* java/awt/List.java
	(preferredSize): Return the size of the list if the peer is null.
	* gnu/java/awt/peer/gtk/GtkListPeer.java
	(preferredSize): Code was returning the minimum size of the list.
	Added adjustment to the width of the list so it is a proper size.

2006-03-06  Wolfgang Baer  <WBaer@gmx.de>

	* gnu/java/net/protocol/http/HTTPURLConnection.java: Organized imports.
	(getRequestProperty): Remove duplicated null check.
	* java/net/URLConnection.java: 
	(URLConnection): Javadoc fix.
	(addRequestProperty): Likewise.
	(getDefaultRequestProperty): Likewise.
	(getHeaderField): Likewise.
	(getHeaderFieldDate): Likewise.
	(getHeaderFieldKey): Likewise.
	(getHeaderFields): Likewise.
	(getRequestProperties): Likewise.
	(getRequestProperty): Likewise.
	(setDefaultRequestProperty): Likewise.
	(setRequestProperty): Likewise.

2006-03-06  Tom Tromey  <tromey@redhat.com>

	* javax/swing/plaf/synth/Region.java (FILE_CHOOSER): Renamed.
	(FORMATTED_TEXT_FIELD): Likewise.

2006-03-06  Tom Tromey  <tromey@redhat.com>

	* javax/swing/plaf/synth/SynthPainter.java: Finished.

2006-03-06  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26568 reported by Paul Jenner <psj@harker.dyndns.org>
	* native/fdlibm/fdlibm.h (__ieee754_rem_pio2): Return an int32_t.
	(isnan): Define explicitly isnan if it is not a macro.

2006-03-06  Anthony Balkissoon  <abalkiss@redhat.com>

	* NEWS: Fixed typo.

2006-03-06  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/Demo.java:
	(mkMenuBar): Added menu entry that will display the VM's name,
	version and distributor.

2006-03-06  Tom Tromey  <tromey@redhat.com>

	* javax/swing/plaf/synth/SynthLookAndFeel.java (getDescription): 
	Javadoc fix.
	(getName): Likewise.

2006-03-06  Mark Wielaard  <mark@klomp.org>

	* configure.ac (VERSION): Set to 0.91-pre.
	* NEWS: Add updates for 0.90 release.

2006-03-06  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/PlainDocument.java: Fix copyright header,
	added author tags.
	(insertUpdate): Do not copy the whole document any more, added some
	more variables to prevent needless method calls.

2006-03-06  Christian Thalinger <twisti@complang.tuwien.ac.at>

	* configure.ac: Check for FREETYPE2.  This is a reverted patch and
	is required on Darwin.
	* native/jni/gtk-peer/Makefile.am (AM_LDFLAGS): Added FREETYPE2.
	(AM_CFLAGS): Likewise.

2006-03-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/FixedHeightLayoutCache.java: Reformatted and fixed
	API doc tag warnings,
	* javax/swing/tree/VariableHeightLayoutCache.java: Likewise.
	
2006-03-06  Dalibor Topic  <robilad@kaffe.org>

	* gnu/java/net/protocol/file/Connection.java (unquote):
	Update position in buffer after decoding a unicode character
	outside of the basic plane.

2006-03-06  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTextUI.java:
	(damageRange): Rewritten if-expressions to correctly identify the
	break condition.

2006-03-06  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultCaret.java:
	(mouseDragged): Do selection when shift is pressed.
	(mouseClicked): Implemented.

2006-03-06  Dalibor Topic  <robilad@kaffe.org>

	* libraries/javalib/external/classpath/java/net/URI.java (quote):
	Pass Unicode characters outside the basic plane through.

2006-03-06  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/PlainDocument.java:
	(insertUpdate): Extended if-expression, added
	code to generate another Element when newly inserted characters
	and old ones will be on the same line.

2006-03-05  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/GapContent.java:
	(insertString): Throw exception when argument is below
	zero.

2006-03-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalComboBoxButton.java
	(MetalComboBoxButton(JComboBox, Icon, boolean, CellRendererPane, 
	JList)): Fixed API doc tag,
	* javax/swing/plaf/metal/MetalInternalFrameTitlePane
	(createLayout): Fixed API doc warning.

2006-03-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultFocusManager.java: Fixed bad API doc tags,
	* javax/swing/FocusManager.java: Likewise.

2006-03-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/undo/StateEditable.java
	(restoreState): Fixed bad API doc tag,
	* javax/swing/undo/UndoableEdit.java: Copied API doc comments from
	AbstractUndoableEdit.java,
	* javax/swing/undo/UndoableEditSupport.java
	(createCompoundEdit): Fixed bad API doc tag,
	* javax/swing/undo/UndoManager.java
	(editToBeUndone): Fixed bad API doc tag,
	(editToBeRedone): Likewise.

2006-03-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/ComboBoxUI.java: Fixed typo in class description, 
	and corrected a bad API doc tag.

2006-03-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/colorchooser/ColorSelectionModel.java: Reformatted and
	added API docs all over.

2006-03-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/filechooser/FileFilter.java: 
	(accept): Fixed API doc tag,
	(getDescription): Likewise,
	* javax/swing/filechooser/FileView.java:
	(isTraversable): Fixed API doc tag.

2006-03-05  Tom Tromey  <tromey@redhat.com>

	* vm/reference/java/lang/reflect/Constructor.java (toString): Use
	ClassHelper.getUserName.
	* vm/reference/java/lang/reflect/Method.java (toString): Use
	ClassHelper.getUserName.
	(getUserTypeName): Removed.
	* gnu/java/lang/ClassHelper.java (getUserName): New method.
	* vm/reference/java/lang/reflect/Field.java (toString): Use
	ClassHelper.getUserName.

2006-03-05  Olivier Jolly  <olivier.jolly@pcedev.com>

	Fixes PR 22813
	* java/net/URLClassLoader.java (FileURLLoader.getResource):	
	Allows directories as valid resources.

2006-03-04  Mark Wielaard  <mark@klomp.org>

	* configure.ac (VERSION): Set to 0.90-pre.

2006-03-04  Tom Tromey  <tromey@redhat.com>

	* javax/swing/SpringLayout.java (Constraints): New constructor.
	* javax/swing/Spring.java (width): New method.
	(height): Likewise.
	(scale): Likewise.

2006-03-04  Mark Wielaard  <mark@klomp.org>

	* gnu/java/net/protocol/http/HTTPConnection.java (Pool.get): Remove
	existing connection from pool before returning.

2006-03-04  Mark Wielaard  <mark@klomp.org>

	* gnu/xml/stream/SAXParser.java (parse(InputSource)): Ignore
	exceptions thrown by handlers while cleaning up and rethrow original
	exception.

2006-03-04  Tom Tromey  <tromey@redhat.com>

	* java/beans/PropertyDescriptor.java (createPropertyEditor): New
	method.
	(findConstructor): Likewise.
	(instantiateClass): Likewise.

2006-03-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/dgc/DGCImpl.java:  More comments, boilerplate fix.
	(dirty): Do not synchronize on Hashtable. Use the passed (requested) 
	lease value and not always the default one.
 	(LeaseRecord): Remember the array of objects, marked as dirty.
 	java/rmi/dgc/Lease.java: Boilerplate fix.

2006-03-05  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/jar/Attributes.java (putValue): Made it public and updated
	method documentation.

2006-03-04  Mark Wielaard  <mark@klomp.org>

	* java/awt/Container.java (remove(int)): Always call removeNotify()
	on removed Component.

2006-03-04  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26460 reported by Beat Wolf <asraniel@fryx.ch>.
	* javax/swing/JEditorPane.java (setText): Check for empty String
	with equals(), not equality (==).

2006-03-04  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/html/HTMLDocument.java: Qualify ElementSpec as
	DefaultStyledDocument.ElementSpec for gcj 4.0.x.

2006-03-04  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/GapContent.java
	(getArray): Mark as final.

2006-03-04  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/StyleConstants.java
	(CharacterConstants.Background): Marked final,
	(CharacterConstants.BidiLevel): Likewise,
	(CharacterConstants.Bold): Likewise,
	(CharacterConstants.ComponentAttribute): Likewise,
	(CharacterConstants.Family): Likewise,
	(CharacterConstants.Size): Likewise,
	(CharacterConstants.Foreground): Likewise,
	(CharacterConstants.IconAttribute): Likewise,
	(CharacterConstants.Italic): Likewise,
	(CharacterConstants.StrikeThrough): Likewise,
	(CharacterConstants.Subscript): Likewise,
	(CharacterConstants.Superscript): Likewise,
	(CharacterConstants.Underline): Likewise,
	(ColorConstants.Foreground): Likewise,
	(ColorConstants.Background): Likewise,
	(FontConstants.Bold): Likewise,
	(FontConstants.Family): Likewise,
	(FontConstants.Italic): Likewise,
	(FontConstants.Size): Likewise,
	(ParagraphConstants.Alignment): Likewise,
	(ParagraphConstants.FirstLineIndent): Likewise,
	(ParagraphConstants.LeftIndent): Likewise,
	(ParagraphConstants.LineSpacing): Likewise,
	(ParagraphConstants.Orientation): Likewise,
	(ParagraphConstants.RightIndent): Likewise,
	(ParagraphConstants.SpaceAbove): Likewise,
	(ParagraphConstants.SpaceBelow): Likewise,
	(ParagraphConstants.TabSet): Likewise.	

2006-03-03  Tom Tromey  <tromey@redhat.com>

	* javax/net/ssl/SSLException.java: Added missing @since.
	Wrote javadoc.

2006-03-03  Tom Tromey  <tromey@redhat.com>

	* javax/net/ssl/SSLException.java (SSLException): New constructors.
	(serialVersionUID): New field.

2006-03-03  Tom Tromey  <tromey@redhat.com>

	* java/security/spec/InvalidKeySpecException.java
	(InvalidKeySpecException): New constructors.
	* java/security/cert/CertificateParsingException.java
	(CertificateParsingException): New constructors.
	* java/security/cert/CertificateEncodingException.java
	(CertificateEncodingException): New constructors.
	* java/security/cert/CertificateException.java (CertificateException):
	New constructors.
	* java/security/cert/CRLException.java (CRLException): New
	constructors.

2006-03-03  Tom Tromey  <tromey@redhat.com>

	* java/security/SignatureException.java (SignatureException): New
	constructors.
	* java/security/ProviderException.java (ProviderException): New
	constructors.
	* java/security/NoSuchAlgorithmException.java
	(NoSuchAlgorithmException): New constructors.
	* java/security/KeyStoreException.java (KeyStoreException): New
	constructors.
	* java/security/KeyManagementException.java (KeyManagementException):
	New constructors.
	* java/security/InvalidKeyException.java (InvalidKeyException): New
	constructors.
	* java/security/KeyException.java (KeyException): New constructors.
	* java/security/InvalidAlgorithmParameterException.java
	(InvalidAlgorithmParameterException): New constructors.
	* java/security/DigestException.java (DigestException): New
	constructors.
	* java/security/GeneralSecurityException.java
	(GeneralSecurityException): New constructors.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/CaretEvent.java: Reformatting and fixed API doc 
	warnings,
	* javax/swing/event/DocumentEvent.java: Likewise,
	* javax/swing/event/EventListenerList.java: Likewise,
	* javax/swing/event/MenuDragMouseEvent.java: Likewise,
	* javax/swing/event/MenuKeyEvent.java: Likewise,
	* javax/swing/event/TableColumnModelEvent.java: Likewise,
	* javax/swing/event/TreeExpansionEvent.java: Likewise,
	* javax/swing/event/TreeModelEvent.java: Likewise,
	* javax/swing/event/TreeSelectionEvent.java: Likewise,
	* javax/swing/event/UndoableEditEvent.java: Likewise.

2006-03-03  Tom Tromey  <tromey@redhat.com>

	* java/awt/Insets.java (set): New method.
	(equals): Added @since.

2006-03-03  David Daney  <ddaney@avtrex.com>

	* gnu/java/net/protocol/http/HTTPURLConnection.java
	(getRequestProperties): Rewrote.
	(addRequestProperty): Rewrote.
	(getHeaderFields): Rewrote.
	(getHeaderField): Rewrote.
	(getHeaderFieldKey): Rewrote.
	(getHeaderField): Removed useless cast.
	* gnu/java/net/protocol/http/Headers.java: Entire class rewritten.
	* gnu/java/net/protocol/http/Request.java (dispatch): Use new Headers
	interface.
	(notifyHeaderHandlers): Use new Headers interface.

2006-03-03  Tom Tromey  <tromey@redhat.com>

	* javax/naming/NamingException.java (getExplanation): Javadoc fix.
	* javax/naming/spi/ResolveResult.java,
	javax/naming/event/NamingExceptionEvent.java,
	javax/naming/event/NamingEvent.java,
	javax/naming/directory/SearchResult.java,
	javax/naming/directory/SearchControls.java,
	javax/naming/directory/SchemaViolationException.java,
	javax/naming/directory/NoSuchAttributeException.java,
	javax/naming/directory/ModificationItem.java,
	javax/naming/directory/InvalidSearchFilterException.java,
	javax/naming/directory/InvalidSearchControlsException.java,
	javax/naming/directory/InvalidAttributesException.java,
	javax/naming/directory/InvalidAttributeIdentifierException.java,
	javax/naming/directory/AttributeModificationException.java,
	javax/naming/directory/AttributeInUseException.java,
	javax/naming/TimeLimitExceededException.java,
	javax/naming/SizeLimitExceededException.java,
	javax/naming/PartialResultException.java,
	javax/naming/Reference.java,
	javax/naming/ServiceUnavailableException.java,
	javax/naming/OperationNotSupportedException.java,
	javax/naming/NotContextException.java,
	javax/naming/NoPermissionException.java,
	javax/naming/NoInitialContextException.java,
	javax/naming/NameNotFoundException.java,
	javax/naming/NameAlreadyBoundException.java,
	javax/naming/NameClassPair.java,
	javax/naming/MalformedLinkException.java,
	javax/naming/LinkLoopException.java,
	javax/naming/LinkException.java,
	javax/naming/LimitExceededException.java,
	javax/naming/InvalidNameException.java,
	javax/naming/InterruptedNamingException.java,
	javax/naming/InsufficientResourcesException.java,
	javax/naming/ContextNotEmptyException.java,
	javax/naming/ConfigurationException.java,
	javax/naming/CannotProceedException.java,
	javax/naming/CommunicationException.java,
	javax/naming/Binding.java,
	javax/naming/AuthenticationNotSupportedException.java,
	javax/naming/AuthenticationException.java: Added serialVersionUID.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/TableColumnModelEvent.java: Reformatted.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/TableModelListener.java: Updated API docs.

2006-03-03  Mark Wielaard  <mark@klomp.org>

	* java/awt/Component.java (addNotify): Expand documentation.

2006-03-03  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (GtkComponentPeer):
	Always call setParentAndBounds().
	(setComponentBounds): Always call setBounds().
	(setBounds): Call setVisible().
	(setVisible): If no pixels are showing then don't make it visible.
	* gnu/java/awt/peer/gtk/GtkContainerPeer.java (endValidate): No need
	to call setParentAndBounds() anymore.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(JInternalFrame): Set frame invisible.
	(show): Reformatted.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installDefaults): Do not set invisible here.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* java/awt/Toolkit.java
	(getScreenInsets): Return (0,0,0,0) here.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/FlowView.java
	(FlowStrategy.layoutRow): Added check for rowCount == 0.
	(FlowStrategy.getLogicalView): Made method protected.

2006-03-03  Chris Burdess  <dog@gnu.org>

	* gnu/xml/validation/relaxng/AnyNameNameClass.java,
	  gnu/xml/validation/relaxng/AttributePattern.java,
	  gnu/xml/validation/relaxng/ChoiceNameClass.java,
	  gnu/xml/validation/relaxng/ChoicePattern.java,
	  gnu/xml/validation/relaxng/DataPattern.java,
	  gnu/xml/validation/relaxng/Define.java,
	  gnu/xml/validation/relaxng/ElementPattern.java,
	  gnu/xml/validation/relaxng/EmptyPattern.java,
	  gnu/xml/validation/relaxng/FullSyntaxBuilder.java,
	  gnu/xml/validation/relaxng/Grammar.java,
	  gnu/xml/validation/relaxng/GrammarException.java,
	  gnu/xml/validation/relaxng/GrammarValidator.java,
	  gnu/xml/validation/relaxng/GroupPattern.java,
	  gnu/xml/validation/relaxng/InterleavePattern.java,
	  gnu/xml/validation/relaxng/ListPattern.java,
	  gnu/xml/validation/relaxng/NSNameNameClass.java,
	  gnu/xml/validation/relaxng/NameClass.java,
	  gnu/xml/validation/relaxng/NameNameClass.java,
	  gnu/xml/validation/relaxng/NotAllowedPattern.java,
	  gnu/xml/validation/relaxng/OneOrMorePattern.java,
	  gnu/xml/validation/relaxng/Param.java,
	  gnu/xml/validation/relaxng/Pattern.java,
	  gnu/xml/validation/relaxng/RELAXNGSchemaFactory.java,
	  gnu/xml/validation/relaxng/RefPattern.java,
	  gnu/xml/validation/relaxng/TextPattern.java,
	  gnu/xml/validation/relaxng/ValuePattern.java: New RELAX NG grammar
	  builder and data model.
	* gnu/xml/validation/xmlschema/AnyAttribute.java,
	  gnu/xml/validation/xmlschema/AttributeDeclaration.java,
	  gnu/xml/validation/xmlschema/AttributeUse.java,
	  gnu/xml/validation/xmlschema/ComplexType.java,
	  gnu/xml/validation/xmlschema/ElementDeclaration.java,
	  gnu/xml/validation/xmlschema/Particle.java,
	  gnu/xml/validation/xmlschema/ValidationException.java,
	  gnu/xml/validation/xmlschema/XMLSchema.java,
	  gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java,
	  gnu/xml/validation/xmlschema/XMLSchemaBuilder.java,
	  gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java,
	  gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.java,
	  gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.java,
	  gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.java,
	  gnu/xml/validation/xmlschema/XMLSchemaValidator.java,
	  gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.java: New
	  W3C XML Schema builder and schema components.
	* javax/xml/validation/SchemaFactory.java: Recognise RELAX NG and W3C
	  XML Schema namespace URIs.

2006-03-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* NEWS: Add entry for --enable-collections.
	* configure.ac: Add --enable-collections option.
	* lib/Makefile.am (collections.jar): New target.
	(glibj_DATA): Add $(COLLECTIONS).
	* lib/mkcollections.pl.in (destpath): Set from COLLECTION_PREFIX
	configure substitution.
	(classpath): Read from command line.
	(javautilclasses): Remove BasicMapEntry.  Add RandomAccess.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SpringLayout.java: Fixed API doc warnings.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/ListSelectionEvent.java
	(toString): Implemented,
	plus updated API docs all over.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/ListSelectionEvent.java: Reformatted and fixed
	API doc warnings,
	* javax/swing/event/ListSelectionListener.java: Updated API docs.

2006-03-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/dgc/DGCImpl.java,
	java/rmi/dgc/DGC.java,
	java/rmi/dgc/Lease.java: Formatted and commented.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* NEWS: Added comment about text highlighting and copy+paste
	in Swing.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(remove(int)): Call super.remove(int) instead of remove(Component).
	Avoids a stack overflow.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(distributeSpillResizing): Avoid ArithmeticException by checking
	divisor.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/package.html: Added package description.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/CellRendererPane.java: Minor API doc fix,
	* javax/swing/ComboBoxModel.java: Updated API docs.

2006-03-03  Chris Burdess  <dog@gnu.org>

	Fixes PR 26503
	* gnu/xml/stream/EntityReferenceImpl.java,
	  gnu/xml/stream/FilteredEventReader.java,
	  gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XIncludeFilter.java,
	  gnu/xml/stream/XMLEventAllocatorImpl.java,
	  gnu/xml/stream/XMLEventFactoryImpl.java,
	  gnu/xml/stream/XMLEventImpl.java,
	  gnu/xml/stream/XMLEventReaderImpl.java,
	  gnu/xml/stream/XMLEventWriterImpl.java,
	  gnu/xml/stream/XMLInputFactoryImpl.java,
	  gnu/xml/stream/XMLOutputFactoryImpl.java,
	  gnu/xml/stream/XMLParser.java,
	  javax/xml/stream/EventFilter.java,
	  javax/xml/stream/Location.java,
	  javax/xml/stream/StreamFilter.java,
	  javax/xml/stream/XMLEventFactory.java,
	  javax/xml/stream/XMLEventReader.java,
	  javax/xml/stream/XMLEventWriter.java,
	  javax/xml/stream/XMLInputFactory.java,
	  javax/xml/stream/XMLOutputFactory.java,
	  javax/xml/stream/XMLReporter.java,
	  javax/xml/stream/XMLResolver.java,
	  javax/xml/stream/XMLStreamConstants.java,
	  javax/xml/stream/XMLStreamReader.java,
	  javax/xml/stream/events/EntityDeclaration.java,
	  javax/xml/stream/events/EntityReference.java,
	  javax/xml/stream/events/XMLEvent.java,
	  javax/xml/stream/util/EventReaderDelegate.java,
	  javax/xml/stream/util/ReaderDelegate.java: Updated to final version of
	  StAX API as specified in JWSDP 2.0.
	* gnu/xml/stream/EndEntityImpl.java,
	  gnu/xml/stream/LocationImpl.java,
	  gnu/xml/stream/StartEntityImpl.java,
	  gnu/xml/stream/XMLStreamReaderImpl.java,
	  javax/xml/stream/XMLFilter.java,
	  javax/xml/stream/XMLIterator.java,
	  javax/xml/stream/events/EndEntity.java,
	  javax/xml/stream/events/StartEntity.java: Removed legacy files.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/CellEditor.java: API doc updates,
	* javax/swing/DefaultCellEditor.java: Likewise.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractListModel.java:
	(AbstractListModel): Added API docs,
	(fireContentsChanged): Minor API doc correction,
	(fireIntervalAdded): Likewise,
	(fireIntervalRemoved): Likewise.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* NEWS: Added paragraph about Swing improvements.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractAction.java: Updated API docs all over,
	* javax/swing/AbstractCellRenderer.java: Minor reformatting, plus
	(stopCellEditing): Minor API doc correction,
	* javax/swing/UnsupportedLookAndFeelException.java
	(UnsupportedLookAndFeelException): Changed argument name, updated API
	docs.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalUtils.java
	(fillMetalPattern): Added switch to not use Graphics2D methods,
	even if they are available.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicHTML.java
	(isHTMLString): Check for string beeing null.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(BasicInternalFrameListener.internalFrameActivated): Implemented.
	(BasicInternalFrameListener.internalFrameDeactivated): Implemented.
	(InternalFrameLayout): Don't touch the glass pane here.
	(installUI): Fix handling of glass pane.
	* javax/swing/plaf/basic/BasicLabelUI.java
	(vr): New field.
	(ir): New field.
	(tr): New field.
	(BasicLabelUI): Initialize new fields.
	(getPreferredSize): Avoid creating new Rectangles by using
	SwingUtilities method.
	(paint): Avoid creating new Rectangles by reusing
	new fields. Added some preliminary handling of HTML inside the
	label.
	(installComponents): Handle HTML by calling BasicHTML.updateRenderer.
	(uninstallComponents): Clear HTML renderer.
	(propertyChange): Check for HTML text and install renderer if
	appropriate.
	* javax/swing/plaf/basic/BasicListUI.java
	(getCellBounds): Avoid creating new Rectangle by using SwingUtilities
	method.
	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.getStartOffset): Implemented.
	(RootView.getEndOffset): Implemented.
	(RootView.getDocument): Implemented.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.inserUpdate): Added check for zero-length
	element.
	* javax/swing/text/DefaultStyledDocument.java
	(setIndex): Improved exception message.
	* javax/swing/text/TableView.java
	Made class abstract.
	(TableRow.replace): Probably extend columnRequirements
	arrays.
	(TableRow.layoutMinorAxis): Call super.layoutMinorAxis instead
	of super.layoutMajorAxis.
	(columnRequirements): Made field package private.
	(TableView): Do not load any child views here.
	(layoutColumns): Implemented this method.
	(updateColumnRequirements): New helper method.
	* javax/swing/text/Utilities.java
	(getBreakLocation): Also take offset into account when
	finding end location.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.parseStack): New field.
	(HTMLReader.blockOpen): Properly handle p-implied tags.
	(HTMLReader.blockClose): Properly handle p-implied and empty tags.
	(HTMLReader.addContent): Insert p-implied when adding content to
	a block element.
	* javax/swing/text/html/HTMLEditorKit.java
	(HTMLFactory.create): Create HTMLTableView for <table> tags and
	ParagraphView for TD tags. Print out warning for tags that don't have
	matching view yet and create NullView for them.
	(read): Only set document base when document != null.
	* javax/swing/text/html/HTMLTableView.java:
	New class

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicHTML.java
	(HTMLRootView): New inner class.
	(createHTMLView): Embed view inside a HTMLRootView.

2006-03-03  Wolfgang Baer  <WBaer@gmx.de>

	* gnu/java/net/protocol/jar/Connection.java: 
	(connect): Throw FileNotFoundException.
	(getInputStream): Remove duplicated code.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(commitBuffer): Added null check for clip.

2006-03-02  Lillian Angel <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkMenuPeer_delItem): Fixed
	to use GtkWidget instead of GTKMenu.

2006-03-02  Lillian Angel <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkMenuPeer_delItem): Changed to 
	use the submenu to get the list of children. This now works
	in the same way as addItem.

2006-03-02  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/lang/StringBuilder.java:
	(codePointAt): New method.
	(codePointBefore): Likewise.
	(codePointCount): Likewise.
	(trimToSize): Likewise.

2006-03-02  Tom Tromey  <tromey@redhat.com>

	* java/rmi/server/RMIClassLoader.java (getProviderInstance): Wrote.

2006-03-02  Tom Tromey  <tromey@redhat.com>

	* java/rmi/server/RMIClassLoader.java (loadProxyClass): New method.
	(getProviderInstance): 

2006-03-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c:
	Fix regression caused by move to VM variant.
	PR classpath/22926.
	
2006-03-01  Tom Tromey  <tromey@redhat.com>

	* vm/reference/java/net/VMNetworkInterface.java: Organized imports.
	* vm/reference/java/net/VMInetAddress.java: Organized imports.
	* vm/reference/java/lang/reflect/VMProxy.java (getProxyClass): Added
	imports for javadoc.
	(getProxyClass): Javadoc fixes.
	(getProxyData): Likewise.
	(generateProxyClass): Likewise.
	* vm/reference/java/lang/VMSystem.java (setIn): Javadoc fix.
	(setOut): Likewise.
	(setErr): Likewise.
	* vm/reference/java/lang/VMProcess.java: Javadoc fixes.
	* vm/reference/java/lang/VMClassLoader.java (getResources): Javadoc
	fix.
	* vm/reference/java/lang/VMClass.java (getComponentType): Import for
	javadoc.
	(getModifiers): Likewise.
	(getDeclaredClasses): Javadoc fix.
	(getDeclaredFields): Likewise.
	(getDeclaredMethods): Likewise.
	(getDeclaredConstructors): Likewise.
	* vm/reference/gnu/classpath/VMSystemProperties.java (preInit):
	Javadoc fix.

2006-03-01  Tom Tromey  <tromey@redhat.com>

	* gnu/java/net/protocol/http/ResponseHeaderHandler.java: Javadoc fix.
	* gnu/java/net/protocol/http/HTTPConnection.java: Organized imports.
	(getVersion): Javadoc fix.
	(get): Likewise.
	* gnu/java/net/protocol/http/Headers.java: Organized imports.
	* gnu/java/net/protocol/ftp/FTPURLConnection.java: Organized imports.

2006-03-01  David Daney  <ddaney@avtrex.com>

	* java/net/URL.java (URL(URL, String, URLStreamHandler)): Treat spec
	as relative if it contains a colon but no protocol handler can be
	found.

2006-03-01  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(LeafElement.LeafElement): Handle delta with respect to content
	length not document length.
	* javax/swing/text/CompositeView.java
	(getViewIndex): Handle bias correctly.
	* javax/swing/text/DefaultCaret.java
	(paint): Align caret position to document bounds to avoid trouble
	when removing large portions of content.
	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.insertFirstContentTag): Use pos instead of offset.
	(ElementBuffer.createFracture): Copy old childs attribute. The
	ElementSpec usually doesn't carry attribute information.
	Use pos instead of offset.
	(ElementBuffer.insertFracture): Use pos instead of offset.
	(createDefaultRootElement): Don't use create* and instead directly
	instantiate the elements.
	(handleInsertAfterNewline): Compare the paragraphs startOffset
	rather than previous paragraphs endOffset.
	* javax/swing/text/JTextComponent.java
	(getScrollableTracksViewportWidth): Remove unnecessary cast to
	JViewport.
	(getScrollableTracksViewportHeight): Remove unnecessary cast to
	JViewport.
	* javax/swing/text/PlainView.java
	(damageLineRange): Avoid creating new Rectangle by using
	SwingUtilities.
	* javax/swing/text/View.java
	(forwardUpdate): Correct the use of bias.
	(modelToView): Avoid new Rectangles by using SwingUtilities.
	(dump): Made (temprorarily) protected for use in BasicTextUI.
	(dump(int)): Dump out the element of the view.

2006-03-01  Lillian Angel  <langel@redhat.com>

	* NEWS: javax.imageio.plugins.bmp implementation.

2006-03-01  Lillian Angel  <langel@redhat.com>

	* javax/imageio/ImageWriteParam.java: 
	Added documentation for fields.
	* javax/imageio/plugins/bmp/BMPImageWriteParam.java:
	New class implemented.

2006-03-01  Tom Tromey  <tromey@redhat.com>

	* NEWS: Mention java.util.prefs update.

2006-03-01  Tom Tromey  <tromey@redhat.com>

	* gnu/java/nio/channels/FileChannelImpl.java (position): Fixed typo.
	* java/nio/charset/UnmappableCharacterException.java:
	(serialVersionUID): New field.
	* java/nio/charset/MalformedInputException.java:
	(serialVersionUID): New field.
	* java/nio/charset/CoderMalfunctionError.java:
	(serialVersionUID): New field.
	* java/nio/charset/CharacterCodingException.java:
	(serialVersionUID): New field.
	* java/nio/channels/UnsupportedAddressTypeException.java:
	(serialVersionUID): New field.
	* java/nio/channels/UnresolvedAddressException.java:
	(serialVersionUID): New field.
	* java/nio/channels/OverlappingFileLockException.java:
	(serialVersionUID): New field.
	* java/nio/channels/NotYetConnectedException.java:
	(serialVersionUID): New field.
	* java/nio/channels/NotYetBoundException.java
	(serialVersionUID): New field.
	* java/nio/channels/NonWritableChannelException.java
	(serialVersionUID): New field.
	* java/nio/channels/NonReadableChannelException.java
	(serialVersionUID): New field.
	* java/nio/channels/NoConnectionPendingException.java
	(serialVersionUID): New field.
	* java/nio/channels/IllegalSelectorException.java
	(serialVersionUID): New field.
	* java/nio/channels/IllegalBlockingModeException.java
	(serialVersionUID): New field.
	* java/nio/channels/FileLockInterruptionException.java
	(serialVersionUID): New field.
	* java/nio/channels/ConnectionPendingException.java
	(serialVersionUID): New field.
	* java/nio/channels/ClosedSelectorException.java (serialVersionUID):
	New field.
	* java/nio/channels/ClosedChannelException.java (serialVersionUID):
	New field.
	* java/nio/channels/ClosedByInterruptException.java
	(serialVersionUID): New field.
	* java/nio/channels/CancelledKeyException.java (serialVersionUID): 
	New field.
	* java/nio/channels/AsynchronousCloseException.java
	(serialVersionUID): New field.
	* java/nio/channels/AlreadyConnectedException.java (serialVersionUID):
	New field.
	* java/nio/ReadOnlyBufferException.java (serialVersionUID): New field.
	* java/nio/InvalidMarkException.java (serialVersionUID): New field.
	* java/nio/BufferUnderflowException.java (serialVersionUID): New
	field.
	* java/nio/BufferOverflowException.java (serialVersionUID): New field.
	* java/nio/channels/spi/AbstractInterruptibleChannel.java (end):
	Javadoc fix.  Added import.
	* java/nio/channels/DatagramChannel.java (isConnected): Javadoc fix.
	(validOps): Likewise.
	* gnu/java/nio/charset/iconv/IconvProvider.java: Organized imports.
	* gnu/java/nio/charset/iconv/IconvEncoder.java: Organized imports.
	* gnu/java/nio/charset/iconv/IconvDecoder.java: Organized imports.
	* java/nio/channels/Channels.java: Added import.
	* java/nio/channels/FileChannel.java (lock): Typo fix.
	(tryLock): Likewise.

2006-03-01  Tom Tromey  <tromey@redhat.com>

	* java/util/prefs/Preferences.java (defaultFactoryClass): Use
	FileBasedFactory.
	* gnu/java/util/prefs/FileBasedPreferences.java: New file.
	* java/util/prefs/AbstractPreferences.java (removeSpi): Typo fix.
	(clear): Likewise.
	(putSpi): Likewise.
	(newNode): Likewise.
	(node): Likewise.
	* gnu/java/util/prefs/MemoryBasedFactory.java: Typo fix.
	* gnu/java/util/prefs/FileBasedFactory.java (systemPreferences): New
	field.
	(systemRoot): Use it.
	(userPreferences): New field.
	(userRoot): Use it.

2006-03-01  Jeroen Frijters  <jeroen@frijters.net>

	* java/util/ResourceBundle.java
	(tryBundle): Catch and ignore all Exceptions.

2006-02-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(getPreferredSize): Fixed add a fixed space between the buttons
	instead of something related to min/max.
	(installComponents): Create and install buttons here.
	(installDefaults): Don't create buttons here.
	* javax/swing/plaf/metal/MetalScrollBarUI.java
	(getMinimumThumbSize): Return (0,0) when UI is not yet installed.
	(getPreferredSize): New method.

2006-02-28  David Gilbert  <david.gilbert@object-refinery.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(mkMenuBar): Removed 'Toggles', 'Checkbox' and 'Radio' actions, 
	connected 'Spinner' action to SpinnerDemo, 
	(mkCheckbox): Removed,
	(mkRadio): Likewise,
	(mkSpinner): Likewise,
	(mkToggle): Likewise,
	(mkButtonBar): Removed 'Toggles', 'Checkbox' and 'Radio' actions,
	connected 'Spinner' action to SpinnerDemo.

2006-02-28  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/ServiceUIFactory.java: Added documentation to class.

2006-02-28  Anthony Balkissoon  <abalkiss@redhat.com>

	PR classpath/26434
	* javax/swing/DefaultListSelectionModel.java:
	(addSelectionInterval): Return early if either of the arguments is -1.
	(removeSelectionInterval): Likewise.
	(setSelectionInterval): Likewise.

2006-02-28  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultFormatter.java
	(stringToValue): Added NPE check.

2006-02-28  Roman Kennke  <kennke@aicas.com>

	PR classpath/25675
	* javax/swing/JList.java
	(getPreferredScrollableViewportSize): Restored specified behaviour.
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(createList): Set filelist panel's preferredSize, so that it doesn't
	get size into infinity for big lists.

2006-02-28  Lillian Angel  <langel@redhat.com>

	* javax/swing/ViewportLayout.java
	(layoutContainer): Should not extend container to be 
	minimum size. Mauve test shows that the preferred size
	and the size of the viewport can be set smaller than
	the minimum.

2006-02-28  Lillian Angel  <langel@redhat.com>

	PR classpath/25675
	* javax/swing/JList.java
	(getPreferredScrollableViewportSize): Added a check to determine
	if orientation is VERTICAL_WRAP. If it is, we should only 
	show 3 columns. 

2006-02-28  Lillian Angel  <langel@redhat.com>

	PR classpath/26003
	* javax/swing/ViewportLayout.java:
	Patch submitted by Audrius Meskauskas
	(addLayoutComponent): Added documentation.
	(removeLayoutComponent): Likewise.
	(preferredLayoutSize): Likewise.
	(minimumLayoutSize): Likewise.
	(layoutContainer): Fixed code, so view is set
	to the right position when inside a scrollpane.	

2006-02-28  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigInteger.java:
	Committed patch by Rafael: 
	developer.classpath.org/pipermail/classpath-patches/
	2006-February/000473.html
	(signum): Return early 0 if words == null and ival == 0.
	(readObject): Handle special case of magnitude.length or signum being
	0.
	(writeObject): If signum is zero return a zero-sized byte[].

2006-02-28  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
	(create): Initially set the directory to the current working directory.
	(setDirectory): Removed else-if. No need for this check.

2006-02-28  Tom Tromey  <tromey@redhat.com>

	* .project: Run java builder before header generation.

2006-02-28  Tom Tromey  <tromey@redhat.com>

	* gnu/java/util/prefs/MemoryBasedPreferences.java (childrenNamesSpi):
	Javadoc fix.
	* gnu/java/util/prefs/EventDispatcher.java: New file.
	* gnu/java/util/prefs/NodeWriter.java (NodeWriter): Removed.
	(NodeWriter): Specify UTF-8.
	(writeHeader): Emit DOCTYPE.
	* java/util/prefs/Preferences.java (getFactory): Add cause to
	exception.
	(exportNode): Documented.
	(exportSubtree): Likewise.
	(importPreferences): Likewise.
	* java/util/prefs/NodeChangeEvent.java (readObject): New method.
	(writeObject): Likewise.
	* java/util/prefs/PreferenceChangeEvent.java (readObject): New method.
	(writeObject): Likewise.
	* java/util/prefs/AbstractPreferences.java (putBoolean): Use 1.4 code.
	(nodeListeners): New field.
	(preferenceListeners): Likewise.
	(addNodeChangeListener): Implemented.
	(addPreferenceChangeListener): Likewise.
	(removeNodeChangeListener): Likewise.
	(removePreferenceChangeListener): Likewise.
	(fire): New methods.
	(put): Fire event.
	(remove): Likewise.
	(purge): Likewise.  Fixed synchronization.
	(removeNode): Fixed synchronization.
	(getNode): Fire event.
	(flushNode): Fixed synchronization.

2006-02-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BranchElement.java
	(startOffset): New field.
	(endOffset): New field.
	(BranchElement): Initialize new fields.
	(getEndOffset): Rewritten to possibly return cached values
	if element has no children.
	(getStartOffset): Rewritten to possibly return cached values
	if element has no children.
	* javax/swing/text/LeafElement.java
	(startDelta): New field.
	(endDelta): New field.
	(LeafElement): Handle possible delta of start/endOffset when
	these parameters lie outside the document range.
	(getStartOffset): Handle possible startDelta.
	(getEndOffset): Handle possible startDelta.

2006-02-28  Anthony Balkissoon  <abalkiss@redhat.com>

	* NEWS: Added line about Unicode 4.0.0 support.

2006-02-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(layoutCompoundLabel): Set textIconGap to 0 when icon == null.

2006-03-01  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/classpath/debug/Simple1LineFormatter.java: New file.

2006-03-01  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.java:
	Amended class documentation.
	(encodeSignature): Emit the ASN.1 raw bytes not the DER-encoded BIT
	STRING.
	(decodeSignature): Parse the ASN.1 raw bytes of a BIT STRING and not
	a BIT STRING construct.
	* gnu/java/security/sig/dss/DSSSignatureX509Codec.java: Amended class
	documentation.
	(encodeSignature): Emit the ASN.1 raw bytes not the DER-encoded BIT
	STRING.
	(decodeSignature): Parse the ASN.1 raw bytes of a BIT STRING and not
	a BIT STRING construct.
	* gnu/java/security/jce/sig/SignatureAdapter.java (log): New field.
	(engineVerify): Added logging.

2006-02-28  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(dispatchEventImpl): Let the Toolkit dispatch global events.
	* java/awt/Container.java
	(dispatchEventImpl): Let the LightweightDispatcher handle events
	first.
	* java/awt/EventQueue.java
	(dispatchEvent): Don't do the global event dispatching here. This
	is moved to the Component.
	(globalDispatchEvent): Moved this method to Toolkit.
	* java/awt/LightweightDispatcher.java
	(instances): New field.
	(getInstance): New method. Delivers an instance of
	LightweightDispatcher.
	(LightweightDispatcher): Made default constructor private.
	(dispatchEvent): New method. Replaces the eventDispatched method.
	This now returns true when the event was actually dispatched.
	(eventDispatched): Replaced by dispatchEvent.
	(handleMouseEvent): Send MOUSE_CLICKED to the same component that
	received the last MOUSE_RELEASED.
	* java/awt/Toolkit.java
	(Toolkit): Don't register LightweightDispatcher as global event
	handler.
	(globalDispatchEvent): Moved here from EventQueue.

2006-02-27  David Daney  <ddaney@avtrex.com>

	PR classpath/25851
	* gnu/java/net/protocol/http/HTTPURLConnection.java (imports) Cleaned
	up.
	(getRequestProperties): Rewrote.

2006-02-27  David Daney  <ddaney@avtrex.com>

	PR classpath/26312
	* gnu/java/net/protocol/http/ChunkedInputStream.java (imports): Cleaned
	up.
	(ChunkedInputStream): Extend InputStream.
	(in): New field.
	(headers): Moved to top of class.
	(constructor): Save referenct to in.
	(read(byte[])): Removed method.
	(read(byte[], int, int)): Made synchronized and throw IOException
	on error parsing chunk header.
	(available): New method.
	(close): New method.

2006-02-27  David Daney  <ddaney@avtrex.com>

	* gnu/java/net/protocol/http/HTTPURLConnection.java
	(imports): Cleaned up.
	(GetHTTPPropertiesAction): Removed, and moved contents to ...
	(constructor): ... Here, using SystemProperties instead of System.
	
2006-02-27  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
	(setDirectory): GtkFileChooser requires an absolute directory
	name. Added a check to make the directory passed to nativeSetDirectory
	is absolute.

2006-02-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(computeIntersection): Changed to store result in rect, instead of
	creating new Rectangle instances. Fixed API docs accordingly.
	(computeUnion): Changed to store result in rect, instead of
	creating new Rectangle instances. Fixed API docs accordingly.

2006-02-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JViewport.java
	(static_init): Changed default scrollmode to BLIT.
	(paintSimple): Added some clipping to avoid painting problems.
	(paintBlit): Added some clipping to avoid painting problems.

2006-02-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(rectCache): Made field static to save memory.
	(getVisibleRect): Don't use rectCache and create new Rectangle
	instance instead.
	(repaint(Rectangle)): Directly call RepaintManager.addDirtyRegion().
	(repaint(long,int,int,int,int)): Directly call
	RepaintManager.addDirtyRegion(). The visibleRect check is now
	performed in the RepaintManager.

2006-02-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(currentRepaintManagers): Made field private.
	(rectCache): New field.
	(addDirtyRegion): Clip dirty rectangle with visible rectangle of
	component. Changed Rectangle handling to avoid unnecessary new
	Rectangle instances.
	(getOffscreenBuffer): Create buffer with size of the root window.
	Respect the maximum buffer size here.
	(commitBuffer): Align the regions so that they are inside the buffer
	image and inside the clip. This avoids problems with a bug in GTKImage.
	Fixed Rectangle handling to avoid creation of new Rectangle instances.

2006-02-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* native/fdlibm/e_acos.c,
	* native/fdlibm/e_asin.c,
	* native/fdlibm/e_atan2.c,
	* native/fdlibm/e_cosh.c,
	* native/fdlibm/e_exp.c,
	* native/fdlibm/e_fmod.c,
	* native/fdlibm/e_hypot.c,
	* native/fdlibm/e_log.c,
	* native/fdlibm/e_log10.c,
	* native/fdlibm/e_rem_pio2.c,
	* native/fdlibm/e_remainder.c,
	* native/fdlibm/e_sinh.c,
	* native/fdlibm/e_sqrt.c,
	* native/fdlibm/k_cos.c,
	* native/fdlibm/k_sin.c,
	* native/fdlibm/k_tan.c,
	* native/fdlibm/s_atan.c,
	* native/fdlibm/s_cbrt.c,
	* native/fdlibm/s_ceil.c,
	* native/fdlibm/s_copysign.c,
	* native/fdlibm/s_cos.c,
	* native/fdlibm/s_expm1.c,
	* native/fdlibm/s_fabs.c,
	* native/fdlibm/s_finite.c,
	* native/fdlibm/s_floor.c,
	* native/fdlibm/s_log1p.c,
	* native/fdlibm/s_rint.c,
	* native/fdlibm/s_scalbn.c,
	* native/fdlibm/s_sin.c,
	* native/fdlibm/s_tan.c,
	* native/fdlibm/s_tanh.c:
	Fixed to call our macros rather than __HI and __LO.
	* native/fdlibm/fdlibm.h:
	Reintroduced previous extraction code.
	(EXTRACT_WORDS(ix0,ix1,d)): Readded.
	(GET_HIGH_WORD(i,d)): Readded.
	(GET_LOW_WORD(i,d)): Readded.
	(INSERT_WORDS(d,ix0,ix1)): Readded.
	(SET_HIGH_WORD(d,i)): Readded.
	(SET_LOW_WORD(d,i)): Readded.
	* native/jni/gtk-peer/gthread-jni.c:
	Use Glib macros to convert integers/pointers portably.
	
2006-02-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/security/SecureRandom.java (SecureRandom): Use GNU-CRYPTO class
	as the fallback SPI.
	* gnu/java/security/provider/Gnu.java (run): Replaced mappings with new
	ones referencing GNU-CRYPTO classes.
	* gnu/java/security/provider/PKIXCertPathValidatorImpl.java
	(engineValidate): Use GNU-CRYPTO class.
	* gnu/java/security/provider/DiffieHellmanKeyFactoryImpl: Removed.
	* gnu/java/security/provider/DiffieHellmanKeyPairGeneratorImpl: Likewise.
	* gnu/java/security/provider/DSAKeyFactory: Likewise.
	* gnu/java/security/provider/DSAKeyPairGenerator: Likewise.
	* gnu/java/security/provider/DSAParameters: Likewise.
	* gnu/java/security/provider/DSASignature: Likewise.
	* gnu/java/security/provider/EncodedKeyFactory: Likewise.
	* gnu/java/security/provider/GnuDHPublicKey: Likewise.
	* gnu/java/security/provider/GnuDSAPrivateKey: Likewise.
	* gnu/java/security/provider/GnuDSAPublicKey: Likewise.
	* gnu/java/security/provider/GnuRSAPrivateKey: Likewise.
	* gnu/java/security/provider/GnuRSAPublicKey: Likewise.
	* gnu/java/security/provider/MD2withRSA: Likewise.
	* gnu/java/security/provider/MD4withRSA: Likewise.
	* gnu/java/security/provider/MD5: Likewise.
	* gnu/java/security/provider/MD5withRSA: Likewise.
	* gnu/java/security/provider/RSA: Likewise.
	* gnu/java/security/provider/RSAKeyFactory: Likewise.
	* gnu/java/security/provider/SHA: Likewise.
	* gnu/java/security/provider/SHA1PRNG: Likewise.
	* gnu/java/security/provider/SHA1withRSA: Likewise.
	* gnu/javax/crypto/GnuDHPrivateKey: Likewise.

2006-02-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/jce/sig/EncodedKeyFactory.java (log): New field.
	(engineGeneratePublic): Added logging.
	(engineGeneratePrivate): Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java (log): New field.
	(encodePublicKey): Added logging.
	Clarified in method documentation that params is optional, but is
	always NULL if present.
	(decodePublicKey): Added logging.
	Handle optional NULL element.

2006-02-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/logging/FileHandler.java: Fixed a javadoc reference.

2006-02-25  Chris Burdess  <dog@gnu.org>

	* gnu/java/net/CRLFInputStream.java,
	  gnu/java/net/LineInputStream.java: Streams that use mark
	  capabilities on the underlying stream do not expose mark
	  functionality themselves.
	* gnu/xml/stream/CRLFReader.java: Fix incorrect end condition when
	  off > 0.

2006-02-25  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/REMatch.java(matchFlags): New int field used as
	option flags passed to match methods.
	(MF_FIND_ALL): New flag.
	* gnu/regexp/RETokenOneOf.java(matchP): Unless MF_FIND_ALL is set,
	do not try other possibilties once a match is found.
	* gnu/regexp/RETokenRepeated.java(findDoables): Set MF_FIND_ALL
	so that all possibilities can be found.
	(match): Rewritten using new methods matchMinimum and _match.
	(_match): New method which performs a depth-first recursive search.
	(matchMinimum): New method.
	(initVisited), (visitedContains), (addVisited): New methods for
	manipulating an array of icharacter positions which _match has
	already visited.

2006-02-24  David Daney  <ddaney@avtrex.com>

	PR classpath/26082
	* gnu/java/net/protocol/http/HTTPConnection.java (pool): Changed to
	type Pool.
	(Pool): New inner class.
	(timeLastUsed): New field.
	(setPool): Changed parameter type to Pool.
	(release): Moved pool management logic to new class Pool.
	* gnu/java/net/protocol/http/HTTPURLConnection.java (connectionPool):
	Removed.
	(maxConnections) : Removed.
	(GetHTTPPropertiesAction.run): Don't initialize maxConnections.
	(getConnection):  Moved pool management logic to HTTPConnection.Pool.

2006-02-24  Lillian Angel  <langel@redhat.com>

	* java/awt/Container.java:
	Added new field. True if Container has been cleared and
	heavyweights need to be repainted.
	(paint): Fixed comment. Fixed to use backCleared and 
	reset backCleared.
	(update): Set backCleared to true after the background
	of the container has been cleared.

2006-02-24  Lillian Angel  <langel@redhat.com>

	* java/awt/TextField.java
	(addNotify): Added call to super.

2006-02-24  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(reshape): Reverted last patch. Should have check here.
	(addNotify): Added check. If parent is lightweight, then
	initialize listener on the parent.
	(HeavyweightInLightweightListener): New class.

2006-02-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboPopup.java
	(show): Register the popup with the autocloser after it has been
	opened completely, by putting the registration on the eventqueue.

2006-02-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/security/prng/BasePRNG.java:
	(clone()): Added cast of buffer to byte[].
	* gnu/javax/crypto/mac/TMMH16.java:
	(clone()): Fixed casting of cloned arrays.
	* native/fdlibm/fdlibm.h:
	Added missing defines from old fdlibm.h needed by Darwin.
	(GET_FLOAT_WORD(i,d)): Re-added.
	(SET_FLOAT_WORD(d,i)): Re-added.
	
2006-02-24  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java:
	(dispatcher): Removed field.
	(dispatchEventImpl): Removed lightweight dispatching.
	(addNotifyContainerChildren): Removed LightweightDispatcher
	handling.
	(LightweightDispatcher): Removed class.
	* java/awt/LightweightDispatcher.java: New class.
	* java/awt/Toolkit.java
	(Toolkit): Install LightweightDispatcher in global listener
	array.

2006-02-24  Chris Burdess  <dog@gnu.org>

	Fixes PR 26324
	* gnu/java/net/CRLFInputStream.java: Fix incorrect end condition when
	  off > 0.

2006-02-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS: Mentions the VMMath runtime changes.
	* doc/vmintegration.texinfo: Updated to include
	VMMath.

2006-02-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(PopupHelper.autoClosePopups): New field.
	(PopupHelper.mousePressed): Also autoclose any registered popups.
	(PopupHelper.registerForAutoClose): New method.
	(PopupHelper.autoClosePopups): New method.
	(popupHelper): Changed type of field to PopupHelper.
	(registerForAutoClose): New method.
	* javax/swing/plaf/basic/BasicComboPopup.java
	(show): Register this popup for autoclosing.

2006-02-24  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/mac/TMMH16.java (clone): New method.
	* gnu/java/security/prng/MDGenerator.java (clone): New method.
	* gnu/java/security/prng/BasePRNG.java (clone): Clone buffer.

2006-02-24  Roman Kennke  <kennke@aicas.com>

	Reported by Ingo Proetel <proetel@aicas.com>
	* java/util/logging/LogManager.java
	(addLogger): Search the parent loggers for log level
	configuration and inherit that.
	(readConfiguration): Provide minimal default configuration
	if no configuration can be found otherwise.

2006-02-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JRootPane.java
	(isOptimizedDrawingEnabled): Implemented to return true
	when the glassPane is not visible.

2006-02-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(PopupHelper): New inner class.
	(popupHelper): New field.
	(initialize): New method.
	(uninitialize): New method.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java
	(mouseInputListener): Removed field.
	(PopupMenuHandler.popupMenuWillBecomeInvisible): Removed
	handling of GlassPane.
	(PopupMenuHandler.popupMenuWillBecomeVisible): Removed
	handling of GlassPane.
	(MouseInputHandler): Removed class.

2006-02-23  Roman Kennke  <kennke@aicas.com>

	* java/awt/AWTEvent.java
	(eventIdToMask): New utility method.
	* java/awt/EventQueue.java
	(dispatchEvent): Also globally dispatch events via the toolkit.
	(globalDispatchEvent): New method.
	* java/awt/Toolkit.java
	(awtEventListeners): New field.
	(Toolkit()): Initialize new field.
	(createComponent): Create GLightweightPeer here.
	(addAWTEventListener): Implemented and documented.
	(removeAWTEventListener): Implemented and documented.
	(getAWTEventListeners): Implemented and documented both method
	variants.
	* java/awt/event/AWTEventListenerProxy.java
	(eventDispatched): Don't filter events here.

2006-02-23  Chris Burdess  <dog@gnu.org>

	Fixes PR 26410
	* gnu/xml/dom/DomDocumentBuilderFactory.java,
	  gnu/xml/dom/JAXPFactory.java,
	  gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.java,
	  javax/xml/parsers/DocumentBuilderFactory.java: Add and trivially
	  implement DocumentBuilderFactory.get/setFeature methods.

2006-02-23  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/GLightweightPeer.java
	(repaint): Scott's proposed fix. Send repaint to the
	component's parent.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(setBounds): Removed next_parent, not needed. Removed
	lightweightChild, we always need to compensate for the
	menu bar's height.
	* java/awt/Component.java
	(setBounds): Removed check. Caused lots of problems, because some
	components were not being invalidated. Components should be
	invalidated when they are resized or moved, and in some cases,
	when a parent is resized/moved, the components do not know
	about it and do not adjust.
	* java/awt/Graphics.java
	(hitClip): Scott's proposed fix. Added check to handle a 
	null clip.

2006-02-23  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/standard/MediaSize.java: 
	(media): Field renamed to mediaName for serialization.
	(MediaSize): Adapted to new fieldname.
	(getMediaSizeName): Likewise.
	* javax/print/attribute/HashAttributeSet.java: 
	(interfaceName): Field renamed to myInterface for serialization.
	(HashAttributeSet): Adapted to the new fieldname.
	(add): Likewise.
	(addAll): Likewise.
	(addInternal): Likewise.
	(attributeMap): Made transient.
	(readObject): New serialization method.
	(writeObject): Likewise.
	* javax/print/attribute/AttributeSetUtilities.java: 
	(SynchronizedAttributeSet.set): Field renamed to attrset for serialization.
	(SynchronizedAttributeSet.add): Adapted to the new fieldname.
	(SynchronizedAttributeSet.addAll): Likewise.
	(SynchronizedAttributeSet.clear): Likewise.
	(SynchronizedAttributeSet.containsKey): Likewise.
	(SynchronizedAttributeSet.containsValue): Likewise.	
	(SynchronizedAttributeSet.equals): Likewise.
	(SynchronizedAttributeSet.get): Likewise.
	(SynchronizedAttributeSet.hashCode): Likewise.	
	(SynchronizedAttributeSet.isEmpty): Likewise.
	(SynchronizedAttributeSet.remove): Likewise.	
	(SynchronizedAttributeSet.size): Likewise.	
	(SynchronizedAttributeSet.toArray): Likewise.	
	(UnmodifiableAttributeSet.set): Field renamed to attrset for serialization.
	(UnmodifiableAttributeSet.add): Adapted to the new fieldname.
	(UnmodifiableAttributeSet.addAll): Likewise.
	(UnmodifiableAttributeSet.clear): Likewise.
	(UnmodifiableAttributeSet.containsKey): Likewise.
	(UnmodifiableAttributeSet.containsValue): Likewise.	
	(UnmodifiableAttributeSet.equals): Likewise.
	(UnmodifiableAttributeSet.get): Likewise.
	(UnmodifiableAttributeSet.hashCode): Likewise.	
	(UnmodifiableAttributeSet.isEmpty): Likewise.
	(UnmodifiableAttributeSet.remove): Likewise.	
	(UnmodifiableAttributeSet.size): Likewise.	
	(UnmodifiableAttributeSet.toArray): Likewise.	
	* javax/print/attribute/standard/MediaPrintableArea.java: 
	(width): Field renamed to w for serialization.
	(height): Field renamed to h for serialization. 
	(MediaPrintableArea): Adapted to the new fieldnames.	
	(MediaPrintableArea): Likewise.
	(equals): Likewise.
	(hashCode): Likewise.
	(getHeight): Likewise.
	(getWidth): Likewise.

2006-02-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* include/java_lang_VMMath.h:
	(Java_java_lang_VMMath_cbrt(JNIEnv*,jclass,jdouble)): Added.
	(Java_java_lang_VMMath_cosh(JNIEnv*,jclass,jdouble)): Added.
	(Java_java_lang_VMMath_expm1(JNIEnv*,jclass,jdouble)): Added.
	(Java_java_lang_VMMath_hypot(JNIEnv*,jclass,jdouble,jdouble)): Added.
	(Java_java_lang_VMMath_log10(JNIEnv*,jclass,jdouble)): Added.
	(Java_java_lang_VMMath_log1p(JNIEnv*,jclass,jdouble)): Added.
	(Java_java_lang_VMMath_sinh(JNIEnv*,jclass,jdouble)): Added.
	(Java_java_lang_VMMath_tanh(JNIEnv*,jclass,jdouble)): Added.
	* java/lang/Math.java:
	(cbrt(double)): Implemented.
	(cosh(double)): Implemented.
	(expm1(double)): Implemented.
	(hypot(double,double)): Implemented.
	(log10(double)): Implemented.
	(log1p(double)): Implemented.
	(signum(double)): Implemented.
	(signum(float)): Implemented.
	(sinh(double)): Implemented.
	(tanh(double)): Implemented.
	* native/fdlibm/Makefile.am:
	Added new files from fdlibm 5.3.
	* native/fdlibm/e_acos.c,
	* native/fdlibm/e_asin.c,
	* native/fdlibm/e_atan2.c,
	* native/fdlibm/e_exp.c,
	* native/fdlibm/e_fmod.c,	
	* native/fdlibm/e_log.c,
	* native/fdlibm/e_rem_pio2.c,
	* native/fdlibm/e_remainder.c,
	* native/fdlibm/e_scalb.c,
	* native/fdlibm/e_sqrt.c,
	* native/fdlibm/k_cos.c,
	* native/fdlibm/k_rem_pio2.c,
	* native/fdlibm/k_sin.c,
	* native/fdlibm/k_tan.c,
	* native/fdlibm/s_atan.c,
	* native/fdlibm/s_ceil.c,
	* native/fdlibm/s_copysign.c,
	* native/fdlibm/s_cos.c,
	* native/fdlibm/s_fabs.c,
	* native/fdlibm/s_finite.c,
	* native/fdlibm/s_floor.c,
	* native/fdlibm/s_rint.c,
	* native/fdlibm/s_scalbn.c,
	* native/fdlibm/s_sin.c,
	* native/fdlibm/s_tan.c,
	* native/fdlibm/w_acos.c,
	* native/fdlibm/w_asin.c,
	* native/fdlibm/w_atan2.c,
	* native/fdlibm/w_acos.c,
	* native/fdlibm/w_exp.c,
	* native/fdlibm/w_fmod.c,
	* native/fdlibm/w_log.c,
	* native/fdlibm/w_pow.c,
	* native/fdlibm/w_remainder.c,
	* native/fdlibm/w_sqrt.c:
	Updated to fdlibm 5.3.
	* native/fdlibm/e_cosh.c,
	* native/fdlibm/e_hypot.c,
	* native/fdlibm/e_log10.c,
	* native/fdlibm/e_sinh.c,
	* native/fdlibm/s_cbrt.c,
	* native/fdlibm/s_expm1.c,
	* native/fdlibm/s_log1p.c,
	* native/fdlibm/s_tanh.c,
	* native/fdlibm/w_cosh.c,
	* native/fdlibm/w_hypot.c,
	* native/fdlibm/w_log10.c,
	* native/fdlibm/w_sinh.c:
	Imported from fdlibm 5.3.
	* native/fdlibm/fdlibm.h:
	Imported from fdlibm 5.3 with Classpath additions.
	* native/fdlibm/namespace.h:
	Updated from new math_symbols file.
	* native/jni/java-lang/java_lang_VMMath.c:
	(Java_java_lang_VMMath_cbrt(JNIEnv*,jclass,jdouble)): Implemented.
	(Java_java_lang_VMMath_cosh(JNIEnv*,jclass,jdouble)): Implemented.
	(Java_java_lang_VMMath_expm1(JNIEnv*,jclass,jdouble)): Implemented.
	(Java_java_lang_VMMath_hypot(JNIEnv*,jclass,jdouble,jdouble)):
	Implemented.
	(Java_java_lang_VMMath_log10(JNIEnv*,jclass,jdouble)): Implemented.
	(Java_java_lang_VMMath_log1p(JNIEnv*,jclass,jdouble)): Implemented.
	(Java_java_lang_VMMath_sinh(JNIEnv*,jclass,jdouble)): Implemented.
	(Java_java_lang_VMMath_tanh(JNIEnv*,jclass,jdouble)): Implemented.
	* scripts/math_symbols:
	Added tanh, expm1, log10 and log1p.
	* vm/reference/java/lang/VMMath.java:
	(cbrt(double)): Implemented.
	(cosh(double)): Implemented.
	(expm1(double)): Implemented.
	(hypot(double,double)): Implemented.
	(log10(double)): Implemented.
	(log1p(double)): Implemented.
	(sinh(double)): Implemented.
	(tanh(double)): Implemented.
	
2006-02-23  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/DocFlavor.java: Added documentation all over.
	(BYTE_ARRAY.TEXT_HTML_HOST): Include host charset encoding to mimetype.
	(BYTE_ARRAY.TEXT_PLAIN_HOST): Likewise.
	(INPUT_STREAM.TEXT_HTML_HOST): Likewise.
	(INPUT_STREAM.TEXT_PLAIN_HOST): Likewise.
	(URL.TEXT_HTML_HOST): Likewise.
	(URL.TEXT_PLAIN_HOST): Likewise.
	(hostEncoding): Initialize with host default charset encoding.
	(mediaSubtype): Made transient.
	(mediaType): Likewise.
	(params): Made transient. Changed type to TreeMap.
	(className): Removed, changed to myClassName.
	(myClassName): New field as defined in serialized form.
	(DocFlavor): Adapted to new variable types, names.
	(parseMimeType): Reimplemented.
	(getParameter): Search with lowercase name.
	(getRepresentationClassName): Adapted to changed variable name.
	(hashCode): Likewise.
	(toString): Reimplemented.
	(readObject): New method for serialization.
	(writeObject): Likewise.

2006-02-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(commitBuffer): Clip the repaint area with the current clip.

2006-02-23  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java
	(DEFAULT_PRIME_SIZE): Made public.
	(DEFAULT_EXPONENT_SIZE): Likewise.
	(setup): Handle DHParameterSpec as well.
	* gnu/javax/crypto/key/dh/GnuDHKey.java (getEncoded): Return
	defaultFormat instead of Raw.
	* gnu/javax/crypto/key/dh/DHKeyPairX509Codec.java
	(checkIsConstructed): Removed.
	(checkIsBigInteger): Likewise.
	(decodePublicKey): Use DerUtil.
	* gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.java
	(checkIsConstructed): Removed.
	(checkIsBigInteger): Likewise.
	(decodePrivateKey): Use DerUtil.
	* gnu/javax/crypto/jce/GnuCrypto.java (run): Updated mapping of
	KeyAgreement.DH.
	Added mappings for AlgorithmParameters.DH and
	AlgorithmParameterGenerator.DH.
	* gnu/javax/crypto/jce/DiffieHellmanImpl.java: New file.
	* gnu/javax/crypto/jce/sig/DHParametersGenerator.java: Likewise.
	* gnu/javax/crypto/jce/sig/DHParameters.java: Likewise.
	* gnu/javax/crypto/jce/sig/DHKeyFactory.java (engineGeneratePrivate):
	Return result.
	(engineGeneratePublic): Likewise.
	* gnu/java/security/util/DerUtil.java: New file.
	* gnu/java/security/sig/rsa/RSASignatureFactory.java (getNames):
	Include only valid RSA PKCS1 (v1.5) signature names.
	* gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.java
	(RSAPKCS1V1_5SignatureX509Codec): Removed.
	(checkIsConstructed): Likewise.
	* gnu/java/security/sig/dss/DSSSignatureX509Codec.java
	(checkIsConstructed): Removed.
	(checkIsBigInteger): Likewise.
	(decodeSignature): Use DerUtil.
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java
	(checkIsConstructed): Removed.
	(checkIsBigInteger): Likewise.
	(decodePublicKey): Use DerUtil.
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java
	(checkIsConstructed): Removed.
	(checkIsBigInteger): Likewise.
	(decodePrivateKey): Use DerUtil.
	* gnu/java/security/key/dss/DSSKeyPairX509Codec.java
	(checkIsConstructed): Removed.
	(checkIsBigInteger): Likewise.
	(decodePublicKey): Use DerUtil.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java
	(checkIsConstructed): Removed.
	(checkIsBigInteger): Likewise.
	(decodePrivateKey): Use DerUtil.
	* gnu/java/security/key/dss/DSSKeyPairGenerator.java
	(DEFAULT_MODULUS_LENGTH): Made it public.
	* gnu/java/security/key/dss/DSSKey.java (getEncoded): Return
	defaultFormat instead of Raw.
	* gnu/java/security/jce/sig/DSSParametersGenerator.java: New file.
	* gnu/java/security/jce/sig/DSSParameters.java: Likewise..
	* gnu/java/security/jce/sig/DSSKeyFactory.java (engineGeneratePrivate):
	Return result.
	(engineGeneratePublic): Likewise.
	* gnu/javax/crypto/DiffieHellmanImpl: Removed.

2006-02-22  Mark Wielaard  <mark@klomp.org>

	* java/awt/Checkbox.java (setState): Check that state actually changed
	before calling peer.
	(dispatchEventImpl): Set new state if ItemEvent.
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java (changing): Removed.
	(create): Set currentState.
	(setState): Make synchronized, check and set currentState before
	calling gtkToggleButtonSetActive.
	(postItemEvent): Make synchronized, check and set currentState before
	posting ItemEvent.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(postItemEventID): Method now takes boolean.
	(item_toggled_cb): Likewise.

2006-02-22  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultHighlighter.java:
	(changeHighlight): Added code to minimize the damaged area.

2006-02-22  Robert Schuster  <robertschuster@fsfe.org>

        * javax/swing/text/PlainView.java:
        (getPreferredSpan): Added missing 'break'.
        statement which corrects an unwanted fall through.
        (updateDamage): Update maxLineLength correctly when text is
        removed, call preferenceChanged accordingly.
        (viewToModel): Restrict line number to be within 0 and the
        number of elements-1.

2006-02-22  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/Utilities.java:
	(getPositionAbove): Prefer first value by changing comparison
	from < to <=.
	(getPositionBelow): Dito.

2006-02-22  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultEditorKit.java: Added checks and fallback
	behavior when magic caret position is null.

2006-02-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTextField.java
	(isValidateRoot): New method.

2006-02-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	(getPreferredSize): Rewritten to behave like the reference impl.
	(getScrollableTracksViewportWidth): Likewise.
	(getScrollableTracksViewportHeight): Likewise.

2006-02-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(addInvalidComponent): Also consider the component itself.

2006-02-22  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/html/HTMLDocument.java (createDefaultRoot): Fully
	qualify AbstractDocument.AttributeContext.
	(blockOpen): Likewise.

2006-02-21  Mark Wielaard  <mark@klomp.org>

	* java/awt/Component.java (translateEvent): Translate
	AdjustmentEvents to 1.0 Events.
	* java/awt/Scrollbar.java (dispatchEventImpl): Set valueIsAdjusting.
	Call setValue() before processing event.
	* gnu/java/awt/peer/gtk/GtkScrollbarPeer.java (setValues): Check
	whether we are currently changing and being called back from the
	Scrollbar component.
	(setBarValues): New native method.
	(postAdjustmentEvent): Mark AdjustmentEvent as user generated.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setValues): Renamed to
	Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setBarValue
	* include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: Regenerated.

2006-02-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/View.java
	(setParent): Set child parent to null when disconnecting
	the view from the View hierarchy.

2006-02-21  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/StreamPrintService.java: Added and enhanced documentation.

2006-02-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/WrappedPlainView.java
	(calculateBreakPosition): Changed to use the view's allocation instead
	of the container's preferredSize.

2006-02-21  Wolfgang Baer  <WBaer@gmx.de>

	* java/awt/CardLayout.java:
	(first): Updated api documentation.
	(last): Likewise.
	(next): Likewise.
	(previous): Likewise.
	(show): Clarified api docs. Return if name is null. Throw
	IllegalArgumentException if layout of container is not this.
	(gotoComponent): Updated api documentation. Throw
	IllegalArgumentException if layout of container is not this.

2006-02-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/NavigationFilter.java
	(getNextVisualPositionFrom): New method.

2006-02-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.setView): Call setParent() on the view with this as
	argument instead of null.
	(setView): Don't set root view's parent here.

2006-02-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(AbstractElement.getAttribute): Use getResolveParent() to fetch
	the resolving parent.
	(AbstractElement.getResolveParent): Fixed to handle possible null
	parent.
	* javax/swing/text/BoxView.java
	(childReqs): New field.
	(paint): Added debugging code (commented out).
	(getPreferredSpan): Rewritten to use new update* methods.
	(getMaximumSpan): Rewritten to return Integer.MAX_VALUE
	for the minor axis and preferredSpan for the major axis.
	(getMinimumSpan): Rewritten to use new update* methods.
	(baselineRequirements): Rewritten to avoid creation of 
	unnecessary SizeRequirements objects.
	(baselineLayout): Rewritten to use new update* methods.
	(calculateMajorAxisRequirements): Rewritten to avoid creation of 
	unnecessary SizeRequirements objects.
	(calculateMinorAxisRequirements): Rewritten to avoid creation of 
	unnecessary SizeRequirements objects.
	(layout): Some robustness fixes for the layout. Turned AssertionErrors
	into warnings.
	(layoutMajorAxis): Rewritten to use new update* methods.
	(layoutMinorAxis): Rewritten to use new update* methods.
	(getChildRequirements): Replaced by the update* methods.
	(getAlignment): Use update* methods.
	(updateChildRequirements): New methods. Updates the child requirements
	if necessary.
	(updateRequirements): New methods. Updates the BoxView requirements
	if necessary.
	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.insert): Added warning for illegal replacement operation.
	* javax/swing/text/FlowView.java
	(layoutRow): When offset doesn't change, return -1.
	(LogicalView): Now subclasses BoxView.
	(loadChildren): Let the CompositeView.setParent() load the children
	of the logicalView.
	(calculateMinorRequirements): New overridden method.
	* javax/swing/text/GlyphView.java
	(DefaultGlyphPainter.paint): Fixed typo.
	(startOffset): Made field private.
	(endOffset): Made field private.
	(paint): Call getStartOffset() and getEndOffset() instead of the
	element methods.
	(isStrikeThrough): Fixed typo.
	(breakView): Use Utilities.getBreakLocation() to determine best
	break location.
	(changedUpdate): Call preferencedChange on this instead of parent.
	(removeUpdate): Call preferencedChange on this instead of parent.
	* javax/swing/text/ParagraphView.java
	(Row.getAlignment): For Y_AXIS, call super.
	(getAlignment): Likewise.
	* javax/swing/text/Utilities.java
	(getBreakLocation): Set Segment object directly on the BreakIterator.
	* javax/swing/text/html/HTML.java
	(Attribute): Made class non-serializable and final as specified.
	(Attribute(String)): Made constructor private.
	(Attribute.compareTo): Removed.
	(Attribute.equals): Removed.
	(Attribute.hashCode): Removed.
	(Tag): Made class non-comparable and non-serializable as specified.
	(Tag.compareTo): Removed.
	(Tag.equals): Removed.
	(Tag.hashCode): Removed.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.blockOpen): Add tag as name attribute to element.
	* javax/swing/text/html/HTMLEditorKit.java
	(HTMLFactory.create): Create NullView for <head> tags, removed unused
	fallback.
	* javax/swing/text/html/InlineView.java
	(setPropertiesFromAttributes): Call super.
	* javax/swing/text/html/NullView.java: New class.

2006-02-21  Roman Kennke  <kennke@aicas.com>

	PR classpath/26368
	* javax/swing/text/GapContent.java
	(GapContentPosition): Made class private.
	(InsertUndo): Made class private.
	(UndoRemove): Made class private.
	(WeakPositionComparator): New inner class.
	(positions): Made field private.
	(createPosition): Clear up GC'ed positions before creating
	a new one. Store position as WeakReference.
	(getPositionsInRange): Changed to handle WeakReference
	positions.
	(setPositionsInRange): Changed to handle WeakReference
	positions.
	(adjustPositionsInRange): Changed to handle WeakReference
	positions.
	(dumpPositions): Handle WeakReference positions.
	(clearPositionReferences): New method.

2006-02-21  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTextUI.java:
	(paint): Remove unneccessary part of the if-expression.
	(damageRange): Added case where the range spans multiple lines.
	* javax/swing/text/DefaultCaret.java:
	(clearHighlight): New method.
	(handleHighlight): Removed unneccessary part of the if-expression.
	(setDot): Use clearHighlight method.
	* javax/swing/text/DefaultHighlighter.java: Use ArrayList instead
        of Vector.
        (paint): Prevented calling size() on every loop iteration, fixed
        calculation of allocation area bounds.
        (getHighlights): Implemented.
	(removeHighlight): Mark damaged area in textcomponent.
	(addHighlight): Mark damaged area in textcomponent.
	(changeHighlight): Mark damaged area in textcomponent.
        (DefaultHighlighter.HighlightEntry): Made it a real
        Highlighter.Highlight implementation.
        (DefaultHighlighter.DefaultHighlightPainter.paint): Fixed
        calculations.

2006-02-20  Stuart Ballard  <stuart.a.ballard@gmail.com>

	* java/util/zip/ZipConstants.java
	(LOCSIG): Change type to long.
	(EXTSIG): Likewise.
	(CENSIG): Likewise.
	(ENDSIG): Likewise.
	* java/util/zip/ZipOutputStream.java
	(writeLeInt(long)): New method.

2006-02-21  Michael Koch  <konqueror@gmx.de>

	* gnu/javax/net/ssl/provider/PRNG.java: Removed.

2006-02-20  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(begin_drawing_operation): Output stacktrace and return on bad cairo
	status.
	(end_drawing_operation): Likewise. And reset cairo_t.

2006-02-20  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultEditorKit.java: Fixed comparison
	in backward selection action.

2006-02-20  Olivier Jolly  <olivier.jolly@pcedev.com>

	* java/lang/reflect/Proxy.java:
	(ProxyData.getProxyData): Skipped overriding of core methods.
	(ProxyData.isCoreObjectMethod): New method.

2006-02-20  Mark Wielaard  <mark@klomp.org>

	* gnu/java/nio/charset/Provider.java (Provider): Package private.

2006-02-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/Option.java: New class.

2006-02-20  Lillian Angel  <langel@redhat.com>

	* java/swt/Window.java
	(show): Calling show() on the owned windows caused problems.
	Changed back to get the peer and call setVisible.

2006-02-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(damageRange): Implemented this method.

2006-02-20  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/GapContent.java:
	(shiftGapEndUp): Corrected new mark value.
	* javax/swing/text/AbstractDocument.java:
	(remove): Changed order of operations.

2006-02-20  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/GapContent.java:
	(shiftGapEndUp): Reverted.
	* javax/swing/text/AbstractDocument.java:
	(remove): Reverted.

2006-02-20  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/GapContent.java:
	(shiftGapEndUp): Corrected new mark value.
	* javax/swing/text/AbstractDocument.java:
	(remove): Changed order of operations.

2006-02-20  Mark Wielaard  <mark@klomp.org>

	* java/awt/Menu.java (add(MenuItem)): Use item.getParent() to get
	parent field.
	(insert): Likewise.
	(addNotify): Add the item after addNotifying it.
	* java/awt/MenuBar.java (setHelpMenu): Only call removeNotify() when
	there is a peer. Use getParent() and setParent() to manipulate parent
	field.
	(add(Menu)): Use getParent() and setParent() to manipulate parent
	field. Call addNotify() and addMenu() when there is a peer.
	(remove(int)): Call removeNotify() and delMenu() when there is a peer.
	(addNotify): Use getPeer()/setPeer(). Call addMenu() and addHelpMenu()
	when there is a peer.
	* gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java (create): Document.
	(GtkMenuComponentPeer): Document. Take MenuComponent as argument.
	(setFont): Call setFont(Font).
	(setFont(Font)): Document. Only set font when not null.
	* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java (create): Document. Made
	protected.
	(connectSignals): Likewise.
	(GtkMenuItemPeer): Document. Don't try to add item. Always call
	connectSignals().
	* gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java (create): Make
	protected.
	(postMenuActionEvent): Document.
	* gnu/java/awt/peer/gtk/GtkMenuPeer.java (create): Document. Made
	protected.
	(addItem): Document. Made private.
	(addTearOff): Made private.
	(connectSignals): New protected overridden method.
	(GtkMenuPeer): Correctly cast setupAccelGroup() arguments.
	* gnu/java/awt/peer/gtk/GtkMenuBarPeer.java (hasHelpMenu): New field.
	(create): Document.
	(addMenu): Made private, take GtkMenuPeer as argument and document.
	(GtkMenuBarPeer): Document.
	(nativeSetHelpMenu): Removed.
	(addHelpMenu): Implement.
	(delMenu): Document.
	(addMenu): Implement.
	* gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java (setParent): Removed.
	* include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: Regenerated.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_nativeSetHelpMenu):
	Removed.

2006-02-20  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/server/RMIObjectInputStream.java (resolveProxyClass):
	Expect that proxy interfaces may have different class loaders.
	* gnu/java/rmi/server/UnicastServerRef.java: Rewritten.
	* java/rmi/registry/Registry.java,
	* java/rmi/server/UnicastRemoteObject.java: 
	Documented about proxy stubs.
	* gnu/java/rmi/server/CombinedClassLoader.java,
	java/rmi/server/RemoteObjectInvocationHandler.java: New files.
	* NEWS: Added entry.

2006-02-19  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkContainerPeer.java (endValidate): Set
	Parent and Bounds of our children if either or parent is showing, or
	we are a Window and are showing ourselves now.

2006-02-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/classpath/tools/rmi/rmic/RmicCompiler.java (convertStubName): 
	New method.
	* gnu/classpath/tools/rmi/rmic/templates/Stub_12.jav: 
	Another stub name fix.

2006-02-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java (compile):
	Call convertStubName. (convertStubName): New method.
	* gnu/classpath/tools/rmi/RMIC.java (main): Stub name fix.
	* gnu/classpath/tools/rmi/rmic/RmiMethodGenerator.java 
	(convertStubName): New method.
	(getMethodHashCode): 
	Use existing gnu.java.rmi.server.RMIHashes.getMethodHash.
	* gnu/classpath/tools/rmi/rmic/templates/Stub_12.jav: Stub name fix.

2006-02-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/server/UnicastRemoteObject.java: Documenting. 

2006-02-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/server/UnicastServerRef.java: Reformatted.

2006-02-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JViewport.java (paintBackingStore): If the component has
	not been scrolled, only repaint the buffer part, indicated by
	the parameter graphics clip. 
     
2006-02-19  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/key/OutgoingMessage.java (writePublicKey): Handle new
	internal format.
	(writePrivateKey): Likewise.
	(writeKey): New method.
	(getKeyType): Likewise.
	* gnu/javax/crypto/key/IncomingMessage.java (readPublicKey): Handle new
	internal format.
	(readPrivateKey): Likewise.
	(getKeyPairCodec): New method.
	* gnu/javax/crypto/key/srp6/SRPKey.java (getFormat): Always return Raw.
	* gnu/javax/crypto/key/dh/GnuDHKey.java (getFormat): Use FormatUtil.
	* gnu/java/security/Registry.java (RSA_SIG_PREFIX): New constant.
	(RSA_PSS_ENCODING): Likewise..
	(RSA_PKCS1_V1_5_ENCODING): Likewise.
	(RSA_PSS_SIG): Redefined using other constants.
	(RSA_PKCS1_V1_5_SIG): Likewise.
	(MAGIC_RAW_RSA_PKCS1V1_5_SIGNATURE): New constant.
	* gnu/java/security/util/FormatUtil.java: New file.
	* gnu/java/security/sig/SignatureFactory.java (names): New field.
	(getInstance): Let RSASignatureFactory handle RSA signature names.
	(getNames): Handle new RSA signature (with format) names.
	* gnu/java/security/sig/SignatureCodecFactory.java: New file.
	* gnu/java/security/sig/BaseSignature.java (BaseSignature): Add check
	for null md.
	(name): Include hash algorithm name.
	* gnu/java/security/sig/rsa/RSASignatureFactory.java: New file.
	* gnu/java/security/sig/rsa/RSAPSSSignature.java
	(RSAPSSSignature): Call constructor with IMessageDigest.
	(RSAPSSSignature(ImessageDigest,int)): New constructor.
	* gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.java: New
	file.
	* gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.java:
	Likewise.
	* gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.java
	(RSAPKCS1V1_5Signature(String)): Call constructor with IMessageDigest.
	(RSAPKCS1V1_5Signature(IMessageDigest)): New constructor.
	* gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.java (getInstance): Added
	hash algorithm name to exception.
	* gnu/java/security/sig/dss/DSSSignatureX509Codec.java: New file.
	* gnu/java/security/key/KeyPairCodecFactory.java
	(names): New class field.
	(getInstance(Sitrng)): Deconstruct and call getInstance(String,String).
	(getInstance(String,String)): New method.
	(getInstance(String,int)): New method.
	(getInstance(byte[])): Removed.
	(getInstance(Key)): Handle new formats.
	(getNames): Likewise.
	(getEncodingName(int)): Moved to FormatUtil.
	(getEncodingShortName(int)): Likewise.
	(getRawCodec(String)): New method.
	(getX509Codec(String)): Likewise.
	(getPKCS8Codec(String)): Likewise.
	(getRawCodec(Key)): Likewise.
	(getX509Codec(Key)): Likewise.
	(getPKCS8Codec(Key)): Likewise.
	* gnu/java/security/key/dss/DSSKey.java (getFormat): Use FormatUtil.
	* gnu/java/security/key/rsa/GnuRSAKey.java (getFormat): Likewise.
	* gnu/java/security/jce/sig/SHA512withRSA.java: New File.
	* gnu/java/security/jce/sig/SHA384withRSA.java: Likewise.
	* gnu/java/security/jce/sig/SHA256withRSA.java: Likewise.
	* gnu/java/security/jce/sig/SHA160withRSA.java: Likewise.
	* gnu/java/security/jce/sig/SHA160withDSS.java: Likewsie.
	* gnu/java/security/jce/sig/MD5withRSA.java: Likewise.
	* gnu/java/security/jce/sig/MD2withRSA.java: Likewise.

2006-02-18  Mark Wielaard  <mark@klomp.org>

	* java/awt/dnd/DragSource.java (getDefaultDragSource): Return new
	DragSource.
	(NoDragGestureRecognizer): New static class.
	(createDragGestureRecognizer): Return NoDragGestureRecognizer when
	Toolkit doesn't support drag and drop.

2006-02-18  Mark Wielaard  <mark@klomp.org>

	* javax/swing/AbstractAction.java (AbstractAction()): Nothing to do.
	(AbstractAction(String)): Just call putValue() for NAME.
	(putValue): Nothing to do is old and new value are both null.

2006-02-18  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JRootPane.java (layoutContainer): Get contentPane
	through getContentPane().
	(preferredLayoutSize): Likewise.

2006-02-18  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JMenuBar.java (paintBorder): Check whether border is
	actually set before painting.

2006-02-18  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/html/HTMLDocument.java (addContent):
	Fully qualify AbstractDocument.AttributeContext and
	DefaultStyledDocument.ElementSpec.ContentType for gcj 4.0.

2006-02-18  Mark Wielaard  <mark@klomp.org>

	* java/awt/datatransfer/DataFlavor.java (tryToLoadClass): Rewritten.
	(getRepresentationClassFromMime): Add exception cause to
	IllegalArgumentException.

2006-02-17  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java:
	Removed unneeded import.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java:
	Removed unneeded imports.
	* java/awt/BorderLayout.java:
	Fixed comment, this is not yet handled in the JDK 1.5.
	* java/awt/Container.java:
	Removed unneeded import.

2006-02-17  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(setBounds): Removed check. Coordinates should always be changed
	to incorporate the parent's coordinates.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java
	(setMenuBar): Added checks. Don't validate component if it has 
	not been validated yet, it will be validated later. Only validate
	if it has already been validated, in that case it needs to be
	revalidated.
	* java/awt/Window.java
	(show): Added check. If the window is visible, then bring it to the
	front. Otherwise, iterate through all its children windows and show them.
	No need to do both.

2006-02-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/ParagraphView.java: New file.

2006-02-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (getCellRect): return +rowMargin if spacing
	is included. (moveToCellBeingEdited): Adjusted to start editing at the
	same location where was the initial text.
	* javax/swing/plaf/basic/BasicTableUI.java (paint): Rewritten.

2006-02-17  Chris Burdess  <dog@gnu.org>

	Fixes PRs 26319, 26320, 26321, 26322, 26325
	* gnu/xml/stream/SAXParser.java: On error, reset parser before
	  rethrowing exception.
	* gnu/xml/stream/XMLParser.java: Only report "illegal use of
	  1.1-style prefix unbinding in 1.0 document" error for xmlns
	  prefixes, not xmlns attributes. Fix a problem with empty namespace
	  stack at the end of a document. Permit parameter entity references
	  in element and attribute-list definition name area. Corrected
	  normalisation of whitespace character entity references in CDATA
	  attribute values. Fixed number of characters read following a
	  reset when detecting end of character data with characters after a
	  Unicode surrogate pair.

2006-02-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTMLEditorKit.java
	(HTMLFactory.create): Create InlineView for content tags.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.flush): Call create() on first flush and insert
	on subsequent flushes.

2006-02-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(BranchElement.getStartOffset): Implemented workaround for wrong
	NPE.
	(BranchElement.getEndOffset): Implemented workaround for wrong
	NPE.
	(ElementBuffer.split): Use createBranchElement() instead of
	new BranchElement().
	(ElementBuffer.insertFracture): Use createBranchElement() instead of
	new BranchElement().
	(ElementBuffer.recreateAfterFracture): Use createBranchElement()
	instead of new BranchElement().
	(createDefaultRoot): Use createBranchElement() and createLeafElement
	instead of the constructors.
	(create): Rewritten.

2006-02-17  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/id/JdwpId.java (size): Remove.
	(SIZE): New constant.
	* gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
	(executeIDsizes): Use SIZE constant.
	* vm/reference/gnu/classpath/jdwp/VMFrame.java (size): Remove.
	(SIZE): New constant.

2006-02-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (IconCellRenderer): Set the component
	text to empty string. (createDefaultRenderers): Register
	IconCellRenderer also for ImageIcon. 
	(getCellEditor(int, int), getCellRenderer(int, int)):
	Use model index for data model and column index for column model.
	(getColumnClass): Convert to model index before requesting class
	from model. 

2006-02-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTMLDocument.java
	(createDefaultRoot): Implemented.
	(createLeafElement): Implemented.
	(createBranchElement): Implemented.
	(BlockElement.getName): Fixed to handle HTML.Tag objects as name.
	(RunElement.getName): Fixed to handle HTML.Tag objects as name.
	(HTMLReader.ParagraphAction.start): Call blockOpen at the very least.
	(HTMLReader.ParagraphAction.end): Call blockClose at the very least.
	(HTMLReader.blockOpen): Add name attribute with the current tag.
	(HTMLReader.addContent): Add name attribute with HTML.Tag.CONTENT.

2006-02-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTableHeaderUI.java (MouseInputHandler):
	Rewritten.
	* javax/swing/table/JTableHeader.java: Documenting related methods.

2006-02-17  Jeroen Frijters  <jeroen@frijters.net>

	Fixes PR 25752
	* gnu/java/net/protocol/ftp/FTPURLConnection.java
	(connect): Changed to use SystemProperties.
	(getInputStream): Try changeWorkingDirectory to figure out if
	url is a directory, if not use retrieve.
	(getOutputStream): Don't worry about directories, simply always
	try to do a store.

2006-02-17  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/net/protocol/ftp/ActiveModeDTP.java
	(ActiveModeDTP): Mark accept thread as daemon.

2006-02-17  Michael Koch  <konqueror@gmx.de>

	* tools/.cvsignore: Ignore tools.zip.

2006-02-16  Keith Seitz  <keiths@redhat.com>

	* vm/reference/gnu/classpath/jdwp/VMIdManager.java (newReferenceTypeId):
	Set the ID's reference.
	(<clinit>): Remove comments for field, method, and frame ID types,
	which will not be handled by VMIdManager.

2006-02-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (getCellEditor, getCellRenderer):
	Use model index, not the column number.
	* javax/swing/plaf/basic/BasicTableHeaderUI.java (MouseInputHandler):
	Rewritten. (draggingHeaderRect): New field. (paint): Animate column 
	movement by painting draggingHeaderRect.
	* NEWS: Added entry about JTable columns. 

2006-02-16  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/id/JdwpId.java (size): Make static. Return
	default size of eight bytes.
	* gnu/classpath/jdwp/id/ObjectId.java (size): Remove.
	* gnu/classpath/jdwp/id/ReferenceTypeId.java (size): Remove.
	* gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
	(executeIDsizes): Use new static methods.
	* vm/reference/gnu/classpath/jdwp/VMFrame.java (size): New static
	method.
	
2006-02-16  David Daney  <ddaney@avtrex.com>

	PR classpath/26312
	* gnu/java/net/protocol/http/ChunkedInputStream.java (read): Mask
	return value with 0xff.

2006-02-16  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/EventRequest.java (getFilters): New method.
	(matches): Use Iterator instead of ListIterator.

2006-02-16  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/Jdwp.java (_doInitialization): Name the packet
	processor thread for easier debugging.
	(_enforceSuspendPolicy): Suspend the current thread, not the JDWP
	main thread.

2006-02-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java 
	(TableColumnPropertyChangeHandler.propertyChange): Return without
	action if table header resizing column in not null. (doLayout):
	Only repaint the header if it is not null.	
	* javax/swing/plaf/basic/BasicTableHeaderUI.java 
	(MouseInputHandler.mouseExited, MouseInputHandler.mouseReleased):
	Rewritten. (MouseInputHandler.endResizing): New method.

2006-02-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/InlineView.java: New file.

2006-02-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(AccessibleJTable.getAccessibleChild): Implemented to return
	the Page instance for the specified index.
	(Page): Changed to implement Accessible and extend
	AccessibleContext.
	(Page.getAccessibleContext): New method.
	(Page.getAccessibleRole): New method.
	(Page.getAccessibleStateSet): New method.
	(Page.getAccessibleIndexInParent): New method.
	(Page.getAccessibleChildrenCount): New method.
	(Page.getAccessibleChild): New methdod.
	(Page.getLocale): New method.

2006-02-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(TabbedPaneLayout.calculateTabRects): Expand tabRuns array when
	tabCount gets greater than tabRuns.length.
	(TabbedPaneScrollLayout.calculateTabRects): Expand tabRuns array
	when tabCount gets greater than tabRuns.length.
	(paintTabArea): Don't set tabCount == runCount.

2006-02-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(installUI): Moved installation of PropertyChangeListener
	to installListeners(). Call modelChanged() after everything is
	is installed.
	(installListeners): Install PropertyChangeListener here.
	(uninstallUI): Moved uninstallation of PropertyChangeListener
	to uninstallListeners.
	(uninstallListeners): Uninstall PropertyChangeListener here.

2006-02-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (doLayout): 
	case AUTO_RESIZE_SUBSEQUENT_COLUMNS rewritten. Repaint the header
	on exit.
	javax/swing/plaf/basic/BasicTableHeaderUI.java 
	(MouseInputHandler.mouseDragged): Do not repaint the header.

2006-02-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JViewport.java
	(static_initializer): Set default scrollMode to backingstore.

2006-02-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (moveToCellBeingEdited): Clone the value,
	returned by getCellRect. To not translate the component.

2006-02-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(rectCache): Made field non-static to avoid nasty interferences.
	(computeVisibleRect): Avoid creation of new Rectangles and double
	calculations on ints by using Swing.computeIntersection() instead
	of Rectangle2D.intersect().
	(repaint): Interect the dirty region with the visible rectangle
	of this component to avoid unnecessary painting.

2006-02-16  Gary Benson  <gbenson@redhat.com>

	* java/lang/Thread.java (stop): Add a missing access check.

2006-02-16  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/JTextComponent.java:
	(replaceSelection): Added code to update the magic caret position.
	* javax/swing/text/DefaultEditorKit.java: Added code to update
	the magic caret position of the text component in all relevant
	movement actions, make use of the magic caret position in up
	and down movements and selections, simplified some actions
	(code-wise).

2006-02-15  Anthony Balkissoon  <abalkiss@redhat.com>

	* gnu/java/lang/CharData.java: Regenerated from 
	doc/unicode/UnicodeData-4.0.0.txt, doc/unicode/SpecialCasing-4.0.0.txt
	and scripts/unicode-muncher.pl.
	* java/lang/Character.java: 
	(PrivateUseCharacters): New private static class.
	(UnassignedCharacters): Likewise.
	(blocks): Changed from char[] to char[][] to reflect the changes in 
	gnu/java/lang/CharData.  There is now one char[] per Unicode code
	plane.
	(data): Likewise.
	(numValue): Likewise.
	(upper): Likewise.
	(lower): Likewise.
	(direction): Likewise.
	(readChar): Replaced this method with new method readCodePoint.
	(readCodePoint): New method.
	(isLowerCase(char)): Redirected to new isLowerCase(int).
	(isLowerCase(int)): New method.
	(isUpperCase(char)): Redirected to new isUpperCase(int).
	(isUpperCase(int)): New method.
	(isTitleCase(char)): Redirected to new isTitleCase(int).
	(isTitleCase(int)): New method.
	(isDigit(char)): Redirected to new isDigit(int).
	(isDigit(int)): New method.
	(isDefined(char)): Redirected to new isDefined(int).
	(isDefined(int)): New method.
	(isLetter(char)): Redirected to new isLetter(int).
	(isLetter(int)): New method.
	(isLetterOrDigit(char)): Redirected to new isLetterOrDigit(int).
	(isLetterOrDigit(int)): New method.
	(isJavaIdentifierStart(char)): Redirected to new 
	isJavaIdentifierStart(int).
	(isJavaIdentifierStart(int)): New method.
	(isJavaIdentifierPart(char)): Redirected to new 
	isJavaIdentifierPart(int).
	(isJavaIdentifierPart(int)): New method.
	(isUnicodeIdentifierStart(char)): Redirected to new
	isUnicodeIdentifierStart(int).
	(isUnicodeIdentifierStart(int)): New method.
	(isUnicodeIdentifierPart(char)): Redirected to new 
	isUnicodeIdentifierPart(int).
	(isUnicodeIdentifierPart(int)): New method.
	(isIdentifierIgnorable(char)): Redirected to new
	isIdentifierIgnorable(int).
	(isIdentifierIgnorable(int)): New method.
	(toLowerCase(char)): Changed access to lower to correspond with new
	char[][] type of lower.
	(toLowerCase(int)) New method.
	(toUpperCase(char)): Changed access to upper to correspond with new
	char[][] type of upper.
	(toUpperCase(int)): New method.
	(toTitleCase(int)): New method.
	(digit(char, int)): Replaced call to readChar with call to 
	readCodePoint and changed access to numValue to reflect new char[][]
	type of numValue. 
	(digit(int, int)): New method.
	(getNumericValue(char)): Changed access to numValue to reflect new
	char[][] type of numValue.
	(getNumericValue(int)): New method.
	(isSpaceChar(char)): Redirected to new isSpaceChar(int).
	(isSpaceChar(int)): New method.
	(isWhitespace(char)): Redirected to new isWhitespace(int).
	(isWhitespace(int)): New method.
	(isISOControl(char)): Redirected to new isISOControl(int).
	(isISOControl(int)): New method.
	(getType(char)): Redirected to new getType(int).
	(getType(int)): New method.
	(getDirectionality(char)): Redirected to new getDirectionality(int).
	(getDirectionality(int)): New method.
	(isMirrored(char)): Changed call to readChar to readCodePoint.
	(isMirrored(int)): New method.
	* java/lang/String.java:
	(upperCaseExpansion): Changed access to Character.direction to reflect
	new char[][] type of direction.
	(offsetByCodePoints): New method.
	* scripts/unicode-muncher.pl: Adapted this script to handle Unicode 
	4.0.0 which introduced supplementary character assignments.  

2006-02-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java,
	javax/swing/plaf/basic/BasicTableHeaderUI.java,
	javax/swing/table/DefaultTableModel.java: Documented.

2006-02-15  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
	Removed duplicate methods.

2006-02-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (distributeSpillResizing): New method.
	(doLayout): Use distributeSpillResizing when resizing.
	* javax/swing/plaf/basic/BasicTableHeaderUI.java (MouseInputHandler):
	Rewritten. (installListeners): Add mouse motion listener. 
	(uninstallListeners): Remove mouse motion listener. 

2006-02-15  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkDialogPeer.java
	(setVisible): Removed method.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(setLocation): New method.
	(setLocationUnlocked): New method.
	(show): Changed to use setLocation instead of setBounds.
	* java/awt/Component.java
	(show): Should call peer.show(), not peer.setVisible(), so the
	location of the component is correctly set.
	(preferredSize): Added curly braces so else statements are
	properly associated with if's.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocation): 
	New function.
	(Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSet
	LocationUnlocked): New function.
	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h:
	Added declarations for Java_gnu_java_awt_peer_gtk_
	GtkWindowPeer_nativeSetLocation and 
	Java_gnu_java_awt_peer_gtk_GtkWindowPeer
	_nativeSetLocationUnlocked.

2006-02-15  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create):
	Downcast gtk_plug_new result when used.

2006-02-15  Olivier Jolly  <olivier.jolly@pcedev.com>

	* java/io/ObjectOutputStream.java (writeClassDescriptor):
	Call assignNewHandle() after writing Proxy class.

2006-02-15  Olivier jolly  <olivier.jolly@pcedev.com>

	Fixes bug #14144
	* java/io/ObjectInputStream.java (readClassDescriptor):
	Class doesn't have to be abstract for first_nonserial.

2006-02-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(setClosed): Call dispose to actually make the frame invisible
	and unselected.

2006-02-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(dispose): Call setVisible(false) instead of hide.
	(doDefaultCloseOperation): Likewise.

2006-02-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintChildren): Also check for the visibility of a child component
	to avoid artifacts.
	(repaint): Simply add this component to the RepaintManager rather than
	trying to do useless optimization here.

2006-02-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSpinner.java
	(DefaultEditor.DefaultEditor(JSpinner)): Add self to text field as a 
	PropertyChangeListener,
	(DefaultEditor.getSpinner): Updated API docs,
	(DefaultEditor.dismiss): Likewise,
	(DefaultEditor.getTextField): Likewise,
	(DefaultEditor.layoutContainer): Likewise,
	(DefaultEditor.minimumLayoutSize): Likewise,
	(DefaultEditor.preferredLayoutSize): Likewise,
	(DefaultEditor.propertyChange): Implemented,
	(DefaultEditor.stateChanged): Implemented,
	(DefaultEditor.removeLayoutComponent): Updated API docs,
	(DefaultEditor.addLayoutComponent): Likewise,
	(NumberEditor.NumberEditor(JSpinner)): Set formatter for text field,
	(NumberEditor.NumberEditor(JSpinner, String)): Likewise,
	(NumberEditor.getFormat): Implemented,
	(NumberEditor.getModel): Updated API docs,
	(NumberEditorFormatter): New static inner class,
	(ListEditor.getModel): Updated API docs,
	(DateEditor.dateFormat): Removed,
	(DateEditor.DateEditor(JSpinner)): Set formatter for text field,
	(DateEditor.DateEditor(JSpinner, String)): Likewise,
	(DateEditor.init): Removed,
	(DateEditor.getFormat): Reimplemented,
	(DateEditorFormatter): New static inner class,
	(ModelListener): New inner class,
	(model): Updated API docs,
	(editor): Likewise,
	(listener): Removed,
	(JSpinner()): Updated API docs,
	(JSpinner(SpinnerModel)): Set up ModelListener,
	(setEditor): Fire property change,
	(getModel): Updated API docs,
	(setModel): Removed check for null editor,
	(setValue): Updated API docs,
	(getUIClassID): Updated API docs,
	(createEditor): Handle SpinnerListModel case,
	* javax/swing/plaf/basic/BasicSpinnerUI.java
	(createUI): Updated API docs,
	(createPropertyChangeListener): Added FIXME,
	(installDefaults): Set text field border to null,
	(DefaultLayoutManager): Updated API docs,
	(DefaultLayoutManager.layoutContainer): Modified layout,
	(DefaultLayoutManager.minimumLayoutSize): Ignore button heights,
	(DefaultLayoutManager.preferredLayoutSize): Likewise,
	(DefaultLayoutManager.removeLayoutComponent): Removed tabs,
	(DefaultLayoutManager.addLayoutComponent): Likewise,
	(DefaultLayoutManager.minSize): Renamed prefSize,
	(DefaultLayoutManager.setBounds): Reformatted,
	(DefaultLayoutManager.editor): Added API docs,
	(DefaultLayoutManager.next): Likewise,
	(DefaultLayoutManager.previous): Likewise,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added entry for 'Spinner.border',
	* examples/gnu/classpath/examples/swing/SpinnerDemo.java: New file.

2006-02-15  Chris Burdess  <dog@gnu.org>

	* gnu/xml/validation/datatype/BooleanType.java,
	  gnu/xml/validation/datatype/ByteType.java,
	  gnu/xml/validation/datatype/DateTimeType.java,
	  gnu/xml/validation/datatype/DateType.java,
	  gnu/xml/validation/datatype/DecimalType.java,
	  gnu/xml/validation/datatype/DoubleType.java,
	  gnu/xml/validation/datatype/DurationType.java,
	  gnu/xml/validation/datatype/FloatType.java,
	  gnu/xml/validation/datatype/GDayType.java,
	  gnu/xml/validation/datatype/GMonthDayType.java,
	  gnu/xml/validation/datatype/GMonthType.java,
	  gnu/xml/validation/datatype/GYearMonthType.java,
	  gnu/xml/validation/datatype/GYearType.java,
	  gnu/xml/validation/datatype/IntType.java,
	  gnu/xml/validation/datatype/IntegerType.java,
	  gnu/xml/validation/datatype/LongType.java,
	  gnu/xml/validation/datatype/MaxExclusiveFacet.java,
	  gnu/xml/validation/datatype/MaxInclusiveFacet.java,
	  gnu/xml/validation/datatype/MinExclusiveFacet.java,
	  gnu/xml/validation/datatype/MinInclusiveFacet.java,
	  gnu/xml/validation/datatype/NegativeIntegerType.java,
	  gnu/xml/validation/datatype/NonNegativeIntegerType.java,
	  gnu/xml/validation/datatype/NonPositiveIntegerType.java,
	  gnu/xml/validation/datatype/PositiveIntegerType.java,
	  gnu/xml/validation/datatype/ShortType.java,
	  gnu/xml/validation/datatype/SimpleType.java,
	  gnu/xml/validation/datatype/TimeType.java,
	  gnu/xml/validation/datatype/TypeBuilder.java,
	  gnu/xml/validation/datatype/UnsignedByteType.java,
	  gnu/xml/validation/datatype/UnsignedIntType.java,
	  gnu/xml/validation/datatype/UnsignedLongType.java,
	  gnu/xml/validation/datatype/UnsignedShortType.java: Provide value
	  objects for datatypes. Make maxExclusive,minExclusive,maxInclusive,
	  minInclusive facets use the value space of the base type, and
	  implement.

2006-02-15  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create):
	gtk_plug_new() returns a GtkWindow.

2006-02-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SpinnerNumberModel.java
	(getNextValue): Check for null maximum,
	(getPreviousValue): Check for null minimum.

2006-02-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTableUI.java
	(paint): Paint vertical and horizontal lines one pixel shifted
	left/top.

2006-02-15  Jeroen Frijters  <jeroen@frijters.net>

	* java/util/zip/ZipFile.java
	(checkZipFile): Inlined readLeInt and rewritten for robustness.
	(readLeShort(DataInput,byte[]), readLeInt(DataInput,byte[],
	readLeShort(byte[],int), readLeInt(byte[],int)): Removed.
	(readEntries): Rewritten to use PartialInputStream.
	(locBuf, checkLocalHeader): Removed.
	(getInputStream): Rewritten to use new PartialInputStream.
	(PartialInputStream): Rewritten to do buffering.

2006-02-15  Michael Koch  <konqueror@gmx.de>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create):
	Make sure the embedded window gets no decorations.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(window_get_frame_extents): Return early of the window has no
	decorations.

2006-02-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/TableDemo.java
	(TModel, createContent): Explain which value appears in the header.
	* javax/swing/JTable.java (setColumnModel): Only set the
	column header value if the getHeaderValue() returns null.

2006-02-14  Mark Wielaard  <mark@klomp.org>

	Fixes bug #23931
	* gnu/java/awt/peer/gtk/GtkImage.java (errorImage): New static field.
	(getErrorImage): New static method.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (GtkErrorImage): Removed.
	(bufferedImageOrError): Renamed to ...
	(imageOrError): Renamed from bufferedImageOrError, takes Image.
	Returns GtkImage.getErrorImage() when argument null.
	(createImage(String)): Always use imageOrError.
	(createImage(URL)): Likewise.
	(createImage(ImageProducer)): Likewise.
	(createImage(byte[],int,int)): Likewise.

2006-02-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java: Removed
	unneeded imports.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java: Likewise.
	* javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java: Likewise.
	* javax/swing/plaf/basic/BasicRootPaneUI.java: Likewise.
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java: Likewise.
	* javax/swing/plaf/basic/BasicHTML.java: Fixed API comment.

2006-02-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AsyncBoxView.java
	(ChildState.locator): Removed wrong field.
	(ChildState): Removed initialization of removed field.
	(locator): Changed access modifier to be protected as specified.

2006-02-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ToolTipManager.java: Removed unneeded imports.
	* javax/swing/Timer.java: Some small reindention.
	(task): Made package private to avoid synthetic accessor method.

2006-02-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(layoutCompoundLabel): Dont set textIconGap to 0 when there is
	no icon.

2006-02-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/TableDemo.java:
	Making the columns variable width.
	* javax/swing/JTable.java (distributeSpill, doLayout):
	  Call getPreferredSize and not getSize().

2006-02-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/DefaultCellEditor.java
	(DefaultCellEditor): API doc fixlet.

2006-02-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JViewport.java
	(isPaintRoot): New field.
	(repaint): Only call super here. Also added a comment regarding
	the diversion from the JDK.
	(paintBlit): Implemented real blitting.
	(paintImmediately2): New method. Overrides the same package private
	method in JComponent.

2006-02-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTableUI.java
	(paint): Check for boundary cases when determining the painting
	area.

2006-02-14  Mark Wielaard  <mark@klomp.org>

	* java/awt/Menu.java (add): Always set parent of item to this. Call
	addNotify() on item when we have a MenuPeer already.
	(insert): Always adjust parent for item. Call addNotify() on item if
	we already have a peer.
	(remove(int)): Always clear item parent. Call removeNotify() on item
	if we had a peer.

2006-02-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (rowAtPoint): Return -1 if the computed 
	row == getRowCount().

2006-02-14  Lillian Angel  <langel@redhat.com>
	
	* gnu/java/awt/peer/gtk/GtkDialogPeer.java
	(setVisible): New method to override super. Need to set the
	native bounds of the component, so it appears at the
	correct location.

2006-02-14  Mark Wielaard  <mark@klomp.org>

	* java/awt/Frame.java (setMenuBar): Update MenuBar parent.
	(remove): If menu component is the current MenuBar remove it,
	otherwise call super.remove().
	* java/awt/MenuBar.java (frame): Remove field.
	* java/awt/MenuComponent.java (postEvent): Use getParent() always.

2006-02-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* tools/gnu/classpath/tools/giop/NameServicePersistent.java: Refer
	to NameServicePersistent.
	* tools/gnu/classpath/tools/giop/NameServicePersistent.txt: New file.
	* tools/gnu/classpath/tools/giop/NamingServicePersistent.txt: Deleted.

2006-02-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* NEWS: Updated tool status.
	* gnu/CORBA/NamingService/NamingMap.java (Map): Made protected.
	(constructor, bind, rebind): Rewritten.  
	* gnu/CORBA/NamingService/TransientContext.java: Rewritten.
	* tools/gnu/classpath/tools/giop/README: Updated.
	* tools/gnu/classpath/tools/giop/NameServicePersistent.java,
	tools/gnu/classpath/tools/giop/NamingServicePersistent.txt,
	tools/gnu/classpath/tools/giop/nameservice/PersistentContext.java,
	tools/gnu/classpath/tools/giop/nameservice/PersistentContextMap.java,
	tools/gnu/classpath/tools/giop/nameservice/PersistentMap.java: 
	New files.

2006-02-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(getListeners): Check for PropertyChangeListener.class and delegate to 
	getPropertyChangeListeners() for that case.

2006-02-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTableUI.java
	(paint): Determine the cells that need painting based on the
	current clip. Use getCellRect() for calculating the cell
	bounds.

2006-02-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(rectCache): New field.
	(getCellRect): Returns cached Rectangle instance.

2006-02-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLayeredPane.java
	(removeAll): New method. Avoid potential memory leak.
	(isOptimizedDrawingEnabled): Replaced heuristic with accurate
	calculation.

2006-02-14  Stuart Ballard  <stuart.a.ballard@gmail.com>

	* javax/swing/undo/StateEdit.java (RCSID): Match Sun's value.
	* javax/swing/undo/StateEditable.java (RCSID): Likewise.

2006-02-13  Tom Tromey  <tromey@redhat.com>

	* vm/reference/java/lang/reflect/Method.java: Javadoc fix.
	* vm/reference/java/lang/reflect/Constructor.java: Javadoc fix.

2006-02-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(offscreenBuffers): New field.
	(doubleBuffer): Removed field.
	(repaintUnderway): New field.
	(commitRequests): New field.
	(RepaintManager): Initialize new fields.
	(paintDirtyRegions): Handle repaintUnderway flag. Commit
	buffers when done.
	(getOffscreenBuffer): Returns the offscreen buffer for the
	corresponding root component.
	(commitBuffer): New method.
	(commitRemainingBuffers): New method.
	* javax/swing/JComponent.java
	(paint): Call paintDoubleBuffered with the current clip.
	(paintImmediately2): Don't paint on screen here.
	(paintDoubleBuffered): Rewritten for real double buffering.
	(paintSimple): Draw to screen in this method.

2006-02-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JRootPane.java
	(JRootPane): Set opaque property to true.

2006-02-13  Tom Tromey  <tromey@redhat.com>

	* .classpath: Updated for external/relaxngDatatype.

2006-02-13  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/UnicodeReader.java,
	  gnu/xml/validation/datatype/Annotation.java,
	  gnu/xml/validation/datatype/AnySimpleType.java,
	  gnu/xml/validation/datatype/AnyType.java,
	  gnu/xml/validation/datatype/AnyURIType.java,
	  gnu/xml/validation/datatype/AtomicSimpleType.java,
	  gnu/xml/validation/datatype/Base64BinaryType.java,
	  gnu/xml/validation/datatype/BooleanType.java,
	  gnu/xml/validation/datatype/ByteType.java,
	  gnu/xml/validation/datatype/DateTimeType.java,
	  gnu/xml/validation/datatype/DateType.java,
	  gnu/xml/validation/datatype/DecimalType.java,
	  gnu/xml/validation/datatype/DoubleType.java,
	  gnu/xml/validation/datatype/DurationType.java,
	  gnu/xml/validation/datatype/EntitiesType.java,
	  gnu/xml/validation/datatype/EntityType.java,
	  gnu/xml/validation/datatype/EnumerationFacet.java,
	  gnu/xml/validation/datatype/Facet.java,
	  gnu/xml/validation/datatype/FloatType.java,
	  gnu/xml/validation/datatype/FractionDigitsFacet.java,
	  gnu/xml/validation/datatype/GDayType.java,
	  gnu/xml/validation/datatype/GMonthDayType.java,
	  gnu/xml/validation/datatype/GMonthType.java,
	  gnu/xml/validation/datatype/GYearMonthType.java,
	  gnu/xml/validation/datatype/GYearType.java,
	  gnu/xml/validation/datatype/HexBinaryType.java,
	  gnu/xml/validation/datatype/IDRefType.java,
	  gnu/xml/validation/datatype/IDRefsType.java,
	  gnu/xml/validation/datatype/IDType.java,
	  gnu/xml/validation/datatype/IntType.java,
	  gnu/xml/validation/datatype/IntegerType.java,
	  gnu/xml/validation/datatype/LanguageType.java,
	  gnu/xml/validation/datatype/LengthFacet.java,
	  gnu/xml/validation/datatype/ListSimpleType.java,
	  gnu/xml/validation/datatype/LongType.java,
	  gnu/xml/validation/datatype/MaxExclusiveFacet.java,
	  gnu/xml/validation/datatype/MaxInclusiveFacet.java,
	  gnu/xml/validation/datatype/MaxLengthFacet.java,
	  gnu/xml/validation/datatype/MinExclusiveFacet.java,
	  gnu/xml/validation/datatype/MinInclusiveFacet.java,
	  gnu/xml/validation/datatype/MinLengthFacet.java,
	  gnu/xml/validation/datatype/NCNameType.java,
	  gnu/xml/validation/datatype/NMTokenType.java,
	  gnu/xml/validation/datatype/NMTokensType.java,
	  gnu/xml/validation/datatype/NameType.java,
	  gnu/xml/validation/datatype/NegativeIntegerType.java,
	  gnu/xml/validation/datatype/NonNegativeIntegerType.java,
	  gnu/xml/validation/datatype/NonPositiveIntegerType.java,
	  gnu/xml/validation/datatype/NormalizedStringType.java,
	  gnu/xml/validation/datatype/NotationType.java,
	  gnu/xml/validation/datatype/PatternFacet.java,
	  gnu/xml/validation/datatype/PositiveIntegerType.java,
	  gnu/xml/validation/datatype/QNameType.java,
	  gnu/xml/validation/datatype/ShortType.java,
	  gnu/xml/validation/datatype/SimpleType.java,
	  gnu/xml/validation/datatype/StringType.java,
	  gnu/xml/validation/datatype/TimeType.java,
	  gnu/xml/validation/datatype/TokenType.java,
	  gnu/xml/validation/datatype/TotalDigitsFacet.java,
	  gnu/xml/validation/datatype/Type.java,
	  gnu/xml/validation/datatype/TypeBuilder.java,
	  gnu/xml/validation/datatype/TypeLibrary.java,
	  gnu/xml/validation/datatype/TypeLibraryFactory.java,
	  gnu/xml/validation/datatype/UnionSimpleType.java,
	  gnu/xml/validation/datatype/UnsignedByteType.java,
	  gnu/xml/validation/datatype/UnsignedIntType.java,
	  gnu/xml/validation/datatype/UnsignedLongType.java,
	  gnu/xml/validation/datatype/UnsignedShortType.java,
	  gnu/xml/validation/datatype/WhiteSpaceFacet.java,
	  resource/META-INF/services/org.relaxng.datatype.DatatypeLibraryFactory:
	  RELAX NG datatype library implementation for XML Schema Datatypes.

2006-02-13  Chris Burdess  <dog@gnu.org>

	* LICENCE,
	  NEWS,
	  configure.ac,
	  doc/README.jaxp,
	  external/Makefile.am,
	  external/relaxngDatatype/.cvsignore,
	  external/relaxngDatatype/Makefile.am,
	  external/relaxngDatatype/README.txt,
	  external/relaxngDatatype/copying.txt,
	  external/relaxngDatatype/org/relaxng/datatype/Datatype.java,
	  external/relaxngDatatype/org/relaxng/datatype/DatatypeBuilder.java,
	  external/relaxngDatatype/org/relaxng/datatype/DatatypeException.java,
	  external/relaxngDatatype/org/relaxng/datatype/DatatypeLibrary.java,
	  external/relaxngDatatype/org/relaxng/datatype/DatatypeLibraryFactory.java,
	  external/relaxngDatatype/org/relaxng/datatype/DatatypeStreamingValidator.java,
	  external/relaxngDatatype/org/relaxng/datatype/ValidationContext.java,
	  external/relaxngDatatype/org/relaxng/datatype/helpers/DatatypeLibraryLoader.java,
	  external/relaxngDatatype/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.java,
	  external/relaxngDatatype/org/relaxng/datatype/helpers/StreamingValidatorImpl.java,
	  lib/Makefile.am,
	  lib/gen-classlist.sh.in: Added external RELAX NG pluggable
	  datatypes library API.

2006-02-13  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkGenericPeer.java (awtWidget): Made field
	final.
	(gtkWidgetModifyFont(Font)): New protected helper method.
	(gtkWidgetModifyFont(String,int,int)): Made protected and document.
	* gnu/java/awt/peer/gtk/GtkButtonPeer.java (gtkWidgetModifyFont): Made
	protected and document.
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java (gtkWidgetModifyFont):
	Likewise.
	* gnu/java/awt/peer/gtk/GtkLabelPeer.java (gtkWidgetModifyFont):
	Likewise.
	* gnu/java/awt/peer/gtk/GtkListPeer.java (gtkWidgetModifyFont):
	Likewise.
	* gnu/java/awt/peer/gtk/GtkMenuBarPeer.java (create): Made protected.
	(setFont): Removed method. Done in GtkMenuComponent.
	* gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java (create): Made
	abstract and protected.
	(setFont): Made private, add implementation.
	(setFont(Font)): Implemented.
	* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java (gtkWidgetModifyFont):
	Made protected and document.
	(create): Made protected.
	(setFont): Removed method. Done in GtkMenuComponent.
	* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java
	(gtkWidgetModifyFont): Made protected and document.
	* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java (gtkWidgetModifyFont):
	Removed, similar to GtkGenericPeer super class implementation.
	* include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: Regenerated.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkWidgetModifyFont):
	Removed.

2006-02-13  Mark Wielaard  <mark@klomp.org>

	* java/lang/Math.java (static): Explicitly call
	System.loadLibrary("javalang").

2006-02-13  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/StreamPrintServiceFactory.java: New file.

2006-02-13  Tom Tromey  <tromey@redhat.com>

	* tools/.cvsignore: Added Makefile.

2006-02-13  Wolfgang Baer  <WBaer@gmx.de>

	* java/awt/print/PrinterGraphics.java: Reformatted.
	* java/awt/print/Paper.java: Likewise.
	* java/awt/print/PageFormat.java: Likewise.
	* java/awt/print/Pageable.java: Likewise.

2006-02-13  Lillian Angel  <langel@redhat.com>

	* java/awt/BorderLayout.java
	(layoutContainer): Rewrote part of this function to 
	properly set the bounds of the components.
	(setBounds): Removed method, not needed.

2006-02-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.clone): Fixed replace call.
	(clone): Removed method.

2006-02-13  Roman Kennke  <kennke@aicas.com>

	* java/rmi/server/UnicastRemoteObject.java: Reformatted.

2006-02-13  Roman Kennke  <kennke@aicas.com>

	* java/rmi/server/UnicastRemoteObject.java
	(exportObject(Remote)): Forward method call to export(Remote,int).

2006-02-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* include/Makefile.am:
	Swapped Math.h for VMMath.h
	* include/java_lang_Math.h:
	Removed.
	* include/java_lang_VMMath.h:
	New autogenerated header for the new class.
	* java/lang/Math.java:
	(sin(double)): Changed to link to VMMath.
	(cos(double)): Changed to link to VMMath.
	(tan(double)): Changed to link to VMMath.
	(asin(double)): Changed to link to VMMath.
	(acos(double)): Changed to link to VMMath.
	(atan(double)): Changed to link to VMMath.
	(atan2(double)): Changed to link to VMMath.
	(exp(double)): Changed to link to VMMath.
	(log(double)): Changed to link to VMMath.
	(sqrt(double)): Changed to link to VMMath.
	(pow(double,double)): Changed to link to VMMath.
	(IEEEremainder(double,double)): Changed to link to VMMath.
	(ceil(double)): Changed to link to VMMath.
	(floor(double)): Changed to link to VMMath.
	(rint(double)): Changed to link to VMMath.
	* native/jni/java-lang/Makefile.am:
	Replaced java_lang_Math.c with java_lang_VMMath.c
	* native/jni/java-lang/java_lang_Math.c:
	Removed.
	* native/jni/java-lang/java_lang_VMMath.c:
	Renamed from java_lang_Math.c.
	* vm/reference/java/lang/VMMath.java:
	New class.
	(sin(double)): New native method.
	(cos(double)): New native method.
	(tan(double)): New native method.
	(asin(double)): New native method.
	(acos(double)): New native method.
	(atan(double)): New native method.
	(atan2(double)): New native method.
	(exp(double)): New native method.
	(log(double)): New native method.
	(sqrt(double)): New native method.
	(pow(double,double)): New native method.
	(IEEEremainder(double,double)): New native method.
	(ceil(double)): New native method.
	(floor(double)): New native method.
	(rint(double)): New native method.
	
2006-02-13  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(repaint): No need to call isShowing, it is done in the other repaint call.
	(repaint): Likewise.
	(repaint): Likewise.

2006-02-13  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(repaint): Reverted last change.
	(repaint): Likewise.
	(repaint): Likewise.

2006-02-13  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkPanelPeer.java
	(handleEvent): Made more efficent by handling paint event and
	setting the clip for the graphics.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(handleEvent): Likewise.
	* java/awt/Component.java
	(repaint): No need to call isShowing, it is done in the other repaint call.
	(repaint): Likewise.
	(repaint): Likewise.

2006-02-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(setParent): Added API docs. Call setParent(null) on children before
	disconnecting this view from the View hierarchy.

2006-02-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(readUnlock): Don't attempt to unlock when the current threads also
	holds a write lock.

2006-02-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(ButtonBorder.getBorderInsets(Component)): Return insets directly,
	(ButtonBorder.getBorderInsets(Component, Insets)): Don't check for null
	insets argument,
	(Flush3DBorder.borderInsets): New field,
	(Flush3DBorder.getBorderInsets(Component)): Return insets directly,
	(Flush3DBorder.getBorderInsets(Component, Insets)): Don't check for 
	null insets argument, and populate result from borderInsets,
	(PaletteBorder.borderInsets): New field,
	(PaletteBorder.getBorderInsets(Component)): Return insets directly,
	(PaletteBorder.getBorderInsets(Component, Insets)): Don't check for 
	null insets argument, and populate result from borderInsets,
	(InternalFrameBorder.borderInsets): New field,
	(InternalFrameBorder.getBorderInsets(Component)): Return insets 
	directly,
	(InternalFrameBorder.getBorderInsets(Component, Insets)): Don't check 
	for null insets argument, and populate result from borderInsets,
	(MenuItemBorder.borderInsets): Initialise to correct value.

2006-02-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AsyncBoxView.java: New file.

2006-02-13  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #26166
	* gnu/regexp/RE.java(initialize): Parsing of character class expression
	was moved to a new method parseCharClass.
	(parseCharClass): New method originally in initialize. Added parsing
	of nested character classes.
	(ParseCharClassResult): New inner class used as a return value of
	parseCharClass.
	(getCharExpression),(getNamedProperty): Made static.
	* gnu/regexp/RESyntax.java(RE_NESTED_CHARCLASS): New syntax flag.
	* gnu/regexp/RETokenOneOf.java(addition): New Vector for storing
	nested character classes.
	(RETokenOneOf): New constructor accepting the Vector addition.
	(getMinimumLength), (getMaximumLength): Returns 1 if the token
	stands for only one character.
	(match): Added the processing of the Vector addition.
	(matchN), (matchP): Do not check next token if addition is used.

2006-02-12  Olivier Jolly <olivier.jolly@pcedev.com>

	* AUTHORS: add self.

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

	* gnu/classpath/ServiceProviderLoadingAction.java: Javadoc fix.
	* gnu/classpath/ServiceFactory.java (ServiceIterator): Javadoc fix.
	(securityContext): Likewise.
	(log): Likewise.

2006-02-12  Dalibor Topic  <robilad@kaffe.org>

	Fixes PR 26218.

	* gnu/java/net/protocol/file/Connection.java (unquote):
	Convert Unicode characters outside basic plane to UTF-8,
	rather than throwing an exception.

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

	* javax/sound/sampled/LineEvent.java (readObject): New method.
	(writeObject): Likewise.
	(serialVersionUID): New field.

2006-02-12  Mark Wielaard  <mark@klomp.org>

	* java/beans/PropertyChangeSupport.java (addPropertyChangeListener):
	Silently ignores null listener.
	(addPropertyChangeListener(String, PropertyChangeListener): Likewise.
	(getPropertyChangeListeners): Returns empty PropertyChangeListener
	array for null propertyName.

2006-02-12  Wolfgang Baer  <WBaer@gmx.de>

	* java/rmi/MarshalledObject.java: Added api docs to the class.
	* java/rmi/Remote.java: Added interface api docs.
	* java/rmi/package.html: Added package description.
	* java/rmi/AccessException.java: Minor api doc fixes.
	* java/rmi/NoSuchObjectException.java: Likewise.
	* java/rmi/AlreadyBoundException.java: Likewise.
	* java/rmi/RemoteException.java: Likewise.
	* java/rmi/NotBoundException.java: Likewise.
	* java/rmi/RMISecurityException.java: Likewise.
	* java/rmi/StubNotFoundException.java: Likewise.	

2006-02-12  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (postKeyEvent): Call
	q() to get EventQueue.
	* gnu/java/awt/peer/gtk/GtkGenericPeer.java (q): Remove static field.
	(enableQueue): Remove static method.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (getSystemEventQueueImpl):
	Don't call GtkGenericPeer.enableQueue().

2006-02-12  Wolfgang Baer  <WBaer@gmx.de>

	* java/rmi/MarshalledObject.java: Reformatted.
	* java/rmi/Naming.java: Likewise.	

2006-02-12  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/InputStream.java
	(read(byte[],int,int)): Changed argument validation to prevent
	integer overflow. Remove redundant check.

2006-02-12  Jeroen Frijters  <jeroen@frijters.net>

	Fixes PR 26220
	* java/io/InputStreamReader.java
	(InputStreamReader(InputStream)): Use SystemProperties.
	(InputStreamReader(InputStream,Charset)): Corrected @since tag.
	Throw NullPointerException if in is null.
	Added maxBytesPerChar initialisation.
	(InputStreamReader(InputStream,CharsetDecoder)): Corrected @since tag.
	Throw NullPointerException if in is null.

2006-02-12  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/key/dh/GnuDHPublicKey.java
	(GnuDHPublicKey(4)): Call constructor with 5 arguments.
	(GnuDHPublicKey): New constructor.
	(getEncoded): Removed.
	(valueOf): Added support for ASN.1 encoding.
	(getEncoded(int)): Likewise.
	(equals): New method.
	* gnu/javax/crypto/key/dh/GnuDHPrivateKey.java
	(GnuDHPrivateKey(4)): Call constructor with 5 arguments.
	(GnuDHPrivateKey(5)): New constructor.
	(getEncoded): Removed.
	(valueOf): Added support for ASN.1 encoding.
	(getEncoded(int)): Likewise.
	(equals): New method.
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java
	(PREFERRED_ENCODING_FORMAT): New constant.
	(DEFAULT_ENCODING_FORMAT): Likewise.
	(preferredFormat): New field.
	(setup): Handle preferred encoding format identifier.
	(generate): Call constructors with format identifier.
	* gnu/javax/crypto/key/dh/GnuDHKey.java (defaultFormat): New field.
	(GnuDHKey): Added an int argument.
	(getEncoded): New method.
	(getFormat): New implementation.
	(getEncoded(int)): New abstract method.
	* gnu/javax/crypto/key/dh/DHKeyPairX509Codec.java: New file.
	* gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.java: Likewise.
	* gnu/javax/crypto/jce/GnuCrypto.java (run): Added mappings for DH
	key-pair generator and key-factory.
	* gnu/javax/crypto/jce/sig/DHKeyPairGeneratorSpi.java: New file.
	* gnu/javax/crypto/jce/sig/DHKeyFactory.java: Likewise.
	* gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java: Made it public.
	* gnu/java/security/jce/sig/EncodedKeyFactory.java
	(invokeConstructor): New method.
	(getConcreteClass): Likewise.
	(getConcreteCtor): Likewise.
	(invokeValueOf): Likewise.
	(getValueOfMethod): Likewise.
	(engineGeneratePublic): Add support for DH keys.
	(engineGeneratePrivate): Likewise.
	(decodeDHPublicKey(DHPublicKeySpec)): New method.
	(decodeDHPublicKey(byte[])): Likewise.
	(decodeDHPrivateKey(DHPrivateKeySpec)): Likewise.
	(decodeDHPrivateKey(byte[])): Likewise.

2006-02-11  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (repaintTimer):
	Removed field.
	(repaint): Immediately post to queue when tm <= 0, otherwise call
	RepaintTimerTask.schedule().
	(RepaintTimerTask): Make static.
	(RepaintTimerTask.repaintTimer): New static final field.
	(RepaintTimerTask.awtComponent): New field.
	(schedule): New static method.

2006-02-11  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java
	* tools/gnu/classpath/tools/giop/grmic/MethodGenerator.java
	* tools/gnu/classpath/tools/giop/grmic/templates/Tie.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/TieMethod.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/TieMethodVoid.jav:
	Rewritten.
	* tools/gnu/classpath/tools/giop/grmic/HashFinder.java: New file.

2006-02-11  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/jce/sig/EncodedKeyFactory.java
	(engineGeneratePublic): Added support for raw key-specifications.
	(engineGeneratePrivate): Likewise.
	(decodeDSSPublicKey): New method.
	(decodeRSAPublicKey): Likewise.
	(decodeDSSPrivateKey): Likewise.
	(decodeRSAPrivateKey): Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java
	(encodePrivateKey): Throw InvalidParameterException.
	(decodePublicKey): Likewise.
	(decodePrivateKey): Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java
	(encodePublicKey): Likewise.
	(encodePrivateKey): Likewise.
	(decodePublicKey): Likewise.
	* gnu/java/security/key/dss/DSSKeyPairX509Codec.java
	(encodePrivateKey): Likewise.
	(decodePublicKey): Likewise.
	(decodePrivateKey): Likewise.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java
	(encodePublicKey): Likewise.
	(encodePrivateKey): Likewise.
	(decodePublicKey): Likewise.

2006-02-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/StyleContext.java
	(registerStaticAttributeKey): New static method.

2006-02-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.clone): New method.

2006-02-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/ParagraphView.java
	(findOffsetToCharactersInString): New method.
	(getClosestPositionTo): New method.
	(getPartialSize): New method.
	(getTabBase): New method.
	(adjustRow): New method.
	(breakView): New method.
	(getBreakWeight): New method.

2006-02-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(updateUndoPositions): New method.
	* javax/swing/text/StringContent.java
	(updateUndoPositions): New method.

2006-02-10  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java (GnuRSAPrivateKey(9)):
	Made it public.
	* gnu/java/security/jce/sig/RSAKeyFactory.java: New file.
	* gnu/java/security/jce/sig/DSSKeyFactory.java (engineGeneratePublic):
	Added support for encoded key specifications.
	(engineGeneratePrivate): Likewise.
	(engineGetKeySpec): Likewise.
	(engineTranslateKey): Corrected order of MPIs and use ctors with 5 args.

2006-02-10  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/Utilities.java:
	(getTabbedTextOffset): Fixed usage of variable p0.
	(getPositionAbove): Rewritten.
	(getPositionBelow): Rewritten.

2006-02-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BoxView.java
	(getAxis): Added @since tag.
	(setAxis): Added @since tag.
	(layoutChanged): Added @since tag.
	(isLayoutValid): Added @since tag.
	(paint): Don't call setSize here. This is done in RootView already.
	(getMaximumSpan): Reimplemented to return the requirements'
	maximum size. Added API docs.
	(getMinimumSpan): New method.
	(layout): Fixed layout order.
	(modelToView): Call layout instead of setSize here.
	(getResizeWeight): New method.
	(getChildAllocation): New method.
	(forwardUpdate): New method.
	(viewToModel): New method.
	(flipEastEndWestEnds): New method.
	* javax/swing/text/CompositeView.java
	(modelToView): Made this method more robust by returning a default
	location if it's not possible to calculate one via the children.
	This default location returns the left or right edge of this
	view.
	(createDefaultLocation): New helper method.
	* javax/swing/text/IconView.java
	(modelToView): Don't throw BadLocationException. This should
	really only be thrown if the position is outside the document
	model, not if it's outside the view's boundary.

2006-02-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* tools/Makefile.am: Handle rmi and giop folders separately.

2006-02-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SpinnerDateModel.java: Updated API docs all over,
	* javax/swing/SpinnerNumberModel.java: Likewise.

2006-02-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SpinnerDateModel.java: Removed tabs,
	* javax/swing/SpinnerNumberModel.java: Likewise.

2006-02-09  Anthony Balkissoon  <abalkiss@redhat.com>

	* doc/unicode/SpecialCasing-4.0.0.txt: New file.
	* doc/unicode/UnicodeData-4.0.0.txt: New file.

2006-02-09  Wolfgang Baer  <WBaer@gmx.de>

	Fixes bug #26081
	* gnu/java/net/protocol/http/HTTPURLConnection.java: 
	(isRedirect): Removed, moved to Response.java.
	(connect): If error condition redirect responseSink to errorSink.
	(getInputStream): If error condition throw IOException, for the error
	codes 404 and 410 throw a FileNotFoundException.	
	* gnu/java/net/protocol/http/Response.java (isError): New method.
	(isRedirect): New method, moved from HTTPURLConnection.java.

2006-02-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* tools/Makefile.am: Add tools/gnu/classpath/tools/rmi folder.
	* tools/gnu/classpath/tools/giop/GRMIC.txt: Explain it called from RMIC.
	* tools/gnu/classpath/tools/giop/grmic/Generator.java (getResource): 
	Better diagnostic.
	* tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java:
	Rewritten.
	* tools/gnu/classpath/tools/giop/grmic/MethodGenerator.java: Implement
	AbstractMethodGenerator.
	* tools/gnu/classpath/tools/AbstractMethodGenerator.java,
	tools/gnu/classpath/tools/rmi/RMIC.java,
	tools/gnu/classpath/tools/rmi/RMIC.txt,
	tools/gnu/classpath/tools/rmi/rmic/RmiMethodGenerator.java,
	tools/gnu/classpath/tools/rmi/rmic/RmicCompiler.java,
	tools/gnu/classpath/tools/rmi/rmic/WrapUnWrapper.java,
	tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12.jav,
	tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12Method.jav,
	tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12MethodVoid.jav: 
	New files.
	* NEWS: Corrected entry about the tools.

2006-02-09  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(handleEvent): Added more to check to prevent assertion errors.
	* gnu/java/awt/peer/gtk/GtkPanelPeer.java
	(handleEvent): Likewise.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(handleEvent): Likewise.

2006-02-09  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JTable.java (tableChanged): Interpret null event as
	"everything changed".

2006-02-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultCaret.java
	(DocumentHandler.removeUpdate): When update policy is
	'on eventqueue', and the update doesn't come from the
	event queue, check if the current dot location is still
	valid.
	(moveDot): Make sure the new dot location is valid.
	(setDot): Set the mark the same as the dot.

2006-02-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(remove): Perform all operations within a write lock and in the
	correct order.

2006-02-09  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create): Make sure max is
	creater than min, adjusting page_size if necessary.
	(Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setValues): Likewise.

2006-02-09  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkPanelPeer.java
	(handleEvent): Added code to handle PaintEvent.UPDATE.
	Sun does not call update(Graphics g) on Panels.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(handleEvent): New method. Added code to handle PaintEvent.UPDATE.
	Sun does not call update(Graphics g) on Panels.

2006-02-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BoxView.java
	(myAxis): Made field private.
	(xLayoutValid): Replaced by layoutValid array.
	(yLayoutValid): Replaced by layoutValid array.
	(layoutValid): New field.
	(spansX): Replaced by spans array.
	(spansY): Replaced by spans array.
	(spans): New field.
	(offsetsX): Replaced by offsets array.
	(offsetsY): Replaced by offsets array.
	(offsets): New field.
	(requirements): New field.
	(BoxView): Initialize new fields.
	(layoutChanged): Rewritten to use the layoutValid array.
	(isLayoutValid): Rewritten to use the layoutValid array.
	(replace): Use the new arrays.
	(getPreferredSpan): Rewritten to call calculateXXXRequirements
	instead of baselineRequirements.
	(baselineRequirements): Rewritten to calculate baseline requirements.
	(baselineLayout): Rewritten to calculate baseline layout.
	(childAllocation): Use new arrays.
	(layout): Rewritten. Only update the layout if necessary.
	(layoutMajorAxis): Directly set layoutValid.
	(layoutMinorAxis): Directly set layoutValid. Use cached size
	requirements.
	(getWidth): Use new span array.
	(getHeight): Likewise.
	(setSize): Rewritten to simply call layout().
	(validateLayout): Removed unneeded method.
	(getSpan): Use new arrays.
	(getOffset): Use new arrays.
	(getAlignment): Use cached requirements if possible.
	(preferenceChanged): Use new arrays.
	* javax/swing/text/FlowView.java
	(FlowStrategy.insertUpdate): Do nothing here.
	(FlowStrategy.removeUpdate): Do nothing here.
	(FlowStrategy.changedUpdate): Do nothing here.
	(FlowStrategy.layoutRow): Rewritten.
	(FlowStrategy.createView): Rewritten.
	(FlowStrategy.adjustRow): New method.
	(LogicalView.getViewIndex): Fixed condition for finding child
	view.
	(layoutDirty): New field indicating the state of the layout.
	(FlowView): Initialize new field.
	(loadChildren): Set parent on logical view so that preferenceChanges
	get propagated upwards.
	(layout): Rewritten to match the specs.
	(insertUpdate): Set layout to dirty.
	(removeUpdate): Set layout to dirty.
	(changedUpdate): Set layout to dirty.
	* javax/swing/text/GlyphView.java
	(getBreakWeight): Rewritten to use the Utilities class. Commented
	out though because that is broken.
	(insertUpdate): Call preferenceChanged on this object instead of
	parent.
	* javax/swing/text/ParagraphView.java
	(Row.loadChildren): Overridden to be a noop to prevent initial
	creation of child views. This is carried out by the flow layout.
	* javax/swing/text/View.java
	(getPreferredSpan): Added API docs.
	(getResizeWeight): Added API docs.
	(getMaximumSpan): Added API docs. Rewritten to only have one exit
	point.
	(getMinimumSpan): Added API docs. Rewritten to return 0 when
	resizable instead of Integer.MAX_VALUE.
	(getAlignment): Added API docs.
	(replace): Added API docs.
	(forwardUpdate): Rewritten to only notify child views that need to
	be notified.

2006-02-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.paint): Call setSize() before painting the view.

2006-02-09  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #26112
	* gnu/regexp/RE.java(REG_REPLACE_USE_BACKSLASHESCAPE): New execution
	flag which enables backslash escape in a replacement.
	(getReplacement): New public static method. 
	(substituteImpl),(substituteAllImpl): Use getReplacement.
	* gnu/regexp/REMatch.java(substituteInto): Replace $n even if n>=10.
	* java/util/regex/Matcher.java(appendReplacement)
	Use RE#getReplacement.
	(replaceFirst),(replaceAll): Use RE.REG_REPLACE_USE_BACKSLASHESCAPE.

2006-02-09  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java: New file.
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java
	(PREFERRED_ENCODING_FORMAT): New constant.
	(DEFAULT_ENCODING_FORMAT): Likewise.
	(preferredFormat): New field.
	(setup): Add support for preferred encoding format.
	(generate): Call key constructors with explicit format identifier.
	* gnu/java/security/key/rsa/GnuRSAPublicKey.java (GnuRSAPublicKey(2)): 
	Call constructor with 3 arguments..
	(GnuRSAPublicKey(3)): New constructor.
	(valueOf): Added support for ASN.1 format.
	(getEncoded): Likewise.
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java (GnuRSAPrivateKey(4)):
	Call constructor with 5 arguments.
	(GnuRSAPrivateKey(5)): New constructor.
	(GnuRSAPrivateKey(9)): New constructor.
	(valueOf): Added support for ASN.1 format.
	(getEncoded): Likewise.
	* gnu/java/security/key/rsa/GnuRSAKey.java (defaultFormat): New field.
	(GnuRSAKey): Modified constructor.
	(getFormat): Return preferred format identifier.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java
	(decodePrivateKey): Fixed documentation.
	Check Version field.
	* gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.java
	(initialize(int,SecureRandom)): Set ASN.1 as the preferred encoding
	format.
	(initialize(AlgorithmParameterSpec,SecureRandom)): Likewise.
	* gnu/java/security/jce/sig/EncodedKeyFactory.java
	(engineGeneratePublic): Added support for RSA.
	(engineGeneratePrivate): Likewise.

2006-02-09  Wolfgang Baer  <WBaer@gmx.de>

	* java/net/URLConnection.java:
	(setAllowUserInteraction): Throw IllegalStateException if connected.
	(getRequestProperty): Document return value if key is null.
	* gnu/java/net/protocol/http/HTTPURLConnection.java:
	(getRequestProperty): Return null if key is null.
	(getRequestProperties): Throw IllegalStateException if connected.
	(setRequestProperty): Call super method for exception tests.
	(addRequestProperty): Likewise.

2006-02-09  Wolfgang Baer  <WBaer@gmx.de>

	* gnu/java/net/protocol/http/Request.java:
	(Request): Remove initialization of removed field.
	(requestBodyNegotiationThreshold): Removed now unused field.
	(setRequestBodyNegotiationThreshold): Remove now unused method.
	(dispatch): Do not use 'Expect 100-continue' header if content-length
	is over a treshold. If user specified 'Expect 100-continue' still
	initialize the expectingContinue variable.

2006-02-08  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SpinnerNumberModel.java
	(SpinnerNumberModel(Number, Comparable, Comparable, Number): Allow 
	maximum and minimum to take null values,
	(setValue): Only fire ChangeEvent if new value is different to old 
	value,
	(setMinimum): Fixed test for updating value,
	(setMaximum): Likewise,
	(setStepSize): Likewise.

2006-02-08  Tom Tromey  <tromey@redhat.com>

	* tools/.cvsignore: Added Makefile.in.

2006-02-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/server/RemoteRef.java,
	java/rmi/server/RemoteStub.java: Commented.

2006-02-08  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SpinnerDateModel.java
	(SpinnerDateModel(Date, Comparable, Comparable, int)): Added argument
	checks,
	(getPreviousValue): Check result against start, not end,
	(setValue): Check that value actually changes before firing 
	ChangeEvent.

2006-02-08  Lillian Angel  <langel@redhat.com>

	* java/awt/Choice.java
	(select): Fixed up code, added some checks to prevent errors.
	(dispatchEventImpl): Removed. This function is not needed. It 
	causes several assertion errors.

2006-02-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/PlainView.java
	(drawLine): Call drawUnselectedText() with end offset - 1 to avoid
	drawing unnecessary characters.

2006-02-08  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(handleEvent): Fixed check to determine if height or
	width is less than 1.

2006-02-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	*tools/Makefile.am (ALL_TOOLS_FILES): Add $(TOOLS_HELPS).

2006-02-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java:
	Documenting the code generator.
	* gnu/CORBA/IOR.java (toStringFormatted, 
	CodeSet_component.toStringFormatted): New methods.
	* tools/Makefile.am (TOOLS_JAVA_FILES, READMES): Rewritten.
	* tools/gnu/classpath/tools/giop/README: Rewritten.
	* tools/gnu/classpath/tools/giop/GRMIC.java (main): Rewritten. 
	(printHelpAndExit): Removed.
	*tools/gnu/classpath/tools/giop/IorParser.java,
	tools/gnu/classpath/tools/giop/IorParser.txt,
	tools/gnu/classpath/tools/giop/NameService.java,
	tools/gnu/classpath/tools/giop/NamingService.txt,
	tools/gnu/classpath/tools/HelpPrinter.java: New files.
	NEWS: Added note about GIOP tools.

2006-02-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* .classpath: New source patch (tools).
	* Makefile.am (SUBDIRS, DIST_SUBDIRS): added "tools".
	* configure.ac (AC_CONFIG_FILES): added tools/Makefile
	* tools/gnu/classpath/tools/Makefile.am,
	tools/gnu/classpath/tools/giop/GRMIC.java
	tools/gnu/classpath/tools/giop/GRMIC.txt,
	tools/gnu/classpath/tools/giop/README,
	tools/gnu/classpath/tools/giop/grmic/CompilationError.java,
	tools/gnu/classpath/tools/giop/grmic/Generator.java,
	tools/gnu/classpath/tools/giop/grmic/GiopIo.java,
	tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java,
	tools/gnu/classpath/tools/giop/grmic/MethodGenerator.java,
	tools/gnu/classpath/tools/giop/grmic/templates/ImplTie.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/Stub.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/StubMethod.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/StubMethodVoid.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/Tie.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/TieMethod.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/TieMethodVoid.jav: New files.

2006-02-07  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/BasicStroke.java: Updated API docs all over,
	* java/awt/doc-files/capjoin.png: New file.

2006-02-07  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(handleEvent): Added check. Should not paint or update the 
	component if it's width and height are both 0.	

2006-02-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(insertString): Enclose locking/unlocking in try-finally block
	and also keep locked while notifying the listeners.

2006-02-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GlyphView.java
	(GlyphView): Initialize startOffset and endOffset with -1 (indicating
	element boundary).
	(getStartOffset): Return element boundary if startOffset < 0.
	(getEndOffset): Return element boundary if endOffset < 0.
	(createFragment): Set startOffset and endOffset fields of fragment
	if one of p0 or p1 is not at the element boundary.

2006-02-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/CellRendererPane.java
	(paintComponent): Enclosed painting in try finally to properly
	clean up even when throwing an exception.

2006-02-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/UIManager.java
	(listeners): Made this an instance of
	java.beans.PropertyChangeSupport instead of the obsoleted
	SwingPropertyChangeSupport.

2006-02-07  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultEditorToolkit.java: Changed behavior
	of actions "delete-next" and "delete-previous", added new TextAction
	implementations for "selection-begin", "selection-begin-line",
	"selection-end" and "selection-end-line".

2006-02-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(paint): Acquire read lock on the document before calling
	paintSafely.
	(paintSafely): Added comment about what this method does.
	(paintBackground): Implemented to actually paint the background.
	(update): Overridden to _not_ paint the background. This is done
	in paintBackground in this UI.

2006-02-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/View.java
	(forwardUpdate): Don't notify newly added child views as specified.

2006-02-07  Robert Schuster  <robertschuster@fsfe.org>

	* gnu/java/beans/decoder/DefaultExceptionListener.java: Removed.

2006-02-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.insert): Only register change when the element
	actually changed.

2006-02-07  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/key/KeyPairCodecFactory.java (getEncodingName): New
	method.
	(getEncodingShortName): Likewise.
	* gnu/java/security/key/IKeyPairCodec.java (X509_FORMAT): New constant.
	(PKCS8_FORMAT): Likewise.
	(ASN1_FORMAT): Likewise.
	* gnu/java/security/key/dss/DSSPublicKey.java (DSSPublicKey(4)): Call
	constructor with 5 arguments.
	(DSSPublicKey(5)): New constructor.
	(valueOf): Handle ASN.1 encoding.
	(getEncoded): Likewise.
	* gnu/java/security/key/dss/DSSPrivateKey.java (DSSPrivateKey(4)): Call
	constructor with 5 arguments.
	(DSSPrivateKey(5)): New constructor.
	(valueOf): Handle ASN.1 encoding.
	(getEncoded): Likewise.
	* gnu/java/security/key/dss/DSSKeyPairX509Codec.java: New file.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairGenerator.java
	(PREFERRED_ENCODING_FORMAT): New constant.
	(DEFAULT_ENCODING_FORMAT): Likewise.
	(preferredFormat): New field.
	(setup): Handle preferred format ID.
	(generate): Use new ctors with 5 arguments.
	* gnu/java/security/key/dss/DSSKey.java (DSSKey): Now accepts a format
	ID as an additional argument.
	(defaultFormat): new field.
	(getFormat): Returns the preferred format as a short string.
	* gnu/java/security/jce/sig/DSSKeyFactory.java: New file.
	* gnu/java/security/jce/sig/EncodedKeyFactory.java (engineGetKeySpec):
	Likewise
	* gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java
	(initialize(AlgorithmParameterSpec)): Set ASN.1 as the preferred
	encoding format.
	(initialize(int,boolean,SecureRandom)): Likewise.
	* gnu/java/security/der/DERWriter.java (writeBitString): Use
	writeLength() instead of write().
	return buf.length + 1 instead of buf.length.

2006-02-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.preferenceChange): Changed view parameter to view so
	that it doesn't hide a field of that class.
	(RootView.getViewCount): Rewritten to clean up ECJ warning.
	(RootView.modelToView): Removed unnecessary cast from View to View.
	(PropertyChangeHandler): Made inner class private.
	(updateHandler): Made field private.
	(getVisibleEditorRect): Removed unneeded local variable that
	shadowed a field with the same name and purpose.

2006-02-07  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/JTextComponent.java:
	(getSelectedText): Calculate offset and use that as
	second argument.

2006-02-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTextPane.java
	(setCharacterAttributes): Replace input attributes when
	replace==true.

2006-02-07  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(firePropertyChange(String,byte,byte)): Made method public.
	(firePropertyChange(String,char,char)): Made method public.
	(firePropertyChange(String,short,short)): Made method public.
	(firePropertyChange(String,long,long)): Made method public.
	(firePropertyChange(String,float,float)): Made method public.
	(firePropertyChange(String,double,double)): Made method public.

2006-02-06  Tom Tromey  <tromey@redhat.com>

	* gnu/CORBA/NamingService/NamingServiceTransient.java (main): Use
	2006.
	* gnu/java/rmi/registry/RegistryImpl.java (version): Use 2006.

2006-02-06  Anthony Green  <green@redhat.com>

	* gnu/xml/aelfred2/XmlParser.java: Add missing break;.

2006-02-07  Raif S. Naffah  <raif@swiftdsl.com.au>

	* .settings/org.eclipse.jdt.core.prefs:
	Force a line split on extends and implements.
	Force a white-space after unary operators.
	Don't force a new-line after @params.
	Add new-line at end-of-file.
	* scripts/eclipse-gnu.xml: Export version of the above named GNU.

2006-02-07  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/provider/GnuDSAPublicKey.java (getEncoded): Use
	Registry constant.
	* gnu/java/security/provider/GnuDSAPrivateKey.java (getEncoded):
	Likewise.
	* gnu/java/security/provider/GnuRSAPrivateKey.java (getEncoded):
	Likewise.
	* gnu/java/security/provider/GnuRSAPublicKey.java (getEncoded):
	Likewise.
	* gnu/java/security/provider/EncodedKeyFactory.java
	(ID_DSA): Redefined in terms of Registry constant.
	(ID_DSA): Redefined in terms of Registry constant.
	(ID_DH): Redefined in terms of Registry constant.
	* gnu/java/security/Registry.java (X509_ENCODING): New constant.
	(PKCS8_ENCODING): Likewise.
	(ASN1_ENCODING): Likewise.
	(RAW_ENCODING_SHORT_NAME): Likewise.
	(X509_ENCODING_SORT_NAME): Likewise.
	(PKCS8_ENCODING_SHORT_NAME): Likewise.
	(ASN1_ENCODING_SHORT_NAME): Likewise.
	(X509_ENCODING_ID): Likewise.
	(PKCS8_ENCODING_ID): Likewise.
	(ASN1_ENCODING_ID): Likewise.
	(DSA_OID_STRING): Likewise.
	(RSA_OID_STRING): Likewise.
	(DH_OID_STRING): Likewise.

2006-02-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GlyphView.java:
	(DefaultGlyphPainter.paint): Store/restore Graphics color setting.
	Only fill background if there is a background set on the view.
	Call Utilities.drawTabbedText with the baseline height, rather than
	the upper left corner of the view rectangle.
	(getBackground): Return null if no background is set.
	* javax/swing/text/GlyphView.java:
	(setPropertiesFromAttributes): Use null for background when no
	background is set. StyleConstants.getBackground() doesn't work
	for this, because it returns Color.BLACK in that case.

2006-02-06  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(changeSupport): Removed duplicate (from Component) field.
	(addPropertyChangeListener): Call super.

2006-02-06  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* java/util/regex/Matcher.java(matches):
	set RE.REG_TRY_ENTIRE_MATCH as an execution flag of getMatch.

2006-02-06  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #25812
 	* gnu/regexp/CharIndexed.java(lookBehind),(length): New method.
	* gnu/regexp/CharIndexedCharArray.java
	(lookBehind),(length): Implemented.
	* gnu/regexp/CharIndexedInputStream.java: Likewise.
	* gnu/regexp/CharIndexedString.java: Likewise.
	* gnu/regexp/CharIndexedStringBuffer.java: Likewise.
	* gnu/regexp/REToken.java(getMaximumLength): New method.
	* gnu/regexp/RE.java(internal constructor RE): Added new argument
	maxLength.
	(initialize): Parse (?<=X), (?<!X), (?>X).
	(getMaximumLength): Implemented.
	* gnu/regexp/RETokenAny.java(getMaximumLength): Implemented.
	* gnu/regexp/RETokenChar.java: Likewise.
	* gnu/regexp/RETokenEnd.java: Likewise.
	* gnu/regexp/RETokenEndSub.java: Likewise.
	* gnu/regexp/RETokenLookAhead.java: Likewise.
	* gnu/regexp/RETokenNamedProperty.java: Likewise.
	* gnu/regexp/RETokenOneOf.java: Likewise.
	* gnu/regexp/RETokenPOSIX.java: Likewise.
	* gnu/regexp/RETokenRange.java: Likewise.
	* gnu/regexp/RETokenRepeated.java: Likewise.
	* gnu/regexp/RETokenStart.java: Likewise.
	* gnu/regexp/RETokenWordBoundary.java: Likewise.
	* gnu/regexp/RETokenIndependent.java: New file.
	* gnu/regexp/RETokenLookBehind.java: New file.

2006-02-06  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(firePropertyChange(String,byte,byte)): New method.
	(firePropertyChange(String,char,char)): New method.
	(firePropertyChange(String,short,short)): New method.
	(firePropertyChange(String,long,long)): New method.
	(firePropertyChange(String,float,float)): New method.
	(firePropertyChange(String,double,double)): New method.

2006-02-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(AccessibleJComponent.changeSupport): Changed to be a
	java.beans.PropertyChangeSupport rather than
	SwingPropertyChangeSupport.
	(AccessibleJComponent.AccessibleJComponent()): Change initialization
	of above field.
	(changeSupport): Removed unneeded field.
	(removePropertyChangeListener): Removed unneeded methods.
	(addPropertyChangeListener): Removed unneeded methods.
	(getPropertyChangeListeners): Removed unneeded methods.
	(firePropertyChange(String,boolean,boolean)): Changed to simply
	call super. Added specnote.
	(firePropertyChange(String,char,char)): Changed to simply
	call super. Added specnote.
	(firePropertyChange(String,int,int)): Changed to simply
	call super. Added specnote.
	(firePropertyChange(String,byte,byte)): Removed.
	(firePropertyChange(String,Object,Object)): Removed.
	(firePropertyChange(String,double,double)): Removed.
	(firePropertyChange(String,float,float)): Removed.
	(firePropertyChange(String,long,long)): Removed.
	(firePropertyChange(String,short,short)): Removed.

2006-02-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/event/SwingPropertyChangeSupport.java
	(listeners): Removed field.
	(propertyListeners): Removed field.
	(source): Removed field.
	(SwingPropertyChangeSupport()): Removed initialization of removed
	fields.
	(addPropertyChangeListener): Removed methods.
	(removePropertyChangeListener): Removed methods.
	(getPropertyChangeListeners): Removed methods.
	(firePropertyChange): Removed methods.
	(hasListeners): Removed methods.

2006-02-06  Jeroen Frijters  <jeroen@frijters.net>

	Fixes PR 25313
	* java/net/InetAddress.java
	(readResolve): Implemented.

2006-02-06  Jeroen Frijters  <jeroen@frijters.net>

	Fixes PR 26121
	* java/io/ObjectInputStream.java
	(readNextBlock()): Handle TC_RESET.

2006-02-06  Wolfgang Baer  <WBaer@gmx.de>
	
	* javax/print/attribute/standard/Compression.java,
	* javax/print/attribute/standard/Finishings.java, 
	* javax/print/attribute/standard/JobMediaSheets.java,
	* javax/print/attribute/standard/JobSheets.java,
	* javax/print/attribute/standard/JobState.java,
	* javax/print/attribute/standard/JobStateReason.java,
	* javax/print/attribute/standard/ReferenceUriSchemesSupported.java,
	* javax/print/attribute/standard/PrintQuality.java,
	* javax/print/attribute/standard/Media.java,
	* javax/print/attribute/standard/MultipleDocumentHandling.java,
	* javax/print/attribute/standard/PrinterStateReason.java,
	* javax/print/attribute/standard/PDLOverrideSupported.java: 
	(getName): Make method final.
	(getCategory): Likewise.
	* javax/print/attribute/standard/MediaSize.java: 
	(getName): Make method final.
	(getCategory): Likewise.
	(ISO): Added private default constructor.
	(NA): Likewise.
	(JIS): Likewise.
	(Other): Likewise.
	(Engineering): Likewise.

2006-02-06  Wolfgang Baer  <WBaer@gmx.de>
	
	* native/jni/java-net/javanet.c (_javanet_connect):
	Throw ConnectException instead of IOException if connection failed.
	* native/jni/java-net/javanet.h:
	Add a define for java.net.ConnectException

2006-02-05  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26101
	reported by Egon Willighagen <egon.willighagen@gmail.com>
	* javax/swing/DefaultListCellRenderer.java
	(getListCellRendererComponent): Turn null value into empty string.

2006-02-04  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/RETokenNamedProperty.java(getHandler): Check for
	a Unicode block if the name starts with "In".
	(UnicodeBlockHandler): New inner class.

2006-02-04  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(getComponentZOrder): New method.
	(setComponentZOrder): New method.
	* javax/swing/JLayeredPane.java
	(setPosition): Reimplemented to use setComponentZOrder().
	(getIndexOf): Reimplemented to use getComponentZOrder().
	(addImpl): Pass layerContraint to super call. Important for possibly
	installed layout managers.
	(swapComponents): Remove unneeded method.

2006-02-04  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java: Implement
	DSAKeyPairGenerator.
	(initialize(int,SecureRandom)): Call initialize(keysize, false, random).
	(initialize(AlgorithmParameterSpec,SecureRandom)): More explicit error
	message.
	Surround call to adaptee in a try/catch.
	(initialize((DSAParams,SecureRandom)): New method.
	(initialize(int,boolean,SecureRandom)): New method.
	* gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java: Extends
	KeyPairGenerator rather than KeyPairGeneratorSpi.
	(KeyPairGeneratorAdapter): Call super with algorithm name.

2006-02-04  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/sasl/srp/SRPServer.java (prng): New field.
	(getDefaultPRNG): New method.
	(parseO): Use method above.
	* gnu/javax/crypto/sasl/srp/SRPClient.java (prng): New field.
	(getDefaultPRNG): New method.
	(createO): Use method above.
	* gnu/javax/crypto/sasl/srp/KDF.java (prng): New class field.
	(nextByte): Use above field.
	* gnu/javax/crypto/pad/PKCS1_V1_5.java (selfTest): Use PRNG instance.
	* gnu/java/security/sig/rsa/RSA.java: New class field.
	(newR): Use above field
	* gnu/java/security/sig/rsa/EME_PKCS1_V1_5.java (prng): New field.
	(encode): Use field.above.
	* gnu/java/security/key/dss/FIPS186.java (prng): New field.
	(getDefaultPRNG): new method.
	(nextRandomBytes): Use above method.
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java: Likewise.
	* gnu/java/security/sig/BaseSignature.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/key/dh/RFC2631.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/key/BaseKeyAgreementParty.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairGenerator.java (prng): New field.
	(getDefaultPRNG): new method.
	(nextRandomBytes): Use above method.
	(STRICT_DEFAULTS): new class field.
	(USE_DEFAULTS): more documentation to clarify behavior.
	(setup): amended to handle new attribute.
	* gnu/java/security/util/PRNG.java: New file.

2006-02-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicColorChooserUI.java:
	chooser field should be protected, not package-private.	

2006-02-03  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/text/DefaultStyledDocument.java
	(changeUpdate): Cleaned up code.
	(split): Likewise.
	(insertUpdate): Set offset to be equal to pos after
	insertContentTag call.
	(insertContentTag): If paragraph has no children, should use
	replace instead of Edit.
	(insertFracture): Moved around code to prevent any exception. Also,
	left side of tree should not be recreated if it has already been 
	edited. In that case, we should only be creating a new right branch
	when fracturing.
	(getEditForParagraphAndIndex): No need to check index. We should
	use the same edit for each paragraph.

2006-02-03  Mark Wielaard  <mark@klomp.org>

	* javax/swing/event/SwingPropertyChangeSupport.java
	(propertyListeners): Change type to HashMap.
	(SwingPropertyChangeSupport): Allocate HashMap.

2006-02-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/security/KeyPairGenerator.java (getInstance): Test for
	instanceof KeyPairGenerator before KeyPairGeneratorSpi.

2006-02-02  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	Made fields private.
	(RepaintWorker.run): Enclosed work stuff in try finally block in
	order to clean up correctly if invalidation or painting fails,
	otherwise we would get no more RepaintWorkers onto the EventQueue.
	Also, now the RepaintWorker is marked 'dead' only after it has
	finished its work, avoid more than one RepaintWorker on the queue.
	(ComponentComparator.compareTo): Compare dirty rectangle sizes
	instead of hierarchy depths.
	(workDirtyComponents): Removed unused field.
	(repaintOrder): Removed unused field.
	(workRepaintOrder): Removed unused field.
	(workInvalidComponents): Removed unused field.
	(RepaintManager()): Removed initialization of removed fields.
	(addInvalidComponent): Fine tuned synchronization.
	(removeInvalidComponent): Fine tune synchronization.
	(addDirtyRegion): Short circuit invalid dirty regions. Fine tuned
	synchronization. Don't manager repaintOrder here.
	(insertRepaintOrder): Removed method.
	(markCompletelyClean): Fine tuned synchronization.
	(validateInvalidComponents): Dont use a working copy of the
	invalidComponents list, instead fine tuned synchronization on this
	list. Also, don't search validateRoot, this is already done in
	addInvalidComponent().
	(paintDirtyRegions): Compute repaint order here, based on size of
	damaged regions. Fine tuned synchronization. Avoid use of working
	copies of dirtyComponent.

2006-02-02  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insertUpdate): JoinNextDirection should push the 
	'next' paragraph on the stack.

2006-02-02  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insertUpdate): Rewrote code for Originate. This prevents
	leaves being created multiple times. If it is on the last 
	ElementSpec, the leaves need to be created right then; 
	otherwise, only a branch is created.
	(insertContentTag): Rewrote to add new leaf directly if
	this is a branch with no children. Otherwise, it
	recreates the remainder of the tree as before.

2006-02-02  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/REMatch.java(REMatchList): New inner utility class
	for making a list of REMatch instances.
	* gnu/regexp/RETokenOneOf.java(match): Rewritten using REMatchList.
	* gnu/regexp/RETokenRepeated.java(findDoables): New method.
	(match): Rewritten using REMatchList.
	(matchRest): Rewritten using REMatchList.

2006-02-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java 
	(friendsMove):	Call repaint() only after endOfGame is assigned.

2006-02-02  Mark Wielaard  <mark@klomp.org>

	Fixes bug #25769 reported by Artemus Harper <subanark@gmail.com>
	* java/util/AbstractCollection.java (toString): Only use Iterator,
	check whether collection contains itself.

2006-02-01  Casey Marshall  <csm@gnu.org>

	Partial fix for PR classpath/25143.
	* javax/crypto/EncryptedPrivateKeyInfo.java (algName): new field.
	(<init>): fill in `algName,' derive `algOid' from `algName.'
	(getOid): new method.
	(encode): embed NULL value for parameters if `params' is `null.'

2006-02-01  Casey Marshall  <csm@gnu.org>

	Tag check and OTHER_NAME fixes suggested by Rafael Teixeira
	<monoman@gmail.com>.	
	* gnu/java/security/x509/ext/GeneralNames.java (<init>): fix tag
	check; fix OTHER_NAME parsing; fix DIRECTORY_NAME parsing.

2006-02-01  Casey Marshall  <csm@gnu.org>

	toString fix suggested by Rafael Teixeira <monoman@gmail.com>.
	* gnu/java/security/der/DERValue.java
	(getLength, getEncoded, getEncodedLength): throw an exception,
	don't initialize `encoded' to a bogus value.
	(toString): return a more helpful string.

	Partial fix for PR classpath/25144.
	* gnu/java/security/der/DERWriter.java (write): if the value is
	the pseudo-value used for CONSTRUCTED, write the encoded value
	directly.
	
2006-02-01  Tom Tromey  <tromey@redhat.com>

	* java/security/Security.java (loadProviders): Use system class
	loader.

2006-02-01  Mark Wielaard  <mark@klomp.org>

	* gnu/regexp/RE.java (getRETokenNamedProperty): Chain exception.
	* gnu/regexp/RETokenNamedProperty.java (LETTER, MARK, SEPARATOR,
	SYMBOL, NUMBER, PUNCTUATION, OTHER): New final byte[] fields.
	(getHandler): Check for grouped properties L, M, Z, S, N, P or C.
	(UnicodeCategoriesHandler): New private static class.
	
2006-02-01  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	Removed unneeded fields.
	(insertUpdate): Removed field initialization.
	(insertContentTag): Rewrote part of function. Still
	not complete.

2006-02-01  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insertParagraph): Cleaned up code.
	(insertFirstContentTag): Fixed call to recreateLeaves.
	(insertContentTag): Added check to code to determine where
	content should be inserted with respect to next element.
	(createFracture): Removed check, recreateLeaves is called in 
	other places when needed.
	(recreateLeaves): Added new parameter for paragraph instead
	of checking the stack. Removed editing for newBranch, replaced
	with a replace call.

2006-02-01  Anthony Balkissoon  <abalkiss@redhat.com>

	* doc/unicode/Blocks-4.0.0.txt: New file.
	* java/lang/Character.java: Regenerated inner class UnicodeBlock from 
	scripts/unicode-blocks.pl and doc/unicode/Blocks-4.0.0.txt.
	* scripts/unicode-blocks.pl: Copied this over from the generics branch
	but replaced some 1.5-only features (such as enum).

2006-01-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/PasswordView.java
	(drawSelectedText): Use drawEchoCharacter() method to draw echo
	character.
	(drawUnselectedText): Use drawEchoCharacter() method to draw echo
	character.

2006-01-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTextField.java
	(getPreferredSize): Also include textfield's insets in width
	calculation.

2006-01-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(getPreferredSize): Include the textcomponent's insets in
	preferredSize.

2006-01-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/table/DefaultTableCellRenderer.java
	(getTableCellRendererComponent): Moved setting of the value into
	setValue(). Removed (bogus) special handling of JTextField values.
	(setValue): Made ?: statement more clear by rewriting it
	with if .. else.

2006-01-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLayeredPane.java
	(insertIndexForLayer): Fixed algorithm to correctly determine
	inser index for positions >= 0.
	(addImpl): Fixed API docs for the index parameter.

2006-01-31  Mark Wielaard  <mark@klomp.org>

	* java/net/URI.java (getURIGroup): Check for null to see whether
	group actually exists.

2006-01-31  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(changeUpdate): Fixed calls to split to incorporate 
	new parameter.
	(insertParagraph): Likewise. Uses 0 as editIndex
	because inserting into a new paragraph.
	(insertContentTag): Fixed check to use 
	recreateLeaves. Added a FIXME comment.
	(split): Added a new parameter for edits.

2006-01-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicRootPaneUI.java
	(installDefaults): Don't install a background color here.

2006-01-31  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insert): Removed comment.
	(insertUpdate): Added comment.
	(recreateLeaves): Removed call to push newBranch onto the
	stack. This does not need to be done here.

2006-01-31  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/UnicodeReader.java,
	  gnu/xml/stream/XIncludeFilter.java,
	  gnu/xml/stream/XMLParser.java: Fix case where resolved InputSource
	  only resolved the system ID not the stream. Make some utility methods
	  public and static for use by other private XML APIs.
	* java/lang/ClassNotFoundException.java: Ensure that initCause can be
	  called without throwing IllegalStateException.
	* java/util/logging/SimpleFormatter.java: Write thrown exception if
	  provided.

2006-01-31  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #22873
	* gnu/regexp/REMatch(toString(int)): Throw IndexOutOfBoundsException
	for an invalid index and return null for a skipped group.

2006-01-31  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #26002
	* gnu/regexp/gnu/regexp/RE.java(initialize): Parse /\p{prop}/.
	(NamedProperty): New inner class.
	(getNamedProperty): New method.
	(getRETokenNamedProperty): New Method.
	* gnu/regexp/RESyntax.java(RE_NAMED_PROPERTY): New syntax falg.
	* gnu/regexp/RETokenNamedProperty.java: New file.

2006-01-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/PlainView.java
	(paint): Call drawLine with baseline coordinates.
	(drawLine): Documented and indented this method.
	(drawUnselecetedText): Documented and indented this method.
	* javax/swing/plaf/text/Utilites.java
	(drawTabbedText): The coordinates denote the baseline of the text
	not the upper left corner.

2006-01-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(createKeymap): Don't store KeyBindings[] as focusInputMap in
	UIManager. Added FIXME regarding the implementation of this method.

2006-01-30  David Gilbert  <david.gilbert@object-refinery.com>

	* examples/gnu/classpath/examples/swing/ButtonDemo.java
	(ButtonDemo): Move content initialisation to new method,
	(initFrameContent): New method,
	(main): Call initFrameContent(),
	* examples/gnu/classpath/examples/swing/ComboBoxDemo.java: Likewise,
	* examples/gnu/classpath/examples/swing/FileChooserDemo.java: Likewise,
	* examples/gnu/classpath/examples/swing/ScrollBarDemo.java: Likewise,
	* examples/gnu/classpath/examples/swing/SliderDemo.java: Likewise,
	* examples/gnu/classpath/examples/swing/TextFieldDemo.java: Likewise.

2006-01-30  David Gilbert  <david.gilbert@object-refinery.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(Demo): Set frame size,
	(mkButtonBar): Removed stacked sub-panels.

2006-01-30  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	Added new fields.
	(insert): Initialized fields. Removed call to addEdit, 
	and created ElementEdit instead.
	(insertUpdate): Added check for fracturing. If the
	fracturing was not successful, we should push the
	last element back on the stack.
	(insertParagraph): Fixed call to getEditForParagraphAndIndex.
	Also, changed replace calls to use Edit.
	(insertFirstContentTag): Removed unneeded check and fixed call
	to recreateLeaves.
	(insertContent): Fixed check to use new fields. Added code in
	to check if leaves overlap.
	(createFracture): Fixed call to recreateLeaves.
	(recreateLeaves): Fixed code and cleaned it up a bit.
	(insertFracture): Set fracNotCreated field.
	(addEdit): Removed, this method is not needed.

2006-01-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JRootPane.java
	(RootLayout.prefSize): Removed caching for preferredSize.
	(RootLayout.invalidateLayout): Likewise.
	(RootLayout.preferredLayoutSize): Likewise.	

2006-01-30  Roman Kennke  <kennke@aicas.com>

	PR classpath/26035
	* javax/swing/JFrame.java
	(frameInit): Handle the defaultLookAndFeelDecorated flag.
	* javax/swing/plaf/metal/MetalRootPaneUI.java
	(MetalFrameBorder): New inner class, provides the border for
	top level containers with L&F decorations.
	(MetalTitlePane): New inner class, provides the title pane for
	top level containers with L&F decorations.
	(MetalRootLayout): New inner class. Used to layout the root pane
	when L&F window decorations are enabled.
	(installUI): New method. Handles window decorations.
	(uninstallUI): New method. Handles window decorations.
	(propertyChange): Handles window decorations.
	(installWindowDecorations): New method. Handles window
	decorations.
	(uninstallWindowDecorations): New method. Handles window
	decorations.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(getSupportsWindowDecorations): Overridden to return true.

2006-01-30  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JProgressBar.java (JProgressBar(int)): Document
	IllegalArgumentException when orientation is illegal.
	(JProgressBar(int, int, int)): Likewise and throw exception.
	(setOrientation): Likewise.

2006-01-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ViewportLayout.java
	(minimumLayoutSize): Rewritten to unconditionally return (4,4).

2006-01-30  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JProgressBar.java (orientation): Always set by
	constructor.
	(JProgressBar(int)): Document default on 'illegal' value.
	(JProgressBar(int, int, int)): Likewise and set orientation to
	HORIZONTAL when 'illegal'.
	(setOrientation): Likewise.

2006-01-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(ListDataHandler.contentsChanged): Update the
	updateLayoutStateNeeded flag.
	(ListDataHandler.intervalAdded): Update the
	updateLayoutStateNeeded flag.
	(ListDataHandler.intervalRemoved): Update the
	updateLayoutStateNeeded flag.
	(PropertyChangeHandler.propertyChange): Correctly update the
	listeners on new list model.
	(maybeUpdateLayoutState): Don't consider the validation state
	of the list.

2006-01-30  Mark Wielaard  <mark@klomp.org>

	* gnu/xml/transform/ApplyTemplatesNode.java (clone): Check whether
	sortKeys is null.

2006-01-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLayeredPane.java
	(insertIndexForLayer): Fixed algorithm to correctly insert
	components within different layers and -1 position.

2006-01-30  Mark Wielaard  <mark@klomp.org>

	* doc/api/Makefile.am (create_html): Add -validhtml.

2006-01-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLayeredPane.java
	(insertIndexForLayer): Fixed algorithm to correctly insert
	components within same layer and -1 position.

2006-01-30  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #24876
	* gnu/regexp/gnu/regexp/RE.java(REG_TRY_ENTIRE_MATCH):
	New execution flag.
	(getMatchImpl): if REG_TRY_ENTIRE_MATCH is set, add an
	implicit RETokenEnd at the end of the regexp chain.
	Do not select the longest match, but select the first match.
	(match): Do not take care of REMatch.empty.
	* gnu/regexp/REMatch.java(empty): To be used only in RETokenRepeated.
	* gnu/regexp/RETokenOneOf.java: Corrected a typo in a comment.
	* gnu/regexp/RETokenBackRef.java: Do not take care of REMatch.empty.
	* gnu/regexp/RETokenRepeated.java (match): Rewrote stingy matching.
	Do not take care of REMatch.empty. Set and check REMatch.empty
	when trying to match the single token.

2006-01-30  Mark Wielaard  <mark@klomp.org>

	* java/awt/Cursor.java (toString): Include name and type.

2006-01-30  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/mac/HMac.java (clone): Clone ipadHash, opadHash, and
	the ipad buffer.
	* gnu/javax/crypto/mac/BaseMac.java (clone): Clone underlyingHash.

2006-01-30  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
        
        PR 26027
	* javax/swing/plaf/basic/BasicListUI.java  (maybeUpdateLayoutState):
	Consider the validation state of the list. 

2006-01-29  Robert Schuster  <robertschuster@fsfe.org>

	* gnu/java/beans/DefaultExceptionListener.java: Constant public field
	INSTANCE added.
	* java/beans/XMLDecoder.java:
	(setExceptionListener): Use shared DefaultExceptionListener
	instance.
	* java/beans/Encoder.java:
	(setExceptionListener): Use shared DefaultExceptionListener
	instance.

2006-01-29  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ScrollPaneLayout.java
	(minimumLayoutSize): Rewritten to match JDKs behaviour.

2006-01-29  Mark Wielaard  <mark@klomp.org>

	* java/net/SocketPermission.java (setActions): Trim and lower case
	action.

2006-01-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/util/Prime2.java (passEulerCriterion): Was
	incorrectly failing primality test for some known primes. Fixed.
	(passFermatLittleTheorem): Removed.
	(passMillerRabin): Removed.
	(isProbablePrime): Cache primes that pass the primality tests.
	Use BigInteger.isProbablePrime(int) for primality tests.
	(debugBI): New static debugging method.

2006-01-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(updateLayoutState): Removed unneeded special case for VERTICAL.

2006-01-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(getCellBounds): Determine correct list width when having a
	layoutOrientation of VERTICAL.
	(maybeUpdateLayoutState): Don't consider the validation state of
	the list.

2006-01-28  Mark Wielaard  <mark@klomp.org>

	Reported by Dimitri Fontaine <dimitri@dalibo.com>
	* java/awt/print/NoPrinterJob.java: New (fake) class.
	* java/awt/print/PrinterJob.java (getPrinterJob): Return NoPrinterJob.

2006-01-28  Mark Wielaard  <mark@klomp.org>

	* gnu/javax/crypto/mac/HMac.java (clone): Cast cloned ipad to byte[].

2006-01-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/classpath/examples/swing/Demo.java (mkTree): Make a larger tree.
	(addChildren): New method.

2006-01-28  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/jce/mac/MacAdapter.java (MacAdapter(IMac, Map)): New
	constructor for cloning purposes.
	(clone): New implementation that ensures cloning.
	* gnu/javax/crypto/mac/HMac.java (clone): Implement Cloneable.
	* gnu/java/security/Registry.java: Changed value of GNU_SECURITY to
	  "GNU".

2006-01-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (updateCachedPreferredSize):
	Call updateCurrentVisiblePath.

2006-01-27  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/MiniDemo.java: New file.

2006-01-27  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/ButtonDemo.java
	(createContent): Only create new content if we don't have one
	already.
	* examples/gnu/classpath/examples/swing/ComboBoxDemo.java
	(createContent): Only create new content if we don't have one
	already.
	* examples/gnu/classpath/examples/swing/FileChooserDemo.java
	(createContent): Only create new content if we don't have one
	already.
	* examples/gnu/classpath/examples/swing/ScrollBarDemo.java
	(createContent): Only create new content if we don't have one
	already.
	* examples/gnu/classpath/examples/swing/SliderDemo.java
	(createContent): Only create new content if we don't have one
	already.
	* examples/gnu/classpath/examples/swing/TableDemo.java
	(createContent): Only create new content if we don't have one
	already.
	* examples/gnu/classpath/examples/swing/TextFieldDemo.java
	(createContent): Only create new content if we don't have one
	already.

2006-01-27  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insertFirstContentTag): Removed check, not needed. This
	still needs to be fixed for some cases. Added call to
	recreateLeaves.
	(createFracture): Added call to recreateLeaves.
	(recreateLeaves): New method used to recreate all the
	leaves after the initial insertion. This still needs 
	more work.
	(handleInsertAfterNewline): Removed else, not needed.

2006-01-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLayeredPane.java
	(inserIndexForLayer): Fixed direction of search.

2006-01-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTree.java (constructor): Put EXPANDED for the root 
	node into nodeStates.

2006-01-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLayeredPane.java
	(FRAME_CONTENT_LAYER): Made field final.
	(componentToLayer): Made field private.
	(rectCache): Removed field.
	(layers): Removed field.
	(JLayeredPane()): Removed initialization of removed fields.
	(getLayer): Rewritten to make use of client properties in
	JComponents and to be more straighforward.
	(static getLayer): Rewritten to make use of client properties in
	JComponents.
	(layerToRange): Removed method.
	(incrLayer): Removed method.
	(decrLayer): Removed method.
	(highestLayer): Rewritten to be more straightforward.
	(lowestLayer): Rewritten to be more straightforward.
	(getPosition): Rewritten to be more straightforward.
	(getComponentsInLayer): Rewritten to be more straightforward.
	(getComponentCountInLayer): Rewritten to be more straightforward.
	(getIndexOf): Rewritten to be more straightforward.
	(inserIndexForLayer): Rewritten to be more straightforward.
	(remove): Rewritten to be more straightforward.
	(setLayer): Rewritten to be more straightforward.
	(addImpl): Rewritten to be more straightforward.
	(putLayer): Rewritten to be more straightforward.

2006-01-27  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/lang/Character.java:
	(offsetByCodePoints(CharSequence, int, int)): New API method.
	(offsetByCodePoints(char[], int, int, int, int)): Likewise.
	(toChars): Throw the Exception that the docs say we throw.
	(codePointAt): Fixed an off-by-one error in the bounds of the if 
	statement.
	* java/lang/String.java:
	(String(int[], int, int)): New API constructor.

2006-01-27  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insert): Moved this loop to insertUpdate.
	(insertUpdate): Likewise. Fixed variable
	names. Incremented pos if new paragraph
	is inserted.
	(split): Changed edits to use replace instead. Prevents
	assertion errors.
	(insertFirstContentTag): Removed else.
	(insertContentTag): Implemented else for JoinNextDirection.
	(createFracture): Fixed up code, still not fully complete.
	(insertFracture): Fixed to use return value from 
	recreateAfterFracture.
	(recreateAfterFracture): Changed to return an array of the
	elements to be added. This prevents an assertion error.
	(contains): New function checks if an element is already in 
	the Vector. Vector's contain function was not enough to use.
	(addAddedElement): Changed to use new contains function.
	(addAddedElements): Likewise.
	(addRemovedElement): Likewise.
	(addRemovedElements): Likewise.        
	
2006-01-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 25520
	* vm/reference/java/io/VMObjectInputStream.java (loaderAction.run):
	If no user class loaders found on the stack, return the thread 
	context class loader. (currentClassLoader): Explained.

2006-01-27  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(swapComponents): Removed unspecified method.
	* javax/swing/JLayeredPane.java
	(setPosition): Reimplemented correctly.
	(swapComponents): New helper method.

2006-01-27  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Set version to 0.21-pre.

2006-01-27  Roman Kennke  <kennke@aicas.com>

	PR classpath/25968
	* javax/swing/JComponent.java
	(findOverlapFreeParent): Improved the algorithm to make better use
	of the optimizedDrawingEnabled flag.
	* javax/swing/JLayeredPane.java
	(isOptimizedDrawingEnabled): Reimplemented to match the specs.
	* javax/swing/JViewport.java
	(computeBlit): Fixed check to decide if blitting is possible or not,
	so that it doesn't blit if nothing was scrolled (in order to
	update the buffer when the view updates itself).

2006-01-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(createList): Don't set scrollbar policy.

2006-01-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicPopupMenuUI.java
	(PopupMenuHandler.popupMenuWillBecomeInvisible):
	Fixed to also handle non-Swing toplevel containers.
	(PopupMenuHandler.popupMenuWillBecomeVisible):
	Fixed to also handle non-Swing toplevel containers.
	* javax/swing/Popup.java
	(JWindowPopup.JWindowPopup()): Correctly set parent window on
	popup.

2006-01-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(InternalFramePropertyChangeListener): Don't implement
	VetoableChangeListener.
	(InternalFramePropertyChangeListener.vetoableChange): Removed.
	(internalFrameVetoableChangeListener): Removed unneeded field.
	(installListeners): Don't install vetoableChangeListener.
	* javax/swing/event/DocumentEvent.java
	(EventType): Made class final.

2006-01-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(calculateInsetArea): Removed unneeded method. The method
	calculateInnerArea has the same purpose and is actually specified.
	(calculateInnerArea): Rewritten to not use calculateInsetArea.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(paintMenuItem): Use SwingUtilities.calculateInnerArea() instead
	of SwingUtilities.calculateInsetArea().

2006-01-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(installDefaults): Removed requestFocusInWindow() call.
	* javax/swing/JComponent.java
	(requestFocusInWindow(boolean)): Made method protected.
	(printComponent): Made method protected.
	(printChildren): Made method protected.
	(printComponent): Made method protected.
	(printBorder): Made method protected.

2006-01-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(ButtonChangeListener.ButtonChangeListener()): Made constructor
	package private.
	* javax/swing/ImageIcon.java
	(component): Made field final.
	(tracker): Made field final.
	* javax/swing/JApplet.java
	(AccessibleJApplet.AccessibleJApplet): Made constructor protected.
	* javax/swing/JCheckBox.java
	(AccessibleJCheckBox.AccessibleJCheckBox): Made constructor
	protected.
	* javax/swing/JDialog.java
	(AccessibleJDialog.AccessibleJDialog): Made constructor protected.
	* javax/swing/JFrame.java
	(AccessibleJFrame.AccessibleJFrame): Made constructor protected.
	* javax/swing/JLayeredPane.java
	(AccessibleJLayered.AccessibleJLayeredPane): Made constructor
	protected.
	(DEFAULT_LAYER): Made field final.
	(PALETTE_LAYER): Made field final.
	(MODAL_LAYER): Made field final.
	(POPUP_LAYER): Made field final.
	(DRAG_LAYER): Made field final.
	* javax/swing/JMenu.java
	(ActionChangeListener): Made class private.
	* javax/swing/JOptionPane.java
	(UNITITIALIZED_VALUE): Made field final.
	* javax/swing/JPanel.java
	(AccessibleJPanel.AccessibleJPanel): Made constructor protected.
	* javax/swing/JPopupMenu.java
	(ActionChangeListener): Made class private.
	* javax/swing/JTree.java
	(paramString): Made method protected.
	* javax/swing/JViewport.java
	(AccessibleJViewport.AccessibleJViewport): Made constructor protected.
	* javax/swing/JWindow.java
	(AccessibleJWindow.AccessibleJWindow): Made constructor protected.
	* javax/swing/RepaintManager.java
	(RepaintWorker): Made class private.

2006-01-27  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/swing/SwingComponentPeer.java
	(handleEvent): Removed debug statement.

2006-01-27  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(coalescePaintEvents): Don't try to optimize coalescing. This hurts
	more than it helps.

2006-01-26  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(createFracture): Commented out a known problem,
	added FIXME tag.

2006-01-26  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer): Added fields.
	(remove): Initialized pos.
	(change): Likewise.
	(insert): Likewise.
	(insertUpdate): Incremented pos. Fixed check, createFracture should
	be called on first tag if it is not ContentType.
	(insertFirstContentTag): Reworked to use proper offsets and
	set offset accordingly. This might need more work in the future.
	(insertContentTag): Likewise. Fixed to use pos, instead of 
	offset.
	(createFracture): Fixed to recreate other leaves. Still needs
	more work.
	(insertFracture): Reimplemented.
	(recreateAfterFracture): New method.
	(getParagraphElement): Reimplemented, more efficent.

2006-01-26  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* native/jni/java-lang/java_lang_VMDouble.c (doubleToLongBits)
	(doubleToRawLongBits, longBitsToDouble): Swap the byte
	ordering for little-endian arms without VFP.

2006-01-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR classpath/25981
	* gnu/javax/crypto/jce/GnuCrypto.java (run): Added KeyGenerator entries.

2006-01-26  Mark Wielaard  <mark@klomp.org>

	Fixes bug #25970 reported by Michael Kay <mike@saxonica.com>
	* java/math/BigDecimal.java (compareTo): Don't strip trailing zeros.
	Add trailing zeros to the fraction of the decimal with the smallest
	scale.

2006-01-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/ObjectView.java: New file.

2006-01-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (MouseHandler.mousePressed): 
	Call startEditing when appropriate.
	(WAIT_TILL_EDITING, EDIT, startEditTimer): New fields.
	(startEditing): Always edit if directly ordered from 
	MouseHandler.mousePressed.
	* javax/swing/tree/DefaultTreeCellEditor.java (CLICK_COUNT_TO_START): 
	New field. (createTreeCellEditor): Set click count to start.
	(getTreeCellEditorComponent): Assing realEditor directly.

2006-01-25  Casey Marshall  <csm@gnu.org>

	Merging GNU Crypto and Jessie.

	* NEWS: mention the merge in the 0.21 notes.
	* gnu/classpath/debug/Component.java (SSL_APPLICATION): removed.
	(SSL_RECORD_LAYER): new constants.
	* gnu/java/security/provider/Gnu.java (<init>): add new algorithms
	to provider.
	* resource/java/security/classpath.security: add new providers.
	* gnu/javax/crypto/assembly/Assembly.java,
        gnu/javax/crypto/assembly/Cascade.java,
        gnu/javax/crypto/assembly/CascadeStage.java,
        gnu/javax/crypto/assembly/CascadeTransformer.java,
        gnu/javax/crypto/assembly/DeflateTransformer.java,
        gnu/javax/crypto/assembly/Direction.java,
        gnu/javax/crypto/assembly/LoopbackTransformer.java,
        gnu/javax/crypto/assembly/ModeStage.java,
        gnu/javax/crypto/assembly/Operation.java,
        gnu/javax/crypto/assembly/PaddingTransformer.java,
        gnu/javax/crypto/assembly/Stage.java,
        gnu/javax/crypto/assembly/Transformer.java,
        gnu/javax/crypto/assembly/TransformerException.java,
        gnu/javax/crypto/cipher/Anubis.java,
        gnu/javax/crypto/cipher/BaseCipher.java,
        gnu/javax/crypto/cipher/Blowfish.java,
        gnu/javax/crypto/cipher/Cast5.java,
        gnu/javax/crypto/cipher/CipherFactory.java,
        gnu/javax/crypto/cipher/DES.java,
        gnu/javax/crypto/cipher/IBlockCipher.java,
        gnu/javax/crypto/cipher/IBlockCipherSpi.java,
        gnu/javax/crypto/cipher/Khazad.java,
        gnu/javax/crypto/cipher/NullCipher.java,
        gnu/javax/crypto/cipher/Rijndael.java,
        gnu/javax/crypto/cipher/Serpent.java,
        gnu/javax/crypto/cipher/Square.java,
        gnu/javax/crypto/cipher/TripleDES.java,
        gnu/javax/crypto/cipher/Twofish.java,
        gnu/javax/crypto/cipher/WeakKeyException.java,
        gnu/javax/crypto/jce/GnuCrypto.java,
        gnu/javax/crypto/jce/GnuSasl.java,
        gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.java,
        gnu/javax/crypto/jce/cipher/AESSpi.java,
        gnu/javax/crypto/jce/cipher/ARCFourSpi.java,
        gnu/javax/crypto/jce/cipher/AnubisSpi.java,
        gnu/javax/crypto/jce/cipher/BlowfishSpi.java,
        gnu/javax/crypto/jce/cipher/Cast5Spi.java,
        gnu/javax/crypto/jce/cipher/CipherAdapter.java,
        gnu/javax/crypto/jce/cipher/DESSpi.java,
        gnu/javax/crypto/jce/cipher/KhazadSpi.java,
        gnu/javax/crypto/jce/cipher/NullCipherSpi.java,
        gnu/javax/crypto/jce/cipher/PBES2.java,
        gnu/javax/crypto/jce/cipher/RijndaelSpi.java,
        gnu/javax/crypto/jce/cipher/SerpentSpi.java,
        gnu/javax/crypto/jce/cipher/SquareSpi.java,
        gnu/javax/crypto/jce/cipher/TripleDESSpi.java,
        gnu/javax/crypto/jce/cipher/TwofishSpi.java,
        gnu/javax/crypto/jce/key/AnubisKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/BlowfishKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/Cast5KeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/DESKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/DESSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/DESedeSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/KhazadKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/KhazadSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/RijndaelKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/RijndaelSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/SecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/SerpentKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/SerpentSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/SquareKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/SquareSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/TripleDESKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/TwofishKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/TwofishSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/keyring/GnuKeyring.java,
        gnu/javax/crypto/jce/mac/HMacHavalSpi.java,
        gnu/javax/crypto/jce/mac/HMacMD2Spi.java,
        gnu/javax/crypto/jce/mac/HMacMD4Spi.java,
        gnu/javax/crypto/jce/mac/HMacMD5Spi.java,
        gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.java,
        gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.java,
        gnu/javax/crypto/jce/mac/HMacSHA160Spi.java,
        gnu/javax/crypto/jce/mac/HMacSHA256Spi.java,
        gnu/javax/crypto/jce/mac/HMacSHA384Spi.java,
        gnu/javax/crypto/jce/mac/HMacSHA512Spi.java,
        gnu/javax/crypto/jce/mac/HMacTigerSpi.java,
        gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.java,
        gnu/javax/crypto/jce/mac/MacAdapter.java,
        gnu/javax/crypto/jce/mac/OMacAnubisImpl.java,
        gnu/javax/crypto/jce/mac/OMacBlowfishImpl.java,
        gnu/javax/crypto/jce/mac/OMacCast5Impl.java,
        gnu/javax/crypto/jce/mac/OMacDESImpl.java,
        gnu/javax/crypto/jce/mac/OMacImpl.java,
        gnu/javax/crypto/jce/mac/OMacKhazadImpl.java,
        gnu/javax/crypto/jce/mac/OMacRijndaelImpl.java,
        gnu/javax/crypto/jce/mac/OMacSerpentImpl.java,
        gnu/javax/crypto/jce/mac/OMacSquareImpl.java,
        gnu/javax/crypto/jce/mac/OMacTripleDESImpl.java,
        gnu/javax/crypto/jce/mac/OMacTwofishImpl.java,
        gnu/javax/crypto/jce/mac/TMMH16Spi.java,
        gnu/javax/crypto/jce/mac/UHash32Spi.java,
        gnu/javax/crypto/jce/mac/UMac32Spi.java,
        gnu/javax/crypto/jce/params/BlockCipherParameters.java,
        gnu/javax/crypto/jce/params/DEREncodingException.java,
        gnu/javax/crypto/jce/params/DERReader.java,
        gnu/javax/crypto/jce/params/DERWriter.java,
        gnu/javax/crypto/jce/prng/ARCFourRandomSpi.java,
        gnu/javax/crypto/jce/prng/CSPRNGSpi.java,
        gnu/javax/crypto/jce/prng/FortunaImpl.java,
        gnu/javax/crypto/jce/prng/ICMRandomSpi.java,
        gnu/javax/crypto/jce/prng/UMacRandomSpi.java,
        gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.java,
        gnu/javax/crypto/jce/spec/TMMHParameterSpec.java,
        gnu/javax/crypto/jce/spec/UMac32ParameterSpec.java,
        gnu/javax/crypto/key/BaseKeyAgreementParty.java,
        gnu/javax/crypto/key/GnuSecretKey.java,
        gnu/javax/crypto/key/IKeyAgreementParty.java,
        gnu/javax/crypto/key/IncomingMessage.java,
        gnu/javax/crypto/key/KeyAgreementException.java,
        gnu/javax/crypto/key/KeyAgreementFactory.java,
        gnu/javax/crypto/key/OutgoingMessage.java,
        gnu/javax/crypto/key/dh/DHKeyPairRawCodec.java,
        gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.java,
        gnu/javax/crypto/key/dh/DiffieHellmanReceiver.java,
        gnu/javax/crypto/key/dh/DiffieHellmanSender.java,
        gnu/javax/crypto/key/dh/ElGamalKeyAgreement.java,
        gnu/javax/crypto/key/dh/ElGamalReceiver.java,
        gnu/javax/crypto/key/dh/ElGamalSender.java,
        gnu/javax/crypto/key/dh/GnuDHKey.java,
        gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java,
        gnu/javax/crypto/key/dh/GnuDHPrivateKey.java,
        gnu/javax/crypto/key/dh/GnuDHPublicKey.java,
        gnu/javax/crypto/key/dh/RFC2631.java,
        gnu/javax/crypto/key/srp6/SRP6Host.java,
        gnu/javax/crypto/key/srp6/SRP6KeyAgreement.java,
        gnu/javax/crypto/key/srp6/SRP6SaslClient.java,
        gnu/javax/crypto/key/srp6/SRP6SaslServer.java,
        gnu/javax/crypto/key/srp6/SRP6TLSClient.java,
        gnu/javax/crypto/key/srp6/SRP6TLSServer.java,
        gnu/javax/crypto/key/srp6/SRP6User.java,
        gnu/javax/crypto/key/srp6/SRPAlgorithm.java,
        gnu/javax/crypto/key/srp6/SRPKey.java,
        gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java,
        gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.java,
        gnu/javax/crypto/key/srp6/SRPPrivateKey.java,
        gnu/javax/crypto/key/srp6/SRPPublicKey.java,
        gnu/javax/crypto/keyring/AuthenticatedEntry.java,
        gnu/javax/crypto/keyring/BaseKeyring.java,
        gnu/javax/crypto/keyring/BinaryDataEntry.java,
        gnu/javax/crypto/keyring/CertPathEntry.java,
        gnu/javax/crypto/keyring/CertificateEntry.java,
        gnu/javax/crypto/keyring/CompressedEntry.java,
        gnu/javax/crypto/keyring/EncryptedEntry.java,
        gnu/javax/crypto/keyring/Entry.java,
        gnu/javax/crypto/keyring/EnvelopeEntry.java,
        gnu/javax/crypto/keyring/GnuPrivateKeyring.java,
        gnu/javax/crypto/keyring/GnuPublicKeyring.java,
        gnu/javax/crypto/keyring/IKeyring.java,
        gnu/javax/crypto/keyring/IPrivateKeyring.java,
        gnu/javax/crypto/keyring/IPublicKeyring.java,
        gnu/javax/crypto/keyring/MalformedKeyringException.java,
        gnu/javax/crypto/keyring/MaskableEnvelopeEntry.java,
        gnu/javax/crypto/keyring/MeteredInputStream.java,
        gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java,
        gnu/javax/crypto/keyring/PasswordEncryptedEntry.java,
        gnu/javax/crypto/keyring/PasswordProtectedEntry.java,
        gnu/javax/crypto/keyring/PrimitiveEntry.java,
        gnu/javax/crypto/keyring/PrivateKeyEntry.java,
        gnu/javax/crypto/keyring/Properties.java,
        gnu/javax/crypto/keyring/PublicKeyEntry.java,
        gnu/javax/crypto/mac/BaseMac.java,
        gnu/javax/crypto/mac/HMac.java,
        gnu/javax/crypto/mac/HMacFactory.java,
        gnu/javax/crypto/mac/IMac.java,
        gnu/javax/crypto/mac/MacFactory.java,
        gnu/javax/crypto/mac/MacInputStream.java,
        gnu/javax/crypto/mac/MacOutputStream.java,
        gnu/javax/crypto/mac/OMAC.java,
        gnu/javax/crypto/mac/TMMH16.java,
        gnu/javax/crypto/mac/UHash32.java,
        gnu/javax/crypto/mac/UMac32.java,
        gnu/javax/crypto/mode/BaseMode.java,
        gnu/javax/crypto/mode/CBC.java,
        gnu/javax/crypto/mode/CFB.java,
        gnu/javax/crypto/mode/CTR.java,
        gnu/javax/crypto/mode/EAX.java,
        gnu/javax/crypto/mode/ECB.java,
        gnu/javax/crypto/mode/IAuthenticatedMode.java,
        gnu/javax/crypto/mode/ICM.java,
        gnu/javax/crypto/mode/IMode.java,
        gnu/javax/crypto/mode/ModeFactory.java,
        gnu/javax/crypto/mode/OFB.java,
        gnu/javax/crypto/pad/BasePad.java,
        gnu/javax/crypto/pad/IPad.java,
        gnu/javax/crypto/pad/PKCS1_V1_5.java,
        gnu/javax/crypto/pad/PKCS7.java,
        gnu/javax/crypto/pad/PadFactory.java,
        gnu/javax/crypto/pad/SSL3.java,
        gnu/javax/crypto/pad/TBC.java,
        gnu/javax/crypto/pad/TLS1.java,
        gnu/javax/crypto/pad/WrongPaddingException.java,
        gnu/javax/crypto/prng/ARCFour.java,
        gnu/javax/crypto/prng/CSPRNG.java,
        gnu/javax/crypto/prng/Fortuna.java,
        gnu/javax/crypto/prng/ICMGenerator.java,
        gnu/javax/crypto/prng/IPBE.java,
        gnu/javax/crypto/prng/PBKDF2.java,
        gnu/javax/crypto/prng/PRNGFactory.java,
        gnu/javax/crypto/prng/UMacGenerator.java,
        gnu/javax/crypto/sasl/AuthInfo.java,
        gnu/javax/crypto/sasl/AuthInfoProviderFactory.java,
        gnu/javax/crypto/sasl/ClientFactory.java,
        gnu/javax/crypto/sasl/ClientMechanism.java,
        gnu/javax/crypto/sasl/ConfidentialityException.java,
        gnu/javax/crypto/sasl/IAuthInfoProvider.java,
        gnu/javax/crypto/sasl/IAuthInfoProviderFactory.java,
        gnu/javax/crypto/sasl/IllegalMechanismStateException.java,
        gnu/javax/crypto/sasl/InputBuffer.java,
        gnu/javax/crypto/sasl/IntegrityException.java,
        gnu/javax/crypto/sasl/NoSuchMechanismException.java,
        gnu/javax/crypto/sasl/NoSuchUserException.java,
        gnu/javax/crypto/sasl/OutputBuffer.java,
        gnu/javax/crypto/sasl/SaslEncodingException.java,
        gnu/javax/crypto/sasl/SaslInputStream.java,
        gnu/javax/crypto/sasl/SaslOutputStream.java,
        gnu/javax/crypto/sasl/SaslUtil.java,
        gnu/javax/crypto/sasl/ServerFactory.java,
        gnu/javax/crypto/sasl/ServerMechanism.java,
        gnu/javax/crypto/sasl/UserAlreadyExistsException.java,
        gnu/javax/crypto/sasl/anonymous/AnonymousClient.java,
        gnu/javax/crypto/sasl/anonymous/AnonymousServer.java,
        gnu/javax/crypto/sasl/anonymous/AnonymousUtil.java,
        gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.java,
        gnu/javax/crypto/sasl/crammd5/CramMD5Client.java,
        gnu/javax/crypto/sasl/crammd5/CramMD5Registry.java,
        gnu/javax/crypto/sasl/crammd5/CramMD5Server.java,
        gnu/javax/crypto/sasl/crammd5/CramMD5Util.java,
        gnu/javax/crypto/sasl/crammd5/PasswordFile.java,
        gnu/javax/crypto/sasl/plain/PasswordFile.java,
        gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.java,
        gnu/javax/crypto/sasl/plain/PlainClient.java,
        gnu/javax/crypto/sasl/plain/PlainRegistry.java,
        gnu/javax/crypto/sasl/plain/PlainServer.java,
        gnu/javax/crypto/sasl/srp/CALG.java,
        gnu/javax/crypto/sasl/srp/ClientStore.java,
        gnu/javax/crypto/sasl/srp/IALG.java,
        gnu/javax/crypto/sasl/srp/KDF.java,
        gnu/javax/crypto/sasl/srp/PasswordFile.java,
        gnu/javax/crypto/sasl/srp/SRP.java,
        gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.java,
        gnu/javax/crypto/sasl/srp/SRPClient.java,
        gnu/javax/crypto/sasl/srp/SRPRegistry.java,
        gnu/javax/crypto/sasl/srp/SRPServer.java,
        gnu/javax/crypto/sasl/srp/SecurityContext.java,
        gnu/javax/crypto/sasl/srp/ServerStore.java,
        gnu/javax/crypto/sasl/srp/StoreEntry.java,
        gnu/javax/net/ssl/Base64.java,
        gnu/javax/net/ssl/EntropySource.java,
        gnu/javax/net/ssl/NullManagerParameters.java,
        gnu/javax/net/ssl/PrivateCredentials.java,
        gnu/javax/net/ssl/SRPManagerParameters.java,
        gnu/javax/net/ssl/SRPTrustManager.java,
        gnu/javax/net/ssl/StaticTrustAnchors.java,
        gnu/javax/net/ssl/provider/Alert.java,
        gnu/javax/net/ssl/provider/AlertException.java,
        gnu/javax/net/ssl/provider/Certificate.java,
        gnu/javax/net/ssl/provider/CertificateRequest.java,
        gnu/javax/net/ssl/provider/CertificateType.java,
        gnu/javax/net/ssl/provider/CertificateVerify.java,
        gnu/javax/net/ssl/provider/CipherSuite.java,
        gnu/javax/net/ssl/provider/ClientHello.java,
        gnu/javax/net/ssl/provider/ClientKeyExchange.java,
        gnu/javax/net/ssl/provider/CompressionMethod.java,
        gnu/javax/net/ssl/provider/Constructed.java,
        gnu/javax/net/ssl/provider/ContentType.java,
        gnu/javax/net/ssl/provider/Context.java,
        gnu/javax/net/ssl/provider/DiffieHellman.java,
        gnu/javax/net/ssl/provider/DigestInputStream.java,
        gnu/javax/net/ssl/provider/DigestOutputStream.java,
        gnu/javax/net/ssl/provider/Enumerated.java,
        gnu/javax/net/ssl/provider/Extension.java,
        gnu/javax/net/ssl/provider/Extensions.java,
        gnu/javax/net/ssl/provider/Finished.java,
        gnu/javax/net/ssl/provider/GNUSecurityParameters.java,
        gnu/javax/net/ssl/provider/Handshake.java,
        gnu/javax/net/ssl/provider/JCESecurityParameters.java,
        gnu/javax/net/ssl/provider/JDBCSessionContext.java,
        gnu/javax/net/ssl/provider/Jessie.java,
        gnu/javax/net/ssl/provider/JessieDHPrivateKey.java,
        gnu/javax/net/ssl/provider/JessieDHPublicKey.java,
        gnu/javax/net/ssl/provider/JessieRSAPrivateKey.java,
        gnu/javax/net/ssl/provider/JessieRSAPublicKey.java,
        gnu/javax/net/ssl/provider/KeyPool.java,
        gnu/javax/net/ssl/provider/MacException.java,
        gnu/javax/net/ssl/provider/OverflowException.java,
        gnu/javax/net/ssl/provider/PRNG.java,
        gnu/javax/net/ssl/provider/ProtocolVersion.java,
        gnu/javax/net/ssl/provider/Random.java,
        gnu/javax/net/ssl/provider/RecordInput.java,
        gnu/javax/net/ssl/provider/RecordInputStream.java,
        gnu/javax/net/ssl/provider/RecordOutputStream.java,
        gnu/javax/net/ssl/provider/RecordingInputStream.java,
        gnu/javax/net/ssl/provider/SRPTrustManagerFactory.java,
        gnu/javax/net/ssl/provider/SSLHMac.java,
        gnu/javax/net/ssl/provider/SSLRSASignature.java,
        gnu/javax/net/ssl/provider/SSLRandom.java,
        gnu/javax/net/ssl/provider/SSLServerSocket.java,
        gnu/javax/net/ssl/provider/SSLServerSocketFactory.java,
        gnu/javax/net/ssl/provider/SSLSocket.java,
        gnu/javax/net/ssl/provider/SSLSocketFactory.java,
        gnu/javax/net/ssl/provider/SSLSocketInputStream.java,
        gnu/javax/net/ssl/provider/SSLSocketOutputStream.java,
        gnu/javax/net/ssl/provider/SecurityParameters.java,
        gnu/javax/net/ssl/provider/ServerHello.java,
        gnu/javax/net/ssl/provider/ServerKeyExchange.java,
        gnu/javax/net/ssl/provider/Session.java,
        gnu/javax/net/ssl/provider/SessionContext.java,
        gnu/javax/net/ssl/provider/Signature.java,
        gnu/javax/net/ssl/provider/SynchronizedRandom.java,
        gnu/javax/net/ssl/provider/TLSHMac.java,
        gnu/javax/net/ssl/provider/TLSRandom.java,
        gnu/javax/net/ssl/provider/Util.java,
        gnu/javax/net/ssl/provider/X509KeyManagerFactory.java,
        gnu/javax/net/ssl/provider/X509TrustManagerFactory.java,
        gnu/javax/net/ssl/provider/XMLSessionContext.java,
        gnu/javax/security/auth/Password.java,
        gnu/javax/security/auth/callback/AWTCallbackHandler.java,
        gnu/javax/security/auth/callback/AbstractCallbackHandler.java,
        gnu/javax/security/auth/callback/ConsoleCallbackHandler.java,
        gnu/javax/security/auth/callback/DefaultCallbackHandler.java,
        gnu/javax/security/auth/callback/GnuCallbacks.java,
        gnu/javax/security/auth/callback/SwingCallbackHandler.java,
        gnu/java/security/Registry.java,
        gnu/java/security/Properties.java,
        gnu/java/security/hash/BaseHash.java,
        gnu/java/security/hash/HashFactory.java,
        gnu/java/security/hash/Haval.java,
        gnu/java/security/hash/IMessageDigest.java,
        gnu/java/security/hash/MD2.java,
        gnu/java/security/hash/MD4.java,
        gnu/java/security/hash/MD5.java,
        gnu/java/security/hash/RipeMD128.java,
        gnu/java/security/hash/RipeMD160.java,
        gnu/java/security/hash/Sha160.java,
        gnu/java/security/hash/Sha256.java,
        gnu/java/security/hash/Sha384.java,
        gnu/java/security/hash/Sha512.java,
        gnu/java/security/hash/Tiger.java,
        gnu/java/security/hash/Whirlpool.java,
        gnu/java/security/jce/hash/HavalSpi.java,
        gnu/java/security/jce/hash/MD2Spi.java,
        gnu/java/security/jce/hash/MD4Spi.java,
        gnu/java/security/jce/hash/MD5Spi.java,
        gnu/java/security/jce/hash/MessageDigestAdapter.java,
        gnu/java/security/jce/hash/RipeMD128Spi.java,
        gnu/java/security/jce/hash/RipeMD160Spi.java,
        gnu/java/security/jce/hash/Sha160Spi.java,
        gnu/java/security/jce/hash/Sha256Spi.java,
        gnu/java/security/jce/hash/Sha384Spi.java,
        gnu/java/security/jce/hash/Sha512Spi.java,
        gnu/java/security/jce/hash/TigerSpi.java,
        gnu/java/security/jce/hash/WhirlpoolSpi.java,
        gnu/java/security/jce/prng/HavalRandomSpi.java,
        gnu/java/security/jce/prng/MD2RandomSpi.java,
        gnu/java/security/jce/prng/MD4RandomSpi.java,
        gnu/java/security/jce/prng/MD5RandomSpi.java,
        gnu/java/security/jce/prng/RipeMD128RandomSpi.java,
        gnu/java/security/jce/prng/RipeMD160RandomSpi.java,
        gnu/java/security/jce/prng/SecureRandomAdapter.java,
        gnu/java/security/jce/prng/Sha160RandomSpi.java,
        gnu/java/security/jce/prng/Sha256RandomSpi.java,
        gnu/java/security/jce/prng/Sha384RandomSpi.java,
        gnu/java/security/jce/prng/Sha512RandomSpi.java,
        gnu/java/security/jce/prng/TigerRandomSpi.java,
        gnu/java/security/jce/prng/WhirlpoolRandomSpi.java,
        gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java,
        gnu/java/security/jce/sig/DSSRawSignatureSpi.java,
        gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java,
        gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.java,
        gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.java,
        gnu/java/security/jce/sig/SignatureAdapter.java,
        gnu/java/security/key/IKeyPairCodec.java,
        gnu/java/security/key/IKeyPairGenerator.java,
        gnu/java/security/key/KeyPairCodecFactory.java,
        gnu/java/security/key/KeyPairGeneratorFactory.java,
        gnu/java/security/key/dss/DSSKey.java,
        gnu/java/security/key/dss/DSSKeyPairGenerator.java,
        gnu/java/security/key/dss/DSSKeyPairRawCodec.java,
        gnu/java/security/key/dss/DSSPrivateKey.java,
        gnu/java/security/key/dss/DSSPublicKey.java,
        gnu/java/security/key/dss/FIPS186.java,
        gnu/java/security/key/rsa/GnuRSAKey.java,
        gnu/java/security/key/rsa/GnuRSAPrivateKey.java,
        gnu/java/security/key/rsa/GnuRSAPublicKey.java,
        gnu/java/security/key/rsa/RSAKeyPairGenerator.java,
        gnu/java/security/key/rsa/RSAKeyPairRawCodec.java,
        gnu/java/security/prng/BasePRNG.java,
        gnu/java/security/prng/EntropySource.java,
        gnu/java/security/prng/IRandom.java,
        gnu/java/security/prng/LimitReachedException.java,
        gnu/java/security/prng/MDGenerator.java,
        gnu/java/security/prng/PRNGFactory.java,
        gnu/java/security/prng/RandomEvent.java,
        gnu/java/security/prng/RandomEventListener.java,
        gnu/java/security/sig/BaseSignature.java,
        gnu/java/security/sig/ISignature.java,
        gnu/java/security/sig/ISignatureCodec.java,
        gnu/java/security/sig/SignatureFactory.java,
        gnu/java/security/sig/dss/DSSSignature.java,
        gnu/java/security/sig/dss/DSSSignatureRawCodec.java,
        gnu/java/security/sig/rsa/EME_PKCS1_V1_5.java,
        gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.java,
        gnu/java/security/sig/rsa/EMSA_PSS.java,
        gnu/java/security/sig/rsa/RSA.java,
        gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.java,
        gnu/java/security/sig/rsa/RSAPSSSignature.java,
        gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java,
        gnu/java/security/util/Base64.java,
        gnu/java/security/util/ExpirableObject.java,
        gnu/java/security/util/Prime2.java,
        gnu/java/security/util/Sequence.java,
        gnu/java/security/util/SimpleList.java,
        gnu/java/security/util/Util.java,
	resource/gnu/javax/security/auth/callback/MessagesBundle.properties:
	new files imported from GNU Crypto and Jessie.

2006-01-25  Tom Tromey  <tromey@redhat.com>

	* gnu/java/net/protocol/http/ChunkedInputStream.java (read):
	Fixed calculation of number of bytes to read.
	(size, count, meta, eof): Document.

2006-01-25  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/lang/Character.java:
	(codePointCount(char[], int, int)): New API method.
	(codePointCount(CharSequence, int, int)): Likewise.

2006-01-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 25205
	* javax/swing/DefaultCellEditor.java (getTreeCellEditorComponent): 
	Rewritten.
	* javax/swing/JTree.java (stopEditing, cancelEditing): Return without 
	action if not editing.
	* javax/swing/plaf/basic/BasicTreeUI.java 
	(CellEditorHandler.editingCancelled): Delegate to cancelEditing.
	(CellEditorHandler.editingStopped): Delegate to stopEditing.
	(EditorUpdateTimer): Removed.
	(TreeAction.actionPerformed): Stop and not cancel the current editing 
	when starting editing another node.
	(editorTimer, newVal): Removed.
	(cancelEditing): Do not send the cancel message.
	(completeEditing): Obtain the edited value from the editor.
	(finish): New method.
	(paintRow): Do not paint the editing component here.
	(startEditing, stopEditing): Rewritten.
	* javax/swing/tree/DefaultTreeCellEditor.java
	(DefaultTextField): Added SVUID.
	(EditorContainer): Rewritten.
	(RealEditorListener): New inner class.
	(ICON_TEXT_GAP, TREE_ICON_GAP: New constants).
	(constructor): Add cell editor listener. Do not instantiate timer.
	(actionPerformed): Return without action.
	(cancelCellEditing): Rewritten.
	(createTreeCellEditor): Add cell editor listener to the editor.
	(getCellEditorValue): Request the value from the realEditor.
	(isCellEditable): Removed timer management.
	(prepareForEditing): Remove all components befor adding the 
	editingComponent.
	(startEditingTimer): Start only if it is not null.
	(stopCellEditing): Rewritten.
	(stopEditingTimer): New method.
	(valueChanged): Do not configure editing component here.

2006-01-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/FormView.java: New file.

2006-01-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JSplitPane.java
	(addImpl): Call resetToPreferredSizes() when no dividerLocation
	has been set in order to set an initial layout.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(BasicHorizontalLayoutManager.layoutContainer): Fixed error for
	layout of the right component.
	(BasicHorizontalLayoutManager.resetToPreferredSizes): Set the
	dividerLocation to the size of the left component.
	(createDefaultNonContinuousLayoutDivider): Fetch the color from
	the UIManager.
	(setDividerLocation): Don't validate the location here. Sometimes
	the divider needs to be set to an invalid location.
	(startDragging): Don't revalidate and repaint here.
	(finishDraggingTo): Don't repaint here. Also, don't call
	dragDividerTo() here.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added SplitPaneDivider.draggingColor
	default value.

2006-01-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JSplitPane.java
	(addImpl): Removed invalidate() and layout() call.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(PropertyHandler.propertyChange): Remove layoutContainer() and
	repaint() call.

2006-01-25  Roman Kennke  <kennke@aicas.com>

	* configure.ac
	* native/Makefile.am
	* native/jni/classpath/Makefile.am
	* native/jni/classpath/jcl.c
	* native/jni/classpath/jcl.h
	* native/jni/classpath/native_state.c
	* native/jni/gtk-peer/Makefile.am
	* native/jni/java-io/Makefile.am
	* native/jni/java-io/java_io_VMFile.c
	* native/jni/java-io/java_io_VMObjectStreamClass.c
	* native/jni/java-lang/Makefile.am
	* native/jni/java-net/Makefile.am
	* native/jni/java-net/java_net_VMInetAddress.c
	* native/jni/java-net/javanet.c
	* native/jni/java-net/javanet.h
	* native/jni/java-nio/Makefile.am
	* native/jni/java-nio/gnu_java_nio_VMPipe.c
	* native/jni/java-nio/gnu_java_nio_VMSelector.c
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c
	* native/jni/java-nio/java_nio_MappedByteBufferImpl.c
	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c
	* native/jni/java-util/Makefile.am
	* native/jni/java-util/java_util_VMTimeZone.c
	* native/jni/midi-dssi/Makefile.am
	* native/jni/xmlj/Makefile.am
	* native/target/Makefile.am
	* native/target/Linux/target_native_math.h
	* native/target/Linux/target_native_memory.h
	* native/target/Linux/Makefile.am
	* native/target/Linux/target_native_io.h
	* native/target/Linux/target_native_math_float.h
	* native/target/Linux/target_native_math_int.h
	* native/target/generic/target_generic.c
	* native/target/generic/target_generic_io.c
	* native/target/generic/target_generic_math.h
	* native/target/generic/target_generic_memory.h
	* native/target/generic/target_generic_misc.c
	* native/target/generic/target_generic_network.c
	* native/target/generic/Makefile.am
	* native/target/generic/target_generic.h
	* native/target/generic/target_generic_file.h
	* native/target/generic/target_generic_io.h
	* native/target/generic/target_generic_math_float.h
	* native/target/generic/target_generic_math_int.h
	* native/target/generic/target_generic_misc.h
	* native/target/generic/target_generic_network.h:
	Reverted target native related changes back to the state of the
	0.20 release.
	* native/target/MinGW/.cvsignore
	* native/target/MinGW/Makefile.am
	* native/target/MinGW/target_native.h
	* native/target/MinGW/target_native_file.h
	* native/target/MinGW/target_native_io.h
	* native/target/MinGW/target_native_math.h
	* native/target/MinGW/target_native_memory.h
	* native/target/MinGW/target_native_misc.h
	* native/target/MinGW/target_native_network.h
	* native/target/RTEMS/.cvsignore
	* native/target/RTEMS/Makefile.am
	* native/target/RTEMS/target_native.h
	* native/target/RTEMS/target_native_file.h
	* native/target/RTEMS/target_native_io.h
	* native/target/RTEMS/target_native_math.h
	* native/target/RTEMS/target_native_memory.h
	* native/target/RTEMS/target_native_misc.h
	* native/target/RTEMS/target_native_network.h
	* native/target/SunOS/.cvsignore
	* native/target/SunOS/Makefile.am
	* native/target/SunOS/target_native.h
	* native/target/SunOS/target_native_file.h
	* native/target/SunOS/target_native_io.h
	* native/target/SunOS/target_native_math.h
	* native/target/SunOS/target_native_memory.h
	* native/target/SunOS/target_native_misc.h
	* native/target/SunOS/target_native_network.h
	* native/target/embOS/.cvsignore
	* native/target/embOS/Makefile.am
	* native/target/embOS/target_native.h
	* native/target/embOS/target_native_file.h
	* native/target/embOS/target_native_io.c
	* native/target/embOS/target_native_io.h
	* native/target/embOS/target_native_math.h
	* native/target/embOS/target_native_memory.h
	* native/target/embOS/target_native_misc.h
	* native/target/embOS/target_native_network.h
	* native/target/posix/.cvsignore
	* native/target/posix/Makefile.am
	* native/target/posix/target_posix.c
	* native/target/posix/target_posix.h
	* native/target/posix/target_posix_file.c
	* native/target/posix/target_posix_file.h
	* native/target/posix/target_posix_io.c
	* native/target/posix/target_posix_io.h
	* native/target/posix/target_posix_math.c
	* native/target/posix/target_posix_math.h
	* native/target/posix/target_posix_memory.c
	* native/target/posix/target_posix_memory.h
	* native/target/posix/target_posix_misc.c
	* native/target/posix/target_posix_misc.h
	* native/target/posix/target_posix_network.c
	* native/target/posix/target_posix_network.h:
	Removed.

2006-01-24  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/PrintService.java,
	* javax/print/DocPrintJob.java,
	* javax/print/CancelablePrintJob.java:
	Added and enhanced api documentation for class and methods.		

2006-01-24  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/SimpleDoc.java: Make class final.
	* javax/print/attribute/standard/PrinterIsAcceptingJobs.java: Likewise.
	* javax/print/attribute/DateTimeSyntax.java: 
	(toString): New overridden method.
	* javax/print/attribute/standard/JobStateReasons.java:
	(add): Use the super.add method to avoid recursion.
	* javax/print/attribute/standard/PrinterStateReasons.java: 
	(put): Use the super.put method to avoid recursion.

2006-01-24  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/XMLEncoder.java:
	(writeExpression): Added early return (fixes PR #25941).
	(setExceptionListener, anonymous Class): Removed printStackTrace
	call.
	* java/beans/Encoder: Removed unused imports.
	(setupDefaultPersistenceDelegates): Removed unneccessary
	PersistenceDelegates for subclasses.
	* java/beans/PersistenceDelegate:
	(initialize): Use local variable as first argument as it was
	intended once.
	* java/beans/DefaultPersistenceDelegate:
	(initialize): Added call to superclass' implementation, added
	early return.

2006-01-24  Tom Tromey  <tromey@redhat.com>

	* java/util/regex/PatternSyntaxException.java: Added @since.
	* java/util/regex/Matcher.java (Matcher): Implements MatchResult.
	* java/util/regex/MatchResult.java: New file.

2006-01-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/StringContent.java: Added API docs all over, plus 
	minor reformatting.

2006-01-24  Gary Benson  <gbenson@redhat.com>

	* java/net/SocketPermission.java: Implemented serialization.

2006-01-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/StringContent.java
	(remove): Modified argument check to prevent removal of last character,
	(getChars): Removed null argument check to allow NullPointerException,
	added API docs,
	(checkLocation): Added API docs and white space.

2006-01-23  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insertUpdate): Should only call createFracture with 
	StartTagType. Added check.
	(insertContentTag): Should use the tags length for splitting.
	Also, added a check to determine if current's start and end offset are
	equal to the offset and endOffset. If so, only one leaf element
	should be added. 
	(createFracture): Removed FIXME. This function is complete.
	(split): Added calls to replace. Changed so the child is 
	added immediately to the paragraph. Prevents NPEs.

2006-01-23  Mark Wielaard  <mark@klomp.org>

	* examples/Makefile.am (EXAMPLE_ZIP): Group cd and commands.

2006-01-23  Tom Tromey  <tromey@redhat.com>

	* gnu/java/security/x509/X509Certificate.java (parse):
	Unconditionally read value; for version==1 case when reading
	algorithm ID.

2006-01-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/synth/ColorType.java,
	* javax/swing/plaf/synth/Region.java,
	* javax/swing/plaf/synth/SynthConstants.java,
	* javax/swing/plaf/synth/SynthContext.java
	* javax/swing/plaf/synth/SynthGraphicsUtils.java,
	* javax/swing/plaf/synth/SynthLookAndFeel.java,
	* javax/swing/plaf/synth/SynthPainter.java,
	* javax/swing/plaf/synth/SynthStyle.java,
	* javax/swing/plaf/synth/SynthStyleFactory.java,
	* javax/swing/plaf/synth/package.html:
	New files. Added the public API and framework classes for the
	Synth look and feel.

2006-01-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/Segment.java: API docs all over.

2006-01-23  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(split): Should not use createLeafElement and createBranchElement here.
	We should just instaniate the LeafElements and BranchElements instead 
	to avoid the case where create*Element is overridden.

2006-01-23  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insertFirstContentTag): Moved check outside of if-statement.
	This should be checked before creating the new leaf element.
	(insertFracture): Fixed check to prevent an NPE. The previous
	leaf should only be recreated if it has been created by
	insertFirstContentTag. Also, fixed up code: if the endOffset is
	greater than the offset, then we need to create a temp leaf
	as a place holder. Otherwise, the leaf elements should be
	created normally.

2006-01-23  Gary Benson  <gbenson@redhat.com>

	* java/net/SocketPermission.java: Almost completely rewritten.

2006-01-23  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/text/DefaultStyledDocument.java
	(insertFracture): Set temp leaf's attributes to prevent an NPE.

2006-01-23  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	Formatted ElementBuffer and added new fields.
	(remove): Added check to determine if length is 0.
	(insertFirstContentTag): Initialized firstCreated to the element that is created 
	by the first tag encountered. Removed check in JoinPreviousDirection case, no
	longer needed. In OriginateDirection case, added a loop to remove all old leafs
	that have been recreated.
	(insertContentTag): Cleaned up code. Removed checks that did not do anything.
	(insertFracture): Fixed up code, removed unneeded objects and checks. Added
	FIXME tags to the lines that need to be rewritten.	

2006-01-23  Mark Wielaard  <mark@klomp.org>

	* examples/Makefile.am: Add support for fastjar.

2006-01-23  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/REToken.java(empty): Made Cloneable.
	* gnu/regexp/RETokenOneOf.java(match): RE.java(match):
	Use separate methods matchN and matchP depending on the
	boolean negative.
	(matchN): New method used when negative. Done as before.
	(matchP): New method used when not negative. Each token is
	tried not by itself but by a clone of it.

2006-01-23  Chris Burdess  <dog@gnu.org>

	Fixes bug #25906
	* gnu/xml/dom/DomCharacterData.java: Use a separate empty node list
	  class to avoid getLength method contention.
	* gnu/xml/stream/SAXParser.java: Rethrow correct exception.

2006-01-23  Chris Burdess  <dog@gnu.org>

	* native/jni/java-util/Makefile.am: Include library required
	  explicitly by BSD systems.
	* native/target/generic/target_generic_misc.h: Remove old commented
	  out code.
	* native/target/generic/target_generic_network.h: Fallbacks (to
	  SO_NOSIGPIPE and then 0) for non-portable glibc MSG_NOSIGNAL.

2006-01-22  Tom Tromey  <tromey@redhat.com>

	* native/target/posix/.cvsignore: Added .deps.

2006-01-22  Mark Wielaard  <mark@klomp.org>

	Fixes bug #25832,
	reported by James Damour <James.Damour@corp.request.com>
	* java/awt/Container.java (addImpl): Use empty string as name when
	null constraints for LayoutManager.addLayoutComponent().

2006-01-22  Chris Burdess  <dog@gnu.org>

	Fixes bug #25903
	* gnu/xml/dom/DomDocumentBuilder.java: Default to using file URL
	  representing current directory as base for relative URLs.

2006-01-22  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #25837
	* gnu/regexp/REMatch.java(empty): New boolean indicating
	an empty string matched.
	* gnu/regexp/RE.java(match): Sets empty flag when an empty
	string matched.
	(initialize): Support back reference \10, \11, and so on.
	(parseInt): renamed from getEscapedChar and returns int.
	* gnu/regexp/RETokenRepeated.java(match): Sets empty flag
	when an empty string matched. Fixed a bug of the case where
	an empty string matched. Added special handling of {0}.
	* gnu/regexp/RETokenBackRef.java(match): Sets empty flag
	when an empty string matched. Fixed the case insensitive matching.

2006-01-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalSplitPaneDivider.java
	(paint): Added painting of border if one is installed.

2006-01-21  Roman Kennke  <kennke@aicas.com>

	PR classpath/25843:
	* javax/swing/plaf/basic/BasicBorders.java
	(getSplitPaneDividerBorder): Use new border constructor
	without arguments.
	(SplitPaneDividerBorder.highlight): Removed unneeded field.
	(SplitPaneDividerBorder.shadow): Removed unneeded field.
	(SplitPaneDividerBorder()): Changed constructor to do nothing. The
	colors are fetched dynamically in the paintBorder method.
	(SplitPaneDividerBorder.paintBorder): Fetch colors dynamically from
	the look and feel.
	(SplitPaneDividerBorder.isBorderOpaque): Returns true
	unconditionally.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added default for SplitPaneDivider.border.
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java
	(tmpBorder): Removed unneeded inner class.
	(BasicSplitPaneDivider): Removed setting of border.
	(setSplitPaneUI): Don't add the mouse handler to the splitpane
	itself.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(BasicHorizontalLayoutManager.layoutContainer): Mostly rewritten
	to get behaviour right.
	(BasicHorizontalLayoutManager.distributeExtraSpace): Removed
	implementation. This must be rewritten since the layout now works
	slightly different (basically, it shouldn't modify the sizes[]
	here but instead the dividerLocation.
	(dividerLocation): New field.
	(installDefaults): Initialize border on divider.
	(uninstallDefaults): Only remove background color and border from
	splitPane if they are instances of UIDefaults (== not set by
	application).
	(setDividerLocation): Set the dividerLocation field instead of
	doing stunt acts here.
	(getDividerLocation): Return dividerLocation field.
	(getMinimumDividerLocation): Fixed calculation of minimum location.
	
2006-01-21  Guilhem Lavaux  <guilhem@kaffe.org>

	* m4/acinclude.m4
	(CLASSPATH_WITH_GLIBJ): Add support for fastjar.

	* lib/Makefile.am: Likewise. 

2006-01-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/PopupFactory.java
	(getPopup): If there is no Swing root found in any way, use a
	heavyweight popup. This is useful for mixed Swing/AWT GUIs, or
	for the Swing AWT peers.

2006-01-20  Tom Tromey  <tromey@redhat.com>

	* gnu/java/net/protocol/http/HTTPURLConnection.java (connect):
	Read response body for redirect.

2006-01-20  Chris Burdess  <dog@gnu.org>

	* gnu/java/net/protocol/http/HTTPURLConnection.java: Don't follow
	  redirects on 304.

2006-01-20  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(pad): Removed, not needed.
	(printElements): Likewise.
	(printEdit): Likewise.

2006-01-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultFormatter.java
	(DefaultFormatter): Don't set a value class.

2006-01-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/DefaultCellEditor.java: Commented.

2006-01-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JOptionPane.java
	Added cast to Frame for JDialog constructor.

2006-01-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JWindow.java
	(JWindow(Window)): Fixed to accept null owner argument.
	(JWindow(Window,GraphicsConfiguration)): Fixed to accept null
	owner argument.
	* javax/swing/SwingUtilities.java
	(getOwnerFrame): Owner parameter and return value are fixed to
	be of type Window for compatibity with the above JWindow
	constructor.
	* javax/swing/JDialog.java
	(JDialog): Added cast to Frame to make sure the correct constructor
	is called.
	* javax/swing/JFileChooser.java
	(createDialog): Added cast to Frame for JDialog constructor.

2006-01-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (rowAtPoint): Rewritten.

2006-01-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JWindow.java: Added API docs to the constructors.

2006-01-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java: Commenting method headers.
	(EditorUpdateTimer): Removed.

2006-01-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JDialog.java
	(JDialog()): Call SwingUtilities.getOwnerFrame() with null.
	(JDialog(Frame,String,boolean,GraphicsConfiguration)): Call
	SwingUtilities.getOwnerFrame() with the owner argument.
	* javax/swing/JFileChooser.java
	(showOpenDialog(Component)): Call pack() on the dialog instead of
	setting	a fixed height.
	(showSaveDialog()): Likewise.
	(showDialog()): Likewise.
	(createDialog): Call SwingUtilities.getOwnerFrame() with null.
	* javax/swing/JOptionPane.java: Call SwingUtilities.getOwnerFrame()
	with null.
	* javax/swing/JWindow.java
	(JWindow()): Call SwingUtilities.getOwnerFrame() with null.
	(JWindow(Frame)): Call SwingUtilities.getOwnerFrame() with owner
	argument.
	* javax/swing/SwingUtilities.java
	(getOwnerFrame): Changed to take a owner parameter that is returned
	as owner frame when not null.

2006-01-19  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/swing/SwingFramePeer.java
	(handleMouseEvent): Fixed handling of mouse events.
	(handleMouseMotionEvent): Fixed handling of mouse events.

2006-01-19  Roman Kennke  <kennke@aicas.com>

	* native/target/generic/target_generic_misc.c:
	(targetGenericMisc_formatString): Added missing method.

2006-01-19  Wolfgang Baer  <WBaer@gmx.de>

	* m4/acinclude.m4: Test also for ecj found before exiting configure
	with no javac found error message. 

2006-01-19  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #23212
	* gnu/regexp/RE.java(initialize): Support escaped characters such as
	\0123, \x1B, \u1234.
	(getEscapedChar): New method.
	(CharExpression): New inner class.
	(getCharExpression): New Method.
	* gnu/regexp/RESyntax.java(RE_OCTAL_CHAR, RE_HEX_CHAR,
	RE_UNICODE_CHAR): New syntax bits.

2006-01-19  Roman Kennke  <kennke@aicas.com>

	* native/target/Makefile.am: Fixed so that posix stuff is really
	only built when requested.

2006-01-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (editingStopped, editingCancelled):
	Repaint the edited cell.
	(setValueAt): Do not add the value object to this container.
	(editorTimer, rowBeingEdited, columnBeingEdited, oldCellValue): Removed.
	(editingStopped): Use editingRow, editingColumn and not
	rowBeingEdited, columnBeingEdited. (editValueAt): rewritten.
	(doLayout): Move the editor component, if present, into the new
	location and call repaint(). (moveToCellBeingEdited): new method.
	(TableTextField): new inner class.
	(getDefaultEditor): Instantiante TableTextField, not JTextField.
	(setValueAt): Repaint the changed segment.
	(createDefaultEditors): Implemented.
	(BooleanCellRenderer): Center the checkbox and use the default foreground
	and background colors.   
	* javax/swing/plaf/basic/BasicTableUI.java
	(paintCell): Do not paint the caret here. Do not accept unused parameters.
	(paint): No need to allocate rectangle for each cell.   
	* javax/swing/DefaultCellEditor.java: Rewritten.         
	* examples/gnu/classpath/examples/swing/Demo.java (mkTable):
	Use TableDemo.java table example.
	* examples/gnu/classpath/examples/swing/TableDemo.java: New file.

2006-01-19  Roman Kennke  <kennke@aicas.com>

	* configure.ac: Added/fixed --enable-posix-layer option to enable
	build of posix layer.
	* native/target/Makefile.am: Added build for posix layer.

2006-01-19  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* configure.ac: Set TARGET to Linux per default.
	* native/target/Makefile.am (libtarget_la_LIBADD): Removed
	libtargetos.la.
	* native/target/Linux/Makefile.am: Don't build a libtargetos.la.
	* native/target/generic/Makefile.am (INCLUDES): Renamed to
	AM_CPPFLAGS.
	
2006-01-19  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/security/interfaces/RSAMultiPrimePrivateCrtKey.java: Replaced
	  what looked like proprietary documentation with original or new one.
	* java/security/spec/PSSParameterSpec.java: Likewise.
	* java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java: Likewise.
	* java/security/spec/RSAOtherPrimeInfo.java: Likewise.
	* java/security/AlgorithmParameterGenerator.java: Likewise.
	* java/security/AlgorithmParameters.java: Likewise.
	* java/security/Identity.java: Likewise.
	* java/security/IdentityScope.java: Likewise.
	* java/security/KeyFactory.java: Likewise.
	* java/security/KeyPairGenerator.java: Likewise.
	* java/security/MessageDigest.java: Likewise.
	* java/security/Policy.java: Likewise.
	* java/security/ProtectionDomain.java: Likewise.
	* java/security/Security.java: Likewise.
	* java/security/Signature.java: Likewise.
	* java/security/SignatureSpi.java: Likewise.
	* java/security/SignedObject.java: Likewise.
	* java/security/Signer.java: Likewise.

2006-01-18  Roman Kennke  <kennke@aicas.com>

	* configure.ac: Added --enable-posix-layer option to enable
	build of the posix target layer.

2006-01-18  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/java_net_VMInetAddress.c
	(Java_java_net_VMInetAddress_lookupInaddrAny): Use target native macro
	for INADDR_ANY.

2006-01-18  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-util/java_util_VMTimeZone.c:
	(Java_java_util_VMTimeZone_getSystemTimeZoneId): Rewritten
	to use target native layer.
	(jint_to_charbuf): Removed unneeded helper function.

2006-01-18  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-nio/gnu_java_nio_VMPipe.c:
	Removed unnecessary include.
	* native/jni/java-nio/gnu_java_nio_VMSelector.c:
	Reorganized includes to only include sys/* headers when available.
	* native/jni/java-nio/java_nio_MappedByteBufferImpl.c:
	(get_pagesize): Return 0 when nothing else works.
	(Java_java_nio_MappedByteBufferImpl_unmapImpl):
	Replaced munmap() and strerror() with corresponding target macros.
	(Java_java_nio_MappedByteBufferImpl_isLoadedImpl):
	Replaced strerror() with corresponding target macro.
	(Java_java_nio_MappedByteBufferImpl_forceImpl):
	Replaced strerror() with corresponding target macro.
	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c:
	(Java_java_nio_VMDirectByteBuffer_allocate):
	Replaced malloc() with the corresponding target macro.
	(Java_java_nio_VMDirectByteBuffer_free):
	Replaced free() with the corresponding target macro.
	(Java_java_nio_VMDirectByteBuffer_put__Lgnu_classpath_Pointer_2IB):
	Add index to pointer when assigning the value.
	(Java_java_nio_VMDirectByteBuffer_get__Lgnu_classpath_Pointer_2I_3BII):
	Replaced memcpy with corresponding target macro. Add index when
	doing the memcpy, not when fetching the pointer.
	(Java_java_nio_VMDirectByteBuffer_put__Lgnu_classpath_Pointer_2I_3BII):
	Replaced memcpy with corresponding target macro.
	(Java_java_nio_VMDirectByteBuffer_shiftDown):
	Replaced memmove with the corresponding target macro.

2006-01-17  Tom Tromey  <tromey@redhat.com>

	PR classpath/20198:
	* java/net/URLClassLoader.java (FileURLLoader): Added argument.
	(JarURLLoader): Likewise.
	(addURLImpl): Canonicalize file URLs.

2006-01-17  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* configure.ac: Set TARGET.
	* native/Makefile.am, native/jni/classpath/Makefile.am,
	native/jni/gtk-peer/Makefile.am, native/jni/java-io/Makefile.am,
	native/jni/java-lang/Makefile.am, native/jni/java-net/Makefile.am,
	native/jni/java-nio/Makefile.am, native/jni/midi-dssi/Makefile.am,
	native/jni/xmlj/Makefile.am, native/target/Makefile.am,
	native/target/Linux/Makefile.am,
	native/target/generic/Makefile.am,
	native/target/posix/Makefile.am: Build libclasspath.so with jcl
	and target stuff linked in and link it against lib*.so libraries.

2006-01-17  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/javanet.c:
	(_javanet_connect): Changed type of some local variables to jint.
	Fixed error handling to throw a SocketTimeoutException if the
	connection attempt times out.
	(_javanet_bind): Changed type of some local variables to jint.
	(_javanet_accept): Likewise.
	(_javanet_recvfrom): Likewise.
	(_javanet_sendto): Fixed error handling to throw a
	PortUnreachableException when connection is refused.
	(_javanet_get_option): Changed type of some local variables to jint.
	Implemented SOCKOPT_SO_BROADCAST.
	(_javanet_shutdownInput): Replaced shutdown call with corresponding
	target native macro.
	(_javanet_shutdownOutput): Replaced shutdown call with corresponding
	target native macro.
	* native/jni/java-net/javanet.h:
	Defined SOCKET_TIMEOUT_EXCEPTION, PORT_UNREACHABLE_EXCEPTION and
	SOCKOPT_SO_BROADCAST.

2006-01-17  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insert): Cleaned up loop. No need to make so many calls
	to getAddedElements and getRemovedElements.
	(insertFracture): Removed unneeded array.

2006-01-17  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/text/JTextComponent.java
	(AccessibleJTextComponent): Implemented.
	(getCaretPosition): Implemented.
	(getSelectedText): Implemented.
	(getSelectionStart): Implemented.
	(getSelectionEnd): Implemented.
	(getSelectionEnd): Implemented.
	(getCharCount): Implemented.
	(insertTextAtIndex): Implemented.
	(getTextRange): Implemented.
	(delete): Implemented.
	(cut): Implemented.
	(paste): Implemented.
	(replaceText): Implemented.
	(selectText): Implemented.

2006-01-17  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(pad): New debugging method.
	(printElements): Likewise.
	(printPendingEdits): Likewise.
	(printElement): Likewise.
	(Edit): Improved docs, moved this class to be an inner class of
	ElementBuffer since it only applies within that scope.  Changed added 
	and removed to be Vectors instead of arrays because we need to be able 
	to add to them after construction.
	(ElementBuffer): Updated docs with link to article that helped in this
	classes implementation.
	(ElementBuffer.Edit.getRemovedElements): New method.
	(ElementBuffer.Edit.getAddedElements): Likewise.
	(ElementBuffer.Edit.addRemovedElement): Likewise.
	(ElementBuffer.Edit.addRemovedElements): Likewise.
	(ElementBuffer.Edit.addAddedElement): Likewise.
	(ElementBuffer.Edit.addAddedElements): Likewise.
	(ElementBuffer.Edit<init>): Improved docs, call addRemovedElements and 
	addAddedElements.
	(ElementBuffer.getEditForParagraphAndIndex): New method.
	(ElementBuffer.removeUpdate): Changed type of paragraph to 
	BranchElement.  Corrected style of adding the edit to use the new Edit
	facilities.
	(ElementBuffer.changeUpdate): Changed style of adding the edit to use
	the new Edit facilities.
	(ElementBuffer.split): Likewise.
	(ElementBuffer.insertParagraph): Likewise.
	(ElementBuffer.insertContentTag): Likewise.
	(ElementBuffer.insert): Push all BranchElements until the deepest one, 
	not just the root and the first one. Apply the structural changes to 
	the tree at the same time as updating the DocumentEvent.
	(ElementBuffer.insertUpdate): Fixed docs.  Removed the special case 
	handling of EndTags as the first ElementSpec.  Instead have to handle
	ContentTags as a special case if they are the first ElementSpec and if
	not have to fracture the tree.
	(ElementBuffer.createFracture): New method.  May not be complete yet.
	Added FIXME indicating what may remain to be done.
	(ElementBuffer.insertFirstContentTag): New method.
	(ElementBuffer.insertFracture): Added FIXME explaining what remains to
	be done.  Changed the adding of edits to use the new Edit facilities.
	Removed the adding of edits for Elements that weren't in the tree prior
	to the insertion.
	(insertUpdate): Removed incorrect condition for setting a StartTag's
	direction to JoinNextDirection.
	* javax/swing/text/StyleContent.java: 
	(SmallAttributeSet.toString): Fixed an off-by-one error in the loop 
	that was causing an ArrayOutOfBoundsException.

2006-01-17  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c:
	(Java_gnu_java_nio_channels_FileChannelImpl_init): Improved
	exception messages a little.
	(Java_gnu_java_nio_channels_FileChannelImpl_open): Provided
	alternative implementation for systems without filesystems.
	Replaced snprintf with the corresponding target native macro.
	(Java_gnu_java_nio_channels_FileChannelImpl_implCloseChannel):
	Only do something when we have a filesystem.
	(Java_gnu_java_nio_channels_FileChannelImpl_available): Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_size): Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_implPosition): Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_seek):
	Only do something when we have a filesystem.
	(Java_gnu_java_nio_channels_FileChannelImpl_implTruncate):
	Only do something when we have a filesystem.
	(Java_gnu_java_nio_channels_FileChannelImpl_mapImpl): Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_read__):
	Replaced ssize_t variables with jint. Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_read___3BII):
	Replaced ssize_t variables with jint. Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_write__I):
	Replaced ssize_t variables with jint. Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_force):
	Only do something when we have a filesystem.
	(Java_gnu_java_nio_channels_FileChannelImpl_write___3BII):
	Replaced ssize_t variables with jint. Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_lock): Reimplemented
	to use the corresponding target native macro.
	(Java_gnu_java_nio_channels_FileChannelImpl_unlock): Reimplemented
	to use the corresponding target native macro.

2006-01-17  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultTextUI.java:
	Added deprecated tag.
	* javax/swing/text/JTextComponent.java
	(AccessibleJTextComponent): Fixed API doc and
	partiall9 implemented.
	(getCaretPosition): Fixed API doc and implemented.
	(getSelectedText): Fixed API doc.
	(getSelectionStart): Likewise.
	(getSelectionEnd): Likewise.
	(caretUpdate): Fixed API doc and
	partially implemented.
	(getAccessibleStateSet): Likewise.
	(getAccessibleRole): Fixed API doc and implemented.
	(getAccessibleEditableText): Implemented.
	(getAccessibleText): Fixed API doc and implemented.
	(insertUpdate): Fixed API doc.
	(changedUpdate): Likewise.
	(getIndexAtPoint): Likewise.
	(getRootEditorRect): Removed.
	(getCharacterBounds): Fixed API doc.
	(getCharCount): Likewise.
	(getCharacterAttribute): Likewise.
	(getAtIndex): Likewise.
	(getAfterIndex): Likewise.
	(getBeforeIndex): Likewise.
	(getAccessibleActionCount): Added function stub.
	(getAccessibleActionDescription): Added function,
	partially implemented.
	(doAccessibleAction): Added function stub.
	(setTextContents): Likewise.
	(insertTextAtIndex): Likewise.
	(delete): Likewise.
	(cut): Likewise.
	(paste): Likewise.
	(replaceText): Likewise.
	(selectText): Likewise.
	(setAttributes): Likewise.
	(getAccessibleContext): Implemented.

2006-01-17  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #25817
	* gnu/regexp/RETokenRange.java(constructor):
	Keep lo and hi as they are.
	(match): Changed the case insensitive comparison.

2006-01-17  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/RETokenChar.java(chain):
	Do not concatenate tokens whose insens flags are diffent.

2006-01-17  Roman Kennke  <kennke@aicas.com>

	* native/target/generic/target_generic_network.c:
	(targetGenericNetwork_receive): Fixed signature to match the
	corresponding .h file.
	(targetGenericNetwork_receiveWithAddressPort): Fixed signature
	to match the corresponding .h file.

2006-01-17  Roman Kennke  <kennke@aicas.com>

	* native/jni/classpath/jcl.c:
	(JCL_malloc): Replaced calls to malloc with the corresponding
	target layer macro.
	(JCL_free): Replaced calls to free with the corresponding
	target layer macro.
	* native/jni/classpath/native_state.c:
	(cp_gtk_init_state_table_with_size): Replaced calls to malloc and
	calloc with the corresponding target layer macro.
	(remove_node): Replaced calls to free with the corresponding
	target layer macro.
	(add_node): Replaced calls to malloc with the corresponding
	target layer macro.

2006-01-17  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-io/java_io_VMObjectStreamClass.c:
	(getFieldReference): Use MALLOC/FREE macros for portability instead
	of direct call to malloc() and free().

2006-01-17  Roman Kennke  <kennke@aicas.com>

	* native/jni/classpath/jcl.c: Added missing imports.
	(JCL_realloc): Fixed signature to include oldsize. This is needed
	for some targets. Make this function use the MEMORY_REALLOC macro
	for portability.
	* native/jni/classpath/jcl.h
	(JCL_realloc): Adjusted signature.
	* native/jni/java-io/java_io_VMFile.c:
	(Java_java_io_VMFile_create): Use target layer macro for handling
	errno, for portability.
	(Java_java_io_VMFile_length): Release filename string in error cases
	before returning.
	(Java_java_io_VMFile_list): Initialize filename variable. Use new
	version of JCL_realloc.
	* native/jni/java-net/java_net_VMInetAddress.c:
	(Java_java_net_VMInetAddress_getHostByName): Use renamed macro
	TARGET_NATIVE_NETWORK_GET_HOSTADDRESS_BY_NAME.
	* native/jni/java-net/javanet.c:
	(_javanet_bind): Make errorstr variable const to avoid compiler
	warning.
	(_javanet_set_option): Fixed typo.
	(_javanet_get_option): Fixed typo.
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c:
	(Java_gnu_java_nio_channels_FileChannelImpl_open): Made
	error_string variable const to avoid compiler warning.
	* native/target/generic/target_generic_file.h:
	Replaced // comments with /* */ comments to avoid compiler warnings.
	Added some spaces to make code better readable.
	* native/target/generic/target_generic_memory.h:
	Replaced // comments with /* */ comments to avoid compiler warnings.
	* native/target/generic/target_generic_misc.c:
	Removed unused TARGET_NATIVE_MISC_FORMAT_STRING macro. This caused
	compiler warnings due to use of varargs.
	* native/target/generic/target_generic_misc.h:
	Removed unused TARGET_NATIVE_MISC_FORMAT_STRING macro. This caused
	compiler warnings due to use of varargs.
	* native/target/generic/target_generic_network.h:
	Replaced // comments with /* */ comments to avoid compiler warnings.
	(targetGenericNetwork_receive): Fixed signature to use signed chars
	for buffer parameter to avoid warning when passing a jbyte to the
	function.

2006-01-17  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/StyleConstants.java
	(getAlignment): Removed isDefined() check, so that resolving parent is 
	used for lookup,
	(getBackground): Likewise, plus changed default value to Color.BLACK,
	(getBidiLevel): Removed isDefined() check,
	(getComponent): Likewise,
	(getFirstLineIndent): Likewise,
	(getFontFamily): Likewise,
	(getFontSize): Likewise,
	(getForeground): Likewise,
	(getIcon): Likewise,
	(getLeftIndent): Likewise,
	(getLineSpacing): Likewise,
	(getRightIndent): Likewise,
	(getSpaceAbove): Likewise,
	(getSpaceBelow): Likewise,
	(getTabSet): Likewise,
	(isBold): Likewise,
	(isItalic): Likewise,
	(isStrikeThrough): Likewise,
	(isSubscript): Likewise,
	(isSuperscript): Likewise,
	(isUnderline): Likewise.

2006-01-17  Gary Benson  <gbenson@redhat.com>

	* java/lang/System.java (setSecurityManager): Catch
	ClassNotFoundException not Throwable.

2006-01-16  Anthony Green  <green@redhat.com>

	PR classpath/25803
	* gnu/java/net/protocol/http/Request.java
	  (createResponseBodyStream): Remove Content-Encoding for
	  compressed streams.

2006-01-16  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/XMLParser.java,
	  gnu/xml/stream/XMLStreamWriterImpl.java: Thoroughly check
	  XMLStreamWriter arguments for conformance to the XML specifications.
	* gnu/xml/transform/Stylesheet.java,
	  gnu/xml/transform/Template.java,
	  gnu/xml/transform/TransformerImpl.java,
	  gnu/xml/xpath/LangFunction.java,
	  gnu/xml/xpath/Selector.java: better handling of template priorities;
	  fix indents when pretty-printing; recursive tests for xml:lang.
	* gnu/xml/util/XHTMLWriter.java,
	  gnu/xml/util/XMLWriter.java: Deprecate old serializer classes.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* native/target/MinGW/.cvsignore: New file.
	* native/target/RTEMS/.cvsignore: New file.
	* native/target/SunOS/.cvsignore: New file.
	* native/target/embOS/.cvsignore: New file.
	* native/target/posix/.cvsignore: New file.

2006-01-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/StyleConstants.java: Updated API docs all over.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* configure.ac: Include new target native directories in build.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* native/target/generic/target_generic_file.h: Added missing
	include.
	* native/target/generic/target_generic_network.c: Fixed several
	typos and includes.
	* native/target/generic/target_generic_network.h: Likewise.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* native/target/Makefile.am: Adjusted SUBDIRS and DIST_SUBDIRS
	to include the new targets.
	* native/target/posix/Makefile.am: Fixed filenames.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* native/target/Makefile.am: Include new targets.
	* native/target/Linux/Makefile.am: Include new memory layer.
	* native/target/MinGW/Makefile.am: New file. Includes MinGW in dist.
	* native/target/RTEMS/Makefile.am: New file. Includes RTEMS in dist.
	* native/target/SunOS/Makefile.am: New file. Includes SunOS in dist.
	* native/target/embOS/Makefile.am: New file. Includes embOS in dist.
	* native/target/generic/Makefile.am: Include new memory and math
	layer.
	* native/target/posix/Makefile.am: New file. Includes posix in dist.

2006-01-16  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #22884
	* gnu/regexp/RE.java(initialize): Parse embedded flags.
	* gnu/regexp/RESyntax.java(RE_EMBEDDED_FLAGS): New syntax bit.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* native/target/generic/target_generic_network.c: Fixed typo.
	* native/target/generic/target_generic_network.h: Fixed typo.

2006-01-16  Nicolas Geoffray  <nicolas.geoffray@menlina.com>

	* doc/vmintegration.texinfo: Updated subsection of the
	java.lang.InstrumentationImpl documentation.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* native/target/RTEMS/target_native.h,
	* native/target/RTEMS/target_native_file.h,
	* native/target/RTEMS/target_native_io.h,
	* native/target/RTEMS/target_native_math.h,
	* native/target/RTEMS/target_native_memory.h,
	* native/target/RTEMS/target_native_misc.h,
	* native/target/RTEMS/target_native_network.h:
	New files. Implement the target native layer for the RTEMS platform.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* native/target/SunOS/target_native.h,
	* native/target/SunOS/target_native_file.h,
	* native/target/SunOS/target_native_io.h,
	* native/target/SunOS/target_native_math.h,
	* native/target/SunOS/target_native_memory.h,
	* native/target/SunOS/target_native_misc.h,
	* native/target/SunOS/target_native_network.h:
	New files. Implement the target native layer for the SunOS platform.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* native/target/MinGW/target_native.h,
	* native/target/MinGW/target_native_file.h,
	* native/target/MinGW/target_native_io.h,
	* native/target/MinGW/target_native_math.h,
	* native/target/MinGW/target_native_memory.h,
	* native/target/MinGW/target_native_misc.h,
	* native/target/MinGW/target_native_network.h:
	New files. Implement the target native layer for the MinGW
	platform.

2006-01-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 25770
	* javax/swing/DefaultCellEditor.java
	(delegate): Assign new instance immediately.
	(DefaultCellEditor(JTextField textfield)): Require 2 clicks.
	(getTableCellEditorComponent): Rewritten.
	(prepareAsJTextField):New method (add listener only once).
	* javax/swing/JTable.java
	(editingCanceled): Rewritten.
	(editingStopped ): Rewritten.
	(rowAtPoint): Mind row margin.
	(getCellRect): Mind row margin.
	(getDefaultEditor): Removing JTextComponent border.
	(editCellAt): Rewritten.
	* javax/swing/plaf/basic/BasicTableUI.java (MouseInputHandler):
	Activate editing mode by the mouse clicks.
	(getMaximumSize): Mind row margin.
	(getPreferredSize): Mind row margin.
	(TableAction): Added 'stop editing' command. 

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* jni/java-io/java_io_VMFile.c
	(Java_java_io_VMFile_list): Use new 4 argument version of
	TARGET_NATIVE_FILE_READ_DIR macro.
	* target/Linux/target_native_io.h: Fixed comment at #endif.
	* target/Linux/target_native_memory.h: New file. Contains
	portability macros for memory operations.
	* target/generic/target_generic.c: New file. Contains some functions
	for portability.
	* target/generic/target_generic.h: Use posix target and shorter macro
	names if CP_NEW is set. 
	* target/generic/target_generic_file.h: Use posix target and shorter
	macro names if CP_NEW is set.
	(TARGET_NATIVE_FILE_READ_DIR): New parameter for maxNameLength.
	* target/generic/target_generic_io.c: New file. Contains some
	functions for IO portability.
	* target/generic/target_generic_io.h: Use posix target and shorter
	macro names if CP_NEW is set.
	* target/generic/target_generic_misc.c: New file. Contains some
	functions for miscallaneaous portability issues.
	* target/generic/target_generic_misc.h: Use posix target and shorter
	macro names if CP_NEW is set.
	* target/generic/target_generic_network.c: New file. Contains some
	functions for networking portability.
	* target/generic/target_generic_network.h: Use posix target and
	shorter	macro names if CP_NEW is set.
	* target/posix/Makefile.am,
	* target/posix/target_posix.c,
	* target/posix/target_posix.h,
	* target/posix/target_posix_file.c,
	* target/posix/target_posix_file.h,
	* target/posix/target_posix_io.c,
	* target/posix/target_posix_io.h,
	* target/posix/target_posix_math.c,
	* target/posix/target_posix_math.h,
	* target/posix/target_posix_memory.c,
	* target/posix/target_posix_memory.h,
	* target/posix/target_posix_misc.c,
	* target/posix/target_posix_misc.h,
	* target/posix/target_posix_network.c,
	* target/posix/target_posix_network.h:
	New files. This implements the target native layer macros for
	Posix-like systems.

2006-01-16  Gary Benson  <gbenson@redhat.com>

	* java/net/SocketPermission.java (implies): Fix action checks.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* native/target/generic/target_generic_math_float.h: Removed. This
	file has been replaced by target_generic_math.h.
	* native/target/generic/target_generic_math_int.h: Removed. This
	file has been replaced by target_generic_math.h.
	* native/target/generic/target_generic_math.h: New file. Replaces
	the old _int and _float versions.
	* native/target/Linux/target_native_math_float.h: Removed. This
	file has been replaced by target_native_math.h.
	* native/target/Linux/target_native_math_int.h: Removed. This
	file has been replaced by target_native_math.h.
	* native/target/Linux/target_native_math.h: New file. Replaces
	the old _int and _float versions.
	* native/target/Linux/Makefile.am: Adjusted for the changed
	filenames.
	* native/jni/java-io/java_io_VMFile.c: Include target_native_math.h
	instead of target_native_math_int.h.
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c:
	Likewise.
	* native/target/generic/target_generic_file.h: Likewise.

2006-01-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/MutableAttributeSet.java: Updated API docs all over.

2006-01-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/SimpleAttributeSet.java
	(SimpleAttributeSet()): Initialise storage directly,
	(SimpleAttributeSet(AttributeSet)): Removed null check and documented
	NullPointerException,
	(containsAttribute): If key is found locally, don't check resolving
	parent if the value doesn't match,
	(getAttribute): Removed redundant instanceof and cast.

2006-01-16  Gary Benson  <gbenson@redhat.com>

	* java/lang/System.java (setSecurityManager): Ensure policy
	files are loaded before a security manager is put in place.

2006-01-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/SimpleAttributeSet.java: Updated API docs all over.

2006-01-16  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/standard/MediaSize.java: 
	(static_initializer): Added comment.
	(MediaSize): Added javadoc to mention cache registration.
	(MediaSize): Likewise.
	(MediaSize): Likewise.
	(MediaSize): Likewise.

2006-01-16  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR classpath/25202
	* gnu/javax/security/auth/login/ConfigFileTokenizer.java: New class.
	* gnu/javax/security/auth/login/ConfigFileParser.java: New class.
	* gnu/javax/security/auth/login/GnuConfiguration.java: New class.
	* javax/security/auth/login/AppConfigurationEntry.java: Updated
	  copyright year.
	  (toString): Added method implementation.
	  (LoginModuleControlFlag.toString): Removed class name from result.
	* javax/security/auth/login/Configuration.java: Updated copyright year.
	  (getConfig(): replaced calls to NullConfiguration with
	  GnuConfiguration.

2006-01-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/table/DefaultTableCellRenderer.java 
	(getTableCellRendererComponent): Render null as the empty cell.

2006-01-14  Anthony Green  <green@redhat.com>

        * java/net/ServerSocket.java (accept): Remove bogus
        security check.
	(implAccept): Add FIXME comment.

2006-01-14  Wolfgang Baer  <WBaer@gmx.de>

	Fixes bug #25387
	* javax/print/Doc.java: Added and enhanced documentation.
	* javax/print/SimpleDoc.java: New file.	

2006-01-14  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/standard/MediaSize.java: 
	(Other.TABLOID): New MediaSize added in 1.5

2006-01-14  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java: Ensure that parser is reset
	  correctly when I/O and runtime exceptions occur during parsing.

2006-01-13  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/swing/SwingButtonPeer.java,
	* gnu/java/awt/peer/swing/SwingCanvasPeer.java,
	* gnu/java/awt/peer/swing/SwingComponent.java,
	* gnu/java/awt/peer/swing/SwingComponentPeer.java,
	* gnu/java/awt/peer/swing/SwingContainerPeer.java,
	* gnu/java/awt/peer/swing/SwingFramePeer.java,
	* gnu/java/awt/peer/swing/SwingLabelPeer.java,
	* gnu/java/awt/peer/swing/SwingMenuBarPeer.java,
	* gnu/java/awt/peer/swing/SwingMenuItemPeer.java,
	* gnu/java/awt/peer/swing/SwingMenuPeer.java,
	* gnu/java/awt/peer/swing/SwingPanelPeer.java,
	* gnu/java/awt/peer/swing/SwingTextFieldPeer.java,
	* gnu/java/awt/peer/swing/SwingToolkit.java,
	* gnu/java/awt/peer/swing/SwingWindowPeer.java,
	* gnu/java/awt/peer/swing/package.html:
	New files. Implemented some basic AWT peers based on Swing.

2006-01-13  Roman Kennke  <kennke@aicas.com>

	* java/awt/peer/ComponentPeer.java: Added API docs all over.

2006-01-13  Roman Kennke  <kennke@aicas.com>

	* java/awt/MenuComponent.java: Reformatted to better match our
	coding style.

2006-01-13  Roman Kennke  <kennke@aicas.com>

	* java/awt/Frame.java: Reformatted to better match our
	coding style.

2006-01-13  Roman Kennke  <kennke@aicas.com>

	* java/awt/MenuBar.java
	(accessibleContext): Removed unnecessary field. This is already
	defined in MenuComponent.
	(setHelpMenu): Renamed the peer variable to myPeer because it was
	hiding a field of MenuComponent.
	(addNotify): Removed unnecessary cast.

2006-01-13  Roman Kennke  <kennke@aicas.com>

	* java/awt/MenuBar.java: Reformatted to better match our
	coding style.

2006-01-13  Roman Kennke  <kennke@aicas.com>

	* java/awt/MenuBar.java
	(frame): New field.
	(removeNotify): Clear frame field when beeing removed from the
	frame.
	* java/awt/Frame.java
	(setMenuBar): Store a reference of the frame in the MenuBar.
	* java/awt/MenuComponent.java
	(postEvent): Implemented to forward the call to the parent until
	a parent can handle the event.
	(dispatchEvent): Moved handling of old style events from
	dispatchEventImpl() to here.
	(dispatchEventImpl): Moved handling of old style events to
	dispatchEvent().

2006-01-13  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(dispatchEvent): Moved handling of old style events from
	dispatchEventImpl() to this method.
	(translateEvent): Removed unnecessary cast.
	(dispatchEventImpl): Moved handling of old style events to
	dispatchEvent().
	
2006-01-13  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(createDefaultRoot): Removed FIXME.
	(setLogicalStyle): Added fireUndoableEditUpdate call and 
	removed FIXME.

2006-01-13  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(Edit): New inner class.
	(changeUpdate): Changed addEdit call to add a new
	instance of Edit to the edits Vector, so addEdits can
	be done later.
	(split): Likewise.
	(insertParagraph): Likewise.
	(insertFracture): Likewise.
	(insertContentTag): Likewise.
	(insert): Added loop to go through edits Vector and perform
	addEdit on each object.

2006-01-13  Chris Burdess  <dog@gnu.org>

	* gnu/xml/transform/AbstractNumberNode.java,
	  gnu/xml/transform/ApplyImportsNode.java,
	  gnu/xml/transform/ApplyTemplatesNode.java,
	  gnu/xml/transform/AttributeNode.java,
	  gnu/xml/transform/CallTemplateNode.java,
	  gnu/xml/transform/ChooseNode.java,
	  gnu/xml/transform/CommentNode.java,
	  gnu/xml/transform/CopyNode.java,
	  gnu/xml/transform/CopyOfNode.java,
	  gnu/xml/transform/DocumentFunction.java,
	  gnu/xml/transform/ElementNode.java,
	  gnu/xml/transform/ForEachNode.java,
	  gnu/xml/transform/IfNode.java,
	  gnu/xml/transform/LiteralNode.java,
	  gnu/xml/transform/MessageNode.java,
	  gnu/xml/transform/OtherwiseNode.java,
	  gnu/xml/transform/ParameterNode.java,
	  gnu/xml/transform/ProcessingInstructionNode.java,
	  gnu/xml/transform/Stylesheet.java,
	  gnu/xml/transform/Template.java,
	  gnu/xml/transform/TemplateNode.java,
	  gnu/xml/transform/TextNode.java,
	  gnu/xml/transform/TransformerImpl.java,
	  gnu/xml/transform/ValueOfNode.java,
	  gnu/xml/transform/WhenNode.java,
	  gnu/xml/xpath/NodeTypeTest.java,
	  gnu/xml/xpath/Selector.java: simplified debugging output; ignore
	  with-param parameters when template does not define parameters; apply
	  conflict resolution for templates; strip whitespace on documents
	  retrieved via document() function; allow node() to match document
	  nodes.

2006-01-13  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/announce/20060113.wml: New file.
	* doc/www.gnu.org/newsitems.txt: Add 0.20 release announcement.
	* doc/www.gnu.org/downloads/downloads.wml: Add 0.20.

2006-01-13  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	Removed unused fields.
	(insert): Removed unused fields.
	(endEdit): Removed, not needed.
	(insertUpdate): Removed call to endEdit.
	(prepareContentInsertion): Removed, not needed.
	(insertContentTag): Removed call to prepareContentInsertion.
	(printElements): Removed, not needed.
	(attributeSetsAreSame): Removed, not needed.

2006-01-13  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Set version to 0.20.
	* NEWS: Add entries for all the new work done.

2006-01-13  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/DefaultCaret.java: Chain all AssertionErrors.

2006-01-13  Mark Wielaard  <mark@klomp.org>

	* java/util/regex/Pattern.java (Pattern): Chain REException.

2006-01-13  Chris Burdess  <dog@gnu.org>

	* gnu/xml/xpath/NameTest.java: Removed debugging output.

2006-01-13  Jeroen Frijters  <jeroen@frijters.net>

	* java/security/Security.java
	(getProperty): Added hack to skip security check when trusted
	code is direct caller.

2006-01-13  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/PrintStream.java
	(line_separator, PrintStream(OutputStream,boolean)): Use
	SystemProperties.

2006-01-13  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/nio/charset/Provider.java: Added comment about its
	special relation with CharsetProvider.
	(static): Removed.
	* gnu/java/nio/charset/iconv/IconvProvider.java: Added comment about
	its special relation with CharsetProvider.
	(static): Removed.
	* java/nio/charset/spi/CharsetProvider.java
	(CharsetProvider): Add special case to skip security check for
	built in providers.

2006-01-13  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JMenuItem.java (JMenuItem(Action)): Check whether
	name, accel, mnemonic and command are defined before setting.

2006-01-12  Mark Wielaard  <mark@klomp.org>

	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(FileRenderer.getListCellRendererComponent): Set empty name and null
	icon when File is null.

2006-01-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/server/UnicastRef.java (newCall):
	Throw ConnectException after catching IOException.

2006-01-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insertUpdate): Removed unneeded check.

2006-01-12  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(ElementBuffer.insertContentTag): If the direction is JoinNextDirection
	and we haven't come immediately after a fracture, adjust the Element
	offsets.  Added comment explaining the situation.
	(insert): Return early if no ElementSpecs passed in.  Removed redundant
	call to insertUpdate.  Fired the UndoableEditUpdate.

2006-01-12  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #22802
	* gnu/regexp/RE.java(initialize): Fixed the parsing of
	character classes within a subexpression.

2006-12-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insertUpdate): Added check to check if attribute set is 
	empty.
	(insertUpdate): Added check to determine if last character
	is a newline. If it is, we should not be fracturing.
	(insert): Added check to determine if attribute set is empty.
	If it is, insertUpdate should not be called.

2006-12-12  Guilhem Lavaux  <guilhem@kaffe.org>

	* configure.ac: Check for isnan.

	* native/fdlibm/fdlibm.h: If we have a isnan function then do not
	define the macro.

2006-01-12  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/XMLParser.java: Corrected the handling of some XML
	  1.1 character ranges.

2006-01-12  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/TransferHandler.java:
	(TransferAction<init>): Call super constructor.  Fixes Mauve regression
	gnu/testlet/javax/swing/JTextField/CopyPaste.

2006-01-12  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* resource/Makefile.am: Install 
	logging.properties into $(prefix)/lib.
	* resource/Makefile.am (securitydir): Changed to 
	$(prefix)/lib/security.

2006-01-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTextField.java
	(createDefaultModel): Moved installation of the filterNewlines
	property to setDocument().
	(setDocument): New method. Installs the filterNewlines property
	on the document.

2006-01-12  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomNode.java,
	  gnu/xml/transform/ElementAvailableFunction.java: Removed debugging
	  output.
	* gnu/xml/xpath/NameTest.java,
	  gnu/xml/xpath/NamespaceTest.java,
	  gnu/xml/xpath/Selector.java: Fix regression for namespace axis
	  navigation.
	* gnu/xml/transform/MessageNode.java: Use standard logging system
	  for outputting messages.

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

	* java/net/InetAddress.java (DEFAULT_CACHE_SIZE): Removed.
	(DEFAULT_CACHE_PERIOD, DEFAULT_CACHE_PURGE_PCT): Likewise.
	(cache_size, cache_period, cache_purge_pct, cache): Likewise.
	(static initializer): Removed cache code.
	(checkCacheFor, addToCache): Removed.
	(getAllByName): Removed cache code.
	(lookup_time): Removed.
	(InetAddress): Updated.

2006-01-12  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomDocument.java,
	  gnu/xml/dom/DomElement.java,
	  gnu/xml/dom/DomNode.java,
	  gnu/xml/stream/XMLParser.java,
	  gnu/xml/transform/Bindings.java,
	  gnu/xml/transform/ElementAvailableFunction.java,
	  gnu/xml/transform/ElementNode.java,
	  gnu/xml/transform/FunctionAvailableFunction.java,
	  gnu/xml/transform/NamespaceProxy.java,
	  gnu/xml/transform/StreamSerializer.java,
	  gnu/xml/transform/Stylesheet.java,
	  gnu/xml/transform/TransformerImpl.java,
	  gnu/xml/xpath/Selector.java: Implement isEqualNode correctly for
	  document and element nodes; correct coalescing semantics when parsing;
	  attribute-sets can only refer to top-level variables and parameters;
	  fix namespace retrieval during element-available and
	  function-available functions; implement xsl:fallback for extension
	  elements; tokenize whitespace correctly during whitespace stripping;
	  correct following and previous node axes selectors.

2006-01-12  Roman Kennke  <kennke@aicas.com>

	* java/util/Hashtable.java
	(KeyEnumerator.nextElement): Added null check to avoid NPE.
	(ValueEnumerator.nextElement): Added null check to avoid NPE.

2006-01-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/GapContent.java
	(UndoInsertString): Changed name of class to InsertUndo to match the JDK.

2006-01-12  Mark Wielaard  <mark@klomp.org>

	* vm/reference/gnu/java/net/VMPlainSocketImpl.java (connect):
	Throw UnknowHostException when name could not be resolved.

2006-01-12  Jeroen Frijters  <jeroen@frijters.net>

	* java/net/URL.java
	(static, getURLStreamHandler): Use SystemProperties.

2006-01-12  Mark Wielaard  <mark@klomp.org>

	* vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java (receive):
	Use packet.getLength().
	* native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c
	(nativeReceive): Check whether the receiver wants zero bytes.

2006-01-12  Mark Wielaard  <mark@klomp.org>

	* native/jni/java-net/javanet.c (_javanet_recvfrom): Return -1 when
	other side orderly closed connection.
	* vm/reference/gnu/java/net/VMPlainSocketImpl.java
	(read(PlainSocketImpl)): Mask byte to return unsigned int. Return -1
	when end of stream reached.

2006-01-12  Mark Wielaard  <mark@klomp.org>

	* native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c:
	Remove asserts.
	* native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c: Likewise.
	* native/jni/java-net/java_net_VMInetAddress.c: Likewise.
	* native/jni/java-net/java_net_VMNetworkInterface.c: Likewise.
	* native/jni/java-net/javanet.c: Likewise.

2006-01-12  Mark Wielaard  <mark@klomp.org>

	* native/fdlibm/mprec.c (Balloc): Disable assert to workaround
	PR classpath/23863.

2006-01-11  Chris Burdess  <dog@gnu.org>

	* gnu/xml/transform/AttributeNode.java,
	  gnu/xml/transform/ElementNode.java,
	  gnu/xml/transform/LiteralNode.java,
	  gnu/xml/transform/StreamSerializer.java,
	  gnu/xml/transform/StrippingInstruction.java,
	  gnu/xml/transform/Stylesheet.java,
	  gnu/xml/transform/TransformerImpl.java,
	  gnu/xml/transform/ValueOfNode.java,
	  gnu/xml/xpath/Expr.java,
	  gnu/xml/xpath/LocalNameFunction.java,
	  gnu/xml/xpath/NameFunction.java,
	  gnu/xml/xpath/NameTest.java,
	  gnu/xml/xpath/NamespaceUriFunction.java,
	  gnu/xml/xpath/NodeTypeTest.java,
	  gnu/xml/xpath/SubstringFunction.java,
	  javax/xml/namespace/QName.java: don't determine element namespace
	  from namespace aliases when specified; better namespace handling
	  when serializing elements; don't create HTML meta element unless
	  head element exists; correct encoding of CDATA sections containing
	  ']]>'; encode HTML character entity references; use ISO-Latin-1 as
	  default encoding for HTML output; rewrite of XSLT
	  strip-space/preserve-space handling; correct doctype-public and
	  doctype-system output attributes; insert generated doctype before
	  document element; fixed result tree whitespace stripping
	  algorithm; fixed semantics of XPath name, local-name, and
	  namespace-uri functions; name tests handle XML/XMLNS namespaces
	  correctly; fixed semantics of processing-instruction node test.
	* gnu/xml/transform/TransformerFactoryImpl.java: Add main method to
	  aid debugging.

2006-01-11  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insertFracture): Added calls to addEdit for each time a structure 
	is changed. addEdit is called on the newBranch, previous, and parent
	structures.

2006-01-11  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(ElementBuffer.insertContentTag): Don't adjust the structure here.  
	This will have been taken care of in insertFracture.  Added a comment
	explaining that we need to add edits to the DocumentEvent and that
	this may be the place to do it.

2006-01-11  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(ElementBuffer.insertUpdate): Properly recreate Elements if the first
	tag is an end tag. Avoid NPE by pushing the proper Element on to the 
	elementStack when there is a start tag with JoinNextDirection.

2006-01-11  Roman Kennke  <kennke@aicas.com>

	Reported by: Fridjof Siebert <siebert@aicas.com>
	* java/util/Hashtable.java
	(KEYS): Removed unneeded field.
	(VALUES): Removed unneeded field.
	(ENTRIES): Removed unneeded field.
	(keys): Return a KeyEnumerator instance.
	(elements): Returns a ValueEnumerator instance.
	(toString): Use an EntryIterator instance.
	(keySet): Return a KeyIterator instance.
	(values): Return a ValueIterator instance.
	(entrySet): Return an EntryIterator instance.
	(hashCode): Use EntryIterator instance.
	(rehash): Changed this loop to avoid redundant reads and make
	it obvious that null checking is not needed.
	(writeObject): Use EntryIterator instance.
	(HashIterator): Removed class.
	(Enumerator): Removed class.
	(EntryIterator): New class.
	(KeyIterator): New class.
	(ValueIterator): New class.
	(EntryEnumerator): New class.
	(KeyEnumerator): New class.
	(ValueEnumerator): New class.

2006-01-11  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(toString): Shouldn't append the '>' character here.
	(createDefaultRoot): Should not set the resolve parent. This
	causes problems when comparing attribute sets.

2006-01-10  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(ElementBuffer.insertUpdate): Rewritten to properly handle start and
	end tags.
	(ElementBuffer.insertFracture): New method.
	(ElementBuffer.insertContentTag): Removed unnecessary case for 
	JoinFractureDirection - this only applies to start tags, not content
	tags.
	(insertUpdate): Corrected conditions for setting direction to 
	JoinNextDirection.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* Makefile.am (EXTRA_DIST): Added ChangeLog-2004.
	* ChangeLog-2005: New File.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c
	(get): Release the array with the correct pointer.
	(put): Release the array with the correct pointer. Copy the array
	around _before_ releasing it.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ViewportLayout.java
	(layoutContainer): Fixed condition, to avoid ClasscastException.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicSplitPaneDivider.java
	(MouseHandler.mousePressed): Fixed indendation.
	(MouseHandler.mouseDragged): Fixed indendation.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(playSound): Added @since 1.4 to the API docs.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(maybeUpdateLayoutState): Also update the layout state, if the
	list has been invalidated since the last update.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/ComponentUI.java
	(update): Fixed indendation.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ViewportLayout.java
	(layoutContainer): Fixed condition, so that Scrollable components
	are always forced to have to Viewport size, when they
	return true for getScrollableTracksViewportHeight() and ..Width().

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(validateInvalidComponents): Fixed condition to avoid NPE.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JViewport.java:
	(static_initializer): Removed unused variable myScrollMode.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java:
	Cleared API docs a little.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* java/util/StringTokenizer.java
	(StringTokenizer(String, String, boolean)):
	Don't trigger NPE here for conformance with the spec.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* java/util/ArrayList.java
	(DEFAULT_CAPACITY): Changed default capacity to 10, as specified.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(GdkGraphics2D(GdkGraphics2D)): Added null check for the bg
	field to avoid NPE.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/javanet.c
	(_javanet_shutdownOutput): Replaced strerror() with
	TARGET_NATIVE_LAST_ERROR_STRING() for portability.
	(_javanet_shutdownInput): Replaced strerror() with
	TARGET_NATIVE_LAST_ERROR_STRING() for portability.

2006-01-10  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/EventSetDescriptor.java: Reformatted and
	fixed API docs.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* java/lang/SecurityManager.java
	Fully qualified AWT class references in API docs.

2006-01-10  Robert Schuster  <robertschuster@fsfe.org>

        * java/beans/EventSetDescriptor.java:
        (getGetListenerMethod): New method.

2006-01-10  Mark Wielaard  <mark@klomp.org>

	* lib/Makefile.am (GCJX): Add -g to get linenumber info.

2006-01-10  Jeroen Frijters  <jeroen@frijters.net>

	PR classpath/25727
	* java/util/Hashtable.java
	(contains): Call equals on existing value.
	(containsKey, get, put, remove): Call equals on existing key.
	(getEntry): Call equals on existing entry.

2006-01-10  Jeroen Frijters  <jeroen@frijters.net>

	PR classpath/24618
	* java/util/AbstractMap.java
	(equals(Object,Object)): Test for identity first.
	* java/util/WeakHashMap.java
	(WeakBucket.WeakEntry.equals): Use helper method to determine equality.
	(WeakBucket.WeakEntry.toString): Fixed string representation of
	null key.
	(internalGet): Use helper method to determine equality.

2006-01-09  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/EventSetDescriptor.java: Implemented the two 1.4
	constructors.

2006-01-09  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainDocument.java:
	(insertUpdate): Handle special case of an insertion immediately 
	following a newline character.

2006-01-09  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c
	(connect): Added stream parameter to _connect() call.
	* native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c
	(connect): Added stream parameter to _connect() call.
	* native/jni/java-net/javanet.c
	(_javanet_create_localfd): Added stream parameter. Look up
	fd field based on the stream parameter either in SocketImpl or
	in DatagramSocketImpl.
	(_javanet_connect): Added stream parameter. Call create_localfd
	using this stream parameter. Set localPort field either in
	SocketImpl or in DatagramSocketImpl, depending on the stream
	flag.
	* native/jni/java-net/javanet.c
	(_javanet_connect): Added stream parameter.

2006-01-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax.management.Attribute.java: Grammar and 
	formatting fixes.

2006-01-09  Mark Wielaard  <mark@klomp.org>

	* gnu/java/nio/channels/FileChannelImpl.java (map): Throw correct
	exception when channel is not readable or writable.
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c
	(mapImpl): Add PROT_WRITE when mode == 'c' (MAP_PRIVATE). Make sure
	there is enough space to mmap().

2006-01-09  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/Introspector.java:
	(getBeanInfo(Class, int)): New method.
	(getBeanInfo(Class, Class): Moved common code in a new method.
	(merge): New method.

2006-01-09  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/XMLEncoder.java: Fix spelling mistakes.

2006-01-09  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(insertUpdate): Removed call to checkForInsertAfterNewline and instead
	inlined this method because it needs to change the value of the 
	finalStartTag and finalStartDirection variables.
	(checkForInsertAfterNewline): Removed this method.
	(handleInsertAfterNewline): Added case for making the start tag's 
	direction JoinNextDirection.

2006-01-09  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java:
	Added new field.
	(setRowHeight): Row height is set to the max height of
	all the nodes, or 20 as a default value.
	(getPathBounds): Cleaned up code.
	(getMaxHeight): New helper function that gets the max 
	height of all the rows.
	(getClosestPathForLocation): Fixed to use getMaxHeight.
	(updateCachedPreferredSize): Likewise.
	(installUI): Shouldn't expand tree on startup.
	(getNodeDimensions): Fixed to use getMaxHeight.	

2006-01-09  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JList.java (setSelectedIndex): Clear selection when
	argument is negative.

2006-01-08  Mark Wielaard  <mark@klomp.org>

	* java/net/InetAddress.java (getInaddrAny): Explicitly set hostName.

2006-01-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax.management.Attribute.java: New file. 

2006-01-09  Roman Kennke  <kennke@aicas.com>

	* java/net/DatagramSocketImpl.java
	(localPort): Renamed to localport for correct access from native
	code.

2006-01-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/Popup.java
	(LightweightPopup.hide): Repaint the layered pane when popup is
	removed.

2006-01-09  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(remove): Don't repaint the container here.

2006-01-08  Tom Tromey  <tromey@redhat.com>

	* java/lang/InheritableThreadLocal.java: Organized imports.

2006-01-08  Ito Kazumitsu  <kaz@maczuka.gcd.org>  

	Fixes bug #25679
	* gnu/regexp/RETokenRepeated.java(match): Optimized the case
	when an empty string matched an empty token.

2006-01-08  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java: Check standalone status for mixed
	  content models from external entities.
	* gnu/xml/stream/UnicodeReader.java: Report error instead of
	  attempting to continue with unpaired surrogates.
	* gnu/xml/stream/XMLParser.java: Don't normalize LF equivalents when
	  resolving entities with character entity references; better
	  checking of valid character ranges; don't report an error for URI
	  fragments in notation declarations; check unbound namespace
	  prefixes for elements and attributes, including XML 1.1 unbinding
	  syntax; namespace-aware checking of attribute duplicates.

2006-01-08  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/Statement.java: Doc fixes.
	(doExecute): Workaround for Class.forName call.
	(toString): Made output look more like on the JDK.
	* java/beans/Expression.java: Doc fixes.
	(toString): Made output look more like on the JDK.
	* java/beans/PersistenceDelegate.java,
	java/beans/DefaultPersistenceDelegate.java,
	java/beans/Encoder.java,
	java/beans/XMLEncoder.java: New file.
	* gnu/java/beans/encoder/ArrayPersistenceDelegate.java,
	gnu/java/beans/encoder/ClassPersistenceDelegate.java,
	gnu/java/beans/encoder/CollectionPersistenceDelegate.java,
	gnu/java/beans/encoder/Context.java,
	gnu/java/beans/encoder/GenericScannerState.java,
	gnu/java/beans/encoder/IgnoringScannerState.java,
	gnu/java/beans/encoder/MapPersistenceDelegate.java,
	gnu/java/beans/encoder/ObjectId.java,
	gnu/java/beans/encoder/PrimitivePersistenceDelegate.java,
	gnu/java/beans/encoder/ReportingScannerState.java,
	gnu/java/beans/encoder/Root.java,
	gnu/java/beans/encoder/ScanEngine.java,
	gnu/java/beans/encoder/ScannerState.java,
	gnu/java/beans/encoder/StAXWriter.java,
	gnu/java/beans/encoder/Writer.java: New file.
	* gnu/java/beans/encoder/elements/Array_Get.java,
	gnu/java/beans/encoder/elements/Element.java,
	gnu/java/beans/encoder/elements/List_Set.java,
	gnu/java/beans/encoder/elements/Array_Set.java,
	gnu/java/beans/encoder/elements/NullObject.java,
	gnu/java/beans/encoder/elements/StaticMethodInvocation.java,
	gnu/java/beans/encoder/elements/StaticFieldAccess.java,
	gnu/java/beans/encoder/elements/StringReference.java,
	gnu/java/beans/encoder/elements/ClassResolution.java,
	gnu/java/beans/encoder/elements/ArrayInstantiation.java,
	gnu/java/beans/encoder/elements/PrimitiveInstantiation.java,
	gnu/java/beans/encoder/elements/ObjectReference.java,
	gnu/java/beans/encoder/elements/ObjectInstantiation.java,
	gnu/java/beans/encoder/elements/List_Get.java,
	gnu/java/beans/encoder/elements/MethodInvocation.java: New file.

2006-01-08  Chris Burdess  <dog@gnu.org>

	* java/lang/Character.java (toChars,toCodePoint): Correct these
	  methods to use algorithms from Unicode specification.
 
2006-01-08  Mark Wielaard  <mark@klomp.org>

	* native/jni/xmlj/Makefile.am (libxmlj_la_LIBADD): Add jcl.o.

2006-01-07  Paul Jenner  <psj@harker.dyndns.org>

	Fixes bug #25711
	* examples/Makefile.am: Corrected DESTDIR install paths.

2006-01-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/INVALID_ACTIVITY.java: Removed non - 
	ASCII character (line 46).

2006-01-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/TableView.java: New file.

2006-01-07  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/BufferedReader.java: Removed commented out code.
	* gnu/xml/stream/XIncludeFilter.java: Correct XML Base behaviour.
	* gnu/xml/stream/XMLParser.java: Make additional StAX properties
	  available; correct handling of unparsed entity references;
	  absolutize all base URIs; remove commented out code.

2006-01-07  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XMLParser.java: Add SAX property to return base
	  URI of the current event.

2006-01-07  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java: Add SAX feature to set XML Base
	  aware processing.

2006-01-07  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XIncludeFilter.java,
	  gnu/xml/stream/XMLParser.java: Updated documentation.

2006-01-07  Chris Burdess  <dog@gnu.org>

	* AUTHORS: add self.

2006-01-06  Casey Marshall  <csm@gnu.org>

	* AUTHORS: add myself.

2006-01-06  Casey Marshall  <csm@gnu.org>

	PR classpath/25699
	* javax/crypto/CipherInputStream.java (logger): new constant.
	(cipher): make final.
	(outLength, inBuffer, inLength): removed.
	(isStream): make final.
	(VIRGIN, LIVING, DYING, DEAD, state): removed.
	(eof): new field.
	(<init>): call `super,' not `this;' remove `inBuffer' and
	`outBuffer' initialization; init `eof;' add debug logging.
	(<init>): call `this' with a new null cipher.
	(available): fix javadoc to reflect the real semantics; if we
	don't have a buffer, call `nextBlock.'
	(close): synchronize.
	(read): synchronize; fix testing for buffered data.
	(read): synchronize; add `skip' semantics if first argument is
	`null;' decrypt stream cipher data only if there is any; fix tests
	for buffered data.
	(skip): stop using `available' to see how many data are buffered.
	(nextBlock): simplify to use cipher-allocated output buffers
	instead of internally allocated ones.

2006-01-06  Tom Tromey  <tromey@redhat.com>

	* java/lang/String.java (codePointCount): Fixed javadoc.

2006-01-06  Tom Tromey  <tromey@redhat.com>

	* java/lang/String.java (contains): Added @since.

2006-01-06  Ito Kazumitsu  <kaz@maczuka.gcd.org>  

	Fixes bug #25616
	* gnu/regexp/RE.java(initialize): Allow repeat.empty.token.
	* gnu/regexp/RETokenRepeated.java(match): Break the loop
	when an empty string matched an empty token.

2006-01-06  Jeroen Frijters  <jeroen@frijters.net>

	PR classpath/24858
	* gnu/java/util/WeakIdentityHashMap.java: New file.
	* java/lang/InheritableThreadLocal.java
	(newChildThread): Modified to remove key indirection.
	* java/lang/Thread.java
	(locals): Changed type to WeakIdentityHashMap.
	(getThreadLocals): Instantiate WeakIdentityHashMap instead of
	WeakHashMap.
	* java/lang/ThreadLocal.java
	(key, Key): Removed.
	(get, set): Changed to use "this" instead of "key".

2006-01-06  Dalibor Topic  <robilad@kaffe.org>

	* native/fdlibm/Makefile.am (libfdlibm_la_SOURCES): Removed java-assert.h.

	* native/fdlibm/java-assert.h: Removed file.

	* native/fdlibm/mprec.c: Include assert.h. Don't include java-assert.h.
	Replaced use of JvAssert by assert.

2006-01-05  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultCaret.java:
	(setDot): Fixed paramater to Math.max to be this.dot and not the 
	parameter dot.

2006-01-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(getCellHeight): New helper method.
	(getCellBounds): Use new helper method for determining the cell
	height.
	(paint): Don't call list.indexToLocation() but instead call
	directly into the same UI method.
	(locationToIndex): Fixed calculation of # visible rows and handling
	of cell heights.
	(indexToLocation): Fixed calculation of # visible rows and handling
	of cell heights.

2006-01-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(createList): Set VERTICAL_SCROLLBAR_NEVER mode on the JScrollPane
	in the file chooser.

2006-01-05  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTextPane.java:
	(replaceSelection): If the document is an AbstractDocument, use replace
	rather than remove and insert.
	* javax/swing/event/EventListenerList.java:
	(getListeners): Reversed the order of the listeners to match the 
	reference implementation.
	* javax/swing/text/AbstractDocument.java:
	(insertString): Add the UndoableEdit from the content.insertString call
	to the DocumentEvent.
	(DefaultDocumentEvent.toString): Implemented.
	* javax/swing/text/DefaultCaret.java:
	(setDot): Make sure dot is > 0 and less than the length of the 
	document.
	* javax/swing/text/DefaultStyledDocument.java:
	(ElementBuffer.insertUpdate): Set the modified tag of the document 
	event when we get start and end tags.  This ensures that we create the
	proper BranchElements in endEdit().
	(ElementBuffer.insertUpdate): Added FIXME to handle 
	JoinFractureDirection case.
	(insertUpdate): Added code to check if we're inserting immediately 
	after a newline and to handle this case (create start and end tags). 
	Only change the direction of the first and last tags if they are of 
	type ContentType.
	(checkForInsertAfterNewline): New helper method.
	(handleInsertAfterNewline): Likewise.
	* javax/swing/text/View.java:
	(updateLayout): Avoid NPE by checking if shape is null.  Repaint 
	container.

2006-01-05  Mark Wielaard  <mark@klomp.org>

	* newsitems.txt: Add fosdem meeting.
	* events/events.wml: Likewise.
	* events/fosdem06.wml: New file.
	
2006-01-05  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/text/GapContent.java
	(createPosition): No positions should be created inside the
	gap. Fixed check to ensure this does not happen.

2006-01-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(validateInvalidComponents): Search for the validate root
	and start validating there.

2006-01-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(ComponentHandler): Removed unneeded class.
	(ListDataHandler.contentsChanged): Revalidate instead of calling
	damageLayout().
	(ListDataHandler.intervalAdded): Revalidate instead of calling
	damageLayout().
	(ListDataHandler.intervalRemoved): Revalidate instead of calling
	damageLayout().
	(PropertyChangeHandler.propertyChange): Or flags together instead
	of adding them. Don't call damageLayout().
	(componentListener): Removed unnecessary field.
	(damageLayout): Removed unnecessary method.
	(installListeners): Don't install unnecessary listeners.
	(uninstallListeners): Dito.
	(getPreferredSize): Don't ask for the real list height and
	calculate with the previously calculated list height.
	(locationToIndex): Renamed list parameter to l so that it doesn't
	shadow the field with the same name.
	(indexToLocation): Renamed list parameter to l so that it doesn't
	shadow the field with the same name.

2006-01-04  Tom Tromey  <tromey@redhat.com>

	* include/.cvsignore: Ignore config-int.h.

2006-01-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(getPreferredSize): Rewritten to match the specs.

2006-01-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JFileChooser.java
	(showOpenDialog): Set fixed width on the dialog.
	(showSaveDialog): Set fixed width on the dialog.
	(showDialog): Set fixed width on the dialog.

2006-01-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(locationToIndex): Added FIXME about getVisibleRowCount() usage.
	Adjusted iteration to not use visibleRowCount and instead iterate
	over the real number of elements in cellHeights.
	(indexToLocation): Added FIXME about getVisibleRowCount() usage.
	Adjusted iteration to not use visibleRowCount and instead iterate
	over the real number of elements in cellHeights.

2006-01-04  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c,
	* native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c:
	Added __attribute__((__unused__)) macros to avoid gcc warnings.

2006-01-04  Roman Kennke  <kennke@aicas.com>

	* vm/reference/gnu/java/net/VMPlainSocketImpl.java: New VM class.
	* vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java:
	New VM class.
	* native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c: New file.
	* native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c:
	New file.
	* native/jni/java-net/gnu_java_net_PlainDatagramSocketImpl.c:
	Removed.
	* native/jni/java-net/gnu_java_net_PlainSocketImpl.c: Removed.
	* native/jni/java-net/Makefile.am: Adjusted for new source files.
	* gnu/java/net/PlainDatagramSocketImpl.java: Use new VM interface.
	* gnu/java/net/PlainSocketImpl.java: Use new VM interface.
	* include/gnu_java_net_PlainDatagramSocketImpl.h: Removed.
	* include/gnu_java_net_PlainSocketImpl.h: Removed.
	* include/gnu_java_net_VMPlainDatagramSocketImpl.h: New header file.
	* include/gnu_java_net_VMPlainSocketImpl.h: New header file.

2006-01-04  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(propertyChange): Fixed to change the combo box label
	appropriately. Also, fixed to set the textfield's text
	correctly.
	(editFile): Fixed size of editing field.
	(installComponents): Correctly aligned all panels.
	(installStrings): Fixed to set the label's text
	appropriately depending on the dialog type.

2006-01-04  Lillian Angel  <langel@redhat.com>

	PR classpath/25473 
	PR classpath/25479
	* javax/swing/JTree.java
	(JTree): Because some L&F defaults have been updated,
	the selectionMode for the tree needed to be set to SINGLE.
	* javax/swing/plaf/basic/BasicFileChooserUI.java:
	Initialized accessoryPanel.
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(installComponents): Added accessoryPanel to the filechooser.

2006-01-04  Dalibor Topic  <robilad@kaffe.org>

	* configure.ac: Added AX_CREATE_STDINT_H

	* include/Makefile.am (DISTCLEANFILES): Remove config-int.h.

	* m4/ax_create_stdint_h.m4: New file.

	* native/fdlibm/mprec.h: Include config-int.h. Removed C99
	typedefs. Removed stdint.h and inttypes.h includes.
 
2006-01-03  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JMenuItem.java (configurePropertiesFromAction): Only
	register keyboard action when accelerator is not null.
	* javax/swing/plaf/basic/BasicMenuItemUI.java (propertyChange): Only
	re-register accelerator if not null.
	(installKeyboardActions): Only put accelerator in map when not null.

2006-01-04  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Removed unneeded default.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added and fixed several defaults.

2006-01-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicHTML.java: New class.

2006-01-03  Tom Tromey  <tromey@redhat.com>

	* java/io/OutputStreamWriter.java (OutputStreamWriter): Added @since.
	* java/io/InputStreamReader.java (InputStreamReader): Added @since.

2006-01-03  Mark Wielaard  <mark@klomp.org>

	* org/omg/CORBA/INVALID_ACTIVITY.java: Remove non-ascii characters.

2006-01-03  Mark Wielaard  <mark@klomp.org>

	* javax/swing/plaf/metal/MetalLookAndFeel.java (MetalLookAndFeel):
	Always call createDefaultTheme().
	(createDefaultTheme): Check whether theme is still null.

2006-01-03  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (setBackground): Set to
	Color.WHITE if null.

2006-01-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(getDescription): Fixed to return the correct string.
	(getID): Likewise.
	(getName): Likewise.
	(getDefaults): Added check to avoid NPE.
	(getAcceleratorForeground): Likewise.
	(getAcceleratorSelectedForeground): Likewise.
	(getBlack): Likewise.
	(getControl): Likewise.
	(getControlDarkShadow): Likewise.
	(getControlDisabled): Likewise.
	(getControlHighlight): Likewise.
	(getControlInfo): Likewise.
	(getControlShadow): Likewise.
	(getControlTextColor): Likewise.
	(getControlTextFont): Likewise.
	(getDesktopColor): Likewise.
	(getFocusColor): Likewise.
	(getHighlightedTextColor): Likewise.
	(getInactiveControlTextColor): Likewise.
	(getInactiveSystemTextColor): Likewise.
	(getMenuBackground): Likewise.
	(getMenuDisabledForeground): Likewise.
	(getMenuForeground): Likewise.
	(getMenuSelectedBackground): Likewise.
	(getMenuSelectedForeground): Likewise.
	(getMenuTextFont): Likewise.
	(getPrimaryControl): Likewise.
	(getPrimaryControlDarkShadow): Likewise.
	(getPrimaryControlHighlight): Likewise.
	(getPrimaryControlInfo): Likewise.
	(getPrimaryControlShadow): Likewise.
	(getSeparatorBackground): Likewise.
	(getSeparatorForeground): Likewise.
	(getSubTextFont): Likewise.
	(getSystemTextColor): Likewise.
	(getSystemTextFont): Likewise.
	(getTextHighlightColor): Likewise.
	(getUserTextColor): Likewise.
	(getUserTextFont): Likewise.
	(getWhite): Likewise.
	(getWindowBackground): Likewise.
	(getWindowTitleBackground): Likewise.
	(getWindowTitleFont): Likewise.
	(getWindowTitleForeground): Likewise.
	(getWindowTitleInactiveBackground): Likewise.
	(getWindowTitleInactiveForeground): Likewise.

2006-01-03  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JTextArea.java
	(JTextArea(Document,text,int,int)): Only call setText() when text is
	not null.

2006-01-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(installStrings): Fixed installation of defaults that
	were changed in BasicLookAndFeel.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(installDefaults): Fixed installation of defaults that
	were changed in BasicLookAndFeel.

2006-01-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Fixed several defaults that differed
	from the JDK.

2006-01-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/tree/DefaultTreeSelectionModel.java
	(DefaultTreeSelectionModel): Default should be DISCONTIGUOUS_TREE_SELECTION.

2006-01-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/AbstractAction.java
	(AbstractAction): Fixed to pass in null. Should not be 
	an empty string. Removed TODO comment.
	(AbstractAction): Removed TODO comment.
	* javax/swing/JList.java
	(init): Default selection mode should be MULTIPLE_INTERVAL_SELECTION.
	* javax/swing/JMenuItem.java
	(JMenuItem): Set all defaults if the action passed in is not null.
	* javax/swing/JProgressBar.java
	(JProgressBar): Added check to prevent NPE.

2006-01-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(getPreferredSize): The JDK adds some extra space to 
	the list, so we should as well.
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(getPreferredSize): Should only take the fileListPanel's
	width into account when getting the size. Also, the buttonPanel's
	size should not be checked, since it is in the bottomPanel already.
	(getMinimumSize): Likewise.

2006-01-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/JList.java
	(init): visibleRowCount should be 7, like the JDK.
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(installComponents): No need to add the fileFilterCombo
	to a panel. It can be added to the row directly.

2006-01-03  Lillian Angel  <langel@redhat.com>
	
	PR classpath/25480 PR classpath/25478
	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(updateViewport): Made changes suggested by
	Chris Lansdown.
	* javax/swing/plaf/metal/MetalFileChooserUI.java:
	Removed unneeded import.
	(createList): Removed comment, JList wrapping 
	now works.
	(getPreferredSize): Made changes suggested by
	Chris Lansdown. Uses fileListPanel, instead
	of fileList.
	(getMinimumSize): Uses fileListPanel, instead
	of fileList.
	* javax/swing/plaf/metal/MetalRadioButtonUI.java
	(paintFocus): Fixed height.

2006-01-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(locationToIndex): Added check to avoid ArrayOutOfBoundsException.

2006-01-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(locationToIndex): Special case for when variable cell heights
	are possible. (cellHeights is used instead of cellHeight).
	(indexToLocation): Special case for when variable cell heights
	are possible. (cellHeights is used instead of cellHeight).

2006-01-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.remove): New method.
	(ElementBuffer.removeUpdate): New method.
	(removeUpdate): New method.

2006-01-03  Roman Kennke  <kennke@aicas.com>

	* lib/Makefile.am:
	(dist-hook): Preserve attributes of Java sources when copying to
	dist dir.

2006-01-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	* AUTHORS: Added self.
	* java/security/Security.java (getProvider): Ensures provider's name is
	  not null, not an empty string, and is trimmed before usage.

2006-01-01  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Poa/AOM.java (add):
	Changed parameter Object into gnuServantObject.
	(Obj.object): Changed type to gnuServantObject.
	(findObject): Rewritten.

2006-01-01  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/qt-peer/mainqtthread.cpp: Remove call to disable double
	buffering. Ability has gone in Qt-4.1.x.

	* configure.ac (QT_CFLAGS): Check for 4.1.0 version and for QtCore
	to have the right include flags.

2006-01-01  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/security/MessageDigest.java (getInstance(String,String)):
	Use trimmed copy of provider name.
	* gnu/java/security/Engine.java
	(getInstance(String,String,Provider,Object[])): Use trimmed copy of
	service and algorithm names.

2006-01-01  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/net/InetAddress.java (getAllByName): use LOCALHOST if
	localhost is null or is an empty string. Trim hostname before
	lookup.
