2005-12-31  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Poa/gnuPOA.java (reference_to_servant): 
	Throw WrongAdapter with explaining message.

2005-12-31  Mark Wielaard  <mark@klomp.org>

	* java/text/Bidi.java (requiresBidi): Also test against character
	types L, EN, ES, ET, AN, CS, S and WS.

2005-12-31  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomNamedNodeMap.java,
	  gnu/xml/dom/DomNode.java,
	  gnu/xml/dom/ls/SAXEventSink.java,
	  gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XMLParser.java: Fix entity reference DOM construction
	  and correct DOM tree normalisation.

2005-12-30  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/AttributeException.java,
	* javax/print/URIException.java,
	* javax/print/FlavorException.java,
	* javax/print/PrintException.java:
	Added and updated javadocs to class and methods.

2005-12-30  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/standard/package.html: Added description.
	* javax/print/attribute/standard/MediaSize.java: 
	Added and updated javadocs to class and methods.
	(static_initializer): Initialize nested class constants.
	(MediaSize): Add instances to the cache.
	(MediaSize): Likewise.
	(MediaSize): Likewise.
	(MediaSize): Likewise.
	(findMedia): New method.
	(equals): Likewise.

2005-12-29  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XMLParser.java: Additional validity constraint
	  checking; parameter entity recognition and replacement checks;
	  checks for xml:space to determine whether whitespace is ignorable;
	  better start- and end-entity event reporting.

2005-12-28  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/CRLFReader.java: Fixed bug where pos > 0.
	* gnu/xml/stream/XMLParser.java,
	  gnu/xml/stream/UnicodeReader.java: Use Unicode code points instead
	  of UTF-16 chars, resolving Unicode surrogates.
	* resource/META-INF/services/org.xml.sax.driver: Updated legacy SAX
	  factory mechanism for new SAX driver.

2005-12-27  Chris Burdess  <dog@gnu.org>

	* gnu/java/net/CRLFInputStream.java,
	  gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XMLParser.java,
	  resource/META-INF/services/javax.xml.parsers.SAXParserFactory:
	  Fix XML parser stream issues. Add support for ignorable whitespace
	  to SAX parser. Allow validating parser to parse invalid files.
	* gnu/xml/stream/BufferedReader.java,
	  gnu/xml/stream/XMLInputStreamReader.java: Move buffering
	  functionality of XMLInputStreamReader to BufferedReader.

2005-12-27  Tom Tromey  <tromey@redhat.com>

	* gnu/java/nio/SelectorImpl.java: Added import.

2005-12-26  Anthony Green  <green@redhat.com>

	* java/net/Socket.java (connect): Don't close the socket on
	exceptions.

	* gnu/java/nio/SocketChannelImpl.java (read): Compute the right amount 
	of data to read (dst.remaining()).
	* gnu/java/nio/DatagramChannelImpl.java (receive): Ditto.

	* gnu/java/nio/SelectorImpl.java (select): Handle OP_CONNECT
	properly.

2005-12-25  Jeroen Frijters  <jeroen@frijters.net>

	* java/util/Collections.java
	(binarySearch(List,Object,Comparator)): Changed comparison order
	for improved compatibility.

2005-12-25  Chris Burdess  <dog@gnu.org>

	* resource/META-INF/services/javax.xml.parsers.SAXParserFactory:
	  Revert to using aelfred2 driver by default.

2005-12-24  Tom Tromey  <tromey@redhat.com>

	* java/nio/charset/Charset.java (defaultCharset): Added @since.

2005-12-24  Guilhem Lavaux  <guilhem@kaffe.org>

	* gnu/xml/dom/DomNode.java
	(listeners): Use a HashSet now.
	(DomNode): Likewise.
	(compact, trimSize): Reduced to nop with a HashSet.
	(addEventListener, removeEventListener): Use HashSet
	operations.
	(dispatchEvent): Likewise.
	(notifyNode): Likewise. 

2005-12-24  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XMLParser.java: DTD validation support for StAX parser.

2005-12-24  Chris Burdess  <dog@gnu.org>

	* doc/README.jaxp: Updated with parameters for SAX-over-StAX driver.
	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XMLParser.java: Conformance fixes for XML 1.1 and
	  namespace handling.
	* gnu/xml/dom/ls/DomLSParser.java,
	  gnu/xml/dom/ls/SAXEventSink.java: Use SAX features and properties to
	  determine XML declaration details.
	* gnu/xml/aelfred2/SAXDriver.java,
	  gnu/xml/aelfred2/XmlParser.java,
	  gnu/xml/dom/Consumer.java,
	  gnu/xml/pipeline/DomConsumer.java,
	  gnu/xml/pipeline/EventFilter.java: Remove ContentHandler2 hack as
	  DOM Load & Save no longer depends on it
	* javax/xml/parsers/SAXParserFactory.java,
	  resource/META-INF/services/javax.xml.parsers.SAXParserFactory: Make
	  SAX-over-StAX the default SAX implementation.

2005-12-23  Mark Wielaard  <mark@klomp.org>

	Implement workaround suggested in bug #25430.
	* java/text/Bidi.java: New file.

2005-12-23  Guilhem Lavaux  <guilhem@kaffe.org>

	* gnu/xml/dom/DomNode.java
	(LiveNodeList.handleEvent,
	LiveNodeList.item, LiveNodeList.getLength): Detach properly the
	iterator xfrom the DomNode. 

2005-12-23  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XMLParser.java: Interim commit during W3C XML
	  conformance testing.

2005-12-22  Lillian Angel  <langel@redhat.com>

	* javax/swing/JInternalFrame.java
	(show): Removed call moveToFront. Listeners already call
	toFront, which calls moveToFront.
	* javax/swing/JLayeredPane.java
	(setPosition): Positions are assigned from the "front" 
	to the "back", and drawn from the back towards the front. Added
	a loop to swap all the components, so they are in the correct 
	layer.

2005-12-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(ElementBuffer.insertContentTag): Get the attributes from the tag. 
	Return early if direction is JoinNextDirection but there is no next 
	Element.  
	(createDefaultRoot): Don't call createBranchElement here just 
	instantiate a new BranchElement.
	(insertUpdate): Removed unneeded fields newElement, newElement2.  When
	building the buffer ElementSpecs, no need to check each time if we 
	should join to the previous or next Element, just check the first and
	last ElementSpecs after the buffer has been completely built.

2005-12-22  Tom Tromey  <tromey@redhat.com>

	* .externalToolBuilders/ClasspathJar.launch: New file.
	* .project: Updated.

2005-12-21  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added focusInputMaps for
	Button, CheckBox, EditorPane, List, Slider, TabbedPane,
	ToggleButton, Tree. Also, removed TODO comments that
	dealt with icons. BasicLookAndFeel does not have icons.

2005-12-22  Mark Wielaard  <mark@klomp.org>

	* gnu/java/nio/charset/Provider.java (provider): Wrap initialization
	of standard provider in a PrivilegedAction.
	
2005-12-21  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added focus input map for
	EditorPane. Removed keyBindings.
	* javax/swing/plaf/basic/BasicTextUI.java
	(createKeyMap): Added check to prevent NPE.

2005-12-21  Lillian Angel  <langel@redhat.com>

	PR classpath/25517
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added focus map for FormattedTextField. Mauve
	test updated for this.
	* javax/swing/plaf/basic/BasicTextUI.java
	(createKeyMap): Fixed to get key bindings from the input map. There
	is not .keyBindings default in BasicL&F (same with the JDK).
	(installKeyBoardActions): Removed unneeded code.	

2005-12-21  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Typo in mauve test. Reverted last patch.

2005-12-21  Mark Wielaard  <mark@klomp.org>

	* include/Makefile.am: Rename gnu_java_awt_peer_gtk_CairoGraphics.h
	to gnu_java_awt_peer_gtk_GdkGraphics2D.h.

2005-12-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* .project: Add ClasspathHeaders.launch.
	* .externalToolBuilders/Autogen.launch: Run automatically when
	Makefile.am or configure.ac is updated.
	* .externalToolBuilders/CompileNative.launch: Run automatically.
	* .externalToolBuilders/Configure.launch: Run automatically when
	top-level Makefile.in changes.
	* include/Makefile.am (CLASSDIR): New variable.  Replace lib
	references with $(CLASSDIR).
	* .externalToolBuilders/ClasspathHeaders.launch: New builder.

2005-12-21  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Fixed key binding for TextField.focusInputMap.

2005-12-21  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultEditorKit.java:
	(read): Changed the call to insertString to leave out the trailing
	new line.

2005-12-21  Lillian Angel  <langel@redhat.com>

	* javax/swing/UIDefaults.java
	(createValue): Added check in. Bind might be an instance of KeyStroke.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Changed key bindings for PasswordField, TextArea,
	TextPane, TextField to be instances of KeyStroke.
	* javax/swing/plaf/basic/BasicTextUI.java
	(installKeyBoardActions): Added call to replace textComponent's top-level
	action map to parentActionMap. Also, removed unneeded code.

2005-12-21  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(insertUpdate): If the AttributeSet argument is null use an empty 
	AttributeSet for comparisons. No need to create a new LeafElement to 
	compare AttributeSets (ie - remove the hack added yesterday).
	* javax/swing/text/StyleContext.java:
	(SmallAttributeSet.isEqual): Don't return false for null arguments, 
	this should throw an NPE instead.  Also, for performance, check that
	sizes are equal and one set contains the other, rather than checking 
	that each set contains the other.

2005-12-20  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added all key bindings for PasswordField
	focusInputMap.

2005-12-20  Lillian Angel  <langel@redhat.com>

	* javax/swing/UIDefaults.java:
	(LazyInputMap): InputMap should be an InputMapUIResource.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added all key bindings for Text*.
	* javax/swing/plaf/basic/BasicTextUI.java
	(installKeyboardActions): Fixed call to replaceUIActionMap
	to create a new ActionMap from textComponent's actions. Prevents
	an infinite loop. Fixed loop to set the parentActionMap and the 
	parentInputMap.
	(ActionListenerProxy): Removed. No longer needed.
	(convertModifiers): Likewise.
	(creatActionMap): New function creates the action map to
	be installed on the text component.

2005-12-20  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added focusInputMap added
	for PasswordField.
	* javax/swing/text/JTextComponent.java
	(allKeys): Fixed to prevent NPE.

2005-12-20  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initClassDefaults): Fixed typo.
	(initComponentDefaults): Removed keyBindings defaults for
	Text*. Added focusInputMap for Text*.
	* javax/swing/plaf/basic/BasicTextUI.java
	(installKeyBoardActions): Added code to load the focusInputMap
	and install all the actions for each key.
	(ActionListenerProxy): New class implemented.
	(converModifiers): New method to convert the modifiers.
	(getActionMap): Removed function. Not needed.
	(createActionMap): Likewise.
	* javax/swing/text/JTextComponent.java
	(JTextComponent): Removed code to load the keymap.

2005-12-20  Lillian Angel <langel@redhat.com>
	
	* javax/swing/text/DefaultEditorKit.java:
	Added implementation for beginLineAction and
	endLineAction.
	* javax/swing/text/JTextComponent.java
	(JTextComponent): Added key bindings for HOME and END.

2005-12-20  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(pathWasExpanded): Removed unneeded revalidate call.
	(pathWasCollapsed): Likewise.
	(installUI): Fixed to check for null root.
	(paint): Fixed to always update path.
	(toggleExpandState): Removed call to update path.
	(editingStopped): Likewise.
	(editingCanceled): Likewise.
	(treeStructureChanged): Likewise.
	(treeExpanded): Likewise.
	(treeCollapsed): Likewise.
	(treeNodesChanged): Likewise.	
	(treeNodesInserted): Likewise.
	(treeNodesRemoved): Likewise.
	(updateCurrentVisiblePath): Added check for null root. If root is null,
	nothing should be painted or in the path.
	* javax/swing/tree/DefaultTreeModel.java
	(setRoot): Root can be null.

2005-12-20  Anthony Balkissoon  <abalkiss@redhat.com>

	Fixes bug #25506
	* javax/swing/text/AbstractDocument.java:
	(insertString): Fire insert update whether the DocumentEvent was
	changed or not.

2005-12-20  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(ElementBuffer.insertContentTag): If the direction is 
	OriginateDirection split all the time, don't check the attribute sets.
	Removed the special case for the first insertion.  These cases should
	fall under the direction JoinPreviousDirection. Changed the comments to
	reflect this.
	(insertUpdate): Added a hack to get the right result when comparing
	the attributes of the new ElementSpec to the attributes of either
	the previous or next Element.

2005-12-19  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/html/CSSParser.java
	(CSSParser): Initialized tokenBuffer with some
	arbitrary size. This makes append much more efficent since
	a new array will not been created with each append.
	(append): Fixed append to create a new larger array if
	needed.
	(nextToken): Finished implemented. Should decrease the
	tokenBufferLength if an identifier was read. This way " and '
	are not added to the buffer.
	(parse): Implemented to call the appropriate parsing function
	based on parameter.
	(getNextStatement): Implemented.
	(parseAtRule): Added some helpful comments for implementing.
	(parseRuleSet): Likewise.
	(parseIdentifiers): Likewise.
	(readComment): Likewise.
	* javax/swing/text/html/StyleSheet.java
	(addRule): Implemented.
	(loadRules): Implemented.
	(importStyleSheet): Removed implementation for now. It causes
	a loop. Added FIXME
	(startRule): Implemented.
	(handleProperty): Implemented.
	(addSelector): Implemented.

2005-12-19  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/html/BlockView.java
	(getStyleSheet): Implemented.
	* javax/swing/text/html/CSSParser.java: New private class,
	partially implemented.
	* javax/swing/text/html/HTMLEditorKit.java
	(createDefaultDocument): Fixed to create HTMLDocument with
	default style sheet.
	(getStyleSheet): Fixed to initialize style sheet if null.
	* javax/swing/text/html/StyleSheet.java
	(CssParser): New private inner class, partially implemented.

2005-12-19  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(endOffset): New field.
	(ElementBuffer.insert): If length is 0 return early.  Set the endOffset
	variable here.
	(ElementBuffer.insertContentTag): Added special case for when insertion
	covers entire range of the current Element.  Replaced (offset + length)
	with endOffset everywhere.  Added checks to see if the insertion has 
	the same attributes as the surrounding Element(s), in which case we
	don't split them, we join them.
	(SectionElement.getName): Return the field SectionElementName instead 
	of hardcoding a return value.
	(getLogicalStyle): As the specs require, if the attributes from the 
	resolve parent aren't of type Style, return null.
	(setCharacterAttributes): Exit early if length is 0.  Obtain a 
	write lock for the body of this method.  Changed the way we iterate
	through the paragraphs to be more efficient and more intuitive.  Added
	AttributeUndoableEdits to the DocumentEvent and fired the 
	UndoableEditUpdate.
	(setLogicalStyle): Return early if the Element is null.  Obtain a write
	lock for the body of this method.  Fire the appropriate DocumentEvent.
	(setParagraphAttributes): Changed the way we iterated through the 
	paragraphs because it was incorrect and unintuitive.  Obtained a write
	lock within a try/finally block.  Added AttributeUndoableEdits to the 
	DocumentEvent and fired the event.
	(insertUpdate): Changed the way we iterate because we cannot assume 
	the Segment holds the characters starting from index 0.  Give the 
	startTag the same attributes as the paragraph.  Removed the useless
	offset += len line because len is 0.
	(printElements): New temporary debugging method.
	(attributeSetsAreSame): New method.

2005-12-19  Dalibor Topic  <robilad@kaffe.org>

	* native/fdlibm/mprec.h (DEBUG): Include stdlib.h for
	exit() prototype to fix compiler warning.

2005-12-19  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/text/StyledEditorKit.java
	(createInputAttributes): Fixed. I made a mistake by
	changing this in my last fix. I have committed a mauve test
	to verify the set should be cleared first.
	* javax/swing/text/html/HTMLEditorKit
	(createInputAttributes): Set is cleared before adding
	new attributes.
	* javax/swing/text/html/HTMLDocument.java:
	Added names to authors.
	* javax/swing/text/html/default.css:
	Fixed indentation.

2005-12-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(paintBackground): Also fill background for unselected items here.
	(paintMenuItem): Call paintBackground() with the background
	parameter.

2005-12-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(findOverlapFreeParent): Fixed component lookup for painting.

2005-12-19  Roman Kennke  <kennke@aicas.com>

	PR classpath/24905
	* javax/swing/JViewport.java
	(paintSimple): Call paintComponent() before painting the child, so
	the background gets cleared correctly.

2005-12-19  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/standard/MediaPrintableArea.java:
	Added and updated javadocs to class and methods.
	(x): Use int as type.
	(y): Likewise.
	(width): Likewise.
	(height): Likewise.
	(MediaPrintableArea): Convert values to micrometers.
	(MediaPrintableArea): Likewise.
	(getX): Convert return value into choosen units.
	(getY): Convert return value into choosen units.
	(getWidth): Convert return value into choosen units.
	(getHeight): Convert return value into choosen units.
	(equals): New overridden method.
	(toString): Likewise.
	(hashCode): Likewise.
	(toString): New method.
	(getPrintableArea): Likewise.

2005-12-19  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/standard/Media.java (equals): 
	Reimplemented to allow future subclasses to behave correctly.

2005-12-19  Roman Kennke  <kennke@aicas.com>

	PR classpath/24195
	* javax/swing/text/DefaultStyledDocument.java
	(setParagraphAttributes): Obtain lock for this operation. Exit loop
	after last paragraph element.

2005-12-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(installListeners): Install focus listener only on editor.
	(configureArrowButton): Make arrow button not focusable.
	(setPopupVisible): Request focus for the combobox editor or comboBox,
	depending on whether the combobox is editable or not.
	* javax/swing/plaf/basic/BasicComboPopup.java
	(configureList): Make list not focusable.
	
2005-12-19  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/standard/JobStateReasons.java: 
	Added and updated javadocs to class and methods.
	(JobStateReasons): New constructor.
	(JobStateReasons): Likewise.
	(JobStateReasons): Likewise.
	(JobStateReasons): Likewise.
	(add): New overridden method.
	* javax/print/attribute/standard/PrinterStateReasons.java:
	Added and updated javadocs to class and methods.
	(PrinterStateReasons): New constructor.
	(PrinterStateReasons): Likewise.
	(PrinterStateReasons): Likewise.
	(PrinterStateReasons): Likewise.
	(printerStateReasonSet): New method.
	(put): New overridden method.	

2005-12-18  Guilhem Lavaux  <guilhem@kaffe.org>

	* libraries/javalib/external/classpath/lib/Makefile.am:
	Replaced $(top_distdir) with $(distdir)/.. to make sure
	that GNU Classpath's class library sources don't end up
	in the wrong location in kaffe's tarball.

2005-12-18  Nicolas Geoffray <nicolas.geoffray@menlina.com>

	* java/lang/Class.java (getModifiers): Only returns
	interesting bits. 

2005-12-18  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XMLParser.java: Various fixes post SAX conformance
	testing.

2005-12-18  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/standard/JobOriginatingUserName.java,
	* javax/print/attribute/standard/RequestingUserName.java,
	* javax/print/attribute/standard/JobMessageFromOperator.java,
	* javax/print/attribute/standard/JobName.java,
	* javax/print/attribute/standard/OutputDeviceAssigned.java,
	* javax/print/attribute/standard/PrinterInfo.java,
	* javax/print/attribute/standard/PrinterLocation.java,
	* javax/print/attribute/standard/PrinterMakeAndModel.java,
	* javax/print/attribute/standard/PrinterMessageFromOperator.java,
	* javax/print/attribute/standard/DocumentName.java,
	* javax/print/attribute/standard/PrinterName.java:
	Added and updated javadocs to class and methods.

2005-12-17  Mark Wielaard  <mark@klomp.org>

	* native/fdlibm/Makefile.am (libfdlibm_la_SOURCES): Add namespace.h

2005-12-17  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/html/HTMLDocument.java (BlockElementgetName):
	Qualify NameAttribute as comming from StyleConstants.
	(RunElement.getName): Likewise.
	(getElement): Check whether grandChild element is null before
	returning it.

2005-12-17  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/html/HTMLDocument.java (flush): Qualify ElementSpec
	type comming from DefaultStyledDocument.
	(blockOpen): Likewise.
	(blockClose): Likewise.
	(addContent): Likewise.

2005-12-17  Mark Wielaard  <mark@klomp.org>

	* lib/copy-vmresources.sh.in: Use dot '.' for find after changing
	dir to target directory.

2005-12-17  Tom Tromey  <tromey@redhat.com>

	* java/io/File.java (File): Updated javadoc.

2005-12-17  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/fdlibm/namespace.h: Regenerated.

	* native/fdlibm/fdlibm.h
	(isnan): Define explicitly isnan if it is not a macro.

	* scripts/math_symbols: Removed isnan.
	
2005-12-17  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/standard/CopiesSupported.java: 
	Added and updated javadocs to class and methods.
	(CopiesSupported): Throw IllegalArgumentException if 
	lowerBound is less than 1.
	(CopiesSupported): Throw IllegalArgumentException if member less than 1.
	(equals): New overridden method.
	* javax/print/attribute/standard/JobKOctetsSupported.java: 
	Added and updated javadocs to class and methods.
	(JobKOctetsSupported): Throw IllegalArgumentException if 
	lowerBound is less than 1.
	(equals): New overridden method.
	* javax/print/attribute/standard/JobImpressionsSupported.java: 
	Added and updated javadocs to class and methods.
	(JobImpressionsSupported): Throw IllegalArgumentException if 
	lowerBound is less than 1.
	(equals): New overridden method.
	* javax/print/attribute/standard/JobMediaSheetsSupported.java: 
	Added and updated javadocs to class and methods.
	(JobMediaSheetsSupported): Throw IllegalArgumentException if 
	lowerBound is less than 1.
	(equals): New overridden method.
	* javax/print/attribute/standard/PageRanges.java: 
	Added and updated javadocs to class and methods.
	(PageRanges): Throw IllegalArgumentException if member less than 1.
	(PageRanges): Throw IAE if lowerBound is less than 1.
	(PageRanges): Throw NPE if members is null.
	(PageRanges): New constructor.
	(equals): New overridden method.
	* javax/print/attribute/standard/NumberUpSupported.java: 
	Added and updated javadocs to class and methods.
	(NumberUpSupported): Throw IllegalArgumentException if member less than 1.
	(NumberUpSupported): Throw IAE if lowerbound less than 1.
	(NumberUpSupported): Throw NPE if members is null.
	(equals): New overridden method.
	* javax/print/attribute/standard/JobHoldUntil.java,
	* javax/print/attribute/standard/DateTimeAtProcessing.java,
	* javax/print/attribute/standard/DateTimeAtCompleted.java,
	* javax/print/attribute/standard/DateTimeAtCreation.java: 
	Added and updated javadocs to class and methods.
	* javax/print/attribute/standard/PrinterURI.java,
	* javax/print/attribute/standard/PrinterMoreInfoManufacturer.java,
	* javax/print/attribute/standard/PrinterMoreInfo.java,
	* javax/print/attribute/standard/Destination.java,
	* javax/print/attribute/standard/PrinterResolution.java: 
	Added and updated javadocs to class and methods.
	(equals): New overridden method.

2005-12-17  Guilhem Lavaux  <guilhem@kaffe.org>

	* java/io/ObjectOutputStream.java
	(writeClassDescriptor): Use two argument constructor. Reduced line
	size.
	
2005-12-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(AudioAction): New inner class.
	(audioActionMap): New field.
	(getAudioActionMap): New method.
	(createAudioAction): New method.
	(playSound): New method.

2005-12-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(AccessibleJTable.getAccessibleRowAtIndex): New method.
	(AccessibleJTable.getAccessibleColumnAtIndex): New method.
	(AccessibleJTable.getAccessibleColumnAtIndex): New method.
	(surrendersFocusOnKeystroke): New field.
	(setSurrendersFocusOnKeystroke): New method.
	(getSurrendersFocusOnKeystroke): New method.

2005-12-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(processKeyBindings): New method. Processes keybindings for
	non-JComponent derived components.

2005-12-16  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/EventManager.java (EventManager): Catch
	all JdwpExceptions when initializing the event table.
	(requestEvent): Update to allow throwing JdwpException from
	VMVirtualMachine methods.
	(deleteRequest): Likewise.
	(clearRequests): Likewise.
	* gnu/classpath/jdwp/Jdwp.java (notify): Catch exceptions
	from sendEvent and _enforceSuspendPolicy.
	(sendEvent): Do not catch IOException here.
	(_enforceSuspendPolicy): Update to allow throwing JdwpException
	from VMVirtualMachine methods.

2005-12-16  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/standard/JobImpressionsCompleted.java:
	Added and updated javadocs to class and methods.
	(getName): Fixed name returned by this attribute class.
	* javax/print/attribute/standard/JobMediaSheetsCompleted.java,
	* javax/print/attribute/standard/JobKOctetsProcessed.java,
	* javax/print/attribute/standard/JobImpressions.java,
	* javax/print/attribute/standard/JobKOctets.java, 
	* javax/print/attribute/standard/JobMediaSheets.java,
	* javax/print/attribute/standard/NumberOfInterveningJobs.java,
	* javax/print/attribute/standard/JobPriority.java,
	* javax/print/attribute/standard/JobPrioritySupported.java,
	* javax/print/attribute/standard/NumberOfDocuments.java,
	* javax/print/attribute/standard/QueuedJobCount.java,
	* javax/print/attribute/standard/NumberUp.java,
	* javax/print/attribute/standard/PagesPerMinuteColor.java,
	* javax/print/attribute/standard/PagesPerMinute.java,
	* javax/print/attribute/standard/Copies.java: 
	Added and updated javadocs to class and methods.

2005-12-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/StyledEditorKit.java
	(createInputAttributes): This should copy the element
	attributes into the set, not clear out the set. Fixed
	to match the API spec.
	* javax/swing/text/html/HTMLEditorKit.java
	(getInputAttributes): Added API documentation. Fixed
	implementation. Combining all input attributes should
	not be done here.

2005-12-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/html/HTMLDocument.java
	(HTMLDocument): Fixed. The style sheet is initialized
	using HTMLEditorKit.
	(HTMLDocument): Fixed to call this with null as the 
	style sheet.
	* javax/swing/text/html/HTMLEditorKit.java:
	Added new fields.
	(LinkController): Calls super constructor.
	(InsertHTMLTextAction): Added comment.
	(actionPerformed): Partially implemented.
	(HTMLEditorKit): Fixed to initialize style sheet to
	default.css.
	(getParser): Fixed field name.
	(read): Added code to set base for document.
	(getContentType): Fixed to return field.
	(createInputAttributes): Partially implemented.
	(install): Added FIXME.
	(deinstall): set field to null.
	(getInputAttributes): Implemented.
	* javax/swing/text/html/StyleSheet.java
	(importStyleSheet): Partially implemented.
	* javax/swing/text/html/default.css: New file. Default style
	sheet for HTML.

2005-12-16  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/fdlibm/mprec.h, native/fdlibm/fdlibm.h: Added the
	inclusion of namespace.h

	* native/fdlibm/namespace.h: New file.

	* scripts/build_mathnamespace, scripts/math_symbols: New files.

2005-12-16  Keith Seitz  <keiths@redhat.com>

	* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
	(VMVirtualMachine): All methods now throw JdwpException.

2005-12-16  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/standard/MediaSizeName.java: 
	Added and updated javadocs to class and methods.
	(getStringTable): Implemented.
	(getEnumValueTable): Implemented.
	(stringTable): New field.
	(enumValueTable): New field.
	* javax/print/attribute/standard/MediaName.java: 
	Added and updated javadocs to class and methods.
	(getStringTable): Implemented.
	(getEnumValueTable): Implemented.
	(stringTable): New field.
	(enumValueTable): New field.
	(NA_LETTER_WHITE): Fixed value of enum.
	(NA_LETTER_TRANSPARENT): Likewise.
	(ISO_A4_WHITE): Likewise.
	(ISO_A4_TRANSPARENT): Likewise.
	(serialVersionUID): New field.
	* javax/print/attribute/standard/Media.java: 
	Added and updated javadocs to class and methods.
	(equals): New overridden method.
	* javax/print/attribute/standard/MediaTray.java: 
	Added and updated javadocs to class and methods.
	(getStringTable): Implemented.
	(getEnumValueTable): Implemented.
	(stringTable): New field.
	(enumValueTable): New field.
	(TOP): Fixed value of enum.
	(MIDDLE): Likewise.
	(BOTTOM): Likewise.
	(ENVELOPE): Likewise.
	(LARGE_CAPACITY): Likewise.
	(MAIN): Likewise.
	(SIDE): Likewise.
	(serialVersionUID): New field.
	* javax/print/attribute/standard/PrinterState.java: 
	Added and updated javadocs to class and methods.
	(getStringTable): New overridden method.
	(getEnumValueTable): New overridden method.
	(stringTable): New field.
	(enumValueTable): New field.
	(IDLE): Fixed value of enum.
	(PROCESSING): Likewise.
	(STOPPED): Likewise.
	* javax/print/attribute/standard/JobState.java: 
	Added and updated javadocs to class and methods.
	(getStringTable): New overridden method.
	(getEnumValueTable): New overridden method.
	(stringTable): New field.
	(enumValueTable): New field.
	(PENDING): Fixed value of enum.
	(PENDING_HELD): Likewise.
	(PROCESSING): Likewise.
	(PROCESSING_STOPPED): Likewise.
	(CANCELED): Likewise.
	(ABORTED): Likewise.
	(COMPLETED): Likewise.
	* javax/print/attribute/standard/SheetCollate.java,
	* javax/print/attribute/standard/PresentationDirection.java,
	* javax/print/attribute/standard/ReferenceUriSchemesSupported.java,
	* javax/print/attribute/standard/PrinterStateReason.java,
	* javax/print/attribute/standard/JobStateReason.java,
	* javax/print/attribute/standard/JobSheets.java: 
	Added and updated javadocs to class and methods.
	(getStringTable): New overridden method.
	(getEnumValueTable): New overridden method.
	(stringTable): New field.
	(enumValueTable): New field.

2005-12-16  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-nio/java_nio.c
	Removed obsolete file.

2005-12-16  Tom Tromey  <tromey@redhat.com>

	* java/lang/Class.java (getPackage): Javadoc fix.

2005-12-16  Roman Kennke  <kennke@aicas.com>

	* native/jni/classpath/jcl.c:
	Only redefine __attribute__ if it's not already defined.

2005-12-16  Roman Kennke  <kennke@aicas.com>

	* java/net/DatagramSocket.java
	(DatagramSocket(SocketAddress)): Actually use the factory if one
	is installed.

2005-12-16  Tom Tromey  <tromey@redhat.com>

	* java/io/ObjectInputStream.java: Organized imports.

2005-12-15  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/standard/PDLOverrideSupported.java: 
	Added and updated javadocs to class and methods.
	(getStringTable): New overridden method.
	(getEnumValueTable): New overridden method.
	(stringTable): New field.
	(enumValueTable): New field.
	(ATTEMPTED): Fixed value of enum.
	* javax/print/attribute/standard/PrinterIsAcceptingJobs.java,
	* javax/print/attribute/standard/Severity.java,
	* javax/print/attribute/standard/MultipleDocumentHandling.java: 
	Added and updated javadocs to class and methods.
	(getStringTable): New overridden method.
	(getEnumValueTable): New overridden method.
	(stringTable): New field.
	(enumValueTable): New field.		
	* javax/print/attribute/standard/Fidelity.java:
	Added and updated javadocs to class and methods.
	(getStringTable): New overridden method.
	(getEnumValueTable): New overridden method.
	(stringTable): New field.
	(enumValueTable): New field.	
	(getName): Use correct ipp attribute name.	
	* javax/print/attribute/standard/OrientationRequested.java: 
	Added and updated javadocs to class and methods.
	(getStringTable): New overridden method.
	(getEnumValueTable): New overridden method.
	(getOffset): New overridden method.
	(stringTable): New field.
	(enumValueTable): New field.
	* javax/print/attribute/standard/PrintQuality.java: 
	Added and updated javadocs to class and methods.
	(getStringTable): New overridden method.
	(getEnumValueTable): New overridden method.
	(getOffset): New overridden method.
	(stringTable): New field.
	(enumValueTable): New field.
	(DRAFT): Fixed value of enum.
	(NORMAL): Likewise.
	(HIGH): Likewise.
	* javax/print/attribute/standard/Finishings.java: 
	Added and updated javadocs to class and methods.
	(getStringTable): New overridden method.
	(getEnumValueTable): New overridden method.
	(getOffset): New overridden method.
	(stringTable): New field.
	(enumValueTable): New field.
	(NONE): Fixed value of enum.	
	(STAPLE): Likewise.
	(COVER): Likewise.
	(BIND): Likewise.
	(SADDLE_STITCH): Likewise.
	(EDGE_STITCH): Likewise.
	(STAPLE_TOP_LEFT): Likewise.
	(STAPLE_BOTTOM_LEFT): Likewise.
	(STAPLE_TOP_RIGHT): Likewise.
	(STAPLE_BOTTOM_RIGHT): Likewise.
	(EDGE_STITCH_LEFT): Likewise.
	(EDGE_STITCH_TOP): Likewise.
	(EDGE_STITCH_RIGHT): Likewise.
	(EDGE_STITCH_BOTTOM): Likewise.
	(STAPLE_DUAL_LEFT): Likewise.
	(STAPLE_DUAL_TOP): Likewise.
	(STAPLE_DUAL_RIGHT): Likewise.
	(STAPLE_DUAL_BOTTOM): Likewise.
	* javax/print/attribute/standard/Sides.java:
	Added and updated javadocs to class and methods.
	(getStringTable): New overridden method.
	(getEnumValueTable): New overridden method.
	(stringTable): New field.
	(enumValueTable): New field.
	(DUPLEX): Fixed value of enum.
	(TUMBLE): Likewise.	

2005-12-15  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/AbstractDocument.java:
	(AbstractElement.getAttribute): If no attribute could be found in the 
	AttributeSet hierarchy, then try the Element hierarchy instead.

2005-12-15  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/html/HTMLDocument.java
	(HTMLDocument): Added a FIXME
	(create): Added stub.
	(createDefaultRoot): Likewise.
	(createLeafElement): Likewise.
	(createBranchElement): Likewise.
	(insertUpdate): Likewise.
	(setParagraphAttributes): Likewise.
	(fireChangedUpdate): Likewise.
	* javax/swing/text/html/HTMLEditorKit.java
	(LinkController): Removed FIXME
	(mouseClicked): Added comment
	(mouseDragged): Likewise.
	(mouseMoved): Likewise.
	(activateLink): Likewise.
	(insertAtBoundary): Likewise.
	(HTMLFactory): Added constructor.
	(HTMLEditorKit): Added FIXME to constructor.
	* javax/swing/text/html/StyleSheet.java
	(removeStyleSheet): Fixed implementation.

2005-12-15  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/html/BlockView.java
	(paint): Partially implemented.
	(getAttributes): Implemented.
	(getStyleSheet): Partially implemented.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLDocument): New constructor, implemented.
	(HTMLDocument): Likewise.
	(HTMLDocument): Likewise.
	(getStyleSheet): Implemented.
	* javax/swing/text/html/HTMLEditorKit.java
	(insertHTML): Fixed indentation.
	(ParserCallback): Added comments for all methods in this
	inner class.
	(getStyleSheet): Implemented.
	(setStyleSheet): Implemented
	* javax/swing/text/html/StyleSheet: New class, partially 
	implemented.

2005-12-15  Caolan McNamara  <caolanm@redhat.com>

	PR classpath/25426:
	* gnu/xml/dom/DomNode.java (detach): Check whether current is
	already null.

2005-12-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ViewportLayout.java
	(layoutContainer): Set width and height before adjusting the
	location. Only set view size to port size if the port is larger
	than the views preferredSize.

2005-12-15  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XMLInputFactoryImpl.java,
	  gnu/xml/stream/XMLParser.java: Permit setting extended properties
	  via factory interfaces; make base-aware a parameter.

2005-12-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(getPreferredSize): Protect the preferredSize field from
	modification by creating a new Dimension object from it
	before returning the value.

2005-12-15  Chris Burdess  <dog@gnu.org>

	Fixes bug classpath/24496:
	* java/util/Properties.java (loadFromXML): Use StAX instead of SAX
	  to populate properties.

2005-12-15  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/XMLParser.java: Report start-entity and end-entity
	  events; read text declaration for external entities;
	  handle XML namespace; handle xml:base; normalize CR/LF pairs
	  created as a result of mixed text and character entity references.

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.
	* vm/reference/java/lang/VMClassLoader
	(defineClassWithTransformers): New method.
	(instrumenter): New Field. 

2005-12-14  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(cached): New field.
	(parent): New field.
	(GdkGraphics(GdkGraphics)): Moved state-copy code to new method
	copyState().
	(create): Added re-use of old graphics.
	(nativeDispose): Renamed native dispose method to nativeDispose().
	(dispose): New non-native implementation used for caching.
	(finalize): Overridden to correctly dispose unused graphics.
	(copyState): New non-native method to correctly copy the non-native
	state.
	(nativeCopyState): Renamed native copyState method to
	nativeCopyState().
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(copyState): Renamed to nativeCopyState.
	(dispose): Renamed to nativeDispose.
	* include/gnu_java_awt_peer_gtk_GdkGraphics.h
	(copyState): Renamed to nativeCopyState.
	(dispose): Renamed to nativeDispose.

2005-12-14  Riccardo Mottola  <riccardo@kaffe.org>

	* native/fdlibm/ieeefp.h: Fixed detection of big endian on
	powerpc.

2005-12-14  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(insert): Put writeLock/writeUnlock combo in a try/finally block. Group
	all inserts together so that we can add the appropriate ElementEdit to
	the DocumentEvent.
	* javax/swing/text/html/HTMLDocument.java:
	(debug): New field.
	(print): New method. Changed all System.out.println calls to calls to 
	this method so that they can be turned on and off via the debug 
	variable.
	(HTMLReader.CharacterAction.start): Uncommented code that adds the 
	argument attributes to the current attributes.
	(HTMLReader.HeadAction): Changed superclass to BlockAction instead of
	TagAction.
	(HTMLReader.blockOpen): Implemented.
	(HTMLReader.blockClose): Implemented.
	(HTMLReader.addContent): Added calls to printBuffer so if the debug
	variable is true we can see what the buffer looks like before and
	after adding content.  Also put in the proper check so that we only 
	flush the buffer if we've buffered the appropriate number of elements
	first.
	(printBuffer): New method.

2005-12-14  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/XIncludeFilter.java: Fix event flow on fallback.
	* gnu/xml/stream/XMLParser.java: Don't pop namespace context until
	  after END_ELEMENT has been read; fix CDATA section detection.

2005-12-14  Guilhem Lavaux  <guilhem@kaffe.org>

	* java/io/ObjectOutputStream.java
	(writeClassDescription): Throw an InvalidClassException if
	fields is INVALID_FIELDS.
	(lookup): Added some documentation.

	* java/io/ObjectStreamClass.java
	(setFields): Make fields as INVALID if we detect duplicate
	entries in serialPersistentFields.
	
2005-12-14  Roman Kennke  <kennke@aicas.com>

	Reported by Ingo Proetel <proetel@aicas.com>
	* java/awt/Container.java
	(visitChild): Use Graphics.hitClip() to check for clip bounds.
	Create a new Graphics before painting the child, this protects
	the current context from beeing irrevocably changed by the child
	component.

2005-12-14  Tom Tromey  <tromey@redhat.com>

	PR classpath/25389:
	* java/io/File.java (File): Throw IllegalArgumentException if URI is
	non-hierarchical.

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-13  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/html/HTMLEditorKit.java
	(getHTMLEditorKit): Fixed typo.

2005-12-13  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/html/HTMLEditorKit.java
	(insertHTML): Fixed catching of exceptions.
	(getHTMLDocument): Likewise.
	(getHTMLEditorKit): Likewise.

2005-12-13  Lillian Angel  <langel@redhat.com>

	* javax/swing/AbstractAction.java:
	(putValue): Fixed check, should use .equals when comparing
	objects.
	* javax/swing/text/StyledEditorKit.java
	(UnderlineAction): Fixed name.
	(ItalicAction): Likewise.
	(BoldAction): Likewise.
	(getActions): Added more default actions.
	* javax/swing/text/html/HTMLDocument.java:
	Removed unneeded import statement.
	* javax/swing/text/html/HTMLEditorKit.java:
	Added new field
	(getActions): Fixed to use augmentList to combine
	the actions from the super class with the ones from
	this class.

2005-12-13  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/XIncludeFilter.java,
	  gnu/xml/stream/XMLStreamWriterImpl.java,
	  gnu/xml/stream/XMLParser.java: XInclude fixes.

2005-12-13  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/html/HTMLDocument.java:
	(HTMLReader.charAttr): Initialize this variable.
	(HTMLReader.parseBuffer): Initialize this variable.
	(HTMLReader.popDepth): New field.
	(HTMLReader.pushDepth): Likewise.
	(HTMLReader.offset): Likewise.
	(HTMLReader.insertTag): Likewise.
	(HTMLReader.insertTagEncountered): Likewise.
	(HTMLReader.BlockAction.start): Implemented.
	(HTMLReader.BlockAction.end): Implemented.
	(HTMLReader.CharacterAction.start): Implemented.
	(HTMLReader.CharacterAction.end): Implemented.
	(HTMLReader(int)): Call other constructor with default arguments.
	(HTMLReader(int, int, int, HTML.Tag)): Save the arguments.
	(HTMLReader.flush): Implemented.
	(HTMLReader.handleText): Implemented.
	(HTMLReader.addContent): Implemented.			

2005-12-13  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/html/HTMLDocument.java
	(getElement): Implemented.
	(getElement): Implemented.
	(setInnerHTML): Added, not fully implemented.
	(setOuterHTML): Likewise.
	(insertBeforeStart): Likewise.
	(insertAfterStart): Likewise.
	(insertBeforeEnd): Likewise.
	(insertAfterEnd): Likewise.

2005-12-13  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XIncludeFilter.java,
	  gnu/xml/stream/XMLInputFactoryImpl.java,
	  gnu/xml/stream/XMLParser.java: Addition of XInclude filter.

2005-12-13  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/html/HTMLDocument.java
	(getReader): Implemented.
	(getReader): Implemented.

2005-12-13  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/html/HTMLDocument.java
	(BlockElement.getName): Should use getAttribute because the API says
	that this function can return null.
	(RunElement): New class implemented.
	(RunElement.getName): Implemented.
	(RunElement.getResolvingParent): Implemented.

2005-12-13  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/html/HTMLEditorKit.java
	(getHTMLDocument): Fixed implementation to catch exception.
	(getHTMLEditorKit): Likewise.
	(getElementsAt): Fixed to use recursion. Now all elements
	and all their children are added to the array, only using
	the default root element.
	(getElementsAt): New private helper function. Uses recursion.
	(elementCountToTag): Implemented.
	(findElementMatchingTag): Implemented.
	(parserCallback): Removed TODO comment. Nothing should be done here.
	All work for parser, is done in javax/swing/text/html/Parser.java
	and HTMLDocument.
	(flush): Likewise.
	(handleComment): Likewise.
	(handleEndOfLineString): Likewise.
	(handleEndTag): Likewise.
	(handleError): Likewise.
	(handleSimpleTag): Likewise.
	(handleStartTag): Likewise.
	(handleText): Likewise.
	(HTMLEditorKit): Implemented and added API documentation.
	(getParser): Fixed implementation to use a field to store the parser.
	(insertHTML): Implemented.
	(read): Implemented.
	(write): Partially implemented.
	(install): Added code to add the mouse listener.
	(deinstall): Added code to remove the mouse listener.
	(getActions): Modified FIXME comment.
	(getInputAttributes): Likewise.

2005-12-13  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/html/HTMLDocument.java:
	(tokenThreshold): New field.
	(parser): New field.
	(getParser): New API method.
	(setParser): New API method.
	(getTokenThreshold): New API method.
	(setTokenThreshold): New API method.
	(getReader(int, int, int, HTML.Tag)): New API method, not implemented.
	(HTMLReader): New API class, partially implemented.
	(HTMLReader.BlockAction): New API class, not implemented.
	(HTMLReader.CharacterAction): Likewise.
	(HTMLReader.FormAction): Likewise.
	(HTMLReader.HiddenAction): Likewise.
	(HTMLReader.IsindexAction): Likewise.
	(HTMLReader.ParagraphAction): Likewise.
	(HTMLReader.PreAction): Likewise.
	(HTMLReader.SpecialAction): Likewise.
	(HTMLReader.TagAction): New API class, implemented.
	* javax/swing/text/html/HTMLEditorKit.java:
	(createDefaultDocument): Set the parser for the new HTMLDocument.
	
2005-12-13  Mark Wielaard  <mark@klomp.org>

	* doc/hacking.texinfo: Add @bullet to all @itemize lists.

2005-12-13  Mark Wielaard  <mark@klomp.org>

	* doc/hacking.texinfo (Branches): Explain "broken" branches a bit
	more.

2005-12-12  Dalibor Topic  <robilad@kaffe.org>

	Fixes bug #25353
	* m4/acinclude.m4: Added JIKESWARNINGS makefile variable. 
	Only add +Pno-shadow to JIKESWARNINGS if not using jikes 1.19.
	* lib/Makefile.am: Use JIKESWARNINGS instead of explicitely
	listing the warnings.

2005-12-12  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/SAXParserFactory.java,
	  gnu/xml/stream/XMLParser.java: SAX parser using StAX implementation.

2005-12-12  Gary Benson  <gbenson@redhat.com>

	* java/security/Security.java (setProperty): Spelling correction.
	* java/security/Security.java (setProperty): Allow null values.

2005-12-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ViewportLayout.java
	(layoutContainer): Always check and adjust the size, not only when
	portSize >= view.minSize.

2005-12-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(getPreferredSize): Don't check for the minimumSize. According to
	a mauve test, this is not necessary.

2005-12-12  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/XMLInputFactoryImpl.java,
	  gnu/xml/stream/CRLFReader.java,
	  gnu/xml/stream/XMLInputStreamReader.java,
	  gnu/xml/stream/XMLParser.java: New StAX parser.

2005-12-11  Mark Wielaard  <mark@klomp.org>

	* doc/hacking.texinfo: Add section on branches.

2005-12-11  Guilhem Lavaux  <guilhem@kaffe.org>

	* lib/copy-vmresources.sh.in: Added some '.' after find. 
	
2005-12-09  Tom Tromey  <tromey@redhat.com>

	* javax/print/attribute/standard/Chromaticity.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/ColorSupported.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/Compression.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/Copies.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/CopiesSupported.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/DateTimeAtCompleted.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/DateTimeAtCreation.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/DateTimeAtProcessing.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/Destination.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/DocumentName.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/Fidelity.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/Finishings.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobHoldUntil.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobImpressions.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobImpressionsCompleted.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobImpressionsSupported.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobKOctets.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobKOctetsProcessed.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobKOctetsSupported.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobMediaSheets.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobMediaSheetsCompleted.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobMediaSheetsSupported.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobMessageFromOperator.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobName.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobOriginatingUserName.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobPriority.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobPrioritySupported.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobSheets.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobState.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobStateReason.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/JobStateReasons.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/Media.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/MediaPrintableArea.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/MediaSize.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/MultipleDocumentHandling.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/NumberOfDocuments.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/NumberOfInterveningJobs.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/NumberUp.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/NumberUpSupported.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/OrientationRequested.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/OutputDeviceAssigned.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PDLOverrideSupported.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PageRanges.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PagesPerMinute.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PagesPerMinuteColor.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PresentationDirection.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PrintQuality.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PrinterInfo.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PrinterIsAcceptingJobs.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PrinterLocation.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PrinterMakeAndModel.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PrinterMessageFromOperator.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PrinterMoreInfo.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PrinterMoreInfoManufacturer.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PrinterName.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PrinterResolution.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PrinterState.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PrinterStateReason.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PrinterStateReasons.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/PrinterURI.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/QueuedJobCount.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/ReferenceUriSchemesSupported.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/RequestingUserName.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/Severity.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/SheetCollate.java
	(getCategory): Genericized.
	* javax/print/attribute/standard/Sides.java
	(getCategory): Genericized.
	* javax/print/attribute/HashAttributeSet.java (get): Genericized.
	(remove): Likewise.
	* javax/print/attribute/Attribute.java (getCategory): Fixed return
	type.

2005-12-06  Anthony Balkissoon  <abalkiss@redhat.com> 

	* javax/swing/BoxLayout.java:
	(maximumLayoutSize): Add Insets to Dimension and then check for 
	overflow.

2005-12-06  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/GridBagLayout.java (ArrangeGrid): Use info rather than
	layoutInfo in the component for loop.  Cache layout information
	after resizing components.

2005-12-06  Anthony Balkissoon  <abalkiss@redhat.com>

	Fixes bug #25233
	* javax/swing/BoxLayout.java:
	(maximumLayoutSize): Don't add the Insets to the Dimension calculated 
	in checkTotalRequirements().

2005-12-06  Roman Kennke  <kennke@aicas.com>

	PR classpath/25256
	* java/awt/Container.java
	(LightweightDispatcher.acquireComponentForMouseEvent): Fixed
	the MOUSE_RELEASED flag and || conditional.

2005-12-06  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* java/lang/String.java (String): Better out-of-bounds and 
	overflow checks.

2005-12-06  Mark Wielaard  <mark@klomp.org>

	* javax/swing/LookAndFeel.java (toString): Include description and
	Class name.

2005-12-06  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/BorderLayout.java:
	(maximumLayoutSize): Don't calculate anything, just return a new 
	Dimension with Integer.MAX_VALUE for both dimensions.

2005-12-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(updateUI): Removed unneeded warning.

2005-12-06  Roman Kennke  <kennke@aicas.com>

	PR classpath/25256
	* java/awt/Container.java
	(LightweightDispatcher.acquireComponentForMouseEvent): When we
	receive a MOUSE_RELEASED then dispatch it to the same component
	that received the original MOUSE_PRESSED. This is needed for
	correct dragging behaviour.

2005-12-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ViewportLayout.java
	(layoutContainer): Don't set the view to it's minimumSize when the
	port is larger than the view. Rather it should left at it's
	preferred size. Also, I added a comment explaining a possible bug
	in this method.

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

	* javax/security/auth/Subject.java (Subject): Genericized.
	(getPrincipals): Likewise.
	(getPrivateCredentials): Likewise.
	(getPublicCredentials): Likewise.
	(getPublicCredentials): Likewise.

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

	* javax/imageio/ImageIO.java (ImageReaderIterator): Genericized.
	Added new constructor.
	(ImageWriterIterator): Likewise.
	(getReadersByFilter): Genericized.
	(getWritersByFilter): Likewise.
	(getImageReadersBySuffix): Likewise.
	(getImageWriters): Likewise.
	(hasNext): Likewise.
	* javax/print/attribute/AttributeSetUtilities.java
	(verifyAttributeCategory): Genericized.
	(verifyAttributeValue): Likewise.
	(verifyCategoryForValue): Likewise.
	* javax/print/attribute/AttributeSet.java (containsKey): Genericized.
	(get): Likewise.
	(remove): Likewise.
	* javax/print/attribute/Attribute.java (getCategory): Genericized.
	* javax/print/attribute/HashAttributeSet.java (HashAttributeSet):
	Genericized.
	(containsKey): Likewise.
	* javax/imageio/spi/ServiceRegistry.java (deregisterAll):
	Genericized.
	* javax/imageio/spi/IIOServiceProvider.java (onDeregistration):
	Genericized.
	(onRegistration): Likewise.
	* javax/imageio/metadata/IIOMetadataFormatImpl.java (getObjectClass):
	Genericized.
	(getObjectMaxValue): Likewise.
	(getObjectMinValue): Likewise.
	* javax/imageio/ImageIO.java (getImageReadersBySuffix): Genericized.
	(getImageWriters): Likewise.

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-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-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-05  Mark Wielaard  <mark@klomp.org>

	Fixes bug classpath/25257
	* lib/Makefile.am (FOUND_ECJ): Remove -warn typeHiding, unchecked and
	varargsCast flags for non-generic code.

2005-12-04  Guilhem Lavaux  <guilhem@kaffe.org>

	* java/net/URL.java (URL): Check whether context is null before
	accessing ph.

2005-12-04  Nicolas Geoffray  <nicolas.geoffray@menlina.com>

	* doc/vmintegration.texinfo: Added subsection in the classpath
	hooks for the java.lang.VMInstrumentationImpl class.

2005-12-04  Mark Wielaard  <mark@klomp.org>

	* javax/swing/TransferHandler
	(TransferAction.actionPerformed): Beep and return when clipboard
	is null.
	(getClipboard): Return null when access denied.
	(clipboard): Removed static field.

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.
	* java/lang/InstrumentationImpl.java:
	New file.
	* vm/reference/java/lang/VMInstrumentationImpl.java:
	New file. 

2005-12-03  Mark Wielaard  <mark@klomp.org>

	* configure.ac (AC_CONFIG_FILES): Removed
	native/jni/sampled-jack/Makefile.
	(AC_ARG_ENABLE [jack]): Removed.

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

	* javax/sound/sampled/Port.java (Info): Genericized.
	* javax/sound/sampled/Line.java (Info): Genericized.
	(getLineClass): Likewise.
	* javax/sound/sampled/DataLine.java (Info): Genericized.
	* javax/sound/sampled/AudioFormat.java (AudioFormat): Genericized.
	(properties): Likewise.
	* javax/sound/sampled/AudioFileFormat.java (AudioFileFormat):
	Genericized.
	(properties): Likewise.

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

	* javax/naming/directory/InitialDirContext.java (search): Genericized.
	* javax/naming/directory/BasicAttributes.java (getAll): Genericized.
	(getIDs): Likewise.
	* javax/naming/directory/BasicAttribute.java (getAll): Fixed return
	type.
	* javax/naming/InitialContext.java: Genericized.
	(list): Likewise.
	(listBindings): Likewise.
	* javax/naming/CompoundName.java (getAll): Genericized.
	* javax/naming/CompositeName.java (getAll): Genericized.

2005-12-02  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/InternationalFormatter.java:
	(valueToString): If argument is null return empty String.

2005-12-02  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JFormattedTextField.java: Added docs all over.
	(AbstractFormatter.clone): Implemented.
	(AbstractFormatter.getActions): Implemented.
	(AbstractFormatter.getDocumentFilter): Implemented.
	(AbstractFormatter.getNavigationFilter): Implemented.
	(AbstractFormatter.install): Install the DocumentFilter and 
	NavigationFilter.  Properly catch ParseException.  Added FIXME to add
	custom Actions to the JFormattedTextField.
	(AbstractFormatter.uninstall): Remove the DocumentFilter and 
	NavigationFilter.  Added FIXME to remove the custom Actions.
	(JFormattedTextField(AbstractFormatter)): Call the single argument
	constructor that takes in an AbstractFormatterFactory.  This avoids a 
	call to setValue that shouldn't occur.
	(JFormattedTextField(AbstractFormatterFactory): Call 
	setFormatterFactory instead of calling the 2-argument constructor which
	would also make an unwanted call to setValue.
	(JFormattedTextField(AbstractFormatterFactory, Object)): Switch the 
	order of the calls to setValue and setFormatterFactory.  This ensures
	that the passed in factory is actually the one used, not one generated
	by setValue.
	(commitEdit): Implemented.
	(setFormatter): Removed incorrect early escape if the parameter is the 
	same as the current formatter.  
	(setFormatterFactory): If formatterFactory is null set the formatter to
	null as	well.
	(setValue): Don't set the text here, this is done when we call 
	setFormatter and it calls AbstractFormatter.install.  Create a 
	formatter factory if one doesn't exist already. Call setFormatter to
	get an appropriate formatter from the factory.
	(createFormatter): Changed this to createFormatterFactory because we
	should return a factory, not just a formatter.
	(createFormatterFactory): New method adapted from createFormatter.

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

	* javax/imageio/spi/RegisterableService.java (onRegistration):
	Genericized.
	(onDeregistration): Likewise.
	* javax/imageio/spi/ServiceRegistry.java (ServiceRegistry):
	Genericized.
	(deregisterServiceProvider): Likewise.
	(getCategories): Likewise.
	(getServiceProviderByClass): Likewise.
	(getServiceProviders): Likewise.
	(lookupProviders): Likewise.
	(registerServiceProvider): Likewise.
	(registerServiceProviders): Likewise.
	(setOrdering): Likewise.
	(unsetOrdering): Likewise.
	* javax/imageio/spi/ImageOutputStreamSpi.java (outputClass):
	Genericized.
	(ImageOutputStreamSpi): Likewise.
	(getOutputClass): Likewise.
	* javax/imageio/spi/ImageInputStreamSpi.java (inputClass):
	Genericized.
	(ImageInputStreamSpi): Likewise.
	(getInputClass): Likewise.
	* javax/imageio/metadata/IIOMetadataFormatImpl.java (addAttribute):
	Genericized.
	(addObjectValue): Likewise.
	* javax/imageio/metadata/IIOMetadataFormat.java (getObjectClass):
	Genericized.
	(getObjectMaxValue): Likewise.
	(getObjectMinValue): Likewise.
	* javax/imageio/ImageIO.java (getImageReaders): Genericized.
	(getImageReadersByFormatName): Likewise.
	(getImageReadersByMIMEType): Likewise.
	(getImageTranscoders): Likewise.
	(getImageWritersByFormatName): Likewise.
	(getImageWritersByMIMEType): Likewise.
	(getImageWritersBySuffix): Likewise.
	(getImageReader): Use getOriginatingProvider.
	(getImageWriter): Likewise.
	* javax/imageio/ImageWriter.java (progressListeners): Genericized.
	(warningListeners): Likewise.
	(warningLocales): Likewise.
	(prepareInsertEmpty): Likewise.
	(prepareWriteEmpty): Likewise.
	* javax/imageio/ImageReader.java (progressListeners): Genericized.
	(updateListeners): Likewise.
	(warningListeners): Likewise.
	(warningLocales): Likewise.
	(getDestination): Likewise.
	(getImageMetadata): Likewise.
	(getImageTypes): Likewise.
	(getStreamMetadata): Likewise.
	(readAll): Likewise.
	* javax/imageio/IIOImage.java (IIOImage): Genericized.
	(thumbnails): Likewise.
	(getThumbnails): Likewise.
	(setThumbnails): Likewise.

2005-12-01  Anthony Green  <green@redhat.com>

        PR bootstrap/25207
	* configure.ac: Make sure we have an alsa library in addition to
        the headers.  This extra test is required for systems with
        multilibs.

2005-11-30  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JFormattedTextField.java:
	(AbstractFormatter.install): Try to set the text of the formatted text
	field using this formatter.
	(FormatterFactoryWrapper): Removed this unneeded class, this is handled
	by DefaultFormatterFactory now.
	(formatter): New field.
	(JFormattedTextField(Format)): Implemented.
	(JFormattedTextField(AbstractFormatter)): Instantiate a 
	DefaultFormatterFactory instead of a FormatterFactoryWrapper.
	(JFormattedTextField(AbstractFormatterFactory, Object)): Call setValue
	and setFormatterFactory instead of setting variables directly because
	more needs to be done than just setting the value of the variables.
	(JFormattedTextField(Object value)): Call setValue instead of setting 
	the variable directly.
	(getAppropriateFormatterFactory): New implementation method.
	(getFormatter): Don't use the formatter factory here, just return 
	the cached formatter.
	(processFocusEvent): Set the formatter to the appropriate one as 
	determined by the formatter factory.
	(setFormatter): Don't get the old formatter from the factory, just use
	the cached formatter.  Uninstall the old formatter. Install the new
	formatter. Cache the new formatter.  Don't create a new formatter
	factory.
	(setFormatterFactory): Set the formatter according to the new formatter
	factory.
	(setValue): Moved the setting of the value variable to above the call
	to createFormatter so that an appropriate formatter is created.  Cache
	the formatter that is created.
	(createFormatter): If argument is a Number, use a NumberFormatter.
	* javax/swing/text/DefaultFormatter.java:
	(valueToString): If argument is null return empty String.

2005-11-30  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(actionPerformed): Added check to determine if 
	parentPath is null.
	(actionPerformed): Set selected file and files to null
	if 'cancel' was clicked.
	(mouseClicked): Cleaned up code a bit and set the selected
	files if multi-selection is enabled. Also, added code to 
	set the file name in the text field if the selection mode
	is DIRECTORIES_ONLY.
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(actionPerformed): No need to set fileListPanel, it is
	set in createList.
	(actionPerformed): Likewise.
	(propertyChange): If the dialog type is SAVE, then the
	approve button text should change depending on what
	is currently selected. It should say 'Open', if a 
	directory is currently selected.
	(actionPerformed): Fixed check.
	(mouseClicked): Added code to set the file name in 
	the text field if the selection mode
	is DIRECTORIES_ONLY.
	(editFile): Adjusted y position of editing text field in table.
	(installListeners): Added code to initially install listeners 
	to the list.
	(createList): Cleaned up and made more efficent.
	(createDetailsView): No need to set intercellSpacing.
	(updateTable): Cleaned up and made more efficent.
	
2005-11-30  Anthony Balkissoon  <abalkiss@redhat.com>

	Fixes bug #25165
	* java/awt/Component.java:
	(processFocusEvent): Don't check if focus opposite is the same as the
	receiving Component, this is now done in dispatchEventImpl.
	(dispatchEventImpl): Don't dispatch FocusEvents whose opposite 
	Components are the same.

2005-11-30  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/standard/Compression.java: 
	Added java docs to class and methods.
	(getStringTable): New overridden method.
	(getEnumValueTable): New overridden method.
	(stringTable): New field.
	(enumValueTable): New field.
	* javax/print/attribute/standard/ColorSupported.java: 
	Added java docs to class and methods.
	(getStringTable): New overridden method.
	(getEnumValueTable): New overridden method.
	(stringTable): New field.
	(enumValueTable): New field.
	* javax/print/attribute/standard/Chromaticity.java: 
	Added java docs to class and methods.
	(getStringTable): New overridden method.
	(getEnumValueTable): New overridden method.
	(stringTable): New field.
	(enumValueTable): New field.

2005-11-30  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/Component.java:
	(processFocusEvent): Don't dispatch events if the focus opposite is the
	same as the receiving Component.

2005-11-30  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/PropertyChangeSupport.java:
	(fireIndexedPropertyChange): Completed statement.

2005-11-30  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/PropertyChangeSupport.java:
	(fireIndexedPropertyChange): Removed argument checking.

2005-11-30  Jan Roehrich  <jan@roehrich.info>

	* java/awt/datatransfer/SystemFlavorMap.java
	(isJavaMIMEType): implemented.
	(GNU_JAVA_MIME_PREFIX): added constant.
	(decodeJavaMIMEType): implemented.
	(encodeJavaMIMEType): implemented.
	(encodeDataFlavor): implemented.

2005-11-30  Jan Roehrich  <jan@roehrich.info>

	* java/awt/datatransfer/SystemFlavorMap.java
	Some minor codestyle fixes.
	(nativeToFlavorMap): removed generalization.
	(flavorToNativeMap): likewise.

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

	* javax/swing/text/StyleContext.java (removeAttributes): Genericized.
	(getAttributeNames): Likewise.
	* javax/swing/text/SimpleAttributeSet.java (getAttributeNames):
	Genericized.
	(removeAttributes): Likewise.
	* javax/swing/text/DefaultStyledDocument.java (getStyleNames):
	Genericized.
	* javax/swing/text/AbstractDocument.java (getAttributeNames):
	Genericized.
	(removeAttributes): Likewise.
	* javax/swing/table/TableColumnModel.java (getColumns): Genericized.
	* javax/swing/table/AbstractTableModel.java (getColumnClass):
	Genericized.
	* javax/swing/tree/VariableHeightLayoutCache.java
	(getVisiblePathsFrom): Genericized.
	* javax/swing/tree/FixedHeightLayoutCache.java (getVisiblePathsFrom):
	Genericized.
	* javax/swing/undo/StateEdit.java (postState): Genericized.
	(preState): Likewise.
	* javax/security/sasl/SaslServerFactory.java (createSaslServer):
	Genericized.
	* javax/security/sasl/SaslClientFactory.java (createSaslClient):
	Genericized.
	(getMechanismNames): Likewise.
	* javax/security/sasl/Sasl.java (createSaslClient): Genericized.
	(createSaslServer): Likewise.
	(getSaslClientFactories): Likewise.
	(getSaslServerFactories): Likewise.
	* javax/security/auth/spi/LoginModule.java (initialize): Genericized.
	* javax/security/auth/login/AppConfigurationEntry.java
	(AppConfigurationEntry): Genericized.
	(getOptions): Likewise.
	* javax/sql/RowSet.java (getTypeMap): Genericized.
	(setTypeMap): Likewise.
	* java/sql/Array.java (getResultSet): Genericized.
	* java/security/cert/X509CertSelector.java (getExtendedKeyUsage):
	Genericized.
	* java/security/Permissions.java (elements): Genericized.
	* java/rmi/server/RMIClassLoader.java (loadClass): Genericized.

2005-11-29  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(actionPerformed): Changed to update list with all 
	selected intervals, and to use fileTablePanel instead.
	(actionPerformed): Likewise.
	(propertyChange): Changed to use addSelectionInterval
	instead of setSelectionInterval.
	(uninstallComponents): Uninstalled fileTablePanel.
	(installListeners): Moved code to createList, so listeners
	are installed for every list that may be created.
	(createList): Added code to remove and install listeners on
	list.
	(createDetailsView): Changed to use own panel. Also, added
	code to set the selection mode.

2005-11-29  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(mouseClicked): Fixed checks to prevent NPE.

2005-11-29  Lillian Angel  <langel@redhat.com>

	* javax/swing/JViewport.java
	(setView): Added check to prevent NPE.
	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(ListLabelRenderer): Removed class, never used.
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(DetailTableModel): Removed, not needed.
	(TableFileRenderer): Implemented to override some color
	and icon defaults in the default table renderer.
	(actionPerformed): Set selection in list, if something was
	selected in the table.
	(actionPerformed): Set selection in table, if something was
	selected in the list.
	(propertyChange): Added code to set the selection for the table, 
	as well as the list. This depends on what view we are in.
	(editFile): Fixed to call scrollRectToVisible instead.
	(TableClickListener): Implemented new private class to take
	care of double clicking (changing/opening directories/files)
	and single clicking (editing).
	(TableClickListener.mouseClicked): Implemented
	(TableClickListener.editFile): Implemented
	(TableClickListener.completeEditing): Implemented
	(TableClickListener.EditingActionListener): Implemented
	(TableClickListener.closeDialog): Implemented
	(installListeners): Added code to initialize listener fields.
	(uninstallListeners): Added code to uninstall all listeners.
	(createList): Changed to use scrollPane field.
	(createDetailsView): Changed to use updateTable function. Set
	some characteristics for the table: column selection, renderer,
	listener etc.
	(updateTable): Implemented to changed/add/remove rows from the
	table, as needed.
	(removeControlButtons): Added repaint, revalidate calls.
	(ensureFileIsVisible): Removed. Does the same thing as super.
	(rescanCurrentDirectory): Added check for different views.
	(setDirectorySelected): Removed. Does the same thing as super.
	(getDirectoryName): Removed. Does the same thing as super.
	(setDirectoryName): Removed. Does the same thing as super.
	(valueChanged): Changed comment.

2005-11-29  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultFormatterFactory.java: New class.

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

	PR classpath/25141:
	* java/net/URL.java (URL): Use context's stream handler.

2005-11-29  Jan Roehrich  <jan@roehrich.info>

	* java/awt/datatransfer/SystemFlavorMap.java
	(nativeToFlavorMap): added field.
	(flavorToNativeMap): added field.
	(addFlavorForUnencodedNative): added method.
	(setNativesForFlavor): added method.
	(addUnencodedNativeForFlavor): added method.
	(setFlavorsForNative): added method.

2005-11-28  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(DetailTableModel): New Class implemented to override selected
	methods in DefaultTableModel. More methods will be added later.
	(ListViewActionListener): New class implemented. 
	(DetailViewActionListener): New class implemented.
	(completeEditing): Set boolean to false.
	(mouseClicked): Added check to make sure editing only starts when
	left mouse button is clicked.
	(editFile): Set boolean to true.
	(actionPerformed): Set boolean to false.
	(createList): Commented out wrap code until JList bug is fixed.
	(createActionMap): Added action for cancelSelection.
	(createDetailsView): Partially implemented to display details view
	table. 
	(formatSize): Private function added to convert bytes to an
	appropriate size String for the table.
	(getPreferredSize): Implemented.
	(getMinimumSize): Implemented.
	(addControlButtons): Added action listeners for detailButton and
	listButton.
	(setDirectorySelected): Added API documentation.
	(getDirectoryName): Likewise.
	(setDirectoryName): Likewise.
	(valueChanged): Likewise.

2005-11-28  Lillian Angel  <langel@redhat.com>

	* javax/swing/JList.java
	(init): Layout should not be set to FlowLayout. JDK sets it to null.
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(mouseClicked): Changed to call completeEditing when double-clicked.
	(editFile): Fixed to add an action listener to the editing field.
	Editing	for filechooser now works.
	(completeEditing): Fixed renaming to create a new file object and
	rescan the directory if renaming was successful. Added code to cancel
	editing as well.
	(EditingActionListener): New class to listen for notify action and
	to complete editing when enter is pressed. Otherwise, editing is
	cancelled.
	* javax/swing/plaf/metal/MetalSplitPaneDivider.java
	(MetalDividerLayout): Changed to public.
	(MetalDividerLayout.init): Likewise.

2005-11-27  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* java/util/logging/XMLFormatter.java (format): Don't call 
	getMillis() twice.

2005-11-27  Tom Tromey  <tromey@redhat.com>

	* javax/print/attribute/standard/PrinterStateReasons.java:
	Genericized.
	* javax/print/attribute/standard/JobStateReasons.java: Genericized.
	* javax/print/PrintService.java (getAttribute): Genericized.
	(getDefaultAttributeValue): Likewise.
	(getSupportedAttributeCategories): Likewise.
	(getSupportedAttributeValues): Likewise.
	(isAttributeValueSupported): Likewise.

2005-11-27  Tom Tromey  <tromey@redhat.com>

	* javax/naming/spi/StateFactory.java (getStateToBind): Genericized.
	* javax/naming/spi/Resolver.java (resolveToClass): Genericized.
	* javax/naming/spi/ObjectFactoryBuilder.java (createObjectFactory):
	Genericized.
	* javax/naming/spi/NamingManager.java (getInitialContext):
	Genericized.
	(getURLContext): Likewise.
	(getObjectInstance): Likewise.
	(getStateToBind): Likewise.
	* javax/naming/spi/InitialContextFactoryBuilder.java
	(createInitialContextFactory): Genericized.
	* javax/naming/spi/InitialContextFactory.java (getInitialContext):
	Genericized.
	* javax/naming/spi/DirectoryManager.java (getObjectInstance):
	Genericized.
	(getStateToBind): Likewise.
	* javax/naming/spi/DirStateFactory.java (getStateToBind):
	Genericized.
	* javax/naming/spi/ObjectFactory.java (getObjectInstance):
	Genericized.
	* javax/naming/spi/DirObjectFactory.java (getObjectInstance):
	Genericized.
	* javax/naming/ldap/LdapReferralException.java (getReferralContext):
	Genericized.
	* javax/naming/ldap/ControlFactory.java (getControlInstance):
	Genericized.
	* javax/naming/ldap/InitialLdapContext.java (InitialLdapContext):
	Genericized.
	* javax/naming/directory/DirContext.java (search): Genericized.
	* javax/naming/directory/Attributes.java (getAll): Genericized.
	(getIDs): Likewise.
	* javax/naming/directory/Attribute.java (getAll): Genericized.
	* javax/naming/directory/BasicAttribute.java (values): Genericized.
	(getAll): Likewise.
	* javax/naming/directory/InitialDirContext.java (InitialDirContext):
	Genericized.
	* javax/naming/ReferralException.java (getReferralContext):
	Genericized.
	* javax/naming/Name.java (getAll): Genericized.
	* javax/naming/Context.java (getEnvironment): Genericized.
	(list): Likewise.
	(listBindings): Likewise.
	* javax/naming/NamingEnumeration.java: Genericized.
	(next): Likewise.
	* javax/naming/Reference.java (addrs): Genericized.
	(getAll): Likewise.
	* javax/naming/CannotProceedException.java (environment): Genericized.
	(getEnvironment): Likewise.
	(setEnvironment): Likewise.
	* javax/naming/InitialContext.java (myProps): Genericized.
	(InitialContext): Likewise.
	(init): Likewise.
	* javax/naming/CompoundName.java (CompoundName): Genericized.
	* javax/naming/CompositeName.java (CompositeName): Genericized.

2005-11-27  Tom Tromey  <tromey@redhat.com>

	* java/sql/Struct.java (getAttributes): Genericized.
	* java/sql/ResultSet.java (getObject): Genericized.
	* java/sql/Ref.java (getObject): Genericized.
	* java/sql/DriverManager.java (getDrivers): Genericized.
	* java/sql/Connection.java (getTypeMap): Genericized.
	(setTypeMap): Likewise.
	* java/sql/CallableStatement.java (getObject): Genericized.
	(getObject): Likewise.
	* java/sql/Array.java (getBaseTypeName): Fixed javadoc.
	(getArray): Likewise.
	(getResultSet): Likewise.
	(getResultSet): Likewise.
	(getArray): Genericized.
	(getResultSet): Likewise.

2005-11-27  Tom Tromey  <tromey@redhat.com>

	* java/beans/PropertyChangeSupport.java (fireIndexedPropertyChange):
	New methods.
	* java/beans/IndexedPropertyChangeEvent.java: New file.

2005-11-26  Tom Tromey  <tromey@redhat.com>

	* java/lang/StackTraceElement.java (StackTraceElement): New
	constructor.

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

	* javax/swing/text/StyleContext.java (getStyleNames): Genericized.
	* javax/swing/text/MutableAttributeSet.java (removeAttributes):
	Genericized.
	* javax/swing/text/DefaultFormatter.java (getValueClass): Genericized.
	(setValueClass): Likewise.
	* javax/swing/text/AttributeSet.java (getAttributeNames): Genericized.
	* javax/swing/text/AbstractDocument.java (getDocumentProperties):
	Genericized.
	(setDocumentProperties): Likewise.
	(removeAttributes): Likewise.
	* javax/swing/SwingUtilities.java (getAncestorOfClass): Genericized.
	* javax/swing/LookAndFeel.java (makeIcon): Genericized.
	* javax/swing/JTable.java (getColumnClass): Genericized.
	(getDefaultRenderer): Likewise.
	(setDefaultRenderer): Likewise.
	(getDefaultEditor): Likewise.
	(setDefaultEditor): Likewise.
	* javax/swing/JLayeredPane.java (getComponentToLayer): Genericized.
	* javax/swing/DefaultListModel.java (elements): Genericized.
	* javax/swing/ButtonGroup.java (buttons): Genericized.
	(getElements): Likewise.
	* javax/swing/SpinnerListModel.java (SpinnerListModel): Genericized.
	(getList): Likewise.
	(setList): Likewise.
	* javax/swing/SortingFocusTraversalPolicy.java
	(SortingFocusTraversalPolicy): Genericized.
	(getComparator): Likewise.
	(setComparator): Likewise.
	* javax/swing/JTree.java (JTree): Genericized.
	(getDescendantToggledPaths): Likewise.
	(getExpandedDescendants): Likewise.
	(removeDescendantToggledPaths): Likewise.
	* javax/swing/JList.java (JList): Genericized.
	Likewise.
	* javax/swing/JComboBox.java (JComboBox): Genericized.
	* javax/swing/DefaultComboBoxModel.java (DefaultComboBoxModel):
	Genericized.
	* javax/swing/UIDefaults.java: Genericized superclass.
	(getUIClass): Likewise.
	* javax/swing/event/EventListenerList.java (getListenerCount):
	Genericized.
	* javax/swing/plaf/basic/BasicDirectoryModel.java (getDirectories):
	Genericized.
	(getFiles): Likewise.
	(sort): Likewise.
	* javax/swing/plaf/basic/BasicTreeUI.java (drawingCache): Genericized.
	* javax/swing/plaf/basic/BasicFileChooserUI.java (iconCache):
	Genericized.
	* javax/swing/table/TableModel.java (getColumnClass): Genericized.
	* javax/swing/table/DefaultTableColumnModel.java (tableColumns):
	Genericized.
	(getColumns): Likewise.
	(moveColumn): Updated.
	* javax/swing/text/html/parser/ContentModel.java (getElements):
	Genericized.
	* javax/swing/text/html/parser/DTD.java (entityHash): Fixed type.
	* javax/swing/text/html/parser/AttributeList.java (AttributeList):
	Genericized.
	(values): Likewise.
	(getValues): Likewise.
	* javax/swing/tree/AbstractLayoutCache.java (getVisiblePathsFrom):
	Genericized.
	* javax/swing/tree/DefaultMutableTreeNode.java (EMPTY_ENUMERATION):
	Genericized.
	* javax/swing/undo/StateEditable.java (restoreState): Genericized.
	(storeState): Likewise.

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

	* java/rmi/server/RMIClassLoaderSpi.java (loadClass): Genericized.
	(loadProxyClass): Likewise.
	(getClassAnnotation): Likewise.
	* java/rmi/server/RMIClassLoader.java (loadClass): Genericized.
	(getClassAnnotation): Likewise.
	* java/rmi/server/LoaderHandler.java (loadClass): Genericized.

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

	* java/awt/Font.java (Font): Genericized.
	(deriveFont): Likewise.
	(getAttributes): Likewise.
	(getFont): Likewise.

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

	* java/text/NumberFormat.java (format): No longer final.
	* java/text/AttributedCharacterIterator.java (getAllAttributeKeys):
	Genericized.
	(getAttributes): Likewise.
	(getRunLimit): Likewise.
	(getRunStart): Likewise.
	* java/text/AttributedString.java (AttributedString): Genericized.
	(addAttributes): Likewise.
	* java/text/Collator.java: Implement Comparator<Object>.

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

	* java/security/cert/X509Extension.java (getCriticalExtensionOIDs):
	Genericized.
	(getNonCriticalExtensionOIDs): Likewise.
	* java/security/cert/X509Certificate.java (getExtendedKeyUsage):
	Genericized.
	(getIssuerAlternativeNames): Likewise.
	(getSubjectAlternativeNames): Likewise.
	* java/security/cert/X509CertSelector.java (setExtendedKeyUsage):
	Genericized.
	(setSubjectAlternativeNames): Likewise.
	* java/security/cert/X509CRLSelector.java (getIssuerNames):
	Genericized.
	(setIssuerNames): Likewise.
	* java/security/cert/X509CRL.java (getRevokedCertificates):
	Genericized.
	* java/security/cert/PolicyNode.java (getChildren): Genericized.
	(getExpectedPolicies): Likewise.
	(getPolicyQualifiers): Likewise.
	* java/security/cert/PKIXCertPathChecker.java (check): Genericized.
	(getSupportedExtensions): Likewise.
	* java/security/cert/CertificateFactorySpi.java
	(engineGenerateCertPath): Genericized.
	(engineGenerateCertificates): Likewise.
	(engineGenerateCRLs): Likewise.
	(engineGetCertPathEncodings): Likewise.
	* java/security/cert/CertificateFactory.java (generateCertificates):
	Genericized.
	(generateCertPath): Likewise.
	(generateCRLs): Likewise.
	(getCertPathEncodings): Likewise.
	* java/security/cert/CertStoreSpi.java (engineGetCertificates):
	Genericized.
	(engineGetCRLs): Likewise.
	* java/security/cert/CertStore.java (getCertificates): Genericized.
	(getCRLs): Likewise.
	* java/security/cert/CertPath.java (getCertificates): Genericized.
	(getEncodings): Likewise.
	* java/security/cert/PKIXParameters.java (PKIXParameters):
	Genericized.
	(getCertStores): Likewise.
	(getCertPathCheckers): Likewise.
	(getInitialPolicies): Likewise.
	(getTrustAnchors): Likewise.
	(setCertPathCheckers): Likewise.
	(setCertStores): Likewise.
	(setInitialPolicies): Likewise.
	(setTrustAnchors): Likewise.
	* java/security/cert/PKIXBuilderParameters.java
	(PKIXBuilderParameters): Genericized.
	* java/security/cert/CollectionCertStoreParameters.java
	(CollectionCertStoreParameters): Genericized.
	(getCollection): Likewise.
	* java/security/cert/PolicyQualifierInfo.java: No longer final.

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

	* java/security/Security.java (getAlgorithms): Genericized.
	(getProviders): Likewise.
	* java/security/SecureClassLoader.java (defineClass): Genericized.
	(protectionDomainCache): Likewise.
	* java/security/PermissionCollection.java (elements): Genericized.
	(toString): Updated.
	* java/security/KeyStoreSpi.java (engineAliases): Genericized.
	* java/security/KeyStore.java (aliases): Genericized.
	* java/security/KeyFactorySpi.java (engineGetKeySpec): Genericized.
	(engineTranslateKey): Fixed javadoc.
	* java/security/KeyFactory.java (getKeySpec): Genericized.
	* java/security/IdentityScope.java (identities): Genericized.
	* java/security/AlgorithmParametersSpi.java (engineGetParameterSpec):
	Genericized.
	* java/security/AlgorithmParameters.java (getParameterSpec):
	Genericized.
	* java/security/AccessController.java (doPrivileged): Genericized.
	* java/security/PrivilegedExceptionAction.java: Genericized.
	* java/security/PrivilegedAction.java: Genericized.

2005-11-25  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/jni/java-io/javaio.c, native/jni/java-io/javaio.h:
	Removed.
	* native/jni/java-io/java_io_VMFile.c: Removed dependency on
	javaio.h
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c:
	Likewise.
	
2005-11-25  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalSplitPaneDivider.java
	(MetalDividerLayout): Fixed class name to MetalDividerLayout 
	instead of DividerLayout.
	(MetalSplitPaneDivider): Fixed setLayout call.

2005-11-25  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(mouseClicked): Fixed to keep track of last object clicked,
	instead of index. Problems arise when lists change for different
	directories and using the index.
	(editFile): Fixed size and location for text field. Painting is still
	a little messed up when typing because there is no action listener yet.

2005-11-26  Jan Roehrich  <jan@roehrich.info>

	* java/awt/datatransfer/SystemFlavorMap.java
	(defaultFlavorMap): removed.
	(systemFlavorMaps): added static field.
	(getDefaultFlavorMap): reimplemented using systemFlavorMaps.
	
2005-11-25  Lillian Angel  <langel@redhat.com>

	* javax/swing/JFileChooser.java:
	selectedFiles field should not be initialized.
	(getSelectedFiles): Should return empty array, not null.
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(MetalFileChooserSelectionListener): Added comment.
	(valueChanged): Fixed API documentation.
	(SingleClickListener): Likewise.
	(SingleClickListener.init): Added field initializations.
	(mouseClicked): Implemented.
	(editFile): Partially implemented.
	(completeEditing): Implemented.
	(installUI): Added call to create the action map.
	(uninstallUI): Set actionMap to null.
	(getActionMap): Implemented.
	(createList): Uncommented code.
	(removeControlButtons): Implemented.	

2005-11-25  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c:
	Fixed typo.

2005-11-25  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(drawString): Changed pointer to be const, and fixed check to
	draw characters only if they are >= ' '. Handles all control
	characters.

2005-11-25  Mark Wielaard  <mark@klomp.org>

	Fixes bug #24981
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
	(clipboard_targets_received): DeleteLocalRef of NewStringUTF.
	(clipboard_text_received): Likewise.
	(clipboard_uris_received): Likewise.

2005-11-25  Lillian Angel  <langel@redhat.com>

	* javax/swing/JList.java
	(JList): Set default selection mode.
	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(DoubleClickListener): No need for timer here.
	(mouseClicked): Removed timer code, and added check for double click.
	Problems with opening wrong directory is now fixed.
	* javax/swing/plaf/basic/BasicListUI.java
	(mouseDragged): Implemented.
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(propertyChange): Implemented MULTI_SELECTION_ENABLED_CHANGED_PROPERTY
	property change.
	(getListCellRendererComponent): Set opaque property, so background
	color on cell is painted.
	(SingleClickListener.init): Implemented.
	(installStrings): Fixed tooltip text strings.

2005-11-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JFileChooser.java
	(selectedFiles): Initialise,
	(JFileChooser(String)): Delegate to another constructor,
	(JFileChooser(String, FileSystemView)): Convert directory to file,
	(setSelectedFile): Check for current selection == null,
	(getSelectedFiles): Updated API docs,
	(setSelectedFiles): Changed order of event generation,
	(changeToParentDirectory): Don't check for null parent (reference
	implementation doesn't),
	(addChoosableFileFilter): Change handling of null filter,
	(removeChoosableFileFilter): Handle case where removed filter is also
	the current selection,
	(setAcceptAllFileFilterUsed): Add or remove accept all filter as 
	appropriate,
	(setFileFilter): Add new filter to choosable filters if necessary,
	(accept): Reimplemented,
	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(ApproveSelectionAction.ApproveSelectionAction): Set action name,
	(ApproveSelectionAction.actionPerformed): Call getFileName() rather
	than accessing JTextField directly,
	(CancelSelectionAction.CancelSelectionAction): Set action name,
	(ChangeToParentDirectoryAction.ChangeToParentDirectoryAction): Set 
	action name,
	(DoubleClickListener.mouseClicked): Call setFileName rather than 
	accessing JTextField directly,
	(GoHomeAction.GoHomeAction): Set action name,
	(NewFolderAction.NewFolderAction): Set action name,
	(SelectionListener.valueChanged): Get list from event,
	(UpdateAction.UpdateAction): Set action name to null,
	(computerIcon): Removed initialization,
	(detailsViewIcon): Likewise,
	(directoryIcon): Likewise,
	(fileIcon): Likewise,
	(floppyDriveIcon): Likewise,
	(hardDriveIcon): Likewise,
	(homeFolderIcon): Likewise,
	(listViewIcon): Likewise,
	(upFolderIcon): Likewise,
	(fileList): Removed,
	(filters): Removed,
	(ICON_SIZE): Removed,
	(parents): Removed,
	(filename): Removed,
	(cancel): Removed,
	(upFolderButton): Removed,
	(newFolderButton): Removed,
	(homeFolderButton): Removed,
	(approveSelectionAction): New field,
	(cancelSelectionAction): New field,
	(goHomeAction): New field,
	(changeToParentDirectoryAction): New field,
	(newFolderAction): New field,
	(updateAction): New field,
	(BasicFileChooserUI): Do nothing here,
	(installUI): Initialise filechooser field,
	(createBoxListener): Removed,
	(createFilterListener): Removed,
	(filterEntries): Removed,
	(installComponents): Do nothing here,
	(uninstallComponents): Do nothing here,
	(installListeners): Removed component specific listeners,
	(installIcons): Use Metal icons,
	(unintallIcons): Clear icons,
	(installStrings): Use fixed strings for text items that aren't defined
	in the UI defaults - should implement localised strings later,
	(uninstallStrings): Clear text items,
	(createPropertyChangeListener): Return blank listener,
	(getFileName): TODO,
	(setFileName): TODO,
	(rescanCurrentDirectory): Remove call on deleted filelist,
	(getApproveButton): Just return field,
	(getFileView): Updated API docs,
	(getDialogTitle): Reimplemented,
	(getApproveButtonText): Reimplemented,
	(getNewFolderAction): Create new instance if required,
	(getGoHomeAction): Likewise,
	(getChangeToParentDirectoryAction): Likewise,
	(getApproveSelectionAction): Likewise,
	(getCancelSelectionAction): Likewise,
	(getUpdateAction): Likewise,
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(MetalFileChooserPropertyChangeListener): New class,
	(DirectoryComboBoxRenderer): New class,
	(FilterComboBoxModel.selectedIndex): Removed field,
	(FilterComboBoxModel.selected): New field,
	(FilterComboBoxModel.FilterComboBoxModel): Initialise selected field,
	(FilterComboBoxModel.propertyChange): Update filter list,
	(FilterComboBoxModel.setSelectedItem): Reimplemented,
	(FilterComboBoxModel.getSelectedItem): Return selected field,
	(FilterComboBoxRenderer.getListCellRendererComponent): Call super,
	(MetalFileChooserSelectionListener): New class,
	(SingleClickListener): New class TODO,
	(directoryLabel): New field,
	(directoryComboBox): New field,
	(fileLabel): New field,
	(fileTextField): New field,
	(filterLabel): New field,
	(topPanel): New field,
	(controls): New field,
	(bottomPanel): New field,
	(buttonPanel): New field,
	(approveButton): New field,
	(fileList): New field,
	(fileListPanel): New field,
	(filterModel): New field,
	(MetalFileChooserUI): Initialise panels,
	(installUI): TODO,
	(uninstallUI): TODO,
	(installComponents): Implemented,
	(uninstallComponents): Implemented,
	(getButtonPanel): Implemented,
	(getBottomPanel): Implemented,
	(installStrings): Implemented,
	(installListeners): Implemented,
	(uninstallListeners): Implemented,
	(getActionMap): TODO,
	(createActionMap): Implemented,
	(createList): Implemented,
	(createDetailsView): Implemented,
	(createListSelectionListener): Implemented,
	(getPreferredSize): Implemented badly,
	(getMinimumSize): Likewise,
	(getMaximumSize): Implemented,
	(createPropertyChangeListener): Implemented,
	(createDirectoryComboBoxRenderer): Implemented,
	(addControlButtons): Implemented,
	(removeControlButtons): TODO,
	(ensureFileIsVisible): TODO,
	(rescanCurrentDirectory): Implemented,
	(getFileName): Implemented,
	(setFileName): Implemented,
	(setDirectorySelected): TODO,
	(getDirectoryName): TODO,
	(setDirectoryName): TODO,
	(valueChanged): TODO,
	(getApproveButton): Implemented,
	(VerticalMidLayout): New support class,
	(ButtonLayout): New support class,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initClassDefaults): Add 'FileChooserUI' default,
	(initComponentDefaults): Added FileChooser icons.

2005-11-25  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
	(current_selection): Define as gint.
	(clipboard_clear_func): Extract user_data with GPOINTER_TO_INT.
	(Java_gnu_java_awt_peer_gtk_GtkClipboard_advertiseContent):
	Convert current_selection with GINT_TO_POINTER.

2005-11-25  Mark Wielaard  <mark@klomp.org>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java (paintIcon): Only
	paint icon when not null.

2005-11-25  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c 
	(save_to_stream): Added missing DeleteLocalRef call.

2005-11-24  Sven de Marothy  <sven@physto.se>

	* javax/print/attribute/standard/MediaName.java,
	* javax/print/attribute/standard/MediaTray.java:
	New files.
	* javax/print/attribute/standard/MediaSize.java:
	Added "ISO", "NA", "JIS" and "Other" enumerations of standard sizes.
	* javax/print/attribute/standard/MediaSizeName.java:
	(getEnumValueTable, getStringTable): Add stubs.

2005-11-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/PasswordView.java
	(modelToView): Overridden to correctly map between model and view
	respecting the echo character.
	(viewToModel): Added FIXME to show that this method also needs
	to be adjusted like the above method.
	* javax/swing/text/PlainView.java
	(paint): Don't set the font here. This is already done in the
	text component's JComponent.getComponentGraphics() method.
	(damageLineRange): Only repaint the damaged rectangle.

2005-11-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLabelUI.java
	(getPreferredSize): Don't use deprecated method to acquire
	FontMetrics object. This can be done more elegantly using
	Component.getFontMetrics().
	(paint): Removed unnecessary font setting code. This is already
	performed in JComponent.getComponentGraphics().

2005-11-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/table/DefaultTableCellRenderer.java
	(getTableCellRendererComponent): Don't set enabled flag on the
	renderer. The cells are rendered normally even when the table
	is disabled.

2005-11-24  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicToolBarUI.java
	(mousePressed): When using the BasicLookAndFeel, the mouse
	should be in the center of the dragWindow while dragging.
	* javax/swing/plaf/metal/MetalToolBarUI.java
	(createDockingListener): Implemented.
	(MetalDockingListener): New class.
	(MetalDockingListener.init): Implemented.
	(MetalDockingListener.mousePressed): Implemented. When using the
	MetalLookAndFeel, the mouse should not be offset while dragging.
	(MetalDockingListener.mouseDragged): Implemented. Does not do 
	anything different than dragging in the BasicLookAndFeel.

2005-11-24  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicArrowButton.java
	(paint): Fixed locations, so button is drawn in proper place.
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java
	(paint): Added code to paint buttons.
	* javax/swing/plaf/metal/MetalSplitPaneDivider.java:
	Added new fields.
	(MetalSplitPaneDivider): Initialized new fields, and set layout
	to new inner class.
	(paint): Added code to paint buttons.
	(DividerLayout): New class implemented.
	(DividerLayout.init): Implemented.
	(DividerLayout.addLayoutComponent): Implemented.
	(DividerLayout.layoutContainer): Implemented.
	(DividerLayout.minimumLayoutSize): Implemented.
	(DividerLayout.preferredLayoutSize): Implemented.
	(DividerLayout.removeLayoutComponent): Implemented.	

2005-11-24  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/InternationalFormatter: 
	(InternationalFormatter<init>): Override superclass defaults for 
	commitsOnValidEdit and overwriteMode.
	* javax/swing/text/NumberFormatter.java: New class.

2005-11-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalScrollPaneUI.java
	(installUI): Set free-standing client property on scrollbars to false,
	(uninstallUI): Set free-standing client property on scrollbars to null.

2005-11-23  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalIconFactory.java:
	Added new fields to store an instance of the icons.
	(getMenuArrowIcon): Fixed to make use of the new field.
	(getMenuItemArrowIcon): Fixed implementation to return
	an instance of the icon, instead of calling getMenuArrowIcon. 
	Even though, these two look identical.

2005-11-23  Jan Roehrich  <jan@roehrich.info>

	* java/awt/datatransfer/DataFlavor.java
	(isFlavorTextType): added method.

2005-11-23  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalToolBarUI.java
	(setDragOffset): Implemented.

2005-11-23  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added defaults for menu arrow icon,
	menu item arrow icon and menu item check icon.
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java:
	Added new field to store graphics when painting highlight.
	(paintTopTabBorder): Added code to fill gap if it should be
	filled.
	(paintBottomTabBorder): Likewise.
	(paintTabBackground): Added call to paint the highlight below the tab.
	(getColorForGap): Added code to return selected color, if selected.
	(shouldFillGap): Changed to return false. With JDK, gap is never
	filled in MetalL&F.
	(paintHighlightBelowTab): Implemented to paint the highlight on
	selected tabs.
	(calculateMaxTabHeight): Removed.
	(getTabLabelShiftX): Removed.
	(getTabLabelShiftY): Removed.
	(getTabRunOverlay): Removed.
	(paint): Removed.
	(paintContentBorderBottomEdge): Removed.
	(paintContentBorderLeftEdge): Removed.
	(paintContentBorderRightEdge): Removed.
	(paintContentBorderTopEdge): Removed.
	(paintFocusIndicator): Removed.
	(update): Removed.

2005-11-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(getListeners): Updated API docs.

2005-11-23  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Container.java
	(getListeners): Updated API docs.

2005-11-23  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Component.java
	(getListeners): Added some details to the API docs.

2005-11-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.numEndTags): New field.
	(ElementBuffer.numStartTags): New field.
	(ElementBuffer.elementStack): New field.
	(ElementBuffer.ElementBuffer): Initialize element stack here.
	(ElementBuffer.changeUpdate): Correctly perform splitting of
	elements.
	(ElementBuffer.split): Change to make recursive splits possible.
	(ElementBuffer.insert): Clear and initialize elementStack and num*
	fields.
	(ElementBuffer.inserUpdate): Inlined the functionality for start
	and end tags. Call endEdit on finish.
	(ElementBuffer.endEdit): New method. Finishes off an edit run.
	(ElementBuffer.prepareContentInsertion): New method. Prepares
	the insertion of content.
	(ElementBuffer.insertParagraph): New method. Inserts a new
	paragraph at a given offset.
	(ElementBuffer.insertContentTag): Call prepareContentInsertion first.
	Fixed behaviour for all the different possible directions.
	(ElementBuffer.addEdit): New method. Adds an element edit to the
	document event and possible merges with previous edits.
	(insert): Only fire event when something has really changed.
	* javax/swing/text/AbstractDocument.java
	(insertString): Only fire event when something has really changed.
	(DefaultDocumentEvent.modified): New field.
	(DefaultDocumentEvent.DefaultDocumentEvent): Inititialize modified
	field.
	(DefaultDocumentEvent.addEdit): Set modified flag to true.

2005-11-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(getPostionsInRange): Fixed binarySearch to really find the first
	position in this range.
	(setPostionsInRange): Fixed binarySearch to really find the first
	position in this range.
	(adjustPostionsInRange): Fixed binarySearch to really find the first
	position in this range.

2005-11-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/View.java
	(getNextVisualPositionFrom): Fixed signature and (partly)
	implemented this method.
	* javax/swing/text/Utilities.java
	(getPositionAbove): Fixed to use the correct signature for the call
	to above method.
	(getPositionBelow): Fixed to use the correct signature for the call
	to above method.
	* javax/swing/text/ComponentView.java
	(getNextVisualPositionFrom): Removed method. This is not specified
	to be implemented.
	* javax/swing/text/CompositeView.java
	(getNextVisualPositionFrom): Removed method with wrong signature.
	A method with the correct signature is already in place.
	* javax/swing/text/FlowView.java
	(LogicalView.getNextVisualPositionFrom): Removed method with wrong
	signature.
	* javax/swing/text/GlyphView.java
	(getNextVisualPositionFrom): Removed method with wrong signature.
	A method with the correct signature is already in place.
	* javax/swing/text/IconView.java
	(getNextVisualPositionFrom): Removed method. This is not specified
	to be implemented.
	* javax/swing/text/PlainView.java
	(getNextVisualPositionFrom): Removed method. This is not specified
	to be implemented.
	* javax/swing/text/WrappedPlainView.java
	(WrappedLine.getNextVisualPositionFrom): Removed method with wrong
	signature.
	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.getNextVisualPositionFrom): Fixed signature.

2005-11-22  Lillian Angel  <langel@redhat.com>

	* javax/swing/JEditorPane.java
	(JEditorPaneAccessibleHypertextSupport): Implemented.

2005-11-22  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(getColorForGap): Implemented. Background color is
	always returned in this case.
	(paintHighlightBelowTab): Added. Nothing to do in 
	this function as far as i can tell.
	(shouldFillGap): Implemented. Gap should always be filled.
	(shouldRotateTabRuns): Implemented. Tabs are not rotated
	in Metal. False is always returned.
	(calculateMaxTabHeight): Implemented to call super.
	(getTabLabelShiftX): Implemented.
	(getTabLabelShiftY): Implemented.
	(getTabRunOverlay): Implemented.
	(paint): Implemented to call super.
	(paintContentBorderBottomEdge): Likewise.
	(paintContentBorderLeftEdge): Likewise.
	(paintContentBorderRightEdge): Likewise.
	(paintContentBorderTopEdge): Likewise.
	(paintFocusIndicator): Likewise.
	(update): Likewise. Should not work any differently from
	default implementation.

2005-11-22  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
	(nativeGetFontFamilies): Added missing DeleteLocalRef calls.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
	(query_formats): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c 
	(append): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c 
	(append): Likewise.
	* native/jni/qt-peer/qtmenupeer.cpp (runEvent): Likewise.

2005-11-22  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(getMenuArrowIcon): Implemented.
	(getMenuItemArrowIcon): Implemented to call getMenuArrowIcon,
	because both icons look the same.
	(getMenuItemCheckIcon): Implemented.
	* javax/swing/plaf/metal/MetalTextFieldUI.java
	(propertyChange): Implemented to call super only, because it
	is a hook method. It doesn't have a different purpose from
	BasicLookAndFeel, other than allowing a subclass to override it.

2005-11-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/MaskFormatter.java:
	(convertValue): Don't check the valid/invalid character sets if we're 
	matching a literal.

2005-11-22  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalScrollPaneUI.java
	(installUI): Implemented.
	(uninstallUI): Implemented.
	(installListeners): Implemented.
	(uninstallListeners): Implemented.
	(createScrollBarSwapListener): Partially implemented, not sure
	what else to do here.

2005-11-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/MaskFormatter.java:
	(convertValue): If character is a literal don't throw a ParseException
	unless literals aren't allowd in values and this method is being 
	called from valueToString rather than stringToValue.  The convert flag
	is used to distinguish these two cases.

2005-11-22  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalComboBoxUI.java
	(configureEditor): Implemented.
	(unconfigureEditor): Implemented.
	(layoutComboBox): Implemented.

2005-11-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/MaskFormatter.java: New class.

2005-11-22  Lillian Angel  <langel@redhat.com>

	PR 24937
	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(drawString): Removed pattern matching code. This is now
	done in native.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString): Added
	a loop to filter out all non-printing characters.

2005-11-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/DefaultCaret.java (updateTimerStatus): 
	Ignore the field "visible". 

2005-11-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/TransferHandler
	(getClipboard): Aways check for the possibility to 
	access the system clipboard.

2005-11-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(addMessageComponents): Also burst the string if there are newlines
	in it.
	(burstStringInto): Improved algorithm to also handle newlines.

2005-11-22  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(drawString): Fixed regex.

2005-11-22  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #22691
	* java/io/StreamTokenizer.java(parseNumbers): Added some comment.

2005-11-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 24942
	* javax/swing/text/DefaultCaret.java (focusGained):
	Update timer status. (focusLost): Stop the timer
	(unless the event is temporary).
	(updateTimerStatus): New method.
	(setVisible): Delegate timer management to the updateTimerStatus.

2005-11-21  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/image/ImageDecoder.java (datainput): New field.
	(ImageDecoder(DataInput)): New constructor.
	(startProduction): Create DataInputStreamWrapper when datainput set.
	(DataInputStreamWrapper): New private static helper class.
	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
	(GdkPixbufDecoder(DataInput)): New constructor.
	(setInput): Check whether getInput() results in an InputStream or
	DataInput.

2005-11-21  Mark Wielaard  <mark@klomp.org>

	* javax/swing/plaf/basic/BasicComboBoxUI.java (cachedMinimumSize):
	Document.
	(isMinimumSizeDirty): Likewise. And initialize to true.
	(getMinimumSize): Use and set cachedMinimumSize.
	(FocusHandler.focusGained): Set isMinimumSizeDirty to true.
	(FocusHandler.focusLost): Likewise.
	(ItemHandler.itemStateChanged): Likewise.
	(ListDataHandler.contentsChanged): Likewise.
	(ListDataHandler.intervalAdded): Likewise.
	(ListDataHandler.intervalRemoved): Likewise.
	(PropertyChangeHandler.propertyChange): Likewise.

2005-11-21  Jan Roehrich  <jan@roehrich.info>

	* java/awt/datatransfer/DataFlavor.java: more code style
	fixes. Changed order to static attributes, attributes, static
	methods, constructors, methods. Moved static part into static 
	attribute declaration.

2005-11-21  Lillian Angel  <langel@redhat.com>

	PR classpath/PR24937
	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(drawString): Removed most non-printable characters
	from the string that will be drawn. Added a FIXME comment
	because may not have filtered out all characters.

2005-11-21  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JTable.java (propertyChange): Only resize header when
	not null.

2005-11-21  Lillian Angel  <langel@redhat.com>

	PR classpath/PR24872
	* javax/swing/text/DefaultEditorKit.java
	(actionPerformed): Implemented.
	(actionPerformed): Implemented.
	(actionPerformed): Implemented.
	(actionPerformed): Implemented.
	* javax/swing/text/JTextComponent.java
	(JTextComponent): Added key bindings for cut, copy,
	paste, selectionBackwardAction, selectionForwardAction.

2005-11-21  Anthony Balkissoon  <abalkiss@redhat.com>

	Fixes bug #24925
	* javax/swing/text/DefaultEditorKit.java:
	(DefaultKeyTypedAction.actionPeformed): Call replaceSelection here
	instead of insertString and only do so if the text component is both 
	enabled and editable.

2005-11-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(currentRepaintManagers): Use a WeakHashMap to avoid potential
	memory leak.
	(currentManager): Instantiate WeakHashMap instead of HashMap.
	(setCurrentManager): Instantiate WeakHashMap instead of HashMap.

2005-11-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JViewport.java
	(static_initializer): Initialize the defaultScrollMode here.
	(JViewport): Set the defaultScrollMode that was initialized in
	the static initializer.

2005-11-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(columnAtPoint): Removed unused code.
	(rowAtPoint): Removed unused code.
	(prepareRenderer): Moved renderer prepare code from the UI to this
	method.
	(getSelections): Removed unused code.
	* javax/swing/plaf/basic/BasicTableUI.java
	(paintCell): Call JTable.prepareRenderer instead of preparing
	the renderer in the UI.
	(paint): Removed some unused code.

2005-11-21  Jan Roehrich  <jan@roehrich.info>

	* java/awt/datatransfer/DataFlavor.java: fixed code 
	formatting issues

2005-11-20  Chris Burdess  <dog@gnu.org>

	* gnu/xml/transform/TransformerImpl.java: Ensure that output stream
	is not closed if provided in the StreamResult.

2005-11-19  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* AUTHORS: Added myself.

2005-11-19  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/Size2DSyntax.java: 
	Added and enhanced api docs for this class.
	(toString()): Changed to return values as ints.
	(toString(int,String)): Changed to not append the unitsName if null.

2005-11-19  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/ResolutionSyntax.java (toString):
	Changed to not append the unitsName if null. Clarified api docs.

2005-11-19  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/TextSyntax.java:
	Added and enhanced api docs for this class.
	(TextSyntax): If locale is null use the default locale.

2005-11-19  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/SetOfIntegerSyntax.java: 
	Added and enhanced api docs for this class.	
	(SetOfIntegerSyntax(String)): Create empty set if given string is null.

2005-11-19  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/ResolutionSyntax.java:
	Added and enhanced api docs for this class.
	(getFeedResolution): Use correct feedresolution variable
	and do not add an additional unit to the resolution.
	(getCrossFeedResolution): Do not add additional unit to resolution.

2005-11-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(paintTabBackground): Fixed colors for the tab background.
	* javax/swing/plaf/metal/OceanTheme.java
	(addCustomEntriesToTable): Added color modifications for
	TabbedPane.

2005-11-18  David Daney  <ddaney@avtrex.com>

	* AUTHORS (David Daney): New entry. 

2005-11-18  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(setBackground): Don't inherit background from parent.
	(addMouseMotionListener): Enable MOUSE_MOTION_EVENT_MASK instead
	of MOUSE_EVENT_MASK.
	(eventTypeEnabled): Handle mouse events and mouse motion events
	separately.

2005-11-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(installDefaults): Added super.installDefaults().

2005-11-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTableHeaderUI.java
	(installUI): Install a CellRendererPane.
	(paint): Paint the renderer component using the rendererPane, not
	directly.

2005-11-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(PropertyChangeHandler.propertyChange): Replaced layout() call
	with revalidate() call.
	(TabbedPaneLayout.calculateLayoutInfo): Added assureRectsCreated()
	call to make sure we have the rectangles in place. Also initialize
	the contentRect here so it can be used later.
	(TabbedPaneLayout.calculateSize): Removed unused statement.
	(TabbedPaneLayout.calculateTabRects): Moved assureRectsCreated call
	to calculateLayoutInfo().
	(TabbedPaneScrollLayout.calculateTabRects): Moved
	assureRectsCreated call	to calculateLayoutInfo(). Removed unused
	statements.
	(TabbedPaneScrollLayout.layoutContainer): Replaced hide() and show()
	calls with calls to setVisible(). Especially important since
	setVisible is handled special in Swing.
	(BasicTabbedPaneUI): Initialize rects and tabRuns fields.
	(installUI): Removed layout() call.
	(paintContentBorder): Removed unused statement.
	(assureRectsCreated): Reworked to match the JDK behaviour.
	(getFontMetrics): Use the component getFontMetrics() instead of
	the deprecated toolkit method.

2005-11-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(getCellRenderer): Replaced dataModel.getColumnClass() with
	the shorter getColumnClass().
	(getColumnClass): Call getModel() instead of accessing dataModel
	directly. Important for correct operation of subclasses.

2005-11-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(insertTab): Don't call layout() directly, instead call
	revalidate().

2005-11-18  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(findComponentForMouseEventAt): Also check for mouseMotionListeners,
	otherwise we wouldn't dispatch mouse motion events on components
	that have no mouse listener installed.

2005-11-18  Lillian Angel  <langel@redhat.com>
	
	PR classpath/PR24754
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics): Fixed width
	for the case where there is more than one line in the layout's text.
	Otherwise, the width of the layout would be returned, which is the
	max width of all the lines in the text. A loop was added to get the
	extent of all the lines and add them together.

2005-11-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(minTabWidth): New field.
	(selectColor): New field.
	(selectHighlight): New field.
	(tabAreaBackground): New field.
	(installDefaults): Initialize new fields with values for UIManager.

2005-11-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installUI): Don't install layout here.
	(uninstallUI): Don't uninstall layout here.
	(installDefaults): Install layout here.
	(uninstallDefaults): Uninstall layout here.
	(getPreferredSize): Use getLayout() to fetch the layout of the frame
	instead of directly accessing the corresponding field. This
	is necessary to make subclasses work that don't use this field.
	(getMinimumSize): Likewise.
	(getMaximumSize): Likewise.

2005-11-18  Gary Benson  <gbenson@redhat.com>

	* AUTHORS: Added myself.

2005-11-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(setPreferredSize): Check for null argument before making a copy.

2005-11-18  Gary Benson  <gbenson@redhat.com>

	* java/lang/SecurityManager.java (checkAccess): Correctly
	identify system threads (and thus check permissions for them).

2005-11-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(setMinimumSize): Check for null argument before making a copy.

2005-11-18  Paul Jenner  <psj@harker.dyndns.org>

	* native/jni/xmlj/xmlj_util.h (XMLJ_64BIT_POINTER): Removed.

2005-11-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(setMaximumSize): Check for null argument before making a copy.

2005-11-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	(PlainEditorKit): New inner class.
	(createDefaultEditorKit): Return an instance of PlainEditorKit.
	* javax/swing/JTextPane.java
	(insertComponent): Implemented previously stubbed method.
	(insertIcon): Implemented previously stubbed method.

2005-11-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicEditorPaneUI.java
	(create): Removed unneeded method.
	* javax/swing/plaf/basic/BasicTextPaneUI.java
	(create): Removed unneeded method.

2005-11-17  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(Container): Added comment.
	(remove): Only call removeNotify if removed component is still
	showing.
	(paintComponents): Call paint() instead of super.paint().
	(AccessibleContainerHandler.AccessibleContainerHandler): Added
	comment.
	(LightweightDispatcher.acquireComponentForMouseEvent):
	Don't special case MOUSE_RELEASED events. They should be
	dispatched unmodified just as MOUSE_PRESSED.
	(LightweightDispatcher.handleEvent): Also clean up the pressCount
	after a MOUSE_RELEASE.

2005-11-17  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/BoxView.java:
	(modelToView): New API method.

2005-11-17  Lillian Angel  <langel@redhat.com>

	PR classpath/PR24721
	* javax/swing/text/BoxView.java
	(getViewAtPoint): Added check in to return the last view, if one
	exists and the point was not contained in the rectangle. This is
	what the JDK does.
	* javax/swing/text/CompositeView.java
	(viewToModel): Fixed API documentation. Added check to make sure
	x and y are greater than 0. Otherwise, 0 is returned.
	* javax/swing/text/DefaultCaret.java
	(moveDot): Added check to match API specs.
	(setDot): Likewise.
	* javax/swing/text/GlyphView.java
	(viewToModel): Removed assert. This is not needed here. The point
	does not need to be in the rectangle.

2005-11-17  Roman Kennke  <kennke@aicas.com>

	Reported by Roman Schnider <schnider@aicas.com>:
	* java/awt/Component.java
	(reshape): Removed unused statement.
	(repaint()): Don't forward to parent when not showing.
	(repaint(int)): Don't forward to parent when not showing.
	(repaint(int,int,int,int)): Don't forward to parent when not showing.
	(repaint(float,int,int,int,int)): Don't forward to parent when not
	showing.

2005-11-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(LeafElement.getName): If super.getName() returns something
	non-null, then return that instead of ContentElementName.
	* javax/swing/text/ComponentView.java
	(comp): New field.
	(getAlignment): Implemented previously stubbed method.
	(getComponent): Implemented previously stubbed method.
	(getMaximumSpan): Implemented previously stubbed method.
	(getMinimumSpan): Implemented previously stubbed method.
	(getPreferredSpan): Implemented previously stubbed method.
	(modelToView): Implemented previously stubbed method.
	(paint): Implemented previously stubbed method.
	(setParent): Implemented previously stubbed method.
	(setSize): Removed unneeded method.
	(viewToModel): Implemented previously stubbed method.
	* javax/swing/text/FlowView.java
	(insertUpdate): Forward this event to the logical view.
	* javax/swing/text/IconView.java
	(paint): Implemented previously stubbed method.
	(getPreferredSpan): Implemented previously stubbed method.
	(modelToView): Implemented previously stubbed method.
	(viewToModel): Implemented previously stubbed method.
	* javax/swing/text/ParagraphView.java
	(firstLineIndent): New field.
	(justification): New field.
	(lineSpacing): New field.
	(tabSet): New field.
	(changedUpdate): New method.
	(setPropertiesFromAttributes): New method.
	(setFirstLineIndent): New method.
	(setJustification): New method.
	(setLineSpacing): New method.
	(getLayoutView): New method.
	(getLayoutViewCount): New method.
	(getTabSet): New method.

2005-11-17  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicEditorPaneUI.java:
	(create): Create new WrappedPlainView instance instead of PlainView.

2005-11-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
        
	PR 24911
	* examples/Makefile.am
	(EXAMPLE_JAVA_FILES): Extended by /*/*/*.java and /*/*/*/*.java.
	(READMES): New category.
	(ALL_EXAMPLE_FILES): Extended by READMES category. 

2005-11-17  Bryce McKinlay  <mckinlay@redhat.com>

	* gnu/java/net/protocol/jar/Connection.java (getHeaderField):
	Implemented.
	(getLastModified): Implemented.

2005-11-17  Mark Wielaard  <mark@klomp.org>

	* java/net/URLClassLoader.java: Reindented.

2005-11-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JApplet.java
	(paramString): Returns super.paramString() instead of a meaningless
	'JFrame'.
	* javax/swing/JPanel.java
	(paramString): Returns super.paramString() instead of a meaningless
	'JPanel'.

2005-11-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(installDefaults): Don't handle the Button.rollover property here,
	this is Metal specific and is handled in MetalButtonUI.

2005-11-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JList.java
	(locationToIndex): Clarified API comment.

2005-11-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/tree/DefaultTreeCellEditor.java
	(DefaultTreeCellEditor): Replaced
	UIManager.getLookAndFeelDefaults().getXXX() with UIManager.getXXX().
	(createTreeCellEditor): Replaced
	UIManager.getLookAndFeelDefaults().getXXX() with UIManager.getXXX().
	* javax/swing/tree/DefaultTreeCellRenderer.java
	(DefaultTreeCellRenderer): Replaced
	UIManager.getLookAndFeelDefaults().getXXX() with UIManager.getXXX().
	(getDefaultOpenIcon): Replaced
	UIManager.getLookAndFeelDefaults().getXXX() with UIManager.getXXX().
	(getDefaultClosedIcon): Replaced
	UIManager.getLookAndFeelDefaults().getXXX() with UIManager.getXXX().
	(getDefaultLeafIcon): Replaced
	UIManager.getLookAndFeelDefaults().getXXX() with UIManager.getXXX().
	(getTreeCellRendererComponent): Replaced
	UIManager.getLookAndFeelDefaults().getXXX() with UIManager.getXXX().w
	(paint): Replaced UIManager.getLookAndFeelDefaults().getXXX()
	with UIManager.getXXX().

2005-11-17  Andrew Haley  <aph@redhat.com>

	* gnu/java/net/protocol/file/Connection.java (unquote): New
	method.
	(connect): Unquote filename.
	* gnu/java/net/protocol/jar/Connection.java (get): Likewise.

	* java/net/URL.java (URL): If the file part of a spec is absolute,
	ignore the file part of its context.

2005-11-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/CORBA/swing/README.html:
	Added note about the build.
	
2005-11-16  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JSplitPane.java: Reformatted file.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java: Reformatted file.

2005-11-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/ToolTipManager.java
	(mouseEntered): No need to start the insideTimer here,
	already called showTip.

2005-11-16  Lillian Angel  <langel@redhat.com>

	PR classpath/PR24763
	* javax/swing/ToolTipManager.java
	(mouseEntered): showTip should be called if exitTimer is running.
	This means that the mouse has exited and re-entered a component
	in less than 500ms.
	(mouseExited): If enterTimer is not running, the exitTimer should
	be started no matter what.
	(showTip): Should not show tool tip if the currentComponent is
	not showing.

2005-11-16  Lillian Angel  <langel@redhat.com>
	
	PR classpath/PR23557 and PR classpath/PR24099
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_gdkDrawDrawable):
	Added check to determine if dst->drawable or src->drawable
	are actually drawable. If not, return.

2005-11-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(ButtonBorder.paintBorder): Special case the OceanTheme.
	(ButtonBorder.paintOceanThemeBorder): New method.
	* javax/swing/plaf/metal/MetalButtonUI.java
	(installDefaults): Set the rollover flag here. Don't set a special
	border for rollover buttons.
	(uninstallDefaults): Reset the rollover flag.
	(update): Only paint gradient when button is enabled and not pressed.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(getCurrentTheme): New method.

2005-11-16  Gary Benson  <gbenson@redhat.com>

	* java/io/FilePermission.java (implies): Correct the sense
	in which action checks are applied.

2005-11-16  Anthony Balkissoon  <abalkiss@redhat.com>

	* AUTHORS: Added myself.
	* javax/swing/KeyboardManager.java: Changed @author tag to match the 
	other ones I have.
	* javax/swing/text/WrappedPlainView.java: Likewise.

2005-11-16  Gary Benson  <gbenson@redhat.com>
 
	* java/security/ProtectionDomain.java (toString): Use
	gnu.classpath.SystemProperties to read line.separator
	without security manager check.

2005-11-16  Lillian Angel  <langel@redhat.com>

	* java/awt/image/MemoryImageSource.java
	(startProduction): If animated, imageComplete should
	be called with the SINGLEFRAMEDONE flag, meaning the
	single frame is complete, but there are more frames 
	to follow.

2005-11-16  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainDocument.java:
	(insertString): Null check fixes PR 24890.

2005-11-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(paintVerticalPartOfLeg): Added a check to prevent
	ArrayOutOfBoundsException.

2005-11-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(paintTitleBackground): Only paint background if component is
	opaque.
	* javax/swing/plaf/metal/MetalInternalFrameTitlePane.java
	(paintPalette): Added gradient painting.
	(paintComponent): Added gradient painting.
	* javax/swing/plaf/metal/OceanTheme.java
	(addCustomEntriesToTable): Added gradient for
	InternalFrama.activeTitleGradient.

2005-11-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/ToolTipManager.java:
	Removed unneeded fields.
	(showTip): Re-implemented to use PopupFactory.
	(hideTip): Likewise.
	(adjustLocation): Fixed location.

2005-11-16  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainDocument.java:
	(insertUpdate): The very first new element added doesn't start at the 
	start of the event, it starts at the start offset of the Element that
	contains the start of the event.

2005-11-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(paintMenuItem): Always call paintBackground().

2005-11-16  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkDialogPeer.java
	(create): Since popups were changed to be JWindowPopups,
	this code should be done in GtkWindowPeer. Code is not
	needed.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(create): If window is not focusable, it should not take
	the focus away from any other window. Therefore, its
	type should be set to GDK_WINDOW_TYPE_HINT_MENU.

2005-11-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalButtonUI.java
	(update): New method. Paints the gradient.
	* javax/swing/plaf/metal/MetalCheckBoxIcon.java
	(paintIcon): Paint gradient.
	* javax/swing/plaf/metal/MetalIconFactory.java
	(RadioButtonIcon.paintIcon): Paint gradient.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initClassDefaults): Added MetalMenuBarUI.
	* javax/swing/plaf/metal/MetalMenuBarUI.java: New file.
	* javax/swing/plaf/metal/MetalToggleButtonUI.java
	(update): New method. Paints the gradient.
	* javax/swing/plaf/metal/OceanTheme.java
	(addCustomEntriesToTable): Added all the gradients.

2005-11-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JMenu.java
	(JMenu()): Set opaque flag to false.
	(JMenu(String)): Likewise.
	(JMenu(Action)): Likewise.

2005-11-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(getRowHeight): Adjusted to deal correctly with fixed cell heights.
	(convertYRoRow): Likewise.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(installDefaults): Don't make the menu item opaque here.
	(paintBackground): Moved background painting code from
	paintMenuItem() to this method.
	(paintMenuItem): Moved background painting to paintBackground().
	(installDefaults): Don't set opaque flag here.

2005-11-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalUtils.java
	(paintGradient): New utility method(s).
	(paintHorizontalGradient): New utility method.
	(paintVerticalGradient): New utility method.

2005-11-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintDoubleBuffered): Put paint() call inside a try-finally
	block to correctly recover the double-buffering flag when
	an exception is thrown inside the paint() call.

2005-11-15  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetResizable):
	Needed to set allow_shrink to the same value as resizable. Other-
	wise, it is always set to false.

2005-11-15  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(paint): Added check to prevent NPE.

2005-11-15  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JComponent.java:
	(removeNotify): Unregister WHEN_IN_FOCUSED_WINDOW bindings from the 
	KeyboardManager.

2005-11-15  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Default rowHeight for tree's should
	be 0. This is Sun and IBM's default.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Default rowHeight for tree's should
	e 0. This is Sun and IBM's default.
	* javax/swing/plaf/basic/BasicTreeUI.java:
	Added a default rowHeight field.
	(setRowHeight): Set the rowHeight to the class default if parameter
	is 0. Tree row height should never be set to 0. 20 is the minimum.
	(installDefaults): fixed call to tree.setRowHeight
	(shouldPaintExpandControl): Added to check to prevent NPE.

2005-11-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/CORBA/swing/README.html,
	examples/gnu/classpath/examples/CORBA/swing/x5/CanvasWorld.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/ChatConstants.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/ClientFrame.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/Demo.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/GameManager.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/GameManagerImpl.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/OrbStarter.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/Player.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/PlayerImpl.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/State.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/_GameManager_Stub.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/_Player_Stub.java: 
	New files.

2005-11-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/UIManager.java
	(userUIDefaults): New field.
	(get(Object)): Respect the user UI settings.
	(get(Object,Locale)): Respect the user UI settings.
	(getBoolean(Object)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getBoolean(Object,Locale)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getBorder(Object)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getBorder(Object,Locale)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getColor(Object)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getColor(Object,Locale)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getDimension(Object)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getDimension(Object,Locale)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getFont(Object)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getFont(Object,Locale)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getIcon(Object)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getIcon(Object,Locale)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getInsets(Object)): Call get() instead of
	getLookAndFeelDefaults().getInsets() in order to respect the user UI
	settings.
	(getInsets(Object,Locale)): Call get() instead of
	getLookAndFeelDefaults().getInsets() in order to respect the user UI
	settings.
	(getInt(Object)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getInt(Object,Locale)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getString(Object)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getString(Object,Locale)): Call get() instead of
	getLookAndFeelDefaults().get() in order to respect the user UI
	settings.
	(getUI(JComponent)): Respect the user UI settings.
	(put): Put key/value into user UI settings.

2005-11-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(OptionDialogBorder.paintBorder): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	* javax/swing/plaf/metal/MetalButtonUI.java
	(MetalButtonUI): Replaced UIManager.getLookAndFeelDefaults().get()
	with UIManager.get().
	* javax/swing/plaf/metal/MetalInternalFrameTitlePane.java
	(installDefaults): Replaced UIManager.getLookAndFeelDefaults().get()
	with UIManager.get().
	* javax/swing/plaf/metal/MetalLabelUI.java
	(paintDisabledText): Replaced UIManager.getLookAndFeelDefaults().get()
	with UIManager.get().
	* javax/swing/plaf/metal/MetalRadioButtonUI.java
	(installDefaults): Replaced UIManager.getLookAndFeelDefaults().get()
	with UIManager.get().
	* javax/swing/plaf/metal/MetalScrollBarUI.java
	(createDecreaseButton): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	(createIncreaseButton): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	(paintThumbHorizontal): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	(paintThumbVertical): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	* javax/swing/plaf/metal/MetalSplitPaneUI.java
	(createDefaultDivider): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	* javax/swing/plaf/metal/MetalToggleButtonUI.java
	(installDefaults): Replaced UIManager.getLookAndFeelDefaults().get()
	with UIManager.get().
	* javax/swing/plaf/metal/MetalToolTipUI.java
	(MetalToolTipUI): Replaced UIManager.getLookAndFeelDefaults().get()
	with UIManager.get().
	* javax/swing/plaf/metal/MetalTreeUI.java
	Removed all listener fields.
	(installUI): Removed initialization and call super.installUI()
	instead.
	(uninstallUI): Removed initialization and call super.uninstallUI()
	instead.

2005-11-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/OrbFunctional.java (serveStep):
	Returning ensure that the socket is closed.

2005-11-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicBorders.java
	(getButtonBorder): Replaced UIManager.getLookAndFeelDefaults().get()
	with UIManager.get().
	(getRadioButtonBorder): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	(getToggleButtonBorder): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	(getMenuBarBorder): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	(getSplitPaneBorder): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	(getSplitPaneDividerBorder): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	(getTextFieldBorder): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	(getInternalFrameBorder): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	* javax/swing/plaf/basic/BasicButtonUI.java
	(paintText): Replaced UIManager.getLookAndFeelDefaults().get()
	with UIManager.get().
	* javax/swing/plaf/basic/BasicCheckBoxUI.java
	(getDefaultIcon): Replaced UIManager.getLookAndFeelDefaults().get()
	with UIManager.get().
	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(paintCurrentValue): Replaced UIManager.getLookAndFeelDefaults().get()
	with UIManager.get().
	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(installStrings): Replaced UIManager.getLookAndFeelDefaults().get()
	with UIManager.get().
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(installDefaults): Replaced UIManager.getLookAndFeelDefaults().get()
	with UIManager.get().
	* javax/swing/plaf/basic/BasicListUI.java
	(installKeyboardActions): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	* javax/swing/plaf/basic/BasicProgressBarUI.java
	(boxRect): Added @since tag to the API comment.
	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	(getDefaultIcon): Replaced UIManager.getLookAndFeelDefaults().get()
	with UIManager.get().
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(configureScrollBarColors): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	(calculatePreferredSize): Fetch preferred width or height from
	UI defaults.
	* javax/swing/plaf/basic/BasicTableUI.java
	(installKeyboardActions): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	* javax/swing/plaf/basic/BasicTextUI.java
	(createKeymap): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	(getInputMap): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	(getActionMap): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	* javax/swing/plaf/basic/BasicToolBarUI.java
	(dragTo): Don't use cached* fields.
	(installComponents): Don't use cached* fields.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(getHashColor): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	(setHashColor): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().
	Added FIXME comment.
	(installKeyboardActions): Replaced
	UIManager.getLookAndFeelDefaults().get() with UIManager.get().

2005-11-15  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* native/jni/java-lang/java_lang_VMDouble.c (initIDs): Register 
	clsDouble as global ref.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c 
	(gtkInit): Register gtkgenericpeer as global ref.

2005-11-15  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java:
	Removed unneeded field.
	(getPathBounds): Reimplemented to use getNodeDimensions.
	(getRowCount): Removed call to updateCurrentVisiblePath.
	(uninstallKeyboardActions): Implemented.
	(paint): Reimplemented to only paint rows contained in clip.
	No longer uses recursion.
	(mousePressed): If control icon is clicked, should scroll to that
	path.
	(getNodeDimensions): Implemented.
	(getRowX): Implemented.
	(getCellBounds): Removed.
	(getCellLocation): Removed.
	(paintRecursive): Removed.
	(paintControlIcons): Removed.
	(getPreviousVisibleNode): Removed call to updateCurrentVisiblePath.
	(getLevel): Added check for invisible root.
	(paintVerticalLine): Set graphics color.
	(paintHorizontalLine): Likewise.
	(drawCentered): Added negative check.
	(drawDashedHorizontalLine): Set graphics color.
	(drawDashedVerticalLine): Likewise.
	(paintExpandControl): Implemented.
	(paintHorizontalPartOfLeg): Likewise.
	(paintVerticalPartOfLeg): Likewise.
	(paintRow): Added call to paint the control icons.
	(updateCurrentVisiblePath): Cleaned up function.	

2005-11-15  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/AbstractDocument.java:
	(remove): Do not set up an ElementEdit here, this is done in the 
	Document implementation's removeUpdate method.
	* javax/swing/text/PlainDocument.java:
	(insertUpdate): Do not call reindex, instead, reindex the lines here
	directly but only starting from the offset of the newly inserted text.
	Also, if entire lines have been added or removed, set up an ElementEdit
	and add it to the DocumentEvent.  Chain BadLocationException to an 
	AssertionError and throw it in the unexpected case.
	(removeUpdate): If entire lines have been added or removed, set up an 
	ElementEdit and add it to the DocumentEvent.  Chain 
	BadLocationException to an AssertionError and throw it in the 
	unexpected case.
	(reindex): Removed unnecessary method.

2005-11-15  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/DateTimeSyntax.java,
	* javax/print/attribute/EnumSyntax.java,
	* javax/print/attribute/IntegerSyntax.java,
	* javax/print/attribute/URISyntax.java:
	Added and enhances some api docs.

2005-11-15  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java:
	Code written by Sven de Marothy.
	(gtkWindowGetLocationOnScreen): Added declaration
	for native function.
	(getLocationOnScreen): Changed to handle 2 different cases.
	If the component is a window, gtkWindowGetLocationOnScreen is
	called; otherwise, gtkWidetGetLocationOnScreen.
	* include/gnu_java_awt_peer_gtk_GtkComponentPeer.h:
	Added signature for new function Java_gnu_java_awt_peer_
	gtk_GtkComponentPeer_gtkWindowGetLocationOnScreen.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen):
	Implemented.

2005-11-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JViewport.java
	(JViewport): Recognize setting of a system property
	gnu.javax.swing.JViewport for the scrollMode.

2005-11-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalUtils.java
	(fillMetalPattern2D): Fixed the texture width.
	(initializePattern): Made texture transparent.

2005-11-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTextField.java
	(createDefaultModel): Set the filterNewlines property on the created
	model.

2005-11-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	Fixed API docs all over to better explain the changed (but correct)
	behaviour.
	(convertYToRow): Added some short-circuits for special cases. Update
	the layout state if necessary. Fixed to match the JDK behaviour.
	Added API docs to better explain the behaviour.
	(updateLayoutState): When a fixedCellHeight is set, then use the
	cellHeight field, otherwise use the cellHeights array.
	(uninstallDefaults): Removed unnecessary statement.
	(paintBackground): Removed unnecessary method.
	(paintCell): Removed some commented-out code.
	(paint): Removed call to paintBackground().
	(locationToIndex): Removed unused statement.

2005-11-14  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/AttributeSetUtilities.java:
	Added api docs and enhanced api docs all over the place.
	(verifyCategoryForValue): Throw exception when arguments
	are _not_ equal and throw NPE also if attribute is null.

2005-11-14  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(getLocationOnScreen): The insets should be taken into account
	when returning the location of an object on the screen.

2005-11-14  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JMenuBar.java:
	(removeNotify): Unregister this JMenuBar from the KeyboardManager.
	* javax/swing/KeyboardManager.java:
	(unregisterJMenuBar): New implementation method.

2005-11-14  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JComponent.java:
	(removeNotify): Removed unncessary InputMap and ActionMap inheritance
	code. Added FIXME to remove the WHEN_IN_FOCUSED_WINDOW bindings from 
	the KeyboardManager.
	* javax/swing/JMenuBar.java:
	(removeNotify): Added FIXME to unregister this JMenuBar from the 
	KeyboardManager.

2005-11-14  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/HashAttributeSet.java:
	Added api docs to class and clarified method documentation.
	(toArray): Get iterator from values instead of entries.
	(hashCode): Compute hashcode according to specification.
	(get): Throw NullPointerException if category is null.
	(HashAttributeSet(Attribute[],Class)): Changed to allow
	Attribute[] to be null.
							
2005-11-14  Mark Wielaard  <mark@klomp.org>

	As suggested by Joao Victor <jvital@gmail.com>:
	* javax/swing/Timer.java (Waker): Removed class.
	(Task): New class.
	(timer): New field.
	(running): Removed field.
	(waker): Likewise.
	(task): New field.
	(isRunning): Check whether task is null.
	(start): Create task and schedule it with timer.
	(stop): Cancel task and clear field.
	(queueEvent): Synchronized on queueLock.

2005-11-14  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTree.java
	(expandPath): No need to get the parent path.
	* javax/swing/event/TreeModelEvent.java:
	Variables should be initialized to null.
	(toString): Implemented.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(treeStructureChanged): Implemented.
	(getParent): Added check to avoid infinite loop.
	(findNode): Fixed check to use getChild, instead of
	getIndexOfChild.
	(updateCurrentVisiblePath): Added a loop to check
	the parent's sibling, if the current node has no
	other siblings.

2005-11-14  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/ActionMap.java: 
	(keys): Return null if the map is empty.
	(allKeys): Likewise.
	* javax/swing/InputMap.java:
	(keys): Return null if the map is empty.
	(allKeys): Likewise.
	* javax/swing/JMenuBar:
	(addNotify): Register the menu with the KeyboardManager.
	(processKeyBinding): New API method.
	(processKeyBindingHelper): New implementation method.
	* javax/swing/JMenuItem.java:
	(setAccelerator): Fire a PropertyChangeEvent after changing the 
	accelerator.
	* javax/swing/KeyboardManager.java:
	(menuBarLookup): New field, Hashtable mapping between top-level 
	containers and a Vector of the JMenuBars contained in them.
	(getHashtableForTopLevel): Changed this public method to package
	private.
	(registerEntireMap): Avoid NPE by returning early if the parameter
	is null or contains no mappings.
	(processKeyStroke): If the mapped component doesn't consume the event,
	let all JMenuBars in the top-level container have a chance at it.
	(getVectorForTopLevel): New implementation method.
	(registerJMenuBar): Likewise.
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(propertyChangeListener): New field.
	(PropertyChangeHandler): New class to handle PropertyChangeEvents on 
	the JMenuItem.
	(ClickAction): New class to implement accelerator key handling.
	(BasicMenuItemUI<init>): Instantiate the propertyChangeListener field.
	(installKeyboardActions): Implemented.
	(installListeners): Install the propertyChangeListener.
	(installUI): Call installKeyboardAcions after installing the listeners.
	(uninstallKeyboardActions): Implemented.
	(uninstallListeners): Remove the propertyChangeListener.

2005-11-14  Tom Tromey  <tromey@redhat.com>

	* java/applet/Applet.java (URLAudioClip): New class.
	(newAudioClip): Implemented.
	* gnu/java/beans/DummyAppletContext.java (getAudioClip): Use
	Applet.newAudioClip.
	(DUMMY_CLIP): Removed.
	(DummyAudioClip): Removed.

2005-11-14  Tom Tromey  <tromey@redhat.com>

	* javax/sound/sampled/Line.java (open): Throws
	LineUnavailableException.

2005-11-14  Roman Kennke  <kennke@aicas.com>

	Reported by Ingo Proetel  <proetel@aicas.com>
	* gnu/java/io/PlatformHelper.java
	(toCanonicalForm): Remove lowercasing of paths in Windows. This
	breaks working with URLs, like when accessing files withing JAR
	files.

2005-11-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLayeredPane.java
	(paint): Only clear the background if the layeredPane is opaque.

2005-11-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(globalManager): Removed obsolete field.
	(currentRepaintManagers): New field.
	(RepaintWorker.run): Fetch current RepaintManager for the current
	thread group.
	(currentManager): Return the current manager for the current thread
	group.
	(setCurrentManager): Set the repaint manager for the current thread
	group.

2005-11-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboPopup.java
	(show): Instead of fiddling with the list size, set the preferredSize
	of the scroller.
	(configureScroller): Set border to null.
	(configurePopup): Set border correctly.

2005-11-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(setButtonIcons): Only set icons if buttons are != null.

2005-11-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Fixed some UI defaults used by ProgressBar.

2005-11-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextFieldUI.java
	(propertyChange): Get new value from the PropertyChangeEvent and
	not from the component itself (since when it receives the event,
	the component still has the old state).

2005-11-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(uninstallListeners): Uninstall the document listener here.
	(getVisibleEditorRect): Fetch the textComponent via getComponent().

2005-11-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BoxView.java
	(paint): Only paint child if it is inside the current clip.

2005-11-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(setEnabled): Also set focusable flag on the button when the enabled
	property changes.

2005-11-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicProgressBarUI.java
	(boxRect): New protected field.
	(PropertyChangeHandler.propertyChange): Fixed typo in 'indeterminate'.
	Only start animation when progressBar is actually showing. Removed
	repaint call.
	(AncestorHandler): New inner class. Helps starting/stopping the
	animation when progressBar becomes showing/hidden.
	(ComponentHandler): New inner class. Recalculates box sizes for
	indeterminate progress bars when the size of the progress bar
	changes.
	(boxRect): New protected field.
	(boxDependent): New transient field.
	(boxIndependent): New transient field.
	(incr): New transient field.
	(ancestorListener): New private field.
	(componentListener): New private field.
	(getBox): Fixed calculation of the indeterminate progress bar box
	to match the JDK behaviour.
	(getMaximumSize): Implemented the maximumSize for progressBars.
	(getMinimumSize): Implemented the minimumSize for progressBars.
	(getPreferredInnerHorizontal): Implemented correctly.
	(getPreferredInnerVertical): Implemented correctly.
	(getPreferredSize): Implemented correctly using the getPreferredXXX()
	helper methods.
	(paintDeterminate): Fixed painting to better match the JDK behaviour.
	(paintIndeterminate): Fixed painting to better match the JDK behaviour.
	(paintString): Implemented 'half-dark-half-light' painted text.
	(installListeners): Install new listeners.
	(uninstallListeners): Uninstall new listeners.
	* javax/swing/plaf/basic/MetalProgressBarUI.java
	(paintDeterminate): New method.
	(paintIndeterminate): New method.

2005-11-14  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(static_initializer): Set the L&F and theme explicitly for the
	default option, because JDK1.4 and JDK1.5 have different defaults.
	(mkMenuBar): For the slider demo, trigger the new SliderDemo
	class. Added ProgressBarDemo to menu.
	(mkSliders): Removed obsolete slider demo.
	(mkButtonBar): Added ProgressBar demo.
	* examples/gnu/classpath/examples/swing/ProgressBarDemo.java:
	New file. Demonstrates the JProgressBar.

2005-11-13  Archie Cobbs  <archie@dellroad.org>

	* vm/reference/gnu/classpath/VMStackWalker.java (getClassLoader()):
	added to fix an infinite loop bug.
	* NEWS: note VM interface change.

2005-11-13  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #23008
	* gnu/java/nio/charset/UTF_16Decoder.java
	MAYBE_BIG_ENDIAN, MAYBE_LITTLE_ENDIAN: New constants representing
	such endianness which is similar to UNKNOWN_ENDIAN but defaults
	to big/little endian without a byte order mark.
	(decodeLoop): Handle MAYBE_BIG_ENDIAN and MAYBE_LITTLE_ENDIAN.
	* gnu/java/nio/charset/UnicodeLittle.java
	(newDecoder): Set the endianness to MAYBE_LITTLE_ENDIAN.

2005-11-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 24733
	* javax/swing/TransferHandler.java (getClipboard): Rewritten. 

2005-11-13  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/HashDocAttributeSet.java,
	* javax/print/attribute/HashPrintJobAttributeSet.java,
	* javax/print/attribute/HashPrintRequestAttributeSet.java,
	* javax/print/attribute/HashPrintServiceAttributeSet.java,
	Added class api docs and enhanced method api docs.

2005-11-13  Tom Tromey  <tromey@redhat.com>

	* native/jni/midi-dssi/.cvsignore: Updated.
	* native/jni/midi-alsa/.cvsignore: New file.
	* lib/.cvsignore: Updated.

2005-11-13  Tom Tromey  <tromey@redhat.com>

	* javax/sound/sampled/AudioFileFormat.java: New file.
	* javax/sound/sampled/AudioFormat.java: New file.
	* javax/sound/sampled/AudioInputStream.java: New file.
	* javax/sound/sampled/AudioPermission.java: New file.
	* javax/sound/sampled/AudioSystem.java: New file.
	* javax/sound/sampled/BooleanControl.java: New file.
	* javax/sound/sampled/Clip.java: New file.
	* javax/sound/sampled/CompoundControl.java: New file.
	* javax/sound/sampled/Control.java: New file.
	* javax/sound/sampled/DataLine.java: New file.
	* javax/sound/sampled/EnumControl.java: New file.
	* javax/sound/sampled/FloatControl.java: New file.
	* javax/sound/sampled/LineEvent.java: New file.
	* javax/sound/sampled/Line.java: New file.
	* javax/sound/sampled/LineListener.java: New file.
	* javax/sound/sampled/LineUnavailableException.java: New file.
	* javax/sound/sampled/Mixer.java: New file.
	* javax/sound/sampled/Port.java: New file.
	* javax/sound/sampled/ReverbType.java: New file.
	* javax/sound/sampled/SourceDataLine.java: New file.
	* javax/sound/sampled/spi/AudioFileReader.java: New file.
	* javax/sound/sampled/spi/AudioFileWriter.java: New file.
	* javax/sound/sampled/spi/FormatConversionProvider.java: New file.
	* javax/sound/sampled/spi/MixerProvider.java: New file.
	* javax/sound/sampled/TargetDataLine.java: New file.
	* javax/sound/sampled/UnsupportedAudioFileException.java: New file.

2005-11-13  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/EnumSyntax.java:
	API docs added and enhanced for class and methods.
	(readResolve): New method.
		
2005-11-13  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/Attribute.java,
	javax/print/attribute/AttributeSet.java,
	javax/print/attribute/DocAttribute.java,
	javax/print/attribute/DocAttributeSet.java,
	javax/print/attribute/PrintJobAttribute.java,
	javax/print/attribute/PrintJobAttributeSet.java,
	javax/print/attribute/PrintRequestAttribute.java,
	javax/print/attribute/PrintRequestAttributeSet.java,
	javax/print/attribute/PrintServiceAttribute.java,
	javax/print/attribute/PrintServiceAttributeSet.java,
	javax/print/attribute/SupportedValuesAttribute.java,
	javax/print/attribute/UnmodifiableSetException.java:
	Added api documentation to class and method definitions.
	* javax/print/attribute/package.html: Included a package description.

2005-11-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Interceptor/gnuIorInfo.java (state): Made public.
	* gnu/CORBA/Interceptor/gnuServerRequestInfo.java 
	(adapter_name, orb_id, server_id): New methods.
	* org/omg/PortableInterceptor/IORInfoOperations.java
	(state): New method.
	* org/omg/PortableInterceptor/ServerRequestInfoOperations.java
	(adapter_name, orb_id, server_id): New methods.	

2005-11-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 24749
	* javax/swing/plaf/basic/BasicTextUI.java (installDefaults):  
	Call setSelectionColor. 

2005-11-12  Wolfgang Baer  <WBaer@gmx.de>

	* java/io/ObjectInputStream.java
	(processResolution): Pass Error, RuntimeException and
	ObjectStreamException through to the caller.
	(readObject): Documentation update.

2005-11-11  Mark Wielaard  <mark@klomp.org>
	    Anthony Green  <green@redhat.com>

	* java/util/Properties.java (load): Short-circuit parsing when key or
	value doesn't contain escape character. Use StringBuilder instead of
	StringBuffer.
	(store): Use StringBuilder instead of StringBuffer.
	(formatForOutput): Likewise.

2005-11-11  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(getMinimumDividerLocation): Fixed to use the  minimum size
	of the correct component. Also, removed call to getAvailableSize,
	this is not needed for the minimum location.

2005-11-11  Archie Cobbs  <archie@dellroad.org>

	* autogen.sh: Fix broken libtool version detection on FreeBSD.

2005-11-11  Lillian Angel  <langel@redhat.com>

	* java/awt/Container.java
	(LightweightDispatcher.acquireComponentForMouseEvent): If the 
	event is not being dispatched, the pressCount should be reset.

2005-11-11  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/FieldView.java (getPreferredSpan): Chain
	BadLocationException when throwing assertion.

2005-11-11  Mark Wielaard  <mark@klomp.org>

	Reported by john.zigman@anu.edu.au as bug #24608.
	* gnu/java/nio/SocketChannelImpl.java (read): Put readBytes in
	destination ByteBuffer when it doesn't have an array instead of len
	bytes.

2005-11-11  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/PortableInterceptor/IORInterceptor_3_0.java,
	org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java,
	org/omg/PortableInterceptor/IORInterceptor_3_0Holder.java,
	org/omg/PortableInterceptor/IORInterceptor_3_0Operations.java,
	org/omg/PortableInterceptor/_IORInterceptor_3_0Stub.java: New files.
	* gnu/CORBA/Interceptor/IORInterceptors.java,
	gnu/CORBA/Interceptor/gnuIorInfo.java,
	gnu/CORBA/OrbRestricted.java,
	gnu/CORBA/Poa/AOM.java,
	gnu/CORBA/Poa/ORB_1_4.java,
	gnu/CORBA/Poa/gnuPOA.java,
	gnu/CORBA/Poa/gnuPOAManager.java,
	org/omg/PortableInterceptor/IORInfoOperations.java,
	org/omg/PortableInterceptor/IORInterceptorOperations.java,
	org/omg/PortableInterceptor/ORBInitInfoOperations.java,
	org/omg/PortableInterceptor/ObjectReferenceFactoryOperations.java:
	Rewritten to support the IORInterceptor_3_0.

2005-11-10  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalRadioButtonUI.java
	(paintFocus): Centered border around rectangle. It seemed
	a bit offset and too small at times.

2005-11-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(valueChanged): Repaint list when selection changed.
	(updateLayoutState): Reworked to correctly respect fixed cell sizes.
	(installListeners): Create component listener before adding it.
	(paint): Optimized to only draw the cells in the clip.

2005-11-10  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JComponent.java:
	(processKeyEvent): Reworked this method to improve performance.  Return
	early if the event has already been handled. Don't stop climbing when
	we hit a JInternalFrame, only stop at Applets or Windows (this fixes
	PR 24781). Don't check WHEN_IN_FOCUSED_WINDOW bindings if there is no
	top-level container present.  If there is a top-level container,  pass 
	it to KeyboardManager.processKeyStroke rather than the JComponent that
	actually received the event, to save time in finding the top-level 
	container within KeyboardManager.
	* javax/swing/KeyboardManager.java:
	(findTopLevel): Changed parameter from JComponent to Component to allow
	generality and to allow passing in of already-determined top-level 
	containers to save time.
	(processKeyStroke): Likewise.

2005-11-10  Mark Wielaard  <mark@klomp.org>

	Fixes bug #24731 reported by freebeans@xqb.biglobe.ne.jp.
	* java/awt/ScrollPane.java (addNotify): Return immediately when peer
	already set.

2005-11-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(installListeners): Also install focusListener on the listBox.
	(uninstallListeners): Also uninstall focusListener from the listBox.
	(setPopupVisible): Request focus on the listbox when making the
	popup visible.

2005-11-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintingTile): New field.
	(isPaintingTile): Implemented.
	(paintChildren): Optimized painting of overlapping children.

2005-11-10  Mark Wielaard  <mark@klomp.org>

	Reported by Petteri <betelgeuse@gentoo.org> bug #24768 and bug #24769.
	* configure.ac (dssi): Change accidental alsa reference to dssi.
	* native/jni/midi-dssi/Makefile.am (libgjsmdssi_la_SOURCES): Add
	dssi_data.h.

2005-11-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/OrbFunctional.java (use_properties, set_parameters):
	Rewritten to support orb and server ids.
	* org/omg/CORBA/ORB.java,
	org/omg/PortableInterceptor/ObjectReferenceTemplate.java: 
	Documentation update.

2005-11-09  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JComponent.java:
	(addNotify): Unregister all WHEN_IN_FOCUSED_WINDOW bindings for this 
	JComponent and then register them with its (potentially) new top level
	ancestor.  Removed unncessary code that copied regular (WHEN_FOCUSED)
	key bindings up the parent hierarchy.  

2005-11-09  Roman Kennke  <kennke@aicas.com>

	Reported by Friedjof Siebert  <siebert@aicas.com>
	* java/util/WeakHashMap.java
	(WeakEntrySet.Iterator.checkMod): Improved exception message.
	(internalRemove): Removed redundant reads of buckets[slot] and
	prev.next and added checks to ensure that no null pointer
	exception may occur and that this can be proved automatically.

2005-11-09  Roman Kennke  <kennke@aicas.com>

	Reported by Friedjof Siebert  <siebert@aicas.com>
	* java/io/PrintWriter.java
	(line_separator):  Added default value for property to ensure
	absence of null pointer exception even if property is not set.

2005-11-09  Roman Kennke  <kennke@aicas.com>

	* java/io/InputStreamReader.java
	(InputStreamReader(InputStream, CharsetDecoder)): Catch the case
	when the CharsetDecoder returns a null charset and handle it like
	US-ASCII.

2005-11-09  Mark Wielaard  <mark@klomp.org>

	Reported by Petteri Räty <betelgeuse@gentoo.org>
	* INSTALL: Remove double --enable-xmlj entry.

2005-11-09  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JComponent.java:
	(processKeyEvent): Use local variables for boolean pressed and for 
	the KeyStroke.  Implemented the code for WHEN_IN_FOCUSED_WINDOW
	bindings.
	(updateComponentInputMap): Implemented and fixed typo in docs.
	* javax/swing/KeyboardManager.java: New class.

2005-11-09  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTabbedPane.java
	(setComponent): Tab should be inserted with a title, and removed from
	the vector once set.
	(removeTabAt): Tab should only be removed from vector.
	remove(Component) is called to remove the tab from the JTabbedPane.
	(remove): Added call to the component. This function should remove
	the component as well as the tab.

2005-11-09  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTabbedPane.java
	(setComponent): No need to remove and add tab.
	(remove): Fixed API documentation.
	(remove): Fixed API documentation. Re-implemented according to API.

2005-11-09  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/cp-tools/cp-tools.wml: Add gjdoc download link.

2005-11-09  Chris Burdess  <dog@gnu.org>

	* gnu/xml/aelfred2/SAXDriver.java: Ensure that absolutize does not
	throw exception when custom entity resolver is set.

2005-11-09  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/event/InvocationEvent.java:
	(exception): Replaced this field (removed yesterday) because it is 
	needed for serialization.
	(dispatch): Save thrown exception.
	(getException): Directly return exception, no need to cast throwable.

2005-11-09  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/ComponentInputMap.java:
	(put): Notify the component.
	(clear): Likewise.
	(remove): Likewise.
	(setParent): Notify the parent.  Improved the exception messages.
	* javax/swing/JComponent.java:
	(inputMap_whenInFocusedWindow): Changed type from InputMap to 
	ComponentInputMap.
	(setInputMap): If we're setting the WHEN_IN_FOCUSED_WINDOW map and 
	the parameter is not a ComponentInputMap or is not associated with 
	the same Component, throw an IllegalArgumentException.
	(getInputMap): Create a new ComponentInputMap instead of a new 
	InputMap when the WHEN_IN_FOCUSED_WINDOW map doesn't yet exist.
	(udpateComponentInputMap): New method.  This is the method that 
	ComponentInputMap calls when it is updated.  Not yet completely 
	implemented.

2005-11-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.java,
	org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.java:
	New files.

2005-11-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/PortableInterceptor/ObjectReferenceTemplate.java,
	org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java,
	org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.java:
	New files.

2005-11-09  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTabbedPane.java
	(setComponent): Added check to prevent infinite loops.
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(createLayoutManager): Should call super here, so the layout
	is set properly depending on the layout mode.

2005-11-09  David Gilbert  <david.gilbert@object-refinery.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(mkMenuBar): added file chooser item,
	(mkButtonBar): split buttons into two rows, added 'FileChooser' button,
	* examples/gnu/classpath/examples/swing/FileChooserDemo.java: New file.

2005-11-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/PortableInterceptor/ObjectReferenceFactory.java: Do not
	inherit	from org.omg.CORBA.Object.

2005-11-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/ComponentUI.java
	(update): Restore the foreground color after filling the background.

2005-11-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paint): Fetch a new componentGraphics here instead of
	paintComponent.
	(paintComponent): Don't fetch the componentGraphics here. This
	must be done in paint.

2005-11-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(setModel): throw IllegalArgumentException for null model.

2005-11-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(getVisibleEditorRect): Correctly calculate the inner rectangle.

2005-11-09  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c 
	(initStaticState): Register global variable glyphVector_class 
	as global reference.

2005-11-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/DefaultCaret.java (BlinkTimerListener):  
	Added ignoreNextEvent flag and its handling.
	(blinkListener): New field. (initBlinkTimer): 
	Initialise blinkListener field.
	(setDot, moveDot): Call appear() instead of repaint(). 
	(appear): new method.

2005-11-08  Lillian Angel  <langel@redhat.com>

	* examples/gnu/classpath/examples/swing/GNULookAndFeel.java
	(getDefaults): Added icons for checkboxes and radiobutton.
	(CheckBoxIcon): New class, implemented.
	(RadioButtonIcon): New class, implemented.

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

	* gnu/classpath/SystemProperties.java: Don't mention
	gnu.java.awt.FocusManager.

2005-11-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/CompositeView.java
	(modelToView): Adjust the allocation to the child allocation before
	forwarding to the child's modelToView. Replaced AssertionError by
	BadLocationException, because that is the right thing to do here.

2005-11-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(GlassPaneDispatcher.acquireComponentForMouseEvent): Use the
	frame's layeredPane as parent instead of the content pane
	when searching for the event target. This way a possibly set menubar
	is also included in the search.

2005-11-08  Lillian Angel  <langel@redhat.com>

	* java/awt/Window.java
	(setLocationRelativeTo): Changed x and y to use getLocationOnScreen
	and moved setLocation call outside of check.
	* javax/swing/JOptionPane.java
	(createDialog): Moved pack call and setLocationRelativeTo call here
	and removed these calls from all other functions that call
	createDialog. Also, removed FIXME, since call to setLocationRelativeTo
	fixes this.
	(showConfirmDialog): Removed pack and setLocationRelativeTo calls.
	(showConfirmDialog): Likewise.
	(showConfirmDialog): Likewise.
	(showConfirmDialog): Likewise.
	(showInputDialog): Likewise.
	(showInputDialog): Likewise.
	(showInputDialog): Likewise.
	(showInputDialog): Likewise.
	(showInputDialog): Likewise.
	(showInputDialog): Likewise.
	(showMessageDialog): Likewise.
	(showMessageDialog): Likewise.
	(showOptionDialog): Likewise.
	* javax/swing/JTree.java
	(JTree): Should not use a shared instance of the selection model. It
	is a problem when one application has two different trees.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(paintRow): Changed parameter to be the focus of the tree.
	(updateCurrentVisiblePath): Adjusted root path incase the root is hidden.

2005-11-08  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/event/InvocationEvent.java:
	(exception): Removed unnecessary field.
	(dispatch): Removed reference to field exception.
	(getException): If throwable is an Exception, return a casted version, 
	otherwise return null.
	(getThrowable): Improved docs.

2005-11-08  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/SwingUtilities.java:
	(replaceUIActionMap): Stop climbing hierarchy once we've found an 
	ActionMapUIResource, don't keep looking until parent is null.  No need
	to check if child is null.
	(replaceUIInputMap): Use a local variable for the parent rather than 
	3 calls to get parent.  No need to check if child is null.
	* javax/swing/plaf/basic/BasicListUI.java:
	* javax/swing/plaf/basic/BasicTableUI.java:
	* javax/swing/plaf/basic/BasicTreeUI.java:
	(installKeyboardActions): UI ActionMap should be of type 
	ActionMapUIResource, not just ActionMap.

2005-11-08  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(ElementBuffer.clone): New API method.

2005-11-08  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/lang/String.java:
	(replace): Use a StringBuilder instead of a StringBuffer because this 
	is faster and we don't need thread-safety.

2005-11-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(installDefaults): Initialize background field correctly.

2005-11-08  Roman Kennke  <kennke@aicas.com>

	* java/awt/BorderLayout.java
	(getAlignmentX): Return 0.5F here.
	(getAlignmentY): Return 0.5F here.

2005-11-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JRootPane.java
	(RootLayout.glassPaneBounds): New field.
	(RootLayout.layeredPaneBounds): New field.
	(RootLayout.contentPaneBounds): New field.
	(RootLayout.menuBarBounds): New field.
	(RootLayout.prefSize): New field.
	(getLayoutAlignmentX): Return 0.0F here.
	(getLayoutAlignmentY): Return 0.0F here.
	(invalidateLayout): Throw away cached layout information.
	(layoutContainer): Simplified and fixed the layout. Use cache if
	possible.
	(preferredLayoutSize): Simplified and fixed the layout. Use cache if
	possible.

2005-11-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(alignmentX): Changed default value to -1.0.
	(alignmentY): Changed default value to -1.0.
	(getAlignmentX): If no value has been set, refer to the superclass
	behaviour.
	(getAlignmentY): If no value has been set, refer to the superclass
	behaviour.
	(setAlignmentX): Catch invalid values and adjust them to the nearest
	valid value.
	(setAlignmentY): Catch invalid values and adjust them to the nearest
	valid value.

2005-11-08  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(getAlignmentX): Refer to the layout managers layoutAlignmentX
	property if layout manager is a LayoutManager2.
	(getAlignmentY): Refer to the layout managers layoutAlignmentY
	property if layout manager is a LayoutManager2.

2005-11-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLayeredPane.java
	(layerToRange): Return empty array for unknown layer instead of
	throwing an exception.

2005-11-08  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(invalidate): Don't invalidate invalid parents.

2005-11-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JComponent.java (setMaximumSize, 
	setMinimumSize, setPreferredSize): Clone the passed parameter.

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

	* java/awt/Component.java
	(invalidate): Invalidate up the whole tree, regardless if some
	parent is already marked invalid. This is needed in some situations
	for layout managers to throw away their cache.

2005-11-07  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTable.java
	(tableChanged): Cleared selection if there are no more rows. Prevents a
	NPE.
	* javax/swing/JTree.java
	(scrollRectToVisible): No need to set the selection path here.
	(expandPath): Sometimes it is required to set the state of a leaf, 
	especially if the leaf is the root node.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(getRowCount): Added call to updateCurrentVisiblePath, so the
	correct value is always returned.
	(paint): No need to paint if the visible path is null.
	(propertyChange): Implemented.
	(paintRecursive): Added check for visibility of child. If it is
	not visible because it was explicitly set to be hidden, no lines
	should be drawn.
	(paintControlIcons): Likewise.
	(getPreviousNode): Fixed check to include root.
	(paintRow): Set focus to be true (this will change in the future).
	(updateCurrentVisiblePath): Fixed check to call getNextNode if
	the current node is a leaf (more efficent than calling getNextSibling).
	* javax/swing/tree/DefaultTreeCellRenderer.java
	(getTreeCellRendererComponent): Changed to draw border if node has focus.

2005-11-07  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #24467
	* native/jni/java-nio/gnu_java_nio_charset_iconv_IconvDecoder.c
	(Java_gnu_java_nio_charset_iconv_IconvDecoder_decode):
	Do not check errno == EINVAL, which is a normal case.

2005-11-07  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #22968
	* gnu/java/nio/charset/iconv/IconvProvider.java
	(IconvProvider): Declare the constructor public.

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

	* javax/swing/JApplet.java
	(initStageDone): Removed unnecessary field.
	(JApplet): Use rootPaneCheckingEnabled property instead of
	initStageDone field.
	(setLayout): Likewise.
	(addImpl): Likewise.
	* javax/swing/JDialog.java
	(initStageDone): Removed unnecessary field.
	(dialogInit): Use rootPaneCheckingEnabled property instead of
	initStageDone field.
	(setLayout): Likewise.
	(addImpl): Likewise.
	* javax/swing/JFrame.java
	(initStageDone): Removed unnecessary field.
	(frameInit): Use rootPaneCheckingEnabled property instead of
	initStageDone field.
	(setLayout): Likewise.
	(addImpl): Likewise.
	* javax/swing/JWindow.java
	(initStageDone): Removed unnecessary field.
	(windowInit): Use rootPaneCheckingEnabled property instead of
	initStageDone field.
	(setLayout): Likewise.
	(addImpl): Likewise.
	* javax/swing/JInternalFrame.java
	(initStageDone): Removed unnecessary field.
	(JInternalFrame): Use rootPaneCheckingEnabled property instead of
	initStageDone field.
	(setLayout): Likewise.
	(addImpl): Likewise.
	(paramString): Return superclass paramstring.
	(reshape): Call revalidate() instead of invalidate() and doLayout().
	(setUI): Temporarily go into init mode, so that the UI can
	manipulate the frame directly.
	(updateUI): Likewise.

2005-11-07  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/lang/String.java:
	(replace): Use a StringBuffer instead of String.  Only search for new 
	occurrences of the target that occur AFTER the text just inserted, so 
	if the replacement string contains the target string we won't go into 
	an infinite loop.  Use local variables instead of repeated calls to 
	length() and toString().

2005-11-07  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c: 
	Use long for 64-bit architectures.

2005-11-07  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/util/Arrays.java:
	(toString(long[])): New API method.
	(toString(int[])): Likewise.
	(toString(short[])): Likewise.
	(toString(char[])): Likewise.
	(toString(byte[])): Likewise.
	(toString(boolean[])): Likewise.
	(toString(float[])): Likewise.
	(toString(double[])): Likewise.
	(toString(Object[])): Likewise.

2005-11-07  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/event/InvocationEvent.java:
	(throwable): New field.
	(getThrowable): New API method.
	(dispatch()): Catch Throwable, not Exception.  Save the Throwable.  If
	it is an Exception, save the Exception.

2005-11-07  Lillian Angel  <langel@redhat.com>

	* javax/swing/Popup.java
	(show): Set layout for panel. Otherwise, contents are
	displayed at an arbitrary location.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(getPreferredMenuItemSize): Took into account insets.
	* javax/swing/plaf/metal/MetalButtonUI.java
	(paintFocus): Don't paint focus if not enabled.

2005-11-07  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/lang/String.java:
	(contains): New API method.
	(replace): New API method.

2005-11-07  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/lang/Boolean.java:
	(compareTo(Boolean)): New API method.

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

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(installComponents): update local reference to editor component always,
	(getDisplaySize): implement new calculation for editable combo boxes,
	* javax/swing/plaf/metal/MetalComboBoxEditor.java
	(editorBorderInsets): initialise with correct value,
	* javax/swing/plaf/metal/MetalComboBoxUI.java
	(getMinimumSize): implemented different calculation for editable combo 
	boxes.

2005-11-07  Lillian Angel  <langel@redhat.com>

	* javax/swing/JOptionPane.java
	(showConfirmDialog): Added call to set the location of the
	dialog relative to its parent.
	(showConfirmDialog): Likewise.
	(showConfirmDialog): Likewise.
	(showConfirmDialog): Likewise.
	(showInputDialog): Likewise.
	(showInputDialog): Likewise.
	(showInputDialog): Likewise.
	(showInputDialog): Likewise.
	(showMessageDialog): Likewise.
	(showMessageDialog): Likewise.
	(showMessageDialog): Likewise.
	(showOptionDialog): Likewise.

2005-11-07  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(getPreferredMenuItemSize): Adjusted width of menu item with
	arrow icon. If the menu item can fit in the current width of
	the top level menu, then the width of the menu item is set to
	the width of the popup menu. Otherwise, the width of the
	menu item is adjusted so that the width of the popup menu
	is increased.

2005-11-07  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Don't check or replace FREETYPE2.
	* native/jni/gtk-peer/Makefile.am: Remove FREETYPE2_LIBS and
	FREETYPE2_CFLAGS.

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

	* javax/swing/plaf/metal/MetalComboBoxEditor.java
	(MetalComboBoxEditor): don't create new editor.

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

	* javax/swing/plaf/basic/BasicComboBoxEditor.java: API docs plus
	(BasicComboBoxEditor): set border to null and columns to 9,
	(addActionListener): implemented,
	(removeActionListener): implemented.

2005-11-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/IOR.java (equals, hasCode): Compare port number as well
	and do not crash on IOR.Internet==null.

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

	* javax/swing/Timer.java (Waker.run): Test and set running while
	holding queueLock.
	(start): Set running to true.
	(stop): Unconditionally notify queueLock.
	(queueEvent): Only called when queueLock already held.

2005-11-06  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_setGradientUnlocked): Update
	debug output to reflect actual situation.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_setTexturePixelsUnlocked):
	Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_drawPixels): Adjust
	formatting.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetMatrixUnlocked):
	Update debug output to reflect actual situation.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetRGBAColorUnlocked):
	Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoCurveTo): Adjust
	formatting.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoRelCurveTo): Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoRectangle): Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSurfaceSetFilterUnlocked):
	Update debug output to reflect actual situation.

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

	* java/awt/image/AreaAveragingScaleFilter.java: Add FIXME
	* java/awt/Image.java (getScaledInstance): In case of
	SCALE_AREA_AVERAGING use AreaAveragingScaleFilter.

2005-11-06  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/event/PrintEvent.java,
	* javax/print/event/PrintJobAdapter.java,
	* javax/print/event/PrintJobAttributeEvent.java,
	* javax/print/event/PrintJobAttributeListener.java,
	* javax/print/event/PrintJobEvent.java,
	* javax/print/event/PrintJobListener.java,
	* javax/print/event/PrintServiceAttributeEvent.java,
	* javax/print/event/PrintServiceAttributeListener.java,
	* javax/print/event/package.html: Added API docs all over.

2005-11-06  Wolfgang Baer  <WBaer@gmx.de>

	* java/io/File.java
	(getParent): If pathname is "" return null.
	(toURI): Also append separatorChar if path equals "".
	(getAbsolutePath): If path equals "" only return the value
	of the user.dir system property.

2005-11-06  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/XMLStreamWriterImpl.java: Ensure that generated
	prefixes do not accidentally clash, and provide documentation for
	new virtual methods. createPrefix (new method) signature changed to
	provide namespace URI for the benefit of subclasses.

2005-11-06  Chris Burdess  <dog@gnu.org>

	* gnu/xml/transform/StreamSerializer.java: Avoid undeclared apos
	entity when output mode is HTML.

2005-11-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/IOR.java (equals, hashCode): New metods.
	* gnu/CORBA/SimpleDelegate.java (is_equivalent): Compare IORs when applicable.

2005-11-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Minor.java (IOR_missing): New minor code.
	* gnu/CORBA/NamingService/NameParser.java (corbaloc): Implemented
	file//, ftp:// and http:// support.
	* gnu/javax/rmi/CORBA/UtilDelegateImpl.java (mapSystemException): 
	Set the cause directly.
	* org/omg/CORBA/DATA_CONVERSION.java,
	org/omg/CORBA/ORB.java (string_to_object): Documentation update.

2005-11-06  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/XMLStreamWriterImpl.java: Fixed handling of
	namespaces when isPrefixDefaulting is set.

2005-11-04  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java: Reformatted.

2005-11-04  Lillian Angel  <langel@redhat.com>

	* java/awt/Window.java
	(setLocationRelativeTo): Implemented case when
	component is not null.

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

	* java/awt/image/BufferedImage.java (BufferedImage): Implement
	Transparency.
	(getTransparency): New method.

2005-11-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * gnu/CORBA/SocketRepository.java (sockets): Changed type to
	HashMap. (put_socket, get_socket, gc):
	Always synchronize on 'sockets'.

2005-11-04  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Set version to 0.20-pre.

2005-11-04  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/StyleConstants.java:
	(Family): New API field.
	(Size): New API field.

2005-11-04  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(paintMenuItem): Changed to use isTopLevelMenu rather than checking
	instance of parent.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java
	(popupMenuWillBecomeInvisible): Added check to prevent NPE.
	* javax/swing/Popup.java:
	Added new private field.
	(LightweightPopup): Initialized layeredPane.
	(show): Removed unneeded code.
	(hide): Likewise.

2005-11-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/table/DefaultTableCellRenderer.java
	(updateUI): Set the background and foreground color fields to null
	here so that installing the LabelUI does not interfere with our
	custom set colors.
	(getTableCellRendererComponent): Only set UI focus colors when
	cell is actually editable. Added optimization for the case
	when background is equal to table background.

2005-11-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/table/DefaultTableCellRenderer.java
	(getTableCellRendererComponent): Call super.setBackground() or
	super.setForeground() to avoid overriding custom set background or
	foreground colors. Set the UI focus colors when focused.

2005-11-04  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/TextFieldDemo.java: New file.
	Demonstrates the JTextFields in various states.
	* examples/gnu/classpath/examples/swing/Demo.java: Replaced the
	old textfield demo with the new one.

2005-11-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(getMinimumSize): New method.
	* javax/swing/text/FieldView.java
	(getPreferredSpan): Added assert that replaces a 'should never happen'
	comment.

2005-11-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SizeRequirements.java
	(getTiledSizeRequirements): Added check for overflows.
	(adjustGreater): Fixed overflow handling through usage of long
	instead of int.

2005-11-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultCaret.java
	(positionCaret): Call setDot instead of moveDot.
	* javax/swing/text/PlainView.java
	(viewToModel): Exclude the final newline character from calculation.

2005-11-03  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/announce/20051102.wml: New file.
	* doc/www.gnu.org/newsitems.txt: Add 0.19 release announcement.
	* doc/www.gnu.org/downloads/downloads.wml: Add 0.19.

2005-11-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/table/DefaultTableCellRenderer.java
	(background): New field.
	(foreground): New field.
	(setBackground): Store the color that is set here.
	(setForeground): Store the color that is set here.
	(getTableCellRendererComponent): For the unselected color, set the
	value of the foreground or background fields if not null, otherwise
	the value of the according table properties. Don't change
	the color in the focused clause.

2005-11-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(mousePressed): If the control icon is clicked, the
	path selected should not be changed.
	(paintRecursively): Moved call to getChildCount before
	loop.
	(paintRow): Added a check to prevent NPE.
	(updateCurrentVisiblePath): Made this slightly more efficent. 
	Instead of checking each path, we can check the siblings if the
	current node is not expanded.
	* javax/swing/table/DefaultTableCellRenderer.java
	(getTableCellRendererComponent): Fixed indentation, and changed
	to set the background color if it is not an instance of
	ColorUIResource. Prevents overriding a user-set color.

2005-11-03  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/WrappedPlainView.java: Fixed some > 80 chars lines.
	(drawSelectedText): Fixed startOffset for call to 
	Utilities.drawTabbedText to make sure tabs are properly expanded.
	(drawUnselectedText): Likewise.
	(getMinimumSpan): New API method.
	(getMaximumSpan): New API method.
	(setSize): Call preferenceChanged if the width has changed.
	(WrappedLine.determineNumLines): Move numLines=0 to the top in case 
	the early return happens, numLines will still be correct.
	(WrappedLine.updateDamage): New implementation method called by 
	insertUpdate and removeUpdate to repaint the appropriate part of the 
	JTextArea.
	(WrappedLine.insertUpdate): New method.
	(WrappedLine.removeUpdate): New method.

2005-11-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/table/DefaultTableCellRenderer.java
	(getTableCellRendererComponent): Fixed so that the label is 
	painted with the correct background color. Does not depend on 
	type of border. Removed this code.

2005-11-03  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/JTextComponent.java:
	(select): The end index cannot be smaller than the start index, changed
	Math.max(end, 0) to Math.max(end, start).
	* javax/swing/text/WrappedPlainView.java:
	(selectionStart): New package private field.
	(selectionEnd): Likewise.
	(drawLine): Implemented to call drawUnselectedText and drawSelectedText
	on the appropriate parts of the line.  Before it just drew the whole
	line with drawUnselectedText.
	(paint): Store the start and end of the selection.
	(WrappedLine.paint): Set the selected color to Color.WHITE.

2005-11-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/table/DefaultTableCellRenderer.java
	(getTableCellRendererComponent): Should only draw focus if the border
	is not an empty border.

2005-11-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR swing/24650
	* javax/swing/text/PlainView.java (viewToModel)):
	The end of line symbol (0xA), if being the last member in the 
	obtained text, should not be counted. 

2005-11-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	Changed field to be the gap between the different
	menu's instead. defaultTextArrowGap is not needed.
	(getPreferredMenuItemSize): Adjusted preferred size of
	Menu Item with an arrowIcon to be the size of the
	popupMenu. If its parent is not a popupMenu, then
	it is a new Menu on a MenuBar.
	* javax/swing/plaf/metal/MetalButtonUI.java
	(paintFocus): Height of focus border should not be 
	adjusted. It was being cutoff.

2005-11-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.getNextVisualPositionFrom): New method.

2005-11-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(AttributeUndoableEdit): New inner class.
	(StyleChangeListener): New inner class.
	(styleChangeListener): New field.
	(addStyle): Add styleChangeListener to new style.
	(getStyleNames): New method.
	(styleChanged): New method.
	(insert): New method.
	(create): New method.

2005-11-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultTextUI.java: New file.

2005-11-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultCaret.java
	(mouseDragged): Call moveCaret.
	(mouseClicked): Made TODO comment more precise.
	(mouseExited): Replaced TODO comment with Nothing to do comment.
	(mousePressed): Call positionCaret.
	(moveCaret): Implemented.
	(positionCaret): Implemented.
	(moveDot): Call adjustVisibility.
	(setDot): Call adjustVisibility.
	(adjustVisibility): New method.

2005-11-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/Utilities.java
	(getPositionAbove): New utility method.
	(getPositionBelow): New utility method.
	(getParagraphElement): Special case for StyledDocuments.
	* javax/swing/text/View.java
	(getNextVisualPositionFrom): New abstract method.
	* javax/swing/text/ComponentView.java
	(getNextVisualPositionFrom): New method.
	* javax/swing/text/CompositeView.java
	(getNextVisualPositionFrom): New method.
	* javax/swing/text/FlowView.java
	(LogicalView.getNextVisualPositionFrom): New method.
	* javax/swing/text/GlyphView.java
	(getNextVisualPositionFrom): New method.
	* javax/swing/text/IconView.java
	(getNextVisualPositionFrom): New method.
	* javax/swing/text/PlainView.java
	(getNextVisualPositionFrom): New method.
	* javax/swing/text/WrappedPlainView.java
	(WrappedLine.getNextVisualPositionFrom): New method.

2005-11-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultCaret.java
	(BlinkTimerListener): New inner class. Listens for when the
	blink timer fires and updates the visible flag accordingly.
	(visible): Default value for visible should be false.
	(blinkTimer): New field.
	(Caret): New constructor.
	(focusGained): Make the caret visible.
	(focusLost): Make caret invisible if the focus lost is permanent.
	(deinstall): Deinstall the blink timer.
	(repaint): Call getComponent() instead of directly accessing the
	textComponent field.
	(paint): Call getComponent() instead of directly accessing the
	textComponent field. Added an assert for the 'this should never
	happen' comment. Update the caret rectangle if damage hasn't been
	called before.
	(setBlinkRate): Set the blink rate in the timer if there is already
	a timer present.
	(setVisible): Call damage on the caret's location. Start/Stop blink
	timer.
	(damage): New method. Updates the caret's bounds.
	* javax/swing/text/JTextComponent.java
	(CaretBlinkTimer): Removed unneeded inner class.
	(caretBlinkTimer): Removed unneeded field.
	(JTextComponent): Removed initialization of blink timer.
	(setEditable): Removed starting of blink timer.
	(setCaret): Likewise.
	* javax/swing/text/Utilities.java
	(getParagraphElement): New utility method.

2005-11-02  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkGraphics.java (initComponentGraphics): Set
	color to BLACK when getForeground() returns null.
	(initComponentGraphicsUnlocked): Likewise.

2005-11-02  Mark Wielaard  <mark@klomp.org>

	* javax/swing/Timer.java (Waker.run): Synchronize on queueLock and use
	queueLock.wait(), not Thread.sleep().
	(start): Synchronize on queueLock and check whether waker is null.
	(stop): Synchronize on queueLock and notifyAll().

2005-11-02  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Set version to 0.19.
	* NEWS: Add date of release.

2005-11-02  Roman Kennke  <kennke@aicas.com>

	* java/awt/Dialog.java
	(show): Do not call pack() here.

2005-11-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* examples/Makefile.am:
	Comment out JIKES and GCJ conditionals.
	* lib/Makefile.am:
	Comment out JIKES, KJC and GCJ conditionals.
	* m4/acinclude.m4:
	Comment out selection of GCJ, Jikes and KJC as compilers for
	the branch.
	
2005-11-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* AUTHORS: Added myself.

2005-11-02  Mark Wielaard  <mark@klomp.org>

	* javax/swing/Timer.java (Waker.run): Only break out when !running.

2005-11-02  Mark Wielaard  <mark@klomp.org>

	* javax/swing/UIManager.java (static): Print complete exception.

2005-11-02  Mark Wielaard  <mark@klomp.org>

	* lib/Makefile.am: Add typeHiding, unchecked, unused and varargsCast
	to ECJ compile warning rule.

2005-11-02  Guilhem Lavaux  <guilhem@kaffe.org>

	* lib/copy-vmresources.sh.in: Added definition for top_srcdir.

2005-11-02  Mark Wielaard  <mark@klomp.org>

	* configure.ac (AC_INIT): Set version to 0.19-generics.
	* lib/Makefile.am: Add typeHiding, unchecked, unused and varargsCast
	to ECJ compile warning rule.

2005-11-02  Tom Tromey  <tromey@redhat.com>

	* javax/sound/midi/Instrument.java (Instrument): Genericized argument
	type.
	* javax/sound/midi/SoundbankResource.java (SoundbankResource):
	Genericized argument type.
	(getDataClass): Genericized return type.
	* javax/sound/midi/Sequence.java (tracks): Changed type.
	(init): Updated.
	(getTracks): Updated.
	(getTickLength): Updated.

2005-11-02  Andreas Tobler  <a.tobler@schweiz.ch>

	* NEWS: Mention Qt4 configury for OS-X.

2005-11-02  Roman Kennke  <kennke@aicas.com>

	* NEWS: Added some news items regarding my Swing work.

2005-11-02  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(findOverlapFreeParent): Don't search beyond the components
	containing window (important when in a Dialog).

2005-11-02  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* AUTHORS: Added myself to the cool gang.

2005-11-02  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/WrappedPlainView.java:
	(calculateBreakPosition): If the component is not valid use it's 
	preferredSize instead of getBounds().

2005-11-02  Lillian Angel  <langel@redhat.com>

	* java/awt/Dialog.java
	(show): pack should always be called before show, so Dialog is
	set to the correct size and validated.

2005-11-02  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* configure.ac: Check for cairo, pangoft2 and freetype2 only 
	when gtk peers are enabled.

2005-11-02    Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* AUTHORS (Stuart Ballard): Address update.

2005-11-02    Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* AUTHORS: Added Lillian Angel.

2005-11-02  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JToolBar.java
	(addImpl): Don't call updateUI here. This is really not necessary.
	* javax/swing/plaf/basic/BasicToolBarUI.java
	(installDefaults): Call setRolloverBorders() here in order to
	initialize the button borders.

2005-11-02  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(PropertyChangeHandler.propertyChange): Re-setup listeners on
	the scrollbars if the scrollbars change.

2005-11-02  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(addImpl): Notify registered ContainerListeners even when the
	Container is not showing. Notify the listeners directly, not
	via the event queue.

2005-11-02  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Fixed the defaults for EditorPane.border,
	TextArea.font and TextPane.border.

2005-11-02  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(getForeground): Return null as default color, instead of some
	system color.

2005-11-02  Roman Kennke  <kennke@aicas.com>

	* javax/swing/BoxLayout.java
	(BoxLayout): Throw AWTError when the axis is invalid.
	(minimumLayoutSize): Respect the insets of the container.
	(maximumLayoutSize): Likewise.
	(invalidateLayout): Throw AWTError if the managed container is
	not the same as the parent parameter.

2005-11-02  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(getMaximumSize): Return (Short.MAX_VALUE, Short.MAX_VALUE) instead
	of (Integer.MAX_VALUE, Integer.MAX_VALUE) as shown by the
	Mauve test.

2005-11-02  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(AccessibleJTable.AccessibleJTableCell): New inner class.

2005-11-02  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/filechooser/FileSystemView.java: Added API docs all over,
	* javax/swing/filechooser/UnixFileSystemView.java: Likewise.

2005-11-02  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* java/lang/String.java (String): Added 
	StringIndexOutOfBoundsException check (overflow) and a message 
	to the exceptions.
			
2005-11-02  David Gilbert  <david.gilbert@object-refinery.com>

	* NEWS: added entries for javax.swing.plaf.metal.* package and updates
	to the gnu.classpath.examples.swing.Demo application,
	* AUTHORS:  Added my name to bring honour and glory to myself and all 
	my descendants.

2005-11-02  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(AccessibleJComponent.changeSupport): New field.
	(AccessibleJComponent.AccessibleJComponent): Initialize changeSupport.
	(AccessibleJComponent.addPropertyChangeListener): Implemented this
	method.
	(AccessibleJComponent.removePropertyChangeListener): Implemented this
	method.
	(AccessibleJComponent.getAccessibleChildrenCount): Implemented this
	method.
	(AccessibleJComponent.getAccessibleChild): Implemented this
	method.
	(AccessibleJComponent.getAccessibleName): Added API comment and
	TODO tag.
	(AccessibleJComponent.getAccessibleDescription): Added API comment
	and TODO tag.
	(AccessibleJComponent.getAccessibleRole): Implemented this method.
	(AccessibleJComponent.getBorderTitle): Implemented this method.
	(AccessibleJComponent.getToolTipText): Implemented this method.
	(AccessibleJComponent.getTitledBorderText): Implemented this method.
	(AccessibleJComponent.getAccessibleKeyBinding): Added API comment
	and TODO tag.

2005-11-01  Mark Wielaard  <mark@klomp.org>

	* examples/gnu/classpath/examples/swing/Demo.java (init): Use
	JOptionPane to select the laf if not explicitly set.

2005-11-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/io/ObjectInputStream.java:
	(parseContent(byte)): Remove weird exception
	throwing.
	
2005-11-01  Roman Kennke  <kennke@aicas.com>

	* java/awt/Window.java
	(show): Don't set size of the window here.

2005-11-01  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalScrollPaneUI.java
	(instance): Removed unnecessary field.
	(createUI): Always return a new instance instead of returning a
	shared instance.

2005-11-01  Lillian Angel  <langel@redhat.com>

	* java/awt/Window.java
	(show): If pack is not called before show, the size of the
	window is often set to 0. This is now fixed.

2005-11-01  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JPopupMenu.java
	(setVisible): Pack the JPopupMenu before fetching the Popup
	instance. Otherwise the PopupFactory has the wrong size for
	its size check.

2005-11-01  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTable.java:
	(JTable(TableModel, TableColumnModel, ListSelectionModel)): Call 
	updateUI after initializeLocalVars.  Manually set the lead selection
	indices.

2005-11-01  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicFileChooserUI.java:
	(getApproveButtonText): First use the JFileChooser's approve button 
	text, but if it is null, then try otherwise.

2005-11-01  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* vm/reference/java/lang/VMThread.java (sleep): Don't round     
	ms and pass ns to Object.wait, fixes mauve test.
		
2005-11-01  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JFileChooser.java:
	(getDialogTitle): Allow return of null.
	(getApproveButtonText): Likewise.
	(getFileView): Likewise.
	(getName): First try using the JFileChooser's FileView, if null, then
	pass call to UI.
	(getDescription): Likewise.
	(getTypeDescription): Likewise.
	(getIcon): Likewise.

2005-11-01  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTable.java:
	(JTable(TableModel, TableColumnModel, ListSelectionModel)): Set the 
	model before calling initializeLocalVars.

2005-11-01  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java
	(BasicCheckBoxMenuItem): Moved code to BasicMenuItemUI.installDefaults
	(processMouseEvent): Added TODO comment. Not sure about the 
	correct implementation yet.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Removed MenuItem.checkIcon default. Only
	RadioButtonMenuItem's and CheckBoxMenuItem's have checkIcons.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(installDefaults): Fixed to initialized checkIcon. If the menuItem is
	not a RadioButtonMenuItem or CheckBoxMenuItem, then checkIcon is null.
	Also, fixed defaults to use prefix.

2005-11-01  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/ObjectOutputStream.java
	(writeObject): Fixed NPE.

2005-10-31  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicTextAreaUI.java:
	(create): Added docs.  Create WrappedPlainView instead of PlainView if
	the text area has line wrapping turned on.
	(propertyChange): New API method.  If line wrapping is turned on or off
	or if the style of wrapping (character or word) is changed, call 
	modelChanged().
	* javax/swing/plaf/basic/BasicTextUI.java:
	(setView): Call revalidate and repaint after setting the View.
	* javax/swing/text/WrappedPlainView.java:
	(insertUpdate): Repaint the container.
	(removeUpdate): Likewise.
	(changedUpdate): Likewise.

2005-10-31  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/WrappedPlainView.java:
	(viewFactory): New field.
	(drawLine): New API method.
	(calculateBreakPosition): Update the metrics before calling Utilities
	methods. Fixed error in offset argument passed to the Utilities 
	methods.
	(updateMetrics): New implementation method.
	(getPreferredSpan): New API method.
	(insertUpdate): Likewise.
	(removeUpdate): Likewise.
	(changedUpdate): Likewise.
	(WrappedLineCreator): New class.
	(paint): New API method.
	(setSize): New API method.
	(WrappedLine.paint): Implemented.
	(WrappedLine.getPreferredSpan): Don't update the metrics, this is now
	done in WrappedPlainView.paint.
	(WrappedLine.modelToView): Likewise.
	(WrappedLine.viewToModel): Likewise.
	
2005-10-31  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/Utilities.java:
	(getTabbedTextOffset): Adjusted for loop bound down by s.offset and
	adjusted array index up by s.offset.  This fixes the second part of 
	PR 24316.  Expand tabs, not newlines.  Allow the x-position to reach
	the end specified position (use < instead of <=).

2005-10-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTextField.java
	(horizontalVisibility): New field.
	(JTextField): Initialize horizontalVisibility field.
	(getHorizontalVisibility): New method.

2005-10-31  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/SocketRepository.java (not_reusable, gc): New methods.
	(sockets): Use hashtable. (get_socket): Rewritten.

2005-10-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(AccessibleJTable.tableChanged): Implemented.
	(AccessibleJTable.tableRowsInserted): Implemented.
	(AccessibleJTable.tableRowsDeleted): Implemented.

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

	* javax/swing/plaf/basic/BasicTreeUI.java
	(updateCurrentVisiblePath): Check whether treeModel is null.

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

	* examples/gnu/classpath/examples/swing/Demo.java (static): Set look
	and feel before showing dialog. Clean up message text.

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

	* javax/swing/text/PlainView.java (determineMaxLineLength): Get
	correct lenght of text.
	(drawLine): Throw AssertionError on unexpected bad location.
	(viewToModel): Likewise.

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

	* javax/swing/text/AbstractDocument.java (dump): Actually throw
	AssertionError when constructed.
	* javax/swing/text/DefaultFormatter.java (checkValidInput): Add cause
	to AssertionError.
	* javax/swing/text/DefaultStyledDocument.java (insertUpdate):
	Likewise.
	* javax/swing/text/GlyphView.java (getPartialSpan): Likewise.
	(getText): Likewise.
	* javax/swing/text/PlainView.java (determineMaxLineLength): Likewise.
	(updateDamage): Likewise.

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

	* gnu/java/rmi/server/UnicastServer.java (refcache): Make it a
	synchronized IdentityHashMap.

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

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(GdkGraphics2D(GdkGraphics2D,int, int, int,int)): New constructor.
	(create(int,int,int,int)): Use new constructor.
	(copyArea): Implement through create() and gdkDrawDrawable().

2005-10-29  Guilhem Lavaux  <guilhem@kaffe.org>

	* java/nio/channels/spi/AbstractSelectableChannel.java
	(register): Throw IllegalBlockingModeException if the channel is
	not in blocking mode. 
	
2005-10-29  David Gilbert  <david.gilbert@object-refinery.com>

	* examples/gnu/classpath/examples/swing/ButtonDemo.java
	(ButtonDemo): add closePanel after content is created,
	(createContent): don't add closePanel here,
	* examples/gnu/classpath/examples/swing/ComboBoxDemo.java
	(ButtonDemo): add closePanel after content is created,
	(createContent): don't add closePanel here,
	* examples/gnu/classpath/examples/swing/ScrollBarDemo.java
	(ButtonDemo): add closePanel after content is created,
	(createContent): don't add closePanel here,
	* examples/gnu/classpath/examples/swing/SliderDemo.java
	(ButtonDemo): add closePanel after content is created,
	(createContent): add separate checkBoxPanel but don't add closePanel 
	here.

2005-10-28  Roman Kennke  <kennke@aicas.com>

	* java/awt/KeyboardFocusManager.java
	(setCurrentKeyboardFocusManager): Create a DefaultKeyboardFocusManager
	directly.
	(createFocusManager): Removed.
	* gnu/java/awt/FocusManager.java: Removed.
	* javax/swing/FocusManager.java
	(DisabledFocusManager): Removed inner class.
	(WrappingFocusManager): New inner class.
	(getCurrentManager): Return WrappingKeyboardFocusManager instance.

2005-10-28  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/Component.java:
	(requestFocus): If this component is a Container, start here, not at
	its parent when	looking for the top-level ancestor.  If no top-level
	ancestor is found (parent == null), return.

2005-10-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/table/DefaulTableCellRenderer.java
	(getTableCellRenderer): Correctly configure the cell renderer for
	selected and / or focused cells.
	* javax/swing/table/JTableHeader.java
	(getHeaderRect): Don't include the intercellSpacing in the
	header rectangle.

2005-10-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTableUI.java
	(MouseInputHandler.mouseDragged): Only react if table is enabled.
	(MouseInputHandler.mousePressed): Only react if table is enabled.
	(MouseInputHandler.mouseReleased): Only react if table is enabled.
	(PropertyChangeHandler): New inner class. Updates the state of
	the table if the model property changes.
	(installDefaults): Don't load the highlightCellBorder here. This
	is done in the cell renderer now.
	(installListeners): Install the new PropertyChangeListener.
	(uninstallListeners): Uninstall the new PropertyChangeListener.
	(paintCell): Fixed determination of the selected and focused state
	of the cell. Removed handling of the border (this is moved into
	the cell renderer).
	(paint): Fixed the rectangle calculation of the cell. Fixed painting
	of the grid.

2005-10-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/DefaultListSelectionModel.java
	(setLeadSelectionIndex): Forbit some changes to leadSelectionIndex
	when the anchorSelectionIndex is not set properly.

2005-10-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Poa/AOM.java,
	gnu/CORBA/Poa/AccessiblePolicy.java,
	gnu/CORBA/Poa/DynamicImpHandler.java,
	gnu/CORBA/Poa/StandardPolicies.java,
	gnu/CORBA/Poa/ServantDelegateImpl.java,
	gnu/CORBA/Poa/NamingService/NameComponentComparator.java
	gnu/CORBA/Poa/NamingService/NameTransformer.java
	gnu/CORBA/GIOP/ContextHandler.java,
	gnu/CORBA/GIOP/CodeSetServiceContext.java: New files.
	* gnu/CORBA/GIOP/contextSupportingHeader.java,
	gnu/CORBA/GIOP/cxCodeSet.java,
	gnu/CORBA/NamingService/cmpNameComponent.java,
	gnu/CORBA/NamingService/snConverter.java,
	gnu/CORBA/Poa/activeObjectMap.java,
	gnu/CORBA/Poa/dynImpHandler.java,
	gnu/CORBA/Poa/policySets.java,
	gnu/CORBA/Poa/servantDelegate.java,
	gnu/CORBA/Poa/vPolicy.java: Removed.
	* gnu/CORBA/GIOP/CharSets_OSF:
	Explaining the reason of setting "_OSF" apart.
	* gnu/CORBA/CDR/AbstractCdrInput.java,
	gnu/CORBA/CDR/AbstractCdrOutput.java,
	gnu/CORBA/GIOP/CharSets_OSF.java,
	gnu/CORBA/GIOP/ReplyHeader.java,
	gnu/CORBA/GIOP/RequestHeader.java,
	gnu/CORBA/GIOP/ServiceContext.java,
	gnu/CORBA/GIOP/v1_0/ReplyHeader.java,
	gnu/CORBA/GIOP/v1_0/RequestHeader.java,
	gnu/CORBA/GIOP/v1_2/ReplyHeader.java,
	gnu/CORBA/GIOP/v1_2/RequestHeader.java,
	gnu/CORBA/IOR.java,
	gnu/CORBA/NamingService/Ext.java,
	gnu/CORBA/NamingService/NameParser.java,
	gnu/CORBA/NamingService/NamingMap.java,
	gnu/CORBA/Poa/ForwardedServant.java,
	gnu/CORBA/Poa/LocalDelegate.java,
	gnu/CORBA/Poa/LocalRequest.java,
	gnu/CORBA/Poa/ORB_1_4.java,
	gnu/CORBA/Poa/gnuAdapterActivator.java,
	gnu/CORBA/Poa/gnuIdAssignmentPolicy.java,
	gnu/CORBA/Poa/gnuIdUniquenessPolicy.java,
	gnu/CORBA/Poa/gnuImplicitActivationPolicy.java,
	gnu/CORBA/Poa/gnuLifespanPolicy.java,
	gnu/CORBA/Poa/gnuPOA.java,
	gnu/CORBA/Poa/gnuRequestProcessingPolicy.java,
	gnu/CORBA/Poa/gnuServantObject.java,
	gnu/CORBA/Poa/gnuServantRetentionPolicy.java,
	gnu/CORBA/Poa/gnuThreadPolicy.java,
	gnu/CORBA/ResponseHandlerImpl.java,
	gnu/CORBA/gnuRequest.java,
	gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java,
	gnu/javax/rmi/CORBA/UtilDelegateImpl.java,
	org/omg/CosNaming/_NamingContextExtStub.java:
	References updated.

2005-10-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(JTable): Changed order of initialization (UI first, then the model
	etc), so that the UI gets notified of the initial model change.
	(rowAtPoint): Don't add the intercellSpacing in the calculation
	of the row-at-Point.
	(setModel): Throw a PropertyChangeEvent here if the model changes.

2005-10-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/DynAn/ValueChangeListener.java
	gnu/CORBA/DynAn/AbstractAny.java
	gnu/CORBA/DynAn/RecordAny.java
	gnu/CORBA/DynAn/DivideableAny.java
	gnu/CORBA/DynAn/UndivideableAny.java: New files.
	* gnu/CORBA/DynAn/abstractDynAny.java,
	gnu/CORBA/DynAn/recordAny.java,
	gnu/CORBA/DynAn/anyDivideable.java,
	gnu/CORBA/DynAn/anyUndivideable.java,
	gnu/CORBA/DynAn/valueChangedListener.java: Removed.
	* gnu/CORBA/DynAn/gnuDynAny.java,
	gnu/CORBA/DynAn/gnuDynArray.java,
	gnu/CORBA/DynAn/gnuDynEnum.java,
	gnu/CORBA/DynAn/gnuDynFixed.java,
	gnu/CORBA/DynAn/gnuDynStruct.java,
	gnu/CORBA/DynAn/gnuDynUnion.java,
	gnu/CORBA/DynAn/gnuDynValue.java,
	gnu/CORBA/DynAn/gnuDynValueBox.java:
	References updated.

2005-10-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/CDR/abstractDataInputStream.java,
	gnu/CORBA/CDR/abstractDataOutputStream.java,
	gnu/CORBA/CDR/aligningInputStream.java,
	gnu/CORBA/CDR/aligningOutputStream.java,
	gnu/CORBA/CDR/cdrBufInput.java.java,
	gnu/CORBA/CDR/cdrBufOutput.java
	gnu/CORBA/CDR/cdrInput.java,
	gnu/CORBA/CDR/cdrOutput.java,
	gnu/CORBA/CDR/encapsulatedOutput.java,
	gnu/CORBA/CDR/noHeaderInput.java: Removed.
	* gnu/CORBA/CDR/HeadlessInput.java
	gnu/CORBA/CDR/AbstractCdrInput.java
	gnu/CORBA/CDR/AbstractCdrOutput.java
	gnu/CORBA/CDR/AbstractDataInput.java
	gnu/CORBA/CDR/AbstractDataOutput.java
	gnu/CORBA/CDR/AligningInput.java
	gnu/CORBA/CDR/AligningOutput.java
	gnu/CORBA/CDR/BufferedCdrOutput.java
	gnu/CORBA/CDR/BufferredCdrInput.java
	gnu/CORBA/CDR/EncapsulationStream.java: New files.
	* gnu/CORBA/CDR/ArrayValueHelper.java,
	gnu/CORBA/CDR/BigEndianInputStream.java,
	gnu/CORBA/CDR/BigEndianOutputStream.java,
	gnu/CORBA/CDR/LittleEndianInputStream.java,
	gnu/CORBA/CDR/LittleEndianOutputStream.java,
	gnu/CORBA/CDR/UnknownExceptionCtxHandler.java,
	gnu/CORBA/CDR/Vio.java,
	gnu/CORBA/CdrEncapsCodecImpl.java,
	gnu/CORBA/DynAn/gnuDynAny.java,
	gnu/CORBA/GIOP/MessageHeader.java,
	gnu/CORBA/GIOP/ReplyHeader.java,
	gnu/CORBA/GIOP/RequestHeader.java,
	gnu/CORBA/GIOP/ServiceContext.java,
	gnu/CORBA/GIOP/cxCodeSet.java,
	gnu/CORBA/GIOP/v1_0/ReplyHeader.java,
	gnu/CORBA/GIOP/v1_0/RequestHeader.java,
	gnu/CORBA/GIOP/v1_2/ReplyHeader.java,
	gnu/CORBA/GIOP/v1_2/RequestHeader.java,
	gnu/CORBA/GeneralHolder.java,
	gnu/CORBA/IOR.java,
	gnu/CORBA/Interceptor/gnuIcCurrent.java,
	gnu/CORBA/IorDelegate.java,
	gnu/CORBA/ObjectCreator.java,
	gnu/CORBA/OrbFunctional.java,
	gnu/CORBA/OrbRestricted.java,
	gnu/CORBA/Poa/LocalDelegate.java,
	gnu/CORBA/Poa/LocalRequest.java,
	gnu/CORBA/Poa/gnuPOA.java,
	gnu/CORBA/RawReply.java,
	gnu/CORBA/ResponseHandlerImpl.java,
	gnu/CORBA/ServiceRequestAdapter.java,
	gnu/CORBA/StreamBasedRequest.java,
	gnu/CORBA/gnuAny.java,
	gnu/CORBA/gnuRequest.java,
	gnu/CORBA/typecodes/GeneralTypeCode.java,
	gnu/javax/rmi/CORBA/DefaultWriteObjectTester.java,
	gnu/javax/rmi/CORBA/RmiUtilities.java,
	gnu/javax/rmi/CORBA/StubDelegateImpl.java,
	org/omg/IOP/TaggedProfileHelper.java:
	References updated.

2005-10-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/rmi/CORBA/corbaObjectInput.java,
	gnu/javax/rmi/CORBA/corbaObjectOutput.java,
	gnu/javax/rmi/CORBA/dwoTester.java,
	gnu/javax/rmi/CORBA/gnuRmiUtil: Deleted.
	* gnu/javax/rmi/CORBA/CorbaInput.java,
	gnu/javax/rmi/CORBA/CorbaOutput.java,
	gnu/javax/rmi/CORBA/DefaultWriteObjectTester.java,
	gnu/javax/rmi/CORBA/RmiUtilities.java: New files.
	* gnu/javax/rmi/CORBA/UtilDelegateImpl.java,
	gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.java:
	References updated.

2005-10-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/holderFactory.java,
	gnu/CORBA/IOR_contructed_object.java,
	gnu/CORBA/IOR_Delegate.java,
	gnu/CORBA/Simple_delegate.java,
	gnu/CORBA/Restricted_ORB.java,
	gnu/CORBA/Functional_ORB.java,
	gnu/CORBA/Focused_ORB.java: Removed.
	* gnu/CORBA/HolderLocator.java
	gnu/CORBA/IorDelegate.java
	gnu/CORBA/IorObject.java
	gnu/CORBA/OrbFocused.java
	gnu/CORBA/OrbFunctional.java
	gnu/CORBA/OrbRestricted.java
	gnu/CORBA/SimpleDelegate.java: New files.
	* gnu/CORBA/CDR/cdrInput.java,
	gnu/CORBA/DynAn/abstractRecord.java,
	gnu/CORBA/DynAn/gnuDynAny.java,
	gnu/CORBA/DynAn/gnuDynAnyFactory.java,
	gnu/CORBA/DynAn/gnuDynArray.java,
	gnu/CORBA/DynAn/gnuDynValueBox.java,
	gnu/CORBA/GIOP/ErrorMessage.java,
	gnu/CORBA/NamingService/NameParser.java,
	gnu/CORBA/NamingService/NamingServiceTransient.java,
	gnu/CORBA/Poa/ForwardedServant.java,
	gnu/CORBA/Poa/ORB_1_4.java,
	gnu/CORBA/Poa/gnuServantObject.java,
	gnu/CORBA/StubLocator.java,
	gnu/CORBA/gnuAny.java,
	gnu/CORBA/gnuRequest.java,
	gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java,
	gnu/javax/rmi/CORBA/gnuRmiUtil.java,
	org/omg/CORBA/CompletionStatusHelper.java,
	org/omg/CORBA/DefinitionKindHelper.java,
	org/omg/CORBA/FieldNameHelper.java,
	org/omg/CORBA/IDLTypeHelper.java,
	org/omg/CORBA/IdentifierHelper.java,
	org/omg/CORBA/ORB.java,
	org/omg/CORBA/ParameterModeHelper.java,
	org/omg/CORBA/RepositoryIdHelper.java,
	org/omg/CORBA/SetOverrideTypeHelper.java,
	org/omg/CORBA/StringValueHelper.java,
	org/omg/CORBA/StructMemberHelper.java,
	org/omg/CORBA/UnionMemberHelper.java,
	org/omg/CORBA/ValueMemberHelper.java,
	org/omg/CORBA/VersionSpecHelper.java,
	org/omg/CORBA/VisibilityHelper.java,
	org/omg/CORBA/WStringValueHelper.java,
	org/omg/CORBA/_IDLTypeStub.java,
	org/omg/CosNaming/IstringHelper.java,
	org/omg/DynamicAny/FieldNameHelper.java,
	org/omg/PortableInterceptor/AdapterNameHelper.java,
	org/omg/PortableInterceptor/ORBIdHelper.java,
	org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.java,
	org/omg/PortableInterceptor/ObjectIdHelper.java,
	org/omg/PortableInterceptor/ServerIdHelper.java:
	References updated. 

2005-10-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/universalHolder.java
	gnu/CORBA/stubFinder.java
	gnu/CORBA/typeNamer.java
	gnu/CORBA/streamRequest.java
	gnu/CORBA/streamReadyHolder.java
	gnu/CORBA/binaryReply.java
	gnu/CORBA/bufferedResponseHandler.java
	gnu/CORBA/cdrEncapsCodec.java
	gnu/CORBA/corbaArrayList.java: Removed.
	* gnu/CORBA/CdrEncapsCodecImpl.java,
	gnu/CORBA/CorbaList.java,
	gnu/CORBA/GeneralHolder.java,
	gnu/CORBA/RawReply.java,
	gnu/CORBA/ResponseHandlerImpl.java,
	gnu/CORBA/StreamBasedRequest.java,
	gnu/CORBA/StreamHolder.java,
	gnu/CORBA/StubLocator.java,
	gnu/CORBA/TypeKindNamer.java: New files.
	* gnu/CORBA/CDR/cdrInput.java,
	gnu/CORBA/DynAn/abstractDynAny.java,
	gnu/CORBA/DynAn/anyDivideable.java,
	gnu/CORBA/DynAn/gnuDynAny.java,
	gnu/CORBA/DynAn/gnuDynAnyFactory.java,
	gnu/CORBA/Functional_ORB.java,
	gnu/CORBA/IOR_Delegate.java,
	gnu/CORBA/ObjectCreator.java,
	gnu/CORBA/Poa/LocalDelegate.java,
	gnu/CORBA/Poa/LocalRequest.java,
	gnu/CORBA/Poa/gnuServantObject.java,
	gnu/CORBA/Restricted_ORB.java,
	gnu/CORBA/ServiceRequestAdapter.java,
	gnu/CORBA/gnuAny.java,
	gnu/CORBA/gnuCodecFactory.java,
	gnu/CORBA/gnuContextList.java,
	gnu/CORBA/gnuExceptionList.java,
	gnu/CORBA/gnuNVList.java,
	gnu/CORBA/gnuRequest.java,
	gnu/CORBA/typecodes/RecordTypeCode.java: 
	References updated.

2005-10-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/typecodes/AliasTypeCode.java,
	gnu/CORBA/typecodes/ArrayTypeCode.java,
	gnu/CORBA/typecodes/FixedTypeCode.java,
	gnu/CORBA/typecodes/GeneralTypeCode.java,
	gnu/CORBA/typecodes/PrimitiveTypeCode.java,
	gnu/CORBA/typecodes/RecordTypeCode.java,
	gnu/CORBA/typecodes/RecursiveTypeCode.java,
	gnu/CORBA/typecodes/StringTypeCode.java,
	gnu/CORBA/typecodes/package.html: New files.
	* gnu/CORBA/aliasTypeCode.java,
	gnu/CORBA/primitiveArrayTypeCode.java,
	gnu/CORBA/fixedTypeCode.java,
	gnu/CORBA/generalTypeCode.java,
	gnu/CORBA/primitiveTypeCode.java,
	gnu/CORBA/recordTypeCode.java,
	gnu/CORBA/recursiveTypeCode.java,
	gnu/CORBA/stringTypeCode.java: Deleted.
	* gnu/CORBA/CDR/cdrOutput.java,
	gnu/CORBA/ObjectCreator.java,
	gnu/CORBA/OctetHolder.java,
	gnu/CORBA/Poa/LocalRequest.java,
	gnu/CORBA/Poa/gnuServantObject.java,
	gnu/CORBA/Restricted_ORB.java,
	gnu/CORBA/TypeCodeHelper.java,
	gnu/CORBA/WCharHolder.java,
	gnu/CORBA/WStringHolder.java,
	gnu/CORBA/gnuAny.java,
	gnu/CORBA/typeNamer.java,
	gnu/javax/rmi/CORBA/UtilDelegateImpl.java,
	org/omg/CORBA/AnyHolder.java,
	org/omg/CORBA/AnySeqHelper.java,
	org/omg/CORBA/AnySeqHolder.java,
	org/omg/CORBA/BooleanHolder.java,
	org/omg/CORBA/BooleanSeqHelper.java,
	org/omg/CORBA/BooleanSeqHolder.java,
	org/omg/CORBA/ByteHolder.java,
	org/omg/CORBA/CharHolder.java,
	org/omg/CORBA/CharSeqHelper.java,
	org/omg/CORBA/CharSeqHolder.java,
	org/omg/CORBA/DefinitionKindHelper.java,
	org/omg/CORBA/DoubleHolder.java,
	org/omg/CORBA/DoubleSeqHelper.java,
	org/omg/CORBA/DoubleSeqHolder.java,
	org/omg/CORBA/FixedHolder.java,
	org/omg/CORBA/FloatHolder.java,
	org/omg/CORBA/FloatSeqHelper.java,
	org/omg/CORBA/FloatSeqHolder.java,
	org/omg/CORBA/IntHolder.java,
	org/omg/CORBA/LongHolder.java,
	org/omg/CORBA/LongLongSeqHelper.java,
	org/omg/CORBA/LongLongSeqHolder.java,
	org/omg/CORBA/LongSeqHelper.java,
	org/omg/CORBA/LongSeqHolder.java,
	org/omg/CORBA/NameValuePairHelper.java,
	org/omg/CORBA/ORB.java,
	org/omg/CORBA/ObjectHelper.java,
	org/omg/CORBA/ObjectHolder.java,
	org/omg/CORBA/OctetSeqHelper.java,
	org/omg/CORBA/OctetSeqHolder.java,
	org/omg/CORBA/PolicyErrorCodeHelper.java,
	org/omg/CORBA/PrincipalHolder.java,
	org/omg/CORBA/ShortHolder.java,
	org/omg/CORBA/ShortSeqHelper.java,
	org/omg/CORBA/ShortSeqHolder.java,
	org/omg/CORBA/StringHolder.java,
	org/omg/CORBA/StringSeqHelper.java,
	org/omg/CORBA/StringSeqHolder.java,
	org/omg/CORBA/TypeCodeHolder.java,
	org/omg/CORBA/ULongLongSeqHelper.java,
	org/omg/CORBA/ULongLongSeqHolder.java,
	org/omg/CORBA/ULongSeqHelper.java,
	org/omg/CORBA/ULongSeqHolder.java,
	org/omg/CORBA/UShortSeqHelper.java,
	org/omg/CORBA/UShortSeqHolder.java,
	org/omg/CORBA/ValueBaseHelper.java,
	org/omg/CORBA/WCharSeqHelper.java,
	org/omg/CORBA/WCharSeqHolder.java,
	org/omg/CORBA/WStringSeqHelper.java,
	org/omg/CORBA/WStringSeqHolder.java,
	org/omg/Messaging/SyncScopeHelper.java: References modified.

2005-10-28  Nicolas Geoffray  <nicolas.geoffray@menlina.com>

	Reported by: Gael Thomas <gael.thomas@imag.fr>
	* NEWS : added entry about new implementation of
	VMClassLoader.getPackage(s), and new method
	VMClassLoader.getBootPackages
	* vm/reference/java/lang/VMClassLoader.java:
	Added new definedPackages field to store packages
	loaded by the bootstrap classloader.
	Added new static initializer to create all packages
	which names are returned by getBootPackages
	(getBootPackages): new private method. Helper
	to get as a String[] the native package names
	(getPackage): uses the new definedPackages field
	(getPackages): uses the new definedPackages field
	* java/lang/Class.java:
	(getPackage): if the classloader of the class is null
	then call VMClassLoader.getPackage

2005-10-27  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JEditorPane.java:
	(getScrollableTracksViewportWidth): Return true if the component is 
	valid.
	(getScrollableTracksViewportHeight): Likewise.

2005-10-27  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/ScrollPaneLayout.java:
	(preferredLayoutSize): Fixed the conditions for allocating space for 
	the scrollbars.  Should allocate space if the View's dimension is 
	larger than the Viewport's dimension. This fixes the problem in 
	comment 1) for PR 23530.

2005-10-27  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JViewport.java:
	(scrollRectToVisible): Use the viewport bounds instead of the view 
	bounds when scrolling up and scrolling left.

2005-10-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/FieldView.java
	(getPreferredSpan): For the Y_AXIS call the superclass behaviour as
	described in the Swing book by OReilly.

2005-10-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/PortableInterceptor/ObjectIdHelper.java:
	Assuming ObjectId as alias of byte[], not alias  of String.

2005-10-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTextField.java
	(createDefaultModel): Return a normal PlainDocument here.
	* javax/swing/text/AbstractDocument.java
	(insertString): Correctly placed locking so that insertUpdate() is
	called within a lock as specified. Do not setup any ElementChanges
	here, this must be done in subclasses in insertUpdate() method.
	Fire an UndoableEditEvent.
	* javax/swing/text/PlainDocument.java
	(insertString): New method. Replaces newlines with whitespace
	when document property 'filterNewlines' is set.

2005-10-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(PropertyChangeHandler.propertyChange): If orientation property
	changes, re-setup the UI.
	(TrackListener.mouseReleased): Removed unused code.
	(createIncreaseButton): Simply return a new instance without any
	hacks.
	(createDecreaseButton): Likewise.
	(installComponents): Do not create the incrButton and decrButton
	here, only install them on the ScrollBar.
	(installDefaults): Also initialize the incrButton and decrButton
	fields here.
	(uninstallComponents): Added some null checks.
	(uninstallDefaults): Uninstall border using the LookAndFeel utility
	method. Set incrButton and decrButton to null here.
	(uninstallListeners): Added null checks.
	(uninstallUI): Changed order of method calls. First uninstall
	listeners then uninstallDefaults, because uninstallDefaults sets
	the incrButton and decrButton fields to null, and uninstallListeners
	removes a listener from them. Avoids NPE.

2005-10-27  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalBorders.java: API doc updates,
	* javax/swing/plaf/metal/MetalButtonUI.java: likewise,
	* javax/swing/plaf/metal/MetalCheckBoxIcon.java: likewise,
	* javax/swing/plaf/metal/MetalCheckBoxUI.java: likewise,
	* javax/swing/plaf/metal/MetalDesktopIconUI.java: likewise,
	* javax/swing/plaf/metal/MetalIconFactory.java: likewise,
	* javax/swing/plaf/metal/MetalInternalFrameTitlePane.java: likewise,
	* javax/swing/plaf/metal/MetalInternalFrameUI.java: likewise,
	* javax/swing/plaf/metal/MetalLabelUI.java: likewise,
	* javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.java: likewise,
	* javax/swing/plaf/metal/MetalProgressBarUI.java: likewise,
	* javax/swing/plaf/metal/MetalRadioButtonUI.java: likewise,
	* javax/swing/plaf/metal/MetalRootPaneUI.java: likewise,
	* javax/swing/plaf/metal/MetalScrollBarUI.java: likewise,
	* javax/swing/plaf/metal/MetalScrollPaneUI.java: likewise,
	* javax/swing/plaf/metal/MetalSeparatorUI.java: likewise,
	* javax/swing/plaf/metal/MetalSliderUI.java: likewise,
	* javax/swing/plaf/metal/MetalSplitPaneUI.java: likewise,
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java: likewise,
	* javax/swing/plaf/metal/MetalTextFieldUI.java: likewise,
	* javax/swing/plaf/metal/MetalToolBarUI.java: likewise,
	* javax/swing/plaf/metal/MetalToolTipUI.java: likewise,
	* javax/swing/plaf/metal/MetalTreeUI.java: likewise,
	* javax/swing/plaf/metal/package.html: likewise.

2005-10-27  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalToggleButtonUI.java:
	(MetalToggleButtonUI): removed color field initialisation,
	(installDefaults): added color field initialisation formerly in 
	the constructor.

2005-10-27  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/RepaintManager.java
	(paintDirtyRegions): replaced characters in comment that caused 
	warnings in gjdoc and Eclipse.

2005-10-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * BUGS: URL refreshed.

2005-10-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/ExceptionCreator.java: Deleted.

2005-10-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/PortableInterceptor/ObjectReferenceFactory.java, 
	org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java, 
	org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.java, 
	org/omg/PortableInterceptor/ObjectReferenceFactoryOperations.java:
	New files.
	
2005-10-26  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/ViewportLayout.java:
	(layoutContainer): Fixed incorrect boundary checks, should have been 
	checking for viewport being  smaller than minimum size, not smaller 
	than preferred size.

2005-10-26  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.ac: Rename --with-qtdir to --with-qt4dir to make clear
	which Qt version is meant.

2005-10-26  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JList.java:
	(getPreferredScrollableViewportSize): Use the preferred width instead 
	of the width of the widest element.  This allows us to use the 
	user-specified preferred width if setPreferredSize was called.  Use 
	the height of the first row, not the first visible row, when 
	calculating the preferred height.  Added comments and made code cleaner
	and more readable.

2005-10-26  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/spi/ImageReaderWriterSpi.java
	(getStreamMetadataFormat): Implement.
	(getImageMetadataFormat): Likewise.

2005-10-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/colorchooser/AbstractColorChooserPanel.java
	(getMnemonic): implemented,
	(getDisplayedMnemonicIndex): implemented.

2005-10-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/PortableInterceptor/AdapterManagerIdHelper.java,
	org/omg/PortableInterceptor/AdapterNameHelper.java,
	org/omg/PortableInterceptor/AdapterStateHelper.java,
	org/omg/PortableInterceptor/ORBIdHelper.java,
	org/omg/PortableInterceptor/ObjectIdHelper.java,
	org/omg/PortableInterceptor/ServerIdHelper.java: New files.
	* org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.java
	(type): Fixed typo in typecode name.

2005-10-25  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/WrappedPlainView: New class.

2005-10-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(installDefaults): Removed initialization of unnecessary focusColor
	field.
	(paintButtonPressed): Only paint if button is opaque.
	* javax/swing/plaf/metal/MetalButtonUI.java
	(paintButtonPressed): Only paint if button is opaque and
	contentAreaFilled.

2005-10-25  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/CompositeView.java:
	(getViewIndexAtPosition): Fixed boundary conditions (less than and 
	greater than signs were backward).

2005-10-25  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/Utilities.java:
	(getBreakLocation): New API method.

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

	* java/io/ObjectOutputStream.java (useProtocolVersion): Typo fix.

2005-10-25  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/GtkDialogPeer.java
	(create): Changed classname for the heavyweight testclass to match
	the new classes introduced by my popup patch earlier this day.

2005-10-25  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(mkMenuBar): Replaced some demos with new external demo programs,
	namely the button demo, the scrollbar demo, the combobox demo and
	the slider demo.
	(mkButtonBar): Likewise.
	* examples/gnu/classpath/examples/swing/ButtonDemo.java
	(createContent): Made package private so that the Demo.java can
	access it.
	* examples/gnu/classpath/examples/swing/ComboBoxDemo.java
	(createContent): Made package private so that the Demo.java can
	access it.
	* examples/gnu/classpath/examples/swing/ScrollBarDemo.java
	(createContent): Made package private so that the Demo.java can
	access it.
	* examples/gnu/classpath/examples/swing/SliderDemo.java
	(createContent): Made package private so that the Demo.java can
	access it.

2005-10-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLayeredPane.java
	(addImpl): Removed unnecessary repaint() and revalidate() calls.
	* javax/swing/JPopupMenu.java
	(remove): Removed unnecessary revalidate() call.
	(insert): Removed code that installs GridBagConstraints. JPopupMenu
	uses a BoxLayout and this is not needed anymore.
	(pack): Send this method call to the event queue to avoid
	synchronization problems. Set size to preferredSize of this menu.
	(setVisible): Send this method call to the event queue to avoid
	synchronization problems. Use PopupFactory for creating a popup.
	(setLocation): Use int fields instead of a Point field.
	(Popup): Removed inner interface. We use javax.swing.Popup now.
	(LightweightPopup): Likewise.
	(MediumWeightPopup): Likewise.
	(HeavyWeightPopup): Likewise.
	* javax/swing/Popup.java
	(JWindowPopup.JWindowPopup): Add contents to contentPane of window.
	Set focusableWindowState to false.
	(JWindowPopup.show): Set size of window here.
	(LightweightPopup): New inner class.
	* javax/swing/PopupFactory.java
	(getPopup): Return heavyweight or lightweight popup depending on
	the parameters.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(PropertyChangeHandler): Removed unneeded inner class.
	(BasicMenuItemUI): Removed instantiation of PropertyChangeHandler.
	(installListeners): Removed handling of the PropertyChangeHandler.
	(uninstallListeners): Removed handling of the PropertyChangeHandler.
	* javax/swing/plaf/basic/BasicMenuUI.java
	(getMaximumSize): Don't treat popup menus different.

2005-10-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/classpath/examples/CORBA/NamingService/Demo.java (main):
	Make arguments not final.

2005-10-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
           
	* org/omg/CORBA/IDLEntity.java: Deleted.   
	* gnu/CORBA/primitiveTypeCode.java,
	org/omg/CORBA/PolicyError.java,
	org/omg/CORBA/TypeCodePackage/BadKind.java,
	org/omg/CORBA/TypeCodePackage/Bounds.java: 
	Use org.omg.CORBA.portable.IDLEntity.

2005-10-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/interfaces/SocketFactory.java: New file.
	* gnu/CORBA/interfaces/gnuSocketFactory.java: Deleted.
	* gnu/CORBA/DefaultSocketFactory.java,
	gnu/CORBA/Functional_ORB.java,
	org/omg/CORBA/ORB.java: Replacing gnuSocketFactory into SocketFactory.

2005-10-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CosNaming/BindingIteratorHelper.java,
	org/omg/CosNaming/NamingContextExtHelper.java,
	org/omg/CosNaming/NamingContextHelper.java,
	org/omg/DynamicAny/DynAnyFactoryHelper.java,
	org/omg/DynamicAny/DynAnyHelper.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/IOP/CodecFactoryHelper.java,
	org/omg/PortableInterceptor/CurrentHelper.java,
	org/omg/PortableServer/ServantActivatorHelper.java,
	org/omg/PortableServer/ServantLocatorHelper.java: Added
	unchecked_narrow method.

2005-10-25  Roman Kennke  <kennke@aicas.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen):
	Call gdk_window_get_root_origin instead of gdk_window_get_origin
	so that the window decorations are correctly respected.

2005-10-24  Tom Tromey  <tromey@redhat.com>

	* javax/accessibility/AccessibleStateSet.java (states):
	Changed type.
	* javax/accessibility/AccessibleRelationSet.java (relations):
	Changed type.

2005-10-24  Tom Tromey  <tromey@redhat.com>

	* java/security/acl/Group.java (isMember): Javadoc fix.
	(members): Changed return type.
	* java/security/acl/AclEntry.java (addPermission): Fixed javadoc.
	(checkPermission): Likewise.
	(permissions): Changed return type.
	* java/security/acl/Acl.java (entries): Changed return type.
	(getPermissions): Likewise.

2005-10-24  Tom Tromey  <tromey@redhat.com>

	* gnu/java/nio/SelectorImpl.java (keys): Changed type.
	(selected): Likewise.
	(SelectorImpl): Updated.
	(keys): Changed return type.
	(getFDsAsArray): Updated.
	(select): Likewise.
	(selectedKeys): Changed return type.
	(deregisterCancelledKeys): Updated.
	* java/nio/channels/Selector.java (selectedKeys): Changed return
	type.
	(keys): Likewise.

2005-10-24  Tom Tromey  <tromey@redhat.com>

	* java/awt/image/ReplicateScaleFilter.java (setProperties): Changed
	argument type.
	* java/awt/image/CropImageFilter.java (setProperties): Changed
	argument type.

2005-10-24  Tom Tromey  <tromey@redhat.com>

	* java/io/ObjectOutputStream.java (useProtocolVersion): Fixed typo
	in javadoc.

2005-10-24  Tom Tromey  <tromey@redhat.com>

	* java/lang/StringBuffer.java (appendCodePoint): Added @since.
	* java/lang/StringBuilder.java (insert): New overloads.
	(appendCodePoint): New method.

2005-10-24  Dalibor Topic  <robilad@kaffe.org>

	* test/native/lib/PrimlibInterface.c,
	* test/native/lib/PrimlibInterface.h,
	* test/native/lib/PrimlibTest.java:
	Removed unused test.

2005-10-24  Dalibor Topic  <robilad@kaffe.org>

	* native/jni/classpath/primlib.c,
	native/jni/classpath/primlib.h: Removed since unused.

	* native/jni/classpath/Makefile.am: (libclasspath_la_SOURCES)
	Removed primlib.c and primlib.h.

2005-10-24  David Gilbert  <david.gilbert@object-refinery.com>

	* examples/gnu/classpath/examples/swing/ScrollBarDemo.java: New file.

2005-10-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(ModelListener.stateChanged): changed call to getThumbBounds() to
	updateThumbRect(),
	(PropertyChangeHandler.propertyChange): likewise, plus added handling
	for 'enabled' property,
	(getMaximumSize): return maximum dimension,
	(getThumbBounds): just return field value,
	(getTrackBounds): just return field value,
	(installUI): switch order of calls to installDefaults() and 
	installComponents(),
	(layoutHScrollBar): reimplemented using new updateThumbRect() method,
	(layoutVScrollBar): likewise,
	(updateThumbRect): new method,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): added 'ScrollBar.width' default,
	* javax/swing/plaf/metal/MetalScrollBarUI.java
	(MIN_THUMB_SIZE): changed value,
	(MIN_THUMB_SIZE_FREE_STANDING): new field,
	(isFreeStanding): set default to true,
	(scrollBarShadowColor): new field,
	(installDefaults): initialise scrollBarShadowColor,
	(createDecreaseButton): retain reference in decreaseButton field,
	(createIncreaseButton): retain reference in increaseButton field,
	(paintTrackHorizontal): use scrollBarShadowColor, add special handling
	for free standing scroll bar in disabled state,
	(paintTrackVertical): likewise,
	(paintThumb): separate horizontal and vertical cases,
	(paintThumbHorizontal): new method,
	(paintThumbVertical): new method,
	(getMinimumThumbSize): return different size depending on whether or 
	not the scroll bar is free standing,
	* javax/swing/plaf/metal/MetalScrollButton.java
	(paintNorthBorderFreeStanding): modified drawing.

2005-10-24  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/metadata/IIOMetadataFormatImpl.java: Complete.
	* javax/imageio/metadata/IIOMetadataNode.java: Complete stubs.
	* javax/imageio/metadata/IIOAttr.java: Replace with
	IIOMetadataFormatImpl.IIOMetadataNodeAttr.  Remove file.
	* javax/imageio/metadata/IIONamedNodeMap.java: Replace with
	IIOMetadataNode.IIONamedNodeMap.  Remove file.
	* javax/imageio/metadata/IIONodeList.java: Replace with
	IIOMetadataNode.IIONodeList.  Remove file.

2005-10-24  Tom Tromey  <tromey@redhat.com>

	* java/text/AttributedStringIterator.java (getRunLimit): Add
	explicit qualification.
	(getRunStart): Likewise.

2005-10-24  David Gilbert  <david.gilbert@object-refinery.com>

	* java/text/AttributedString.java
	(AttributedString(AttributedCharacterIterator, int, int, 
	AttributedCharacterIterator.Attribute[])): renamed arguments, and 
	updated IllegalArgumentException check,
	(addAttribute(AttributedCharacterIterator.Attribute, Object, int, 
	int)): likewise,
	(addAttributes(Map, int, int)): changed IllegalArgumentException to
	NullPointerException, and modified check for illegal range,
	* java/text/AttributedStringIterator.java
	(getRunLimit(Set)): reimplemented,
	(getRunStart): added API docs,
	(getRunStart(AttributedCharacterIterator.Attribute)): handle null
	argument as a special case,
	(getRunStart(Set)): reimplemented,
	(getAttribute(AttributedCharacterIterator.Attribute, int)): new 
	private method,
	(getAttribute(AttributedCharacterIterator.Attribute)): reimplemented
	using new private method.
	* java/text/CharacterIterator.java: minor API doc fix.

2005-10-24  Roman Kennke  <kennke@aicas.com>

	Fixes Bug #24359
	* javax/swing/BoxLayout.java:
	Made class thread safe.

2005-10-23  Tom Tromey  <tromey@redhat.com>

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

2005-10-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Properties.java
	(storeToXML(OutputStream,String,String)): Added null pointer checks.
	(loadFromXML(InputStream)): Implemented.
	(PropertiesHandler): New class to handle parsing events.
	(PropertiesHandler()): New constructor.
	(startDTD(String,String,String)): Implemented.
	(startElement(String,String,String,Attributes)): Implemented.
	(characters(char[],int,int)): Implemented.
	(endElement(String,String,String)): Implemented.
	(endDocument()): Implemented.

2005-10-23  Guilhem Lavaux  <guilhem@kaffe.org>

	* java/lang/Thread.java
	(sleep): Better exception message.

	* java/security/AccessControlContext.java
	(checkPermission): Likewise.

	* java/util/ResourceBundle.java
	(getBundle): Likewise.

	* java/util/SimpleTimeZone.java
	(setStartRule): Added some documentation.

2005-10-23  Guilhem Lavaux  <guilhem@kaffe.org>

	* configure.ac: Added support for "--with-native-libdir" and
	"--with-glibj-dir". Generate copy-vmresources.sh

	* lib/Makefile.am: Call copy-vmresources.sh to fetch possible vm
	resources from the vmdirs.

	* lib/copy-vmresources.sh.in: New script file.

	* lib/gen-classlist.sh.in: Include com/ as base package for the
	vm directories.

	* native/jawt/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/java-util/Makefile.am,
	native/jni/midi-alsa/Makefile.am,
	native/jni/midi-dssi/Makefile.am,
	native/jni/qt-peer/Makefile.am,
	native/jni/xmlj/Makefile.am: Install libraries in nativelibdir
	and not pkglib.

2005-10-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR classpath/22972 
	* java/io/File (createTempFile): Rewritten.

2005-10-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/IOP/RMICustomMaxStreamFormat.java,
	* org/omg/IOP/ExceptionDetailMessage.java: New files. 

2005-10-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Interceptor/Registrator.java (m_prefix): Made static.

2005-10-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/rmi/CORBA/gnuRmiUtil.java (readValue):
	Do not read fields of the ObjectImpl.

2005-10-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/IOP/TAG_RMI_CUSTOM_MAX_STREAM_FORMAT,
	* org/omg/PortableInterceptor/ACTIVE.java,
	* org/omg/PortableInterceptor/DISCARDING.java,
	* org/omg/PortableInterceptor/HOLDING.java,
	* org/omg/PortableInterceptor/INACTIVE.java,
	* org/omg/PortableInterceptor/NON_EXISTENT.java: New files.

2005-10-22  Julian Scheid  <julian@sektor37.de>

	* java/util/Map.java (Entry.equals): Fixed invalid example code
	in documentation.

2005-10-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/ACTIVITY_COMPLETED.java,
	* org/omg/CORBA/ACTIVITY_REQUIRED.java,
	* org/omg/CORBA/BAD_QOS.java,
	* org/omg/CORBA/CODESET_INCOMPATIBLE.java,
	* org/omg/CORBA/INVALID_ACTIVITY.java,
	* org/omg/CORBA/REBIND.java,
	* org/omg/CORBA/TIMEOUT.java,
	* org/omg/CORBA/TRANSACTION_MODE.java,
	* org/omg/CORBA/TRANSACTION_UNAVAILABLE.java: New exceptions.

2005-10-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/rmi/CORBA/ValueHandlerMultiFormat.java: New interface.
	* gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.java
	(getMaximumStreamFormatVersion, writeValue): New methods.

2005-10-22  Mark Wielaard  <mark@klomp.org>

	* java/net/URLClassloader.java (addURLs): Add comment about jboss.

2005-10-21  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java
	(BasicCheckBoxMenuItem): Implemented.
	(installDefaults): Removed method, not in API.
	(processMouseEvent): Implemented.
	* javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java
	(processMouseEvent): Implemented.

2005-10-21  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* configure.ac: Also check for pangoft2 without cairo and
	additionally check for freetype2.
	* native/jni/gtk-peer/Makefile.am: Added X, pangoft2 and
	freetype2 CFLAGS and LDFLAGS.

2005-10-21  Nicolas Geoffray  <nicolas.geoffray@menlina.com>

	* vm/reference/java/lang/VMClassLoader.java
	(getResources): uses a new static field HashMap to
	store opened zip files from property java.boot.class.path.

2005-10-21  Nicolas Geoffray  <nicolas.geoffray@menlina.com>

	* vm/reference/java/lang/VMClassLoader.java
	(getRessources): In case the property java.boot.class.path
	contains directories, tests if the ressource exists before adding
	it to the vector result.

2005-10-21  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	(paint): Only paint focus if enabled.

2005-10-21  David Daney  <ddaney@avtrex.com>

	* NEWS: Added entry about HttpURLConnection improvements.

2005-10-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/DefaultSocketFactory.java,
	* gnu/CORBA/interfaces/gnuSocketFactory.java,
	* gnu/CORBA/interfaces/package.html: New files.
	* gnu/CORBA/Functional_ORB.java,
	* gnu/CORBA/Focused_ORB.java (getPortServer),
	* gnu/CORBA/GIOP/ErrorMessage.java (send),
	* gnu/CORBA/gnuRequest.java (submit): Rewritten to support
	gnu.Corba.SocketFactory property.
	* org/omg/CORBA/ORB.java: Documentation update. 

2005-10-21  Lillian Angel  <langel@redhat.com>

	* javax/swing/JPopupMenu.java
	(show): Fixed to set the size if it was never set.
	* javax/swing/plaf/basic/BasicMenuUI.java
	(menuDeselected): Added check to prevent NPE.
	* javax/swing/plaf/basic/BasicSeparatorUI.java:
	Removed minSize, horizontalPrefSize, verticalPrefSize and
	maxSize fields. They were causing problems when other classes
	were setting this variables to something else. More reliable if
	actual value is returned.
	(getPreferredSize): Returned appropriate values.
	(getMinimumSize): Likewise.
	(getMaximumSize): Likewise.	

2005-10-21  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/reflect/Proxy.java
	(ProxyType.ProxyType): Don't replace null with system class loader.
	(ProxyType.hashCode): Handle null loader.

2005-10-20  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/DefaultListSelectionModel.java:
	(setLeadSelectionIndex): If the selection mode is SINGLE_SELECTION then
	pass this call to setSelectionInterval.
	(addSelectionInterval): If the selection mode is SINGLE_SELECTION then 
	pass the call to setSelectionInterval and avoid the lengthy checks
	that don't apply to this mode.
	* javax/swing/JList.java:
	(getSelectedIndices): Changed bounds of for loop to include the 
	maxSelectionIndex.

2005-10-20  Lillian Angel  <langel@redhat.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(mkRadio): Changed to create a panel that contains
	2 buttons in a ButtonGroup.
	* javax/swing/ButtonGroup.java
	(add): Fixed to initialize sel if the newly added
	button is already selected.
	* javax/swing/JToggleButton.java
	(isSelected): Implemented.
	(setSelected): Implemented.
	* javax/swing/plaf/metal/MetalRadioButtonUI.java
	(paintFocus): Fixed size of border drawn around the
	radio button.

2005-10-20  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/ScrollPaneAdjustable.java:
	(addAdjustmentListener): If parameter is null take no action and throw
	no exception.  Store the resulting listener chain from call to 
	AWTEventMulticaster.add.
	(removeAdjustmentListener): If parameter is null take no action and
	throw no exception.  Store the resulting listener chain from call to
	AWTEventMulticaster.remove.

2005-10-20  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/LookAndFeel.java:
	(loadKeyBindings): Implemented and added docs.
	(makeComponentInputMap): Likewise.
	(makeInputMap): Likewise.
	(makeKeyBindings): Likewise.
	* javax/swing/plaf/basic/BasicListUI.java:
	(convertModifiers): Removed this no longer needed private method.
	(installKeyboardActions): Removed the code relating to modifier
	conversion and made code more readable by using local variables.
	* javax/swing/plaf/basic/BasicTableUI.java:
	(convertModifiers): Removed this no longer needed private method.
	(installKeyboardActions): Removed the code relating to modifier
	conversion and made code more readbale by using local variables.

2005-10-20  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	Added new ItemListener field.
	(BasicMenuItemUI): Initialized new field.
	(installListeners): Installed new listener.
	(removeListeners): Removed new listener.
	(MenuDragMouseHandler): Class should be private, not
	in API.
	(MenuKeyHandler): Likewise.
	(PropertyChangeHandler): Likewise.
	(ItemHandler): New class implemented to change the
	state of the menu item if it is a checkbox menu item.	

2005-10-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BoxView.java
	(layoutMinorAxis): Calculate total requirements before calling
	the SizeRequirements utility method. Avoids an NPE.

2005-10-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicArrowButton.java: Updated API docs all 
	over, plus:
	(defaultSize): removed field,
	(upIcon): removed field,
	(downIcon): removed field,
	(leftIcon): removed field,
	(rightIcon): removed field,
	(darkShadow): changed color value,
	(paint): ignore insets for triangle positioning, but check 'armed'
	state,
	(paintTriangle): delegate to new private methods depending on 
	direction,
	(paintTriangleNorth): new private method,
	(paintTriangleSouth): new private method,
	(paintTriangleEast): new private method,
	(paintTriangleWest): new private method.

2005-10-20  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/ietf/jgss/GSSCredential.java (hashCode),
	* org/ietf/jgss/GSSName.java (hashCode): New declarations.

2005-10-19  Mark Wielaard  <mark@klomp.org>

	* java/net/URLClassLoader.java (addURLs): Don't call addURL(), but
	call urls.add() and addURLImpl() directly on each URL.

2005-10-19  Andreas Tobler  <a.tobler@schweiz.ch>

	* javax/swing/text/html/HTMLEditorKit.java: Add missing import.

2005-10-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLEditorKit.java (getParser): New method.

2005-10-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/parser/ContentModel.java: Fixed comments for
	parameterless constructor.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(getDebugGraphicsOptions): Removed debug output.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(isShowing): Fixed condition.
	(show): Only repaint if component is showing.
	(hide): Only repaint if component was showing.

2005-10-19  Mark Wielaard  <mark@klomp.org>

	* javax/security/auth/login/LoginContext.java (lookupModule):
	Load LoginModule through Thread context class loader.

2005-10-19  Mark Wielaard  <mark@klomp.org>

	* java/net/Socket.java (getImpl): Chain exception before throwing.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractSpinnerModel.java
	* javax/swing/ActionMap.java
	* javax/swing/BoundedRangeModel.java
	* javax/swing/Box.java
	* javax/swing/BoxLayout.java
	* javax/swing/ButtonGroup.java
	* javax/swing/CellEditor.java
	* javax/swing/CellRendererPane.java
	* javax/swing/ComboBoxEditor.java
	* javax/swing/DefaultButtonModel.java
	* javax/swing/DefaultCellEditor.java
	* javax/swing/DefaultDesktopManager.java
	* javax/swing/DefaultListCellRenderer.java
	* javax/swing/DesktopManager.java
	* javax/swing/ImageIcon.java
	* javax/swing/InputVerifier.java
	* javax/swing/JCheckBoxMenuItem.java
	* javax/swing/JColorChooser.java
	* javax/swing/JDesktopPane.java
	* javax/swing/JFileChooser.java
	* javax/swing/JLayeredPane.java
	* javax/swing/JList.java
	* javax/swing/JMenu.java
	* javax/swing/JMenuBar.java
	* javax/swing/JMenuItem.java
	* javax/swing/JOptionPane.java
	* javax/swing/JPasswordField.java
	* javax/swing/JPopupMenu.java
	* javax/swing/JProgressBar.java
	* javax/swing/JRadioButtonMenuItem.java
	* javax/swing/JRootPane.java
	* javax/swing/JSeparator.java
	* javax/swing/JSlider.java
	* javax/swing/JSpinner.java
	* javax/swing/JSplitPane.java
	* javax/swing/JTabbedPane.java
	* javax/swing/JTable.java
	* javax/swing/JTextPane.java
	* javax/swing/JToolBar.java
	* javax/swing/JToolTip.java
	* javax/swing/JTree.java
	* javax/swing/KeyStroke.java
	* javax/swing/LookAndFeel.java
	* javax/swing/MutableComboBoxModel.java
	* javax/swing/Popup.java
	* javax/swing/PopupFactory.java
	* javax/swing/RepaintManager.java
	* javax/swing/SortingFocusTraversalPolicy.java
	* javax/swing/Spring.java
	* javax/swing/SwingUtilities.java
	* javax/swing/ToolTipManager.java
	* javax/swing/TransferHandler.java
	* javax/swing/ViewportLayout.java
	Reformatted slightly. Filled emtpy blocks with comments. Fixed some
	slight API doc errors. Removed some unneeded imports. Removed
	unneeded serialization methods.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/OverlayLayout.java
	(checkLayout): Respect the container's insets correctly.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLabel.java
	(setText): Call revalidate() and repaint().

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	Added comments to empty blocks.
	(read): Implemented this previously stubbed method.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComboBox.java
	Added comments to empty blocks.
	(writeObject): Removed unnecessary serialization method.
	(processKeyEvent): Implemented this previously stubbed method.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JButton.java
	(removeNotify): Implemented this previously stubbed method.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/undo/CannotRedoException.java
	* javax/swing/undo/CannotUndoException.java
	Put super() call in empty constructors.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/tree/DefaultMutableTreeNode.java
	* javax/swing/tree/DefaultTreeCellEditor.java
	* javax/swing/tree/TreeCellRenderer.java
	* javax/swing/tree/TreeModel.java
	Reformatted slightly. Filled emtpy blocks with comments. Fixed some
	slight API doc errors. Removed some unneeded imports.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	* javax/swing/text/AttributeSet.java
	* javax/swing/text/ComponentView.java
	* javax/swing/text/DefaultCaret.java
	* javax/swing/text/DefaultEditorKit.java
	* javax/swing/text/DefaultHighlighter.java
	* javax/swing/text/EditorKit.java
	* javax/swing/text/FieldView.java
	* javax/swing/text/FlowView.java
	* javax/swing/text/GlyphView.java
	* javax/swing/text/JTextComponent.java
	* javax/swing/text/LayoutQueue.java
	* javax/swing/text/PlainView.java
	* javax/swing/text/Segment.java
	* javax/swing/text/StyledDocument.java
	* javax/swing/text/html/HTMLEditorKit.java
	* javax/swing/text/html/HTMLFrameHyperlinkEvent.java
	* javax/swing/text/html/parser/DocumentParser.java
	Reformatted slightly. Filled emtpy blocks with comments. Fixed some
	slight API doc errors. Removed some unneeded imports.

2005-10-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicArrowButton.java
	(buttonBorder): removed,
	(BasicArrowButton): don't set border, use default border,
	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(configureArrowButton): don't set margin here,
	(getPreferredSize): added comment,
	(getMinimumSize): icon width is the same as the display area height,
	(getDefaultSize): return size of space char plus 1 pixel margin,
	(getDisplaySize): take into account the prototype display value, if 
	there is one,
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): updated 'Button.margin' default,
	* javax/swing/plaf/metal/MetalComboBoxButton.java
	(MetalComboBoxButton(JComboBox, Icon, boolean, CellRendererPane, 
	JList)): check for null JComboBox, don't set margin here,
	* javax/swing/plaf/metal/MetalComboBoxUI.java
	(createArrowButton): set margin,
	(getMinimumSize): reimplemented,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): changed 'Button.margin' default to from Insets
	to InsetsUIResource.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTML.java
	* javax/swing/text/html/HTMLDocument.java
	Filled emtpy blocks with comments.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/parser/ContentModel.java
	* javax/swing/text/html/parser/DTD.java
	* javax/swing/text/html/parser/DocumentParser.java
	* javax/swing/text/html/parser/Element.java
	* javax/swing/text/html/parser/Parser.java
	Filled emtpy blocks with comments.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/table/TableColumnModel.java:
	Fixed some minor API doc errors.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/ActionMapUIResource.java
	* javax/swing/plaf/BorderUIResource.java
	* javax/swing/plaf/ButtonUI.java
	* javax/swing/plaf/ColorChooserUI.java
	* javax/swing/plaf/ColorUIResource.java
	* javax/swing/plaf/ComboBoxUI.java
	* javax/swing/plaf/ComponentInputMapUIResource.java
	* javax/swing/plaf/DesktopIconUI.java
	* javax/swing/plaf/DesktopPaneUI.java
	* javax/swing/plaf/DimensionUIResource.java
	* javax/swing/plaf/FileChooserUI.java
	* javax/swing/plaf/FontUIResource.java
	* javax/swing/plaf/IconUIResource.java
	* javax/swing/plaf/InputMapUIResource.java
	* javax/swing/plaf/InsetsUIResource.java
	* javax/swing/plaf/InternalFrameUI.java
	* javax/swing/plaf/LabelUI.java
	* javax/swing/plaf/ListUI.java
	* javax/swing/plaf/MenuBarUI.java
	* javax/swing/plaf/MenuItemUI.java
	* javax/swing/plaf/PanelUI.java
	* javax/swing/plaf/PopupMenuUI.java
	* javax/swing/plaf/ProgressBarUI.java
	* javax/swing/plaf/RootPaneUI.java
	* javax/swing/plaf/ScrollBarUI.java
	* javax/swing/plaf/ScrollPaneUI.java
	* javax/swing/plaf/SeparatorUI.java
	* javax/swing/plaf/SliderUI.java
	* javax/swing/plaf/SpinnerUI.java
	* javax/swing/plaf/SplitPaneUI.java
	* javax/swing/plaf/TabbedPaneUI.java
	* javax/swing/plaf/TableHeaderUI.java
	* javax/swing/plaf/TableUI.java
	* javax/swing/plaf/TextUI.java
	* javax/swing/plaf/ToolBarUI.java
	* javax/swing/plaf/ToolTipUI.java
	* javax/swing/plaf/TreeUI.java
	* javax/swing/plaf/UIResource.java
	* javax/swing/plaf/ViewportUI.java
	Reformatted slightly. Filled emtpy blocks with comments.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/ComponentUI.java
	Filled empty blocks with comments.
	(update): Reverted my patch from 2005-10-12. This is wrong. If there
	are still clipping problems, then certainly in another area.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/multi/MultiLookAndFeel.java
	Filled empty block with comment.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalBorders.java
	* javax/swing/plaf/metal/MetalButtonListener.java
	* javax/swing/plaf/metal/MetalComboBoxEditor.java
	* javax/swing/plaf/metal/MetalComboBoxUI.java
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	* javax/swing/plaf/metal/MetalIconFactory.java
	* javax/swing/plaf/metal/MetalInternalFrameTitlePane.java
	* javax/swing/plaf/metal/MetalProgressBarUI.java
	* javax/swing/plaf/metal/MetalScrollBarUI.java
	* javax/swing/plaf/metal/MetalSliderUI.java
	* javax/swing/plaf/metal/MetalSplitPaneUI.java
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	* javax/swing/plaf/metal/MetalTextFieldUI.java
	* javax/swing/plaf/metal/MetalToolBarUI.java
	* javax/swing/plaf/metal/MetalTreeUI.java
	* javax/swing/plaf/metal/MetalUtils.java:
	Reformatted slightly. Filled emtpy blocks with comments. Fixed some
	slight API doc errors. Removed some unneeded imports.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(getDebugGraphicsOptions): Fixed to load system property if present.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/DebugGraphics.java
	(counter): New field.
	(color): Removed unneeded field.
	(DebugGraphics()): Count up.
	(DebugGraphics(Graphics,JComponent)): Call this(Graphics).
	(DebugGraphics(Graphics)): Call this().
	(setColor): Implemented logging facility.
	(create): Copy debugOptions over to new DebugGraphics instance.
	(create(int,int,int,int)): Likewise.
	(setFont): Implemented logging facility.
	(getColor): Return graphics.getColor().
	(translate): Implemented logging facility.
	(setPaintMode): Likewise.
	(setXORMode): Likewise.
	(clipRect): Likewise.
	(setClip(int,int,int,int)): Likewise.
	(setClip(Shape)): Likewise.
	(drawRect): Likewise. Only flash when FLASH_OPTION is set.
	(fillRect): Likewise.
	(clearRect): Implemented logging facility.
	(drawRoundRect): Likewise.
	(fillRoundRect): Likewise.
	(drawLine): Likewise.
	(draw3DRect): Likewise.
	(fill3DRect): Likewise.
	(drawOval): Likewise.
	(fillOval): Likewise.
	(drawArc): Likewise.
	(fillArc): Likewise.
	(drawPolyline): Likewise.
	(drawPolygon): Likewise.
	(fillPolygon): Likewise.
	(drawString(String,int,int)): Likewise.
	(drawString(AttributedCharacterIterator,int,int)): Likewise.
	(drawByted): Likewise.
	(drawChars): Likewise. Only flash if FLASH_OPTION is set.
	(drawImage): Implemented logging facility. (Also applies to all
	overloaded versions of this method).
	(copyArea): Likewise.
	(setDebugOptions): Likewise.
	(prefix): New helper method.
	* javax/swing/JComponent.java
	(getComponentGraphics): Implemented to return DebugGraphics when
	needed.
	(getDebugGraphicsOptions): Implemented to return the correct options.
	Also, this loads a system property gnu.javax.swing.DebugGraphics
	if present and evaluates it.

2005-10-19  Lillian Angel  <langel@redhat.com>

	* javax/swing/JList.java
	(getAccessibleContext): Returned an instance of 
	AccessibleJList. Should never return null.

2005-10-19  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java:
	Added MouseListener and removed MouseInputListener.
	(BasicTreeUI): Initialized mouseListener and removed
	mouseInputListener.
	(removeListeners): Removed mouseListener and removed
	mouseInputListener code.
	(installListeners): Likewise.
	(MouseInputHandler.mousePressed): Moved code to MouseHandler.
	(MouseHandler.mousePressed): Likewise.
	* javax/swing/plaf/metal/MetalTreeUI.java:
	Added MouseListener and removed MouseInputListener.
	(installUI): Initialized mouseListener and removed
	mouseInputListener.	
	(uninstallUI): Removed mouseListener and removed
	mouseInputListener code.

2005-10-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicBorders.java
	* javax/swing/plaf/basic/BasicButtonListener.java
	* javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java
	* javax/swing/plaf/basic/BasicComboBoxEditor.java
	* javax/swing/plaf/basic/BasicComboBoxRenderer.java
	* javax/swing/plaf/basic/BasicDesktopIconUI.java
	* javax/swing/plaf/basic/BasicDesktopPaneUI.java
	* javax/swing/plaf/basic/BasicFileChooserUI.java
	* javax/swing/plaf/basic/BasicFormattedTextFieldUI.java
	* javax/swing/plaf/basic/BasicGraphicsUtils.java
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	* javax/swing/plaf/basic/BasicLabelUI.java
	* javax/swing/plaf/basic/BasicListUI.java
	* javax/swing/plaf/basic/BasicMenuBarUI.java
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	* javax/swing/plaf/basic/BasicMenuUI.java
	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	* javax/swing/plaf/basic/BasicPasswordFieldUI.java
	* javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java
	* javax/swing/plaf/basic/BasicRootPaneUI.java
	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	* javax/swing/plaf/basic/BasicTableHeaderUI.java
	* javax/swing/plaf/basic/BasicTableUI.java
	* javax/swing/plaf/basic/BasicTextAreaUI.java
	* javax/swing/plaf/basic/BasicTextUI.java
	* javax/swing/plaf/basic/BasicToolBarUI.java
	* javax/swing/plaf/basic/BasicToolTipUI.java
	* javax/swing/plaf/basic/BasicTreeUI.java
	* javax/swing/plaf/basic/BasicViewportUI.java:
	Reformatted slightly. Filled emtpy blocks with comments. Fixed some
	slight API doc errors.

2005-10-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/filechooser/FileFilter.java:
	* javax/swing/filechooser/FileView.java:
	Filled empty blocks with comments.

2005-10-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/event/EventListenerList.java:
	* javax/swing/event/InternalFrameAdapter.java:
	* javax/swing/event/MouseInputListener.java:
	Reformatted slightly. Filled emtpy blocks with comments. Fixed some
	slight API doc errors

2005-10-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/colorchooser/AbstractColorChooserPanel.java:
	* javax/swing/colorchooser/ColorChooserComponentFactory.java:
	* javax/swing/colorchooser/DefaultSwatchChooserPanel.java:
	Filled empty blocks with comments.

2005-10-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/border/AbstractBorder.java:
	* javax/swing/border/BevelBorder.java:
	* javax/swing/border/Border.java:
	* javax/swing/border/CompoundBorder.java:
	* javax/swing/border/EmptyBorder.java:
	* javax/swing/border/EtchedBorder.java:
	* javax/swing/border/LineBorder.java:
	* javax/swing/border/MatteBorder.java:
	* javax/swing/border/SoftBevelBorder.java:
	* javax/swing/border/TitledBorder.java:
	Reformatted slightly. Filled emtpy blocks with comments. Fixed some
	slight API doc errors

2005-10-18  Lillian Angel  <langel@redhat.com>

	* java/awt/GridBagLayout.java
	(GetLayoutInfo): Added a null check for lastComponent. Prevents
	NPE.

2005-10-18  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTable.java
	(JTable): Moved code around so all models are set before
	any other function is called. Prevents all NPEs with
	models.

2005-10-18  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/DefaultListSelectionModel.java:
	(setLeadSelectionIndex): Avoid index out of bounds error on initial
	call of this method by checking explicitly for oldLeadIndex being -1.
	Also remove unused BitSet newRange and oldRange.
	(moveLeadSelectionIndex): New API method implemented (@since 1.5).
	* javax/swing/plaf/basic/BasicListUI.java:
	(ListAction.actionPerformed): Make code more readable by declaring
	local variables for the actionCommand and for the list's
	selectionModel.  Implemented the following bindings: 
	selectLastRowChangeLead, scrollDownChangeLead, scrollUpChangeLead, 
	selectFirstRowChangeLead, selectNextRowChangeLead, 
	selectPreviousRowChangeLead, addToSelection, toggleAndAnchor, 
	extendTo.
	(MouseInputHandler.mousePressed): Made code more readable by removing
	unnecessary full qualification from variable 'list'.  Change 
	behaviour of shift-click based on whether or not the anchor index is 
	selected.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	(initComponentDefaults): Added remaining bindings for
	Table.ancestorMap.
	* javax/swing/plaf/basic/BasicTableUI.java:
	(TableAction.actionPerformed): Made type of variables rowModel and 
	colModel more specific to avoid many casts later on (makes code more
	readable).  Also declare local variable to store the action command to 
	make the code more readable. Implemented the following bindings: 
	selectNextRowChangeLead, selectPreviousRowChangeLead, 
	selectNextColumnChangeLead, selectPreviousColumnChangeLead,
	addToSelection, extendTo, toggleAndAnchor.  Added commented-out debug 
	statement to print unimplemented bindings when used.  Added check for 
	the SPACE character to make sure it doesn't stop editing.

2005-10-18  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java:
	Removed leafIcon field.
	(BasicTreeUI): Removed leafIcon initialization.
	(installDefaults): Icon defaults were wrong, fixed.
	(isLocationInExpandControl): Fixed to incorporated gap.
	(mousePressed): Fixed to include correct icon widths. Sometimes
	the labels icon is different from what the tree's default icon is
	set to. Added a check for this.
	(getCellBounds): No need to include gap here.
	(getCurrentControlIcon): Fixed to use expandedIcon and collapsedIcon.
	(paintRow): No need paint beyond preferred width of tree here.
	(updateCurrentVisiblePath): If nothing is selected, the root should
	be selected without focus.
	* javax/swing/plaf/metal/MetalTreeUI.java
	(installDefaults): Fixed defaults for the expanded/collapsed icons.

2005-10-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComboBox.java
	(setModel): update the selectedItemReminder field,
	(selectedItemChanged): only send ItemEvent.SELECTED event if the new
	selection is non-null.

2005-10-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(installComponents): only set default editor if the current editor is
	null or implements UIResource,
	(uninstallComponents): only clear editor if it implements UIResource.

2005-10-18  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(installDefaults): Set the selected text color for the
	text component.

2005-10-18  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTree.java
	(scrollPathToVisible): Reimplemented to make the path visible if its
	parent is not expanded.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(installDefaults): Initialized row height for the tree.
	(updateCurrentVisiblePath): Updated the visible row count.
	* javax/swing/plaf/metal/MetalTreeUI.java
	(installUI): Initialized row height for the tree.

2005-10-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalComboBoxUI.java
	(editablePropertyChanged): handle null selected item.

2005-10-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(PropertyChangeHandler.propertyChange): Removed repaint call.

2005-10-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	Filled empty blocks with comments.
	(ButtonChangeListener.stateChanged): Moved implementation from
	inner class in createChangeListener to this protected class.
	(setEnabled): Do nothing if actual state does not change.
	(createChangeListener): Return instance of ButtonChangeListener
	here.

2005-10-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(buttonBackground): new field,
	(shadow): renamed buttonShadow,
	(darkShadow): renamed buttonDarkShadow,
	(highlight): renamed buttonHighlight,
	(installDefaults): initialise buttonBackground, plus updates for 
	renamed fields,
	(uninstallDefaults): clear buttonBackground, plus updates for renamed
	fields,
	(createEditor): return subclass that implements UIResource,
	(createArrowButton): use constructor that accepts colors,
	(getMaximumSize): fix API doc error,
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): correct 'ComboBox.buttonDarkShadow' default.

2005-10-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JViewport.java
	(setView): Added repaint() call.
	(revalidate): Removed unnecessary and unspecified method.
	(reshape): Fire stateChanged if only the size changes. Do not fire
	stateChanged if only the location changes.
	(scrollRectToVisible): Reworked most of this method to correctly
	determine the scroll offsets. Added validation of view as specified.

2005-10-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ScrollPaneLayout.java
	(preferredLayoutSize): Removed check for JScrollPane argument.
	Added code to respect the insets of the JScrollPane.
	(minimumLayoutSize): Likewise.
	(layoutContainer): Removed check for JScrollPane argument.

2005-10-18  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/ObjectInputStream.java
	(parseContent): Removed bogus println and fixed bug #24422.

2005-10-17  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(setDividerLocation): Added a check for the size
	of the splitpane, in some cases the divider's
	initial location was being set to 0.

2005-10-17  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JViewport.java:
	(scrollRectToVisible): Return immediately if the View is null.  Check 
	for contentRect being bigger than the port bounds separately in each 
	direction, rather than together.
	* javax/swing/plaf/basic/BasicListUI.java:
	(KeyHandler): Removed this private class that listened directly for 
	key presses.  This is now handled through InputMap-ActionMap pairs.
	(ActionListenerProxy): New class to wrap the Actions for this lists
	ActionMap.
	(ListAction): New class, the actions for keypresses on this list.
	(convertModifiers): New private method converts key press modifiers to 
	the old style (CTRL_MASK instead of CTRL_DOWN_MASK, etc.).
	(installKeyboardActions): Get the InputMap from the UIManager and 
	register new InputMap-ActionMap pairs, then set these as the parents
	of the list's InputMap and ActionMap.
	(selectNextIndex): Avoid NPE by checking if we're already at the last
	index.
	(selectPreviousIndex): Check if we're already at the first index.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	(initComponentDefaults): Added bindings for List.focusInputMap.

2005-10-17  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(installUI): Moved call to installKeyboardActions and Listeners
	to before expansion of root.
	(paint): Added check to make sure the cached visible path is updated.
	(treeExpanded): Added call to update visible path.
	(treeCollapsed): Likewise.
	(treeNodesChanged): Likewise.
	(treeNodesInserted): Likewise.
	(treeNodesRemoved): Likewise.
	(treeStructureChanged): Likewise.
	(paintRecursive): Moved code to paintRow.
	(paintControlIcons): Fixed to paint custom control icons properly.
	(paintExpandControl): Removed unneeded parameter.
	(paintRow): Added code to paint the row with the correct width.
	* javax/swing/plaf/metal/MetalTreeUI.java
	(installUI): Moved code to expand the root after all the listeners
	have been initialized.

2005-10-17  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(ItemHandler.itemStateChanged): if combo box is editable, update edit 
	text field with new selection.
	
2005-10-17  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/ListDataListener: 
	reformatted and added API docs.

2005-10-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JPopupMenu.java
	(setVisible): Set size according to the size property instead of
	the preferredSize property.
	* javax/swing/plaf/basic/BasicComboPopup.java
	(ListMouseHandler.mouseReleased): Set comboBox selected index before
	closing the popup.

2005-10-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/table/DefaultTableCellRenderer.java
	(getTableCellRendererComponent): Setup colors (more) correctly.
	* javax/swing/DefaultListSelectionModel.java
	(isSelectedIndex): Check for an illegal index argument.

2005-10-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	Filled empty blocks with comments.
	(setVisible): Notify AncestorListeners when visibility state is
	changed.
	(removeNotifiy): Notify AncestorListeners via fireAncestorEvent
	method.
	(addNotifiy): Notify AncestorListeners via fireAncestorEvent
	method.

2005-10-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JViewport.java
	(setView): Removed unnecessary loop. We only have on component.
	(isOptimizedDrawingEnabled): Added comment explaining why this
	method is necessary.

2005-10-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	Filled empty blocks with comments.
	(FocusHandler.focusLost): Close popup when the combobox loses focus.
	* javax/swing/plaf/basic/BasicComboPopup.java
	Filled empty blocks with comments.
	(updateListBoxSelectionForEvent): Implemented partly.
	(ListMouseHandler.mouseReleased): Call updateListBoxSelectionForEvent.
	(ListMouseMotionHandler.mouseReleased): Likewise.

2005-10-17  David Gilbert  <david.gilbert@object-refinery.com>

	* examples/gnu/classpath/examples/swing/ComboBoxDemo.java:
	(CustomCellRenderer): new inner class,
	(comboState6): new field,
	(combo11): new field,
	(combo12): new field,
	(createContent): add panel from createPanel6(),
	(createPanel6): new method,
	(actionPerformed): update state for new JComboBoxes,
	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(installComponents): don't create arrowButton until after listBox is 
	created, set listBox to the JList created by the popup,
	* javax/swing/plaf/metal/MetalComboBoxButton.java:
	(MetalComboBoxButton(JComboBox, Icon, boolean, CellRendererPane, 
	JList)): set margins to zero,
	(paintComponent): use list cell renderer to paint button content,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): add 'List.font' default.

2005-10-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Properties.java:
	(storeToXML(OutputStream,String)): Implemented.
	(storeToXml(OutputStream,String,String)): Likewise.

2005-10-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Focused_ORB.java: New file.
	* gnu/CORBA/Functional_ORB.java,
	org/omg/CORBA/ORB.java: Adapted to support the 
	gnu.CORBA.ListenerPort property.

2005-10-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/awt/image/BufferedImage.java:
	(getSources()): Genericized.
	* java/awt/image/ImageFilter.java:
	(setProperties(Hashtable<?,?>)): Likewise.
	* java/awt/image/MemoryImageSource.java:
	(MemoryImageSource(int,int,int[],int,int,Hashtable<?,?>)): Likewise.
	* java/awt/image/PixelGrabber.java:
	(setProperties(Hashtable<?,?>)): Likewise.
	* java/awt/image/renderable/RenderableImageOp.java:
	(getSources()): Likewise.
	* java/beans/Beans.java:
	(getInstanceOf(Object,Class<?>)): Likewise.
	(isInstanceOf(Object,Class<?>)): Likewise.
	* java/beans/EventSetDescriptor.java:
	(EventSetDescriptor(Class<?>,String,Class<?>,String)): Likewise.
	(EventSetDescriptor(Class<?>,String,Class<?>,String[],String,String)):
	Likewise.
	(EventSetDescriptor(Class<?>,Method[],Method,Method)): Likewise.
	(EventSetDescriptor(String,Class<?>,MethodDescriptor,Method,Method)):
	Likewise.
	(getListenerType()): Likewise.
	* java/beans/FeatureDescriptor.java:
	(FeatureDescriptor()): Likewise.
	(attributeNames()): Likewise.
	* java/beans/IndexedPropertyDescriptor.java:
	(IndexedPropertyDescriptor(String,Class<?>)): Likewise.
	(IndexedPropertyDescriptor(String,Class<?>,String,String,String,String)):
	Likewise.
	(getIndexedPropertyType()): Likewise.
	* java/beans/Introspector.java:
	(getBeanInfo(Class<?>)): Likewise.
	(flushFromCaches(Class<?>)): Likewise.
	(getBeanInfo(Class<?>,Class<?>)): Likewise.
	* java/beans/PropertyDescriptor.java:
	(PropertyDescriptor(String,Class<?>)): Likewise.
	(getPropertyType()): Likewise.
	(getPropertyEditorClass()): Likewise.
	(setPropertyEditorClass(Class<?>)): Likewise.
	(checkMethods(Method,Method)): Likewise.
	* java/beans/PropertyEditorManager.java:
	(registerEditor(Class<?>,Class<?>)): Likewise.
	(getEditor(Class<?>)): Likewise.
	* java/io/ObjectInputStream.java:
	(resolveClass(ObjectStreamClass)): Likewise.
	* java/io/ObjectOutputStream.java:
	(annotateClass(Class<?>)): Likewise.
	(annotateProxyClass(Class<?>)): Likewise.
	* java/io/ObjectStreamClass.java:
	(lookup(Class<?>)): Likewise.
	(forClass()): Likewise.
	* java/io/ObjectStreamField.java:
	(ObjectStreamField(String,Class<?>)): Likewise.
	(ObjectStreamField(String,Class<?>,boolean)): Likewise.
	* java/net/NetworkInterface.java:
	(getInetAddresses()): Likewise.
	(getNetworkInterfaces()): Likewise.
	* java/net/URLClassLoader.java:
	(findClass(String)): Likewise.
	(findResources(String)): Likewise.
	* java/net/URLConnection.java:
	(getHeaderFields()): Likewise.
	(getRequestProperties()): Likewise.
	* javax/swing/text/TextAction.java:
	(augmentList(Action[],Action[])): Likewise.
	* javax/swing/text/html/HTML.java:
	(attrMap): Likewise.
	(tagMap): Likewise.
	* javax/swing/text/html/parser/DTD.java:
	(dtdHash): Likewise.
	(elementHash): Likewise.
	(entityHash): Likewise.
	(defineAttributes(String,AttributeList)): Likewise.
	(newElement(String)): Likewise.

2005-10-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/DynamicImplementation.java: Made concrete.
	(invoke): Implemented.
	gnu/CORBA/Simple_delegate.java (request): Implemented. 

2005-10-14  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(treeNodesChanged): Added call to revalidate and resize tree.
	* javax/swing/tree/DefaultTreeModel.java
	(insertNodeInto): Needed to set parent for new node.

2005-10-14  Robert Schuster  <robertschuster@fsfe.org>

	* java/net/URLStreamHandler.java:
	(toExternalForm): Use "//" + authority format when file part starts
	with two slashes.

2005-10-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintLock): Removed unneeded field.
	(isCompletelyDirty): New field.
	(setBorder): Don't get active if actual value didn't change.
	Otherwise trigger a repaint.
	(paint): Mark this component as clean after painting when the clip
	covered the whole component.
	(paintImmediately): Find more sensible paint root via new helper
	methods.
	(paintDoubleBuffered): Don't synchronize here.
	(setFont): Don't get active if actual value didn't change.
	Otherwise trigger a repaint and revalidate.
	(setBackground): Don't get active if actual value didn't change.
	Otherwise trigger a repaint.
	(setForeground): Don't get active if actual value didn't change.
	Otherwise trigger a repaint.
	(setUI): Trigger a repaint.
	(findPaintRoot): New helper method.
	(findOverlapFreeParent): New helper method.
	(findOpaqueParent): New helper method.
	* javax/swing/RepaintManager.java
	(ComponentComparator): New inner class. Used to sort components
	according to their depth in the containment hierarchy.
	(dirtyComponents): Use HashMap instead of Hashtable.
	(workDirtyComponents): New field.
	(repaintOrder): New field.
	(workRepaintOrder): New field.
	(comparator): New field.
	(invalidComponents): Use ArrayList instead of Vector.
	(workInvalidComponents): New field.
	(RepaintManager): Initialize new fields.
	(removeInvalidComponent): Adjusted for ArrayList.
	(addDirtyRegion): Return if component in question is not showing.
	Insert the new component in the repaintOrder list.
	(insertRepaintOrder): New method. Maintains a sorted list of
	components.
	(getDirtyRegion): Return empty Rectangle instead of null when
	component is not dirty, as specified.
	(markCompletelyDirty): Set flag in JComponent.
	(markCompletelyClean): Synchronize access to fields.
	(isCompletelyDirty): Use flag in JComponent to determine this
	property.
	(validateInvalidComponents): Use workInvalidComponents when
	revalidating. This avoids blocking of application threads
	in revalidate() calls.
	(paintDirtyRegion): Use work* fields when
	repainting. This avoids blocking of application threads
	in repaint() calls. Simplify actual work, now we simply call
	paintImmediatly() on the dirty components.

2005-10-14  Lillian Angel  <langel@redhat.com>

	* javax/swing/LookAndFeel.java
	(makeIcon): Implemented.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(updateCachedPreferredSize): Should only add with of control icon if
	not a leaf.
	(mousePressed): Fixed to use new gap field.
	(paintRecursive): Likewise.
	(paintRow): Likewise.
	(updateCurrentVisiblePath): Shouldn't include root if it is
	not of a valid size to be painted.

2005-10-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLayeredPane.java
	(isOptimizedDrawingEnabled): New method.

2005-10-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/PolicyErrorHelper.java,
	org/omg/CORBA/PolicyErrorHolder.java,
	org/omg/CORBA/UnknownUserExceptionHelper.java,
	org/omg/CORBA/UnknownUserExceptionHolder.java,
	org/omg/CORBA/WrongTransactionHelper.java,
	org/omg/CORBA/WrongTransactionHolder.java: New files.

2005-10-14  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainView.java:
	(nextTabStop): Tab size should be multiplied by the width of 'm', not
	added to it.

2005-10-14  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainView.java:
	(getTabSize): Check the Document's properties for
	PlainDocument.tabSizeAttribute before defaulting to 8.

2005-10-14  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/BoxView.java:
	(preferenceChanged): New method (overrides method in View).  Set flag 
	indicating that cached layout information is invalid, then call super
	implementation.

2005-10-14  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/CompositeView.java: Minor doc fixes.
	* javax/swing/text/BoxView.java: Minor doc fixes.

2005-10-14  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTree.java
	(getAccessibleContext): Fixed API docs, and returned the correct value.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(updateCachedPreferredSize): Fixed parameter passed to isLeaf, node
	should be passed in and not a path.

2005-10-14  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultCaret.java:
	(ALWAYS_UPDATE): New field.
	(NEVER_UPDATE): New field.
	(UPDATE_WHEN_ON_EDIT): New field.
	(insertUpdate): Fixed docs.  Only update the dot if the policy is
	ALWAYS_UPDATE or if the policy is UPDATE_WHEN_ON_EDT and the event
	was generated on the Event Dispatch thread.
	(removeUpdate): Fixed docs.  Only update the dot if the policy is
	ALWAYS_UPDATE, if the policy is UPDATE_WHEN_ON_EDT and the event was 
	generated on the Event Dispatch thread, or if the document length 
	has become less than the current dot position.
	(setUpdatePolicy): New method.
	(getUpdatePolicy): New method.
	
2005-10-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/BoxLayout.java
	(layoutContainer): Perform layout inside the container's treeLock.
	Respect the insets of the container.

2005-10-14  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTree.java
	(getAccessibleSelectionCount): Fixed API documentation.
	(getScrollableTracksViewportWidth): Was using height instead of
	width, fixed this.
	(getScrollableTracksViewportHeight): Likewise.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(BasicTreeUI): Initialized validCachedPreferredSize.
	(updateCachedPreferredSize): Implemented.
	(pathWasExpanded): Implemented.
	(pathWasCollapsed): Implemented.
	(installDefaults): Fixed API documentation.
	(uninstallDefaults): Likewise.
	(setPreferredMinSize): Likewise.
	(getPreferredMinSize): Likewise.
	(getPreferredSize): Reimplemented to use updateCachedPreferredSize.
	(startEditing): set validCachedPreferredSize.
	(editingStopped): Likewise.
	(editingCanceled): Likewise.
	(treeExpanded): Likewise.
	(treeCollaped): Likewise.
	(treeNodesInserted): Likewise.
	(treeNodesRemoved): Likewise.
	(treeStructureChanged): Likewise.
	(getNextVisibleNode): Fixed API documentation.
	(getNextNode): Likewise.
	(getNextSibling): Likewise.
	(getPreviousSibling): Likewise.
	(getLevel): Likewise.
	(paintVerticalPartOfLeg): Likewise.

2005-10-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/PolicyErrorCodeHelper.java: New class. 

2005-10-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/LocalObject.java (_get_interface, _invoke, _is_local,
	_orb, _releaseReply, _request, _servant_postinvoke, _servant_preinvoke,
	validate_connection): New methods.

2005-10-14  Michael Koch  <konqueror@gmx.de>

	* native/jni/midi-alsa/.cvsignore,
	native/jni/midi-dssi/.cvsignore: New files

2005-10-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/ObjectCreator.java (forName):
	Use gnu.classpath.VMStackWalker.
	* gnu/CORBA/Interceptor/Registrator.java,
	gnu/CORBA/gnuValueHolder.java,
	gnu/CORBA/stubFinder.java,
	gnu/javax/rmi/CORBA/DelegateFactory.java,
	gnu/javax/rmi/CORBA/StubDelegateImpl.java,
	org/omg/CORBA/ORB.java: Load class via ObjectCreator. 

2005-10-13  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainView.java:
	(updateDamage): Made this method protected, not package-private.

2005-10-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/BoxLayout.java
	(xChildren): New field.
	(yChildren): New field.
	(xTotal): New field.
	(yTotal): New field.
	(offsetsX): New field.
	(offsetsY): New field.
	(spansX): New field.
	(spansY): New field.
	(preferredLayoutSize): Rewritted to use cached values if available.
	(minimumLayoutSize): Rewritted to use cached values if available.
	(maximumLayoutSize): Rewritted to use cached values if available.
	(layoutContainer): Rewritted to use cached values if available.
	(getAlignmentX): Implemented.
	(getAlignmentY): Implemented.
	(invalidateLayout): Clear the cache.
	(getSizeRequirements): Removed unneeded method. Replaced by
	checkRequirements().
	(checkTotalRequirements): New helper method.
	(checkRequirements): New helper method.
	(checkLayout): New helper method.

2005-10-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SizeRequirements.java
	(calculateAlignedPositions): Determine baseline using the total
	requirements argument.
	(adjustFromRight): Use float instead of int for baseline argument.
	Don't handle the <minimum case.
	(adjustFromLeft): Likewise.

2005-10-13  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java:
	Added leafIcon field.
	(BasicTreeUI): Initialized leafIcon field.
	(installDefaults): Fixed icon defaults.
	(getPreferredSize): Fixed up code slightly.
	(startEditing): Called revalidate because size of
	view may change.
	(EditingStopped): Likewise.
	(EditingCanceled): Likewise.
	(mousePressed): Fixed up icon sizes.
	(paintRecursive): Fixed up width painted.
	* javax/swing/plaf/metal/MetalTreeUI.java
	(installDefaults): Fixed icon defaults.

2005-10-13  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicTableHeaderUI.java:
	(paint): Reset the clip of the Graphics object after each iteration.

2005-10-13  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicTableUI.java:
	(installDefaults): Initialize rendererPane.
	(paintCell): New method to paint an individual cell using a 
	CellRendererPane, taking borders and highlighting into account.
	(paint): Removed direct painting code, let paintCell handle this.

2005-10-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ScrollPaneLayout.java
	(preferredLayoutSize): Added some more null checks to avoid NPEs.
	(minimumLayoutSize): Added some more null checks to avoid NPEs.

2005-10-13  Jan Roehrich  <jan@roehrich.info>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(installUI): Fixed setting of local JTree reference

2005-10-13  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(getPreferredSize): Added check to prevent NPE.
	(mousePressed): Likewise.
	(paintRecursive): Likewise.
	(paintExpandedControlIcons): Likewise.
	(paintRow): Fixed painting location of textarea.

2005-10-13  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainView.java:
	(updateDamage): Repaint the container if a new line is added.

2005-10-13  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(getPathForRow): Added check to prevent NPE.
	(getRowCount): Likewise.
	(getRowForPath): Likewise.
	(getPreferredSize): Adjusted width depending on x location and
	icon.
	(paintRecursive): Likewise.
	(getPreviousNode): Added check to prevent NPE.
	(getNextVisibleNode): Likewise.

2005-10-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/PlainView.java
	(lineBuffer): New field used as buffer to fetch text from a
	document.
	(getLineBuffer): New method, provides access to the new field
	above.
	(modelToView): Use new lineBuffer.
	(drawSelectedText): Likewise.
	(drawUnselectedText): Likewise.
	(determineMaxLineLength): Likewise.
	(viewToModel): Likewise.
	(updateDamage): Likewise.

2005-10-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/JTextComponent.java
	(replaceSelection): Removed debug statement.
	* javax/swing/text/PlainView.java
	(updateDamage): Removed unnecessary repaint call.
	(damageLineRange): Trigger repaint over the whole width of the
	text component at the requested line range. Otherwise we might
	not clear deleted text.
	* javax/swing/plaf/basic/BasicTextUI.java
	(DocumentHandler.changedUpdate): Use visibleEditorRect as
	initial allocation.
	(DocumentHandler.removeUpdate): Use visibleEditorRect as
	initial allocation.
	(DocumentHandler.insertUpdate): Use visibleEditorRect as
	initial allocation.
	(getVisibleEditorRect): If component width and height values are
	invalid (==uninitialized), return a Rectangle of (0,0,0,0) instead
	of null.

2005-10-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(DirectoryComboBoxAction): new inner class,
	(FileRenderer): new inner class,
	(directoryModel): new private field.

2005-10-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): added default value for 
	'List.focusCellHighlightBorder'.

2005-10-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/awt/datatransfer/DataFlavor.java:
	(DataFlavor(Class<?>,String,String): Genericized.
	* java/awt/dnd/DragGestureEvent.java:
	(DragGestureEvent(DragGestureRecognizer,int,Point,
	List<? extends InputEvent>)): Likewise.
	(iterator()): Likewise.
	* java/awt/dnd/DragSource.java:
	(createDragGestureRecognizer(Class<T>,Component,int,
	DragGestureListener)): Likewise.
	* java/awt/dnd/DropTargetContext.java:
	(getCurrentDataFlavorsAsList()): Likewise.
	* java/awt/dnd/DropTargetDragEvent.java:
	(getCurrentDataFlavorsAsList()): Likewise.
	* java/awt/dnd/DropTargetDropEvent.java:
	(getCurrentDataFlavorsAsList()): Likewise.
	* java/awt/font/TextLayout.java:
	(TextLayout(String,Map<? extends
	AttributedCharacterIterator.Attribute>, FontRenderContext)): Likewise.
	* java/awt/image/BufferedImage.java:
	(BufferedImage(ColorModel,WritableRaster,boolean,Hashtable<?,?>)):
	Likewise.
	* java/awt/image/ImageConsumer.java:
	(setProperties(Hashtable<?,?>)): Likewise.
	* java/awt/image/MemoryImageSource.java:
	(MemoryImageSource(int,int,ColorModel,byte[],int,int,Hashtable<?,?>)):
	Likewise.
	(MemoryImageSource(int,int,ColorModel,int[],int,int,Hashtable<?,?>)):
	Likewise.	
	* java/awt/image/RenderedImage.java:
	(getSources()): Likewise.
	* java/awt/image/renderable/ParameterBlock.java:
	(sources): Likewise.
	(parameters): Likewise.
	(ParameterBlock()): Likewise.
	(ParameterBlock(Vector<Object>)): Likewise.
	(ParameterBlock(Vector<Object>,Vector<Object>)): Likewise.
	(clone()): Added casts to handle new Vector type.
	(getSources()): Genericized.
	(setSources(Vector<Object>)): Likewise.
	(getParameters()): Likewise.
	(setParameters(Vector<Object>)): Likewise.
	* java/awt/image/renderable/RenderableImage.java:
	(getSources()): Likewise.
	* javax/swing/tree/DefaultMutableTreeNode.java:
	(children): Likewise.
	(getSharedAncestor(DefaultMutableTreeNode)): Likewise.
	(getDepth()): Likewise.
	(pathFromAncestorEnumeration(TreeNode)): Likewise.
	(PostOrderEnumeration)): Likewise.
	* javax/swing/undo/CompoundEdit.java:
	(edits): Likewise.
	(CompoundEdit()): Likewise.
	(undo()): Likewise.
	(redo()): Likewise.
	(lastEdit()): Likewise.
	(die()): Likewise.
	(isSignificant()): Likewise.
	* javax/swing/undo/UndoableEditSupport.java:
	(listeners): Likewise.
	(getUndoableEditListeners()): Likewise.
	* lib/Makefile.am:
	Turn off listing unused imports (at least for now).
	* org/omg/CosNaming/_NamingContextExtImplBase.java:
	(_methods): Likewise.
	* org/omg/CosNaming/_NamingContextImplBase.java:
	(methods): Likewise.
	* vm/reference/java/lang/reflect/Method.java:
	(getTypeParameters()): Corrected return type.

2005-10-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/UIDefaults.java
	(getUIClass): Fixed to use the system class loader if
	the loader is null.

2005-10-12  David Daney  <ddaney@avtrex.com>

	PR classpath/24259
	* gnu/java/net/LineInputStream.java: Import BufferedInputStream.
	(Constructor): Don't do blockReads on BufferedInputStreams.
	(readLine): Rename MIN_LENGTH to MAX_LENGTH.  Limit buffer size to
	MAX_LENGTH.

2005-10-12  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTable.java: Fixed some API docs and unused imports.
	
2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintImmediately): Find the paint root more cleverly, instead of
	going up to the root.
	(findPaintRoot): New helper method.
	(findOverlapFreeParent): New helper method.
	(findOpaqueParent): New helper method.
	* javax/swing/RepaintManager.java
	(addDirtyRegion): Collapse overlapping dirty regions into single
	regions.
	(paintDirtyRegions): Simple iterator over dirty regions and
	paint them. The optimizations are done in JComponent and
	addDirtyRegion.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ScrollPaneLayout.java
	(minimumLayoutSize): Added checks to avoid NPEs.

2005-10-12  David Daney  <ddaney@avtrex.com>

	PR classpath/24086, PR classpath/24091, PR classpath/24104
	* gnu/java/net/protocol/http/ByteArrayResponseBodyReader.java: Removed.
	* gnu/java/net/protocol/http/ResponseBodyReader.java: Removed.
	* gnu/java/net/protocol/http/event/ConnectionEvent.java: Removed.
	* gnu/java/net/protocol/http/event/ConnectionListener.java: Removed.
	* gnu/java/net/protocol/http/event/RequestEvent.java: Removed.
	* gnu/java/net/protocol/http/event/RequestListener.java: Removed.
	* gnu/java/net/protocol/http/event/package.html: Removed.
	* gnu/java/net/protocol/http/HTTPConnection.java: Cleaned up imports.
	(connectionListeners): Removed.
	(requestListeners): Removed.
	(pool): New field.
	(Constructor): Don't initialize connectionListeners or
	requestListeners.
	(useCount): New field.
	(getPoolKey): New method.
	(setPool): New method.
	(release): New method.
	(newRequest): Don't call fireRequestEvent. Use StringBuilder instead
	of StringBuffer.
	(close): Don't call fireConnectionEvent.
	(getURI):Use StringBuilder instead of StringBuffer.
	(addConnectionListener): Removed.
	(removeConnectionListener): Removed.
	(fireConnectionEvent): Removed.
	(addRequestListener): Removed.
	(removeRequestListener): Removed.
	(fireRequestEvent): Removed.
	* gnu/java/net/protocol/http/HTTPURLConnection.java:Cleaned up imports.
	(connectionPool): Changed type to LinkedHashMap.
	(maxConnections): Made static.
	(responseSink): Changed type to InputStream.
	(errorSink): Likewise.
	(connect): Eliminate reader.  Get responseSink from response.
	(getConnection): Rewrote.
	(getHeaderFields): Use null as key for status line.  Return
	unmodifiable Map.
	* gnu/java/net/protocol/http/Headers.java: Extend LinkedHashMap,
	instead of implement Map.
	(headers): Removed.
	(Constructor): Do not initialize headers.
	(size): Removed.
	(isEmpth): Removed.
	(containsKey): Rewrote.
	(containsValue): Removed.
	(get): Call super.get().
	(getValue): Likewise.
	(getLongValue): New method.
	(put): Call super.put().
	(remove): Call super.remove().
	(putAll): Rewrote.
	(clear): Removed.
	(keySet): Call super.keySet().
	(values): Removed.
	(entrySet): Call super.entrySet().
	(equals): Removed.
	(hashCode): Removed.
	(parse): Use StringBuilder instead of StringBuffer.
	(addValue): Call super.* instead of headers.*.
	* gnu/java/net/protocol/http/LimitedLengthInputStream.java: New class.
	* gnu/java/net/protocol/http/Request.java: Cleaned up imports.
	(responseBodyReader): Removed.
	(setResponseBodyReader): Removed.
	(dispatch): Don't create LineInputStream.  Don't call fireRequestEvent.
	Don't append CRLF to Request body.  Handle unsolicited 100 Continue
	response.
	(readResponse): Rewrote.
	(readResponseBody): Renamed to ...
	(createResponseBodyStream): ... And rewritten.
	(parseAuthParams): Use StringBuilder instead of StringBuffer.
	(getNonceCount): Likewise.
	(handleSetCookie): Likewise.
	* gnu/java/net/protocol/http/Response.java: Cleaned up imports.
	(codeClass): Removed.
	(body): New field.
	(Constructor): Don't initialize codeClass.  Initialize body.
	(getCodeClass): Rewrote.
	(getLongHeader): New method.
	(getBody): New method.
	* gnu/java/net/protocol/http/ChunkedInputStream.java (read): Use
	StringBuilder instead of StringBuffer.
	* gnu/java/net/protocol/http/Cookie.java (toString): Use StringBuilder
	instead of StringBuffer.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(getFileView): Don't call back into the JFileChooser, avoids
	a StackOverflow.
	(getApproveButtonText): Likewise.

2005-10-12  Mark Wielaard  <mark@klomp.org>

	Fixes bug #22841
	* java/io/ObjectInputStream (validators): Removed field.
	(isDeserializing): Removed field.
	(currentObjectValidators): New field.
	(ObjectInputStream): Remove validators and isDeserializing
	initialization.
	(readObject): Remove isDeserializing logic. Don't call
	invokeValidators() here.
	(parseContent): Call invokeValidators() after TC_OBJECT done.
	(registerValidation): Create currentObjectValidators if needed.
	(invokeValidators): Rewritten.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/CellRendererPane.java
	(paintComponent): Fix clipping of cells.
	* javax/swing/plaf/basic/BasicTableUI.java
	(paint): Fix clipping of cells.

2005-10-12  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/AbstractDocument.java:
	(insertString): Don't include an ElementChange if no children were
	added.
	(remove): Don't include an ElementChange if no children were removed.

2005-10-12  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainView.java:
	(insertOrRemoveUpdate): Renamed this method to udpateDamage because
	changedUpdate calls it as well.
	(updateDamage): This method used to be named insertOrRemoveDamage.
	Changes are: If no children were added or removed, repaint only the 
	area containing the line that was changed.  Also, if children were
	added or removed, call repaint on the entire container. Also fixed a 
	serious logic error in the bounds for Document.getText().
	(insertUpdate): Changed call from insertOrRemoveUpdate to updateDamage
	and removed repaint call (this is done in updateDamage).
	(removeUpdate): Likewise.
	(changedUpdate): Implemented.
	(damageLineRange): Implemented.

2005-10-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(treeExpanded): Added revalidate call.
	(treeCollapsed): Likewise.
	(treeNodesInserted): Likewise.
	(treeNodesRemoved): Likewise.
	(treeStructureChanged): Likewise.

2005-10-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): added defaults for FileView.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JViewport.java
	(sizeChanged): A new flag, indicating when the size of the
	viewport has changed relative to the last painting operation.
	(reshape): Set sizeChanged flag if size has changed.
	(paintBackingStore): Only create new backingstore image when
	the size has changed.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(reshape): Fixed calculation of newBounds and oldBounds to create
	rectangles relative to the parent, and not to the parent's parent.
	Solves a painting problem in an app here.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/ComponentUI.java
	(update): Only fill the current clip. This solves a problem with
	components in JViewport and should also optimize drawing a little.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ScrollPaneLayout.java
	(preferredLayoutSize): Reworked. The old impl used to actually
	modify the layout, which is not allowed.
	(minimumLayoutSize): Reworked. The old impl used to actually
	modify the layout, which is not allowed.
	(layoutContainer): Reworked. The old impl did not properly determine
	when the scrollbars should be visible and when not.

2005-10-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(FileIcon16.getIconHeight): add result of getAdditionalHeight(),
	(FolderIcon16.getIconHeight): add result of getAdditionalHeight(),
	(checkBoxIcon): new private field,
	(checkBoxMenuItemIcon): likewise,
	(fileChooserDetailViewIcon): likewise,
	(fileChooserHomeFolderIcon): likewise,
	(fileChooserListViewIcon): likewise,
	(fileChooserNewFolderIcon): likewise,
	(fileChooserUpFolderIcon): likewise,
	(radioButtonMenuItemIcon): likewise,
	(internalFrameDefaultMenuIcon): likewise,
	(treeComputerIcon): likewise,
	(treeFloppyDriveIcon): likewise,
	(treeHardDriveIcon): likewise,
	(getCheckBoxIcon): return single instance,
	(getCheckBoxMenuItemIcon): likewise,
	(getFileChooserDetailViewIcon): likewise,
	(getFileChooserHomeFolderIcon): likewise,
	(getFileChooserListViewIcon): likewise,
	(getFileChooserNewFolderIcon): likewise,
	(getFileChooserUpFolderIcon): likewise,
	(getRadioButtonMenuItemIcon): likewise,
	(getInternalFrameDefaultMenuIcon): likewise,
	(getTreeComputerIcon): likewise,
	(getTreeFloppyDriveIcon): likewise,
	(getTreeHardDriveIcon): likewise.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(AbstractButton): Set button to be opaque.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JList.java
	(locationToIndex): Put opening brace on next line.
	(indexToLocation): Call UI's indexToLocation.
	(getCellBounds): Replaced cast with getUI() call.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JFileChooser.java
	(getDialogTitle): If no dialog title has been set, forward this
	call to the UI.
	(getApproveButtonText): If no text has been set, forward this
	call to the UI.
	(getFileView): If no file view has been set, forward this call
	to the UI.
	(getInternalFileView): Removed unneeded method.
	(getName): Call getFileView instead of getInternalFileView.
	(getDescription): Call getFileView instead of getInternalFileView.
	(getTypeDescription): Call getFileView instead of
	getInternalFileView.
	(getIcon): Call getFileView instead of getInternalFileView.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(setFont): Only get active if the new font differs from the old one.
	Call revalidate when font changes.
	(setUI): Call revalidate when UI changes.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComboBox.java
	(isFocusTraversable): Removed unneeded and unspecified method.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JViewport.java
	(ViewListener.componentResized): Only call revalidate instead of
	going through weird reverting code.
	(JViewport): First call updateUI, then set layout.
	(setViewPosition): Don't do anything if there is no real
	change.
	(setView): Don't remove the old component. This is handled by
	addImpl. Call revalidate().
	* javax/swing/ViewportLayout.java
	(layoutContainer): Preferably set view size to it's preferredSize
	instead of its minimumSize.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/JTextComponent.java
	(getToolTipText): New method.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Fixed value for
	Table.focusCellHighlightBorder.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java
	(installDefaults): Use UIManager.get* methods instead of
	UIManager.getDefaults().get* methods.
	* javax/swing/plaf/basic/BasicColorChooserUI.java
	(installDefaults): Use new LookAndFeel install* methods.
	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicDesktopPaneUI.java
	(installDefaults): Only install background color, if installed
	color is null or an UIResource instance.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installDefaults): Use new LookAndFeel install* methods.
	* javax/swing/plaf/basic/BasicLabelUI.java
	(installDefaults): Use new LookAndFeel install* methods.
	* javax/swing/plaf/basic/BasicListUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added default for List.font.
	* javax/swing/plaf/basic/BasicMenuBarUI.java
	(installDefaults): Use new LookAndFeel install* methods.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicMenuUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicPanelUI.java
	(installDefaults): Use new LookAndFeel install* methods.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java
	(installDefaults): Use new LookAndFeel install* methods.
	* javax/swing/plaf/basic/BasicProgressBarUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(installDefaults): Use new LookAndFeel install* methods.
	* javax/swing/plaf/basic/BasicSeparatorUI.java
	(installDefaults): Use UIManager.get* methods instead of
	UIManager.getDefaults().get* methods.
	* javax/swing/plaf/basic/BasicSliderUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicSpinnerUI.java
	(installDefaults): Use new LookAndFeel install* methods.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicTableHeaderUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicTableUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicTextUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicToolBarSeparatorUI.java
	(installDefaults): Use UIManager.get* methods instead of
	UIManager.getDefaults().get* methods.
	* javax/swing/plaf/basic/BasicToolBarUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicToolTipUI.java
	(installDefaults): Use new LookAndFeel install* methods.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(installDefaults): Use new LookAndFeel install* methods. Use
	UIManager.get* methods instead of UIManager.getDefaults().get*
	methods.
	* javax/swing/plaf/basic/BasicViewportUI.java
	(installDefaults): Use new LookAndFeel install* methods.

2005-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/LookAndFeel.java
	(installBorder): Implemented.
	(installColors): Implemented.
	(installColorsAndFont): Implemented.

2005-10-12  Mark Wielaard  <mark@klomp.org>

	Reported by Christian Thalinger  <twisti@complang.tuwien.ac.at>
	* native/jni/java-lang/java_lang_VMProcess.c
	(Java_java_lang_VMProcess_nativeSpawn): Don't delete clazz local
	reference twice.
	
2005-10-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/SwingPropertyChangeSupport.java
	(firePropertyChange(PropertyChangeEvent)): if old and new values are 
	both null, listeners should be notified.

2005-10-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultComboBoxModel.java
	(setSelectedItem): allow values not in list, and don't fire an event 
	if the value is unchanged.

2005-10-11  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/GapContent.java:
	(getPositionsInRange): Corrected interval check.  This mirrors Roman's
	change in GapContent from 2005-10-05 for adjustPositionsInRange and
	setPositionsInRange.

2005-10-11  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicTextUI.java:
	(viewToModel): Implemented.
	* javax/swing/text/DefaultCaret.java:
	(mousePressed): Implemented.
	* javax/swing/text/PlainView.java:
	(viewToModel): Implemented.

2005-10-11  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainView.java:
	(insertUpdate): Repaint the JTextComponent after the update.
	(removeUpdate): Likewise.

2005-10-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JFileChooser.java: Added API docs all over.

2005-10-11  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	(AccessibleJEditorPaneHTML): New inner class.
	(JEditorPaneAccessibleHypertextSupport): New inner class.
	(getAccessibleContext): Handle special case when we have
	a HTMLEditorKit.
	(setEditorKit): Reset the accessibleContext.

2005-10-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/filechooser/FileSystemView.java
	(defaultFileSystemView): new private field,
	(getFileSystemView): initialise (if necessary) and return 
	defaultFileSystemView.

2005-10-11  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/CORBA/SimpleCommunication/Demo.java
	(main): Message removed from the loop.

2005-10-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/CORBA/SimpleCommunication/Demo.java
	(main): 3 sec pause replaced by while(..) loop. 

2005-10-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Interceptor/Registrator.java,
	gnu/CORBA/ObjectCreator.java,
	gnu/CORBA/gnuValueHolder.java,
	gnu/CORBA/stubFinder.java,
	gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java,
	gnu/javax/rmi/CORBA/StubDelegateImpl.java,
	gnu/javax/rmi/CORBA/UtilDelegateImpl.java,
	org/omg/CORBA/ORB.java: Use context class loader. 

2005-10-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/View.java
	(modelToView(pos, Shape)): New method.
	(viewToModel(float, float, Shape)): New method.

2005-10-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	(AccessibleJEditorPane): New inner class.
	(getAccessibleContext): Implemented to return an instance of
	AccessibleJEditorPane.
	* javax/swing/JScrollPane.java
	(AccessibleJScrollPane): New inner class.
	(getAccessibleContext): Implemented to return an instance of
	AccessibleJScrollPane.
	(setViewport): Call accessibleContext's resetViewPort() method.
	* javax/swing/JTextArea.java
	(AccessibleJTextArea): New inner class.
	(getAccessibleContext): Implemented to return an instance of
	AccessibleJTextArea.
	* javax/swing/JTextField.java
	(AccessibleJTextField): New inner class.
	(getAccessibleContext): Implemented to return an instance of
	AccessibleJTextField.
	* javax/swing/JRootPane.java
	(defaultPressAction): New field.
	(defaultReleaseAction): New field.

2005-10-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JMenuBar.java
	(AccessibleJMenuBar): New inner class.
	(getAccessibleContext): Implemented to return an instance of
	AccessibleJMenuBar.

2005-10-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintChildren): Skip children if their clip _doesn't_ hit the
	current	clip.
	(setVisible): Do nothing if the actual value didn't change.

2005-10-10  Roman Kennke  <kennke@aicas.com>

	* java/awt/Graphics.java
	(hitClip): Implemented this method.

2005-10-10  Roman Kennke  <kennke@aicas.com>

	* java/awt/Graphics.java: Reformatted file.

2005-10-10  Roman Kennke  <kennke@aicas.com>

	* java/beans/IndexedPropertyDescriptor.java
	(setIndexedReadMethod): Changed signature to throw
	IntrospectionException as specified.
	(setIndexedWriteMethod): Changed signature to throw
	IntrospectionException as specified.

2005-10-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(rectCache): New field. Caches Rectangle objects for reuse.
	(paintChildren): Changed to reuse cached Rectangle object.

2005-10-10  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/border/TitledBorder.java
	(TitledBorder(String)): Changed default justification and position,
	(TitledBorder(Border)): Likewise,
	(TitledBorder(Border, String)): Likewise,
	(BorderPainter.paint(Graphics)): Use full width and height,
	(BorderPainter.paintExcept): Fixed bounds for region 3,
	(paintBorder): indented left justified title further, adjusted 
	ABOVE_TOP text position, adjusted bounds for call to paintExcept(),
	updated for renamed fields in Measurements class,
	(getMeasurements): added special handling for null text, increased 
	outer spacing, adjusted spacing for TOP, BOTTOM and BELOW_BOTTOM title
	positions,
	(Measurements.borderSpacing): renamed outerSpacing,
	(Measurements.edgeSpacing): renamed innerSpacing,
	(Measurements.getContentInsets): updated for renamed fields,
	(Measurements.getMinimumSize): wrap at 80 columns.

2005-10-09  Mark Wielaard  <mark@klomp.org>

	Fixes bug #24006
	* java/net/Socket.java (bound): Make package private.
	* java/net/ServerSocket.java (implAccept): Set Socket.bound to true.

2005-10-07  Anthony Green  <green@redhat.com>

	* native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c
	(process): call run_multiple_synths if required.

2005-10-07  Anthony Green  <green@redhat.com>

	* native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c
	(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1): Attempt
	to connect to the jack server automatically.  Fail gracefully.

2005-10-07  Anthony Green  <green@redhat.com>

	* gnu/javax/sound/midi/dssi/DSSISynthesizer.java (loadInstrument):
	Implement.
	(selectProgram_): New native method.
	* include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: Rebuilt.
	* native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c
	(selectProgram_): New function.

2005-10-07  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkChoicePeer.java (postChoiceItemEvent):
	Don't call select on the AWT Choice component.
	* java/awt/Choice.java (processItemEvent): Set the selected index
	without calling into the peers.

2005-10-07  Anthony Green  <green@redhat.com>

	* gnu/javax/sound/midi/dssi/DSSISynthesizer.java
	Doc cleanups.
	(DSSISynthesizer.DSSISoundbank): New class.
	(DSSISynthesizer.DSSIInstrument): New class.
	(soundbanks, defaultSoundbank): New fields.
	(getDefaultSoundbank): Implemented.
	(getAvailableInstruments): Implemented.
	(getProgramName_, getProgramBank_, getProgramProgram_): New native
	methods.
	(DSSISynthesizer): Create default soundbank.
	* native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c
	(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_getProgramName_1,
	Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_getProgramBank_1,
	Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_getProgramProgram_1):
	New functions.
	* include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: Rebuilt.

2005-10-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(tableChanged): Revalidate table if its structure changes.

2005-10-07  Jan Roehrich  <jan@roehrich.info>

	* javax/swing/JTree.java: (JTree):
	* javax/swing/plaf/basic/BasicTreeUI.java: (updateRenderer):
	moved setting of TreeCellRenderer from JTree to BasicTreeUI.

2005-10-07  Roman Kennke  <kennke@aicas.com>

	* java/beans/IndexedPropertyDescriptor.java
	(setIndexedReadMethod): New method.
	(setIndexedWriteMethod): New method.

2005-10-07  Roman Kennke  <kennke@aicas.com>

	* java/beans/IndexedPropertyDescriptor.java: Reformatted.

2005-10-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(currentIcon): Fix icon for disabled selected buttons.
	(paint): Only paint focus indicator if button is actually
	focusPainted.
	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	(installDefaults): Install icons for disabledIcon and
	disabledSelectedIcon.
	(paint): Paint the correct icon. Only paint focus indicator
	if button is actually focusPainted.
	* javax/swing/plaf/basic/BasicToggleButtonUI.java
	(paint): Only paint focus indicator if button is actually
	focusPainted.

2005-10-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paint): Call paintBorder before paintChildren.
	(reshape): Fire AncestorEvent if position has changed.
	(fireAncestorMoved): New method. Fires AncestorEvents to this
	component and all of it's children.

2005-10-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/BorderFactory.java
	(createLineBorder(Color)): Forward call to
	createLineBorder(Color, int) with thickness of 1.

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

	* java/util/ListResourceBundle.java (getKeys): Fixed return type.
	* java/util/ResourceBundle.java (getKeys): Fixed return type.
	* java/util/AbstractMap.java (entrySet): Fixed return type.
	(clone): Updated.
	(equals): Likewise.
	(iterator): Likewise.
	* java/util/Collections.java (fill): Fixed argument type.
	(reverse): Likewise.
	(unmodifiableCollection): Likewise.
	(UnmodifiableCollection): Likewise.
	(UnmodifiableIterator): Likewise.
	(unmodifiableSet): Likewise.
	(UnmodifiableSet): Likewise.
	(unmodifiableList): Likewise.
	* java/util/TreeSet.java (TreeSet(SortedSet<T>)): Fixed argument
	type.
	(headSet): Fixed return type.
	* java/util/StringTokenizer.java: Implements Enumeration<Object>.

2005-10-06  Anthony Green  <green@redhat.com>

	* native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c
	(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1): Ignore
	controllers that aren't mapped to MIDI controls.

2005-10-06  Anthony Green  <green@redhat.com>

	* INSTALL: Describe midi provider dependencies.

	* native/jni/midi-dssi/README: New file.
	* LICENSE (terms): Add notice about code copied from the DSSI
	distribution.

	* examples/gnu/classpath/examples/midi/Demo.java: New file.

	* native/jni/midi-dssi/dssi_data.h (dssi_data): Add control_count,
	control_port_map, control_value_map, sample_rate, and
	control_values fields.
	* native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c
	(DEBUG_DSSI_PROVIDER): New macro.
	(get_port_default): New function.
	(set_control): New function.
	(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1): Remove
	debug output.  Reformat.  Allocate the control ports and assign
	proper default values.
	(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_noteOn_1): Use
	JLONG_TO_PTR.
	(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_noteOff_1): Ditto.
	* gnu/javax/sound/midi/dssi/DSSISynthesizer.java
	(Channel.controlChange): Implement.
	(controlChange_): New native method.
	* include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: Rebuilt.
	
	* gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java: Make
	instance final.

2005-10-06  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainView.java:
	(determineMaxLength): Avoid NPE by checking the Segment that getText
	returns.  No need to return Math.max (0, maxLineLength) because
	maxLineLength is guaranteed to be 0 or greater.

2005-10-06  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainView.java:
	(determineMaxLength): If maxLineLength is -1 we should return 0.
	(insertOrRemoveUpdate): Avoid NPE by checking the Segment that 
	getText returns.

2005-10-06  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/metadata/IIOMetadata.java: Complete.

2005-10-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BoxView.java
	(paint): Only call paintChild if child allocation is not empty.
	(layout): Don't store the width and height fields here.
	(setSize): Store the width and height fields here.
	* javax/swing/text/CompositeView.java
	(getViewIndexAtPosition): Reworked child view searching.
	(getInsideAllocation): Fixed insets calculation.
	* javax/swing/text/FlowView.java
	(FlowStrategy.layoutRow): Return an offset of -1 if no more child
	views are in the logical view.
	(FlowStrategy.createView): If there are no more child views,
	then return null.
	(LogicalView.getViewIndex): New method. Implements child view
	searching for the LogicalView.
	* javax/swing/text/GlyphView.java
	(DefaultGlyphPainter.getHeight): Use Toolkit FontMetrics instead
	of parent containers FontMetrics.
	(DefaultGlyphPainter.getSpan): Use Toolkit FontMetrics instead
	of parent containers FontMetrics.
	* javax/swing/text/Utilities.java
	(getTabbedTextOffset): Check for 0 in the char array and stop
	there.
	* javax/swing/text/View.java
	(getContainer): If there's no parent, don't throw an Error, instead
	return null as specified.

2005-10-06  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/AbstractDocument.java: Implemeted locking.
	(insertString): Obtain write lock before altering document.
	(readLock): Implemented.
	(readUnlock): Implemented.
	(remove): Obtain write lock before altering document.
	(render): Implemented.
	(writeLock): Implemented.
	(writeUnlock): Implemented.
	(getCurrentWriter): Implemented.

2005-10-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLabel.java
	(JLabel): Set alignmentX value to 0.0F.

2005-10-06  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(startEditing): Should always change the bounds, whenever
	we start editing.
	(paintRow): Fixed location where editing component should
	be drawn. The constant takes care of the space around the 
	icon.
	* javax/swing/JTree.java
	(JTree): Called updateUI first so currentVisiblePath is 
	cached right away. Prevents NPEs. 

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

	* javax/print/attribute/SetOfIntegerSyntax.java (toString): Wrote.
	(hashCode): Likewise.
	(equals): Likewise.
	(getMembers): Likewise.
	(contains): Fixed boundary condition check.
	(next): Wrote.
	(normalize): Rewrote.
	(SetOfIntegerSyntax): Updated.
	(SetOfIntegerSyntax(String)): New constructor.
	(skipNumber): New method.
	(skipWhitespace): Likewise.

2005-10-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicRootPaneUI.java
	(installUI): Call new hook methods.
	(installDefaults): New hook method.
	(installComponents): New hook method.
	(installListeners): New hook method.
	(installKeyboardActions): New hook method.
	(uninstallUI): New method.
	(uninstallDefaults): New hook method.
	(uninstallComponents): New hook method.
	(uninstallListeners): New hook method.
	(uninstallKeyboardActions): New hook method.

2005-10-06  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(mousePressed): Shouldn't change x location for leaf.

2005-10-06  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.ac: Add Qt4 configury bits for OS-X.

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

	* java/util/jar/Attributes.java: Implements Map<Object,Object>.
	(map): Changed type.
	(entrySet): Changed return type.
	(keySet): Likewise.
	(putAll): Changed argument type.
	(values): Changed return type.
	* java/util/jar/Manifest.java (getEntries): Genericized.
	(Manifest): Updated.
	(entries): Changed type.
	(read_individual_sections): Updated.
	(read_section_name): Likewise.
	(write_main_attributes): Likewise.
	(write_attribute_entry): Likewise.
	(write_individual_sections): Likewise.
	(write_entry_attributes): Likewise.
	* java/util/jar/JarFile.java (entries): Genericized.
	(JarEnumeration): Implements Enumeration<JarEntry>.
	(JarEnumeration.nextElement): Changed return type.
	(JarEnumeration.entries): Changed type.

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

	* java/awt/datatransfer/SystemFlavorMap.java (getNativesForFlavors):
	Genericized.
	(getFlavorsForNatives): Likewise.
	(getFlavorsForNative): Likewise.
	(getNativesForFlavor): Likewise.
	* java/awt/datatransfer/DataFlavor.java (DataFlavor): Genericized.
	(getDefaultRepresentationClass): Likewise.
	(getRepresentationClass): Likewise.
	(tryToLoadClass): Likewise.
	(representationClass): Likewise.
	* java/awt/datatransfer/FlavorTable.java (getNativesForFlavor):
	Genericized.
	(getFlavorsForNative): Likewise.
	* java/awt/datatransfer/FlavorMap.java (getFlavorsForNatives):
	Genericized.
	(getNativesForFlavors): Likewise.

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

	* java/util/zip/ZipFile.java (entries): Fixed return type.

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

	* java/util/prefs/Preferences.java (systemNodeForPackage): Genericized.
	(userNodeForPackage): Likewise.

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

	* javax/swing/tree/DefaultTreeSelectionModel.java (getListeners):
	Genericized.
	* javax/swing/tree/DefaultTreeModel.java (getListeners): Genericized.
	* javax/swing/Timer.java (getListeners): Genericized.
	* javax/swing/text/StyleContext.java (getListeners): Genericized.
	* javax/swing/text/DefaultCaret.java (getListeners): Genericized.
	* javax/swing/text/AbstractDocument.java (getListeners):
	Genericized.
	* javax/swing/table/DefaultTableColumnModel.java (getListeners):
	Genericized.
	* javax/swing/table/AbstractTableModel.java (getListeners):
	Genericized.
	* javax/swing/JComponent.java (getListeners): Genericized.
	* javax/swing/DefaultSingleSelectionModel.java (getListeners):
	Genericized.
	* javax/swing/DefaultListSelectionModel.java (getListeners):
	Genericized.
	* javax/swing/DefaultButtonModel.java (getListeners): Genericized.
	* javax/swing/DefaultBoundedRangeModel.java (getListeners):
	Genericized.
	* javax/swing/AbstractSpinnerModel.java (getListeners): Genericized.
	* javax/swing/event/EventListenerList.java (add): Genericized.
	(getListeners): Likewise.
	(remove): Likewise.
	* java/awt/dnd/DragSource.java (getListeners): Genericized.
	* java/awt/TextField.java (getListeners): Genericized.
	* java/awt/Window.java (getListeners): Genericized.
	* java/awt/Scrollbar.java (getListeners): Genericized.
	* java/awt/List.java (getListeners): Genericized.
	* java/awt/Choice.java (getListeners): Genericized.
	* java/awt/TextComponent.java (getListeners): Genericized.
	* java/awt/CheckboxMenuItem.java (getListeners): Genericized.
	* java/awt/Button.java (getListeners): Genericized.
	* java/awt/Container.java (getListeners): Genericized.

2005-10-05  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(paintRow): Fixed indentation.
	(updateCurrentVisiblePath): Added FIXME
	comment.

2005-10-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BoxView.java
	(baselineLayout): New method.
	(calculateMajorAxisRequirements): Reimplemented to use the
	SizeRequirements utility methods.
	(calculateMinorAxisRequirements): Reimplemented to use the
	SizeRequirements utility methods.
	(layout): Use the new baselineLayout method.
	(layoutMajorAxis): Reimplemented to use the new
	getChildRequirements method.
	(layoutMinorAxis): Reimplemented to use the new
	getChildRequirements method.
	(getChildRequirements): New method.
	(getSpan): New method.
	(getOffset): New method.
	(getAlignment): New method.
	* javax/swing/text/ParagraphView.java
	(Row.getAlignment): New method.	
	(getAlignment): New method.	
	* javax/swing/text/View.java
	(getContainer): Improved error message in assertion a little.

2005-10-05  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalTreeUI.java
	(installUI): Fixed to call toggleExpandState instead.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(getPathForRow): Used currentVisiblePath to get Path.
	(getRowForPath): Used currentVisiblePath to get row.
	(getRowCount): Returned currentVisiblePath length.
	(updateLayoutCacheExpandedNodes): Took out unneeded code.
	(installUI): Fixed to call toggleExpandState instead.
	(getPreferredSize): Made more efficent by using currentVisiblePath.
	(toggleExpandState): Called updateCurrentVisiblePath.
	(getCellLocation): Made more efficent.
	(paintNode): Removed.
	(paintRecursive): Made more efficent, changed paintNode calls to 
	paintRow.
	(getNextVisibleNode): Reimplemented to use currentVisiblePath.
	(getPreviousVisibleNode): Likewise.
	(paintRow): Implemented.
	(updateCurrentVisiblePath): New helper used to cache the current
	visible path.

2005-10-05  Mark Wielaard  <mark@klomp.org>

	Reported by Nicolas Geoffray  <nicolas.geoffray@lip6.fr>
	* java/security/AccessController.java
	(doPrivileged(PrivilegedExceptionAction)): If the Exception is a
	Runtime exception, then throw the exception directly, otherwise
	wrap it.
	(doPrivileged(PrivilegedExceptionAction,AccessControlContext)):
	Likewise.

2005-10-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(setPositionsInRange): Changed check for interval end to actually
	check for the position offsets.
	(adjustPositionsInRange): Changed check for interval end to actually
	check for the position offsets.
	(dump): New method for debugging.
	(dumpPositions): New method for debugging.

2005-10-05  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* m4/acattribute.m4: Added.
	* configure.ac: Added AC_C_ATTRIBUTE.
	* native/fdlibm/java-assert.h: Added missing config.h include, 
	changed comments to C comments.
	* native/jni/java-lang/java_lang_reflect_Array.c: Added missing 
	config.h include.

2005-10-05  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainView.java:
	(insertOrRemoveUpdate): New method.
	(insertUpdate): New method.
	(removeUpdate): New method.

2005-10-05  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JOptionPane.java
	(showInputDialog(Component,Object,String,int,Icon,Object[],Object)):
	Don't cast return value.
	(internalShowInputDialog(Component,Object,String,int,Icon,Object[],
	Object)): Likewise.

2005-10-05  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * gnu/CORBA/CDR/cdrInput.java,
        gnu/CORBA/EmptyExceptionHolder.java,
        gnu/CORBA/ForwardRequestHelper.java,
        gnu/CORBA/Functional_ORB.java,
        gnu/CORBA/Poa/gnuServantObject.java,
        gnu/CORBA/_PolicyImplBase.java,
        gnu/CORBA/gnuAny.java,
        gnu/CORBA/universalHolder.java,
        org/omg/CORBA/CompletionStatus.java,
        org/omg/CORBA/NameValuePairHelper.java,
        org/omg/CORBA/ObjectHelper.java,
        org/omg/CORBA/PolicyHelper.java,
        org/omg/CORBA/PolicyListHelper.java,
        org/omg/CORBA/ServiceDetailHelper.java,
        org/omg/CORBA/StringValueHelper.java,
        org/omg/CORBA/WStringValueHelper.java,
        org/omg/CosNaming/BindingHelper.java,
        org/omg/CosNaming/BindingIteratorHelper.java,
        org/omg/CosNaming/BindingIteratorPOA.java,
        org/omg/CosNaming/BindingTypeHelper.java,
        org/omg/CosNaming/NameComponentHelper.java,
        org/omg/CosNaming/NameHelper.java,
        org/omg/CosNaming/NamingContextExtHelper.java,
        org/omg/CosNaming/NamingContextExtPOA.java,
        org/omg/CosNaming/NamingContextHelper.java,
        org/omg/CosNaming/NamingContextPOA.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/CosNaming/_BindingIteratorImplBase.java,
        org/omg/CosNaming/_NamingContextImplBase.java,
        org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java,
        org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java,
        org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java,
        org/omg/DynamicAny/DynAnySeqHelper.java,
        org/omg/DynamicAny/NameDynAnyPairHelper.java,
        org/omg/DynamicAny/NameDynAnyPairSeqHelper.java,
        org/omg/DynamicAny/NameValuePairHelper.java,
        org/omg/DynamicAny/NameValuePairSeqHelper.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/IORHelper.java,
        org/omg/IOP/MultipleComponentProfileHelper.java,
        org/omg/IOP/ServiceContextHelper.java,
        org/omg/IOP/ServiceContextListHelper.java,
        org/omg/IOP/TaggedComponentHelper.java,
        org/omg/IOP/TaggedProfileHelper.java,
        org/omg/PortableInterceptor/ForwardRequestHelper.java,
        org/omg/PortableInterceptor/InvalidSlotHelper.java,
        org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java,
        org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java,
        org/omg/PortableServer/CurrentPackage/NoContextHelper.java,
        org/omg/PortableServer/ForwardRequestHelper.java,
        org/omg/PortableServer/IdAssignmentPolicyValue.java,
        org/omg/PortableServer/IdUniquenessPolicyValue.java,
        org/omg/PortableServer/ImplicitActivationPolicyValue.java,
        org/omg/PortableServer/LifespanPolicyValue.java,
        org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java,
        org/omg/PortableServer/POAManagerPackage/State.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/RequestProcessingPolicyValue.java,
        org/omg/PortableServer/Servant.java,
        org/omg/PortableServer/ServantLocatorHelper.java,
        org/omg/PortableServer/ServantRetentionPolicyValue.java,
        org/omg/PortableServer/ThreadPolicyValue.java: Added minor codes for BAD_PARAM and NO_RESOURCES.
        * gnu/CORBA/Minor.java: Introduces new minor codes.
        * org/omg/CORBA/BAD_OPERATION.java,
        org/omg/CORBA/MARSHAL.java,
        org/omg/CORBA/NO_RESOURCES.java: Documentation update.

2005-10-05  Stuart Ballard  <stuart.a.ballard@gmail.com>

	* java/rmi/LoaderHandler.java (packagePrefix): Match Sun's value.
	* java/rmi/RemoteRef.java (packagePrefix): Likewise.
	* java/rmi/RemoteObject.java (readObject): Hardcode the GNU package
	prefix.

2005-10-05  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/AbstractDocument.java:
	(remove): If removing content returns an UndoableEdit, then add an 
	ElementEdit to the DocumentEvent before firing.
	* javax/swing/text/GapContent.java:
	(UndoRemove): New class to implement UndoableEdit for remove operation.
	(remove): Return an UndoableEdit instead of null.

2005-10-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/LabelView.java
	(LabelView): Implemented the constructor.
	(setPropertiesFromAttributes): New method.
	(changedUpdate): New method.
	(getBackground): New method.
	(setBackground): New method.
	(getForeground): New method.
	(getFont): New method.
	(getFontMetrics): New method.
	(isUnderline): New method.
	(setUnderline): New method.
	(isSubscript): New method.
	(setSubscript): New method.
	(isSuperscript): New method.
	(setSuperscript): New method.
	(isStrikeThrough): New method.
	(setStrikeThrough): New method.

2005-10-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/table/JTableHeader.java
	(accessibleContext): Removed unneeded field. The protected
	field with the same name should be used instead.
	(JTableHeader): Moved field initialization to new method
	initializeLocalVars().
	(setColumnModel): Add and remove this to the old and new model.
	(columnAdded): New listener method.
	(columnMarginChanged): New listener method.
	(columnMoved): New listener method.
	(columnRemoved): New listener method.
	(columnSelectionChanged): New listener method.
	(resizeAndRepaint): New method.
	(initializeLocalVars): New method.

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

	* java/awt/Dialog.java (show): Now deprecated.
	(hide): Likewise.

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

	* java/lang/ref/Reference.java (nextOnQueue): Changed type.
	* java/lang/ref/ReferenceQueue.java (first): Changed type.

2005-10-04  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicFileChooserUI.java: Added API docs all
	over.

2005-10-04  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/AbstractDocument.java:
	(insertString): If inserting a string into the Content returns an 
	UndoableEdit, then add an ElementEdit to the DocumentEvent before 
	firing.
	(remove): Don't fire a removeUpdate unless some content was actually
	removed.
	* javax/swing/text/GapContent.java:
	(UndoInsertString): New class to implement UndoableEdit functions.
	(insertString): Return an UndoableEdit instead of null.  Also use 
	locally calculated length of String rather than calculating again.
	* javax/swing/text/JTextComponent.java:
	(setText): If the Document is an AbstractDocument this should pass 
	through AbstractDocument.replace rather than calling remove and insert.
	* javax/swing/text/PlainView.java:
	(determineMaxLength): Keep track of which line was the longest as well
	as the length of it.  We'll need this to know when the longest line is
	removed and we need to redetermine the longest line.

2005-10-04  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/ImageWriter.java
	(processWarningOccurred(int,String,String)): New method.
	* javax/imageio/ImageReader.java
	(processWarningOccurred(String,String)): New method.

2005-10-04  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/ImageReader.java (getDestination): Throw
	IIOException, not IOException.
	* javax/imageio/ImageTypeSpecifier.java
	(createGrayscale(int,int,boolean)): Rename from createGrayScale.
	(createGrayscale(int,int,boolean,boolean)): Likewise.
	(createIndexed): Rename from createIndex.

2005-10-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        *  doc/www.gnu.org/corba.wml: 
        Link to  http://doc.omg.org/vendor-tags. 

2005-10-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * gnu/CORBA/Minor.java: New file.
        * gnu/CORBA/CDR/IDLTypeHelper.java,
        gnu/CORBA/CDR/UnknownExceptionCtxHandler.java,
        gnu/CORBA/CDR/Vio.java,
        gnu/CORBA/CDR/cdrInput.java,
        gnu/CORBA/CDR/cdrOutput.java,
        gnu/CORBA/CDR/gnuRuntime.java,
        gnu/CORBA/CDR/noHeaderInput.java,
        gnu/CORBA/DynAn/gnuDynValue.java,
        gnu/CORBA/GIOP/CloseMessage.java,
        gnu/CORBA/GIOP/ErrorMessage.java,
        gnu/CORBA/GIOP/MessageHeader.java,
        gnu/CORBA/GIOP/v1_2/RequestHeader.java,
        gnu/CORBA/IOR.java,
        gnu/CORBA/Poa/ForwardedServant.java,
        gnu/CORBA/Version.java,
        gnu/CORBA/cdrEncapsCodec.java,
        gnu/CORBA/gnuAny.java,
        gnu/CORBA/gnuRequest.java,
        gnu/CORBA/streamReadyHolder.java,
        gnu/CORBA/universalHolder.java,
        gnu/javax/rmi/CORBA/UtilDelegateImpl.java,
        gnu/javax/rmi/CORBA/corbaObjectOutput.java,
        gnu/javax/rmi/CORBA/gnuRmiUtil.java,
        org/omg/CORBA/StringValueHelper.java,
        org/omg/CORBA/StructMemberHelper.java,
        org/omg/CORBA/UnionMemberHelper.java,
        org/omg/CORBA/ValueMemberHelper.java,
        org/omg/CORBA/WStringValueHelper.java,
        org/omg/CORBA/_IDLTypeStub.java,
        org/omg/DynamicAny/DynAnyFactoryHelper.java,
        org/omg/DynamicAny/_DynAnyFactoryStub.java,
        org/omg/IOP/TaggedComponentHelper.java,
        org/omg/IOP/TaggedProfileHelper.java,
        org/omg/PortableInterceptor/CurrentHelper.java,
        org/omg/PortableServer/POAHelper.java,
        org/omg/PortableServer/ServantActivatorHelper.java,
        org/omg/PortableServer/ServantLocatorHelper.java:
        Initialising minor codes for MARSHAL.
        * org/omg/CORBA/SystemException.java: Documentation update and
        add minor code to the exception message.
        * org/omg/CORBA/MARSHAL.java: Documentation update.

2005-10-04  Mark Wielaard  <mark@klomp.org>

	* javax/swing/plaf/metal/MetalBorders.java (paintBorder): Check
	whether Component is JTextComponent.

2005-10-04  Andreas Tobler  <a.tobler@schweiz.ch>

	* javax/imageio/ImageWriter.java (availableLocales, locale,
	originatingProvider, output, progressListeners, warningListeners,
	warningLocales): Initialize.
	(addIIOWriteProgressListener): Check progressListeners against null
	to avoid NPE. Create new ArrayList if progressListeners is null.
	(addIIOWriteWarningListener): Likewise for warningListeners.
	(processImageComplete): Check progressListeners against null to
	avoid NPE. 
	(processImageProgress): Likewise.
	(processImageStarted): Likewise.
	(processThumbnailComplete): Likewise.
	(processThumbnailProgress): Likewise.
	(processThumbnailStarted): Likewise.
	(processWarningOccurred): Likewise for warningListeners.
	(processWriteAborted): Likewise for progressListeners.
	(removeAllIIOWriteProgressListeners): Likewise.
	(removeAllIIOWriteWarningListeners): Likewise.
	(removeIIOWriteProgressListener): Likewise.
	(removeIIOWriteWarningListener): Likewise for warningListeners.

	* javax/imageio/ImageReader.java (addIIOReadProgressListener): Check
	progressListeners against null to avoid NPE. Create new ArrayList
	if progressListeners is null.
	(addIIOReadUpdateListener): Likewise for updateListeners.
	(addIIOReadWarningListener): Likewise for warningListeners.
	(processImageComplete):  Check progressListeners against null to
	avoid NPE.
	(processImageProgress): Likewise.
	(processImageStarted): Likewise.
	(processImageUpdate): Likewise for updateListeners.
	(processPassComplete): Likewise.
	(processPassStarted): Likewise.
	(processReadAborted): Likewise for progressListeners.
	(processSequenceComplete): Likewise.
	(processSequenceStarted): Likewise.
	(processThumbnailComplete): Likewise.
	(processThumbnailPassComplete): Likewise for updateListeners.
	(processThumbnailPassStarted): Likewise.
	(processThumbnailProgress): Likewise for progressListeners.
	(processThumbnailStarted): Likewise.
	(processThumbnailUpdate): Likewise for updateListeners.
	(processWarningOccurred): Likewise for warningListeners.
	(removeIIOReadProgressListener): Likewise for progressListeners.
	(removeIIOReadUpdateListener): Likewise for updateListeners.
	(removeIIOReadWarningListener): Likewise for warningListeners.

2005-10-04  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalToolTipUI.java
	(paint): Added space around the toolTip's accelerator.
	(fetchAcceleratorString): Added code to get mnemonic for
	JMenuItem if it does not have an accelerator.

2005-10-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultCaret.java
	(repaint): Adjust repaint rectangle.
	(setVisible): Only repaint if the visible property actually changed.

2005-10-04  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/JTextComponent.java: Reformatted file.

2005-10-04  Roman Kennke  <kennke@aicas.com>

	Fixes Bug #24080
	* javax/swing/SizeRequirements.java
	(adjustGreater): Added check to prevent overflow.

2005-10-04  David Gilbert  <david.gilbert@object-refinery.com>
	
	* javax/swing/plaf/basic/BasicToolTipUI.java
	(accText): removed,
	(accDeliminator): removed,
	(accFont): removed,
	(accFore): removed,
	(getPreferredSize): removed accelerator code (now in MetalToolTipUI),
	(getAcceleratorText): removed (equivalent is now in MetalToolTipUI),
	(paint): removed accelerator painting,
	* javax/swing/plaf/metal/MetalToolTipUI.java
	(padSpaceBetweenStrings): new field,
	(MetalToolTipUI): initialise defaults,
	(getAcceleratorString): new method,
	(installUI): new method,
	(uninstallUI): new method,
	(isAcceleratorHidden): new method,
	(getPreferredSize): new method,
	(paint): new method,
	(fetchAcceleratorString): new private method,
	(acceleratorToString): new private method,
	* examples/gnu/classpath/examples/swing/Demo.java
	(mkButton): set tool tip.

2005-10-04  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(getFont): Fall back to peer.getGraphics().getFont() if no font
	is found.
	(getGraphics): Set font here. This avoids a loop in the above
	fallback.
	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(GdkGraphics): Don't initialize font here. This would cause a
	loop in the above fallback.

2005-10-04  Anthony Green  <green@redhat.com>

	* native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c 
	(process): Add comments.  Remove unused gettimeofday call.
	(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1): Remove
	debug output.  Add comments.
	(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_noteOn_1,
	Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_noteOff_1): Add
	comments.  Remove bogus __attribute__((unused)).
	* native/jni/midi-dssi/dssi_data.h (JLONG_TO_PTR, PTR_TO_JLONG): 
	Document helper macros.
	(dssi_data): Document.
	* native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.c:
	Formatting fixes.
	* native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c
	(Java_gnu_javax_sound_midi_alsa_AlsaPortDevice_run_1receiver_1thread_1):
	Remove debugging output.

2005-10-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(AbstractButton): Set text to "" here.

2005-10-04  Andreas Tobler  <a.tobler@schweiz.ch>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (clearRect): Check bg
	against null to avoid NPE.

2005-10-03  Tom Tromey  <tromey@redhat.com>

	* gnu/java/awt/peer/qt/QtToolkit.java (initToolkit): Use Configuration
	to see if library should be loaded.

2005-10-03  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainView.java:
	(maxLineLength): New variable to cache the length of the longest line.
	(determineMaxLength): New implementation method.
	(getPreferredSpan): Call determine max length instead of calculating
	it here.

2005-10-03  Tom Tromey  <tromey@redhat.com>

	* java/awt/image/ComponentSampleModel.java (numBands): Updated
	javadoc.
	(ComponentSampleModel): Set numBands.
	* java/awt/image/SampleModel.java (numBands): Now protected.

2005-10-03  Tom Tromey  <tromey@redhat.com>

	* java/awt/Polygon.java (evaluateCrossings): Removed @see.
	* java/awt/image/ImageConsumer.java (SINGLEPASS): Javadoc fix.
	* java/awt/Image.java (getGraphics): Removed @see.
	* java/awt/MenuComponent.java (setEnabled): Javadoc fix.
	(setBackground): Likewise.
	* java/awt/event/MouseEvent.java: Added import for javadoc.
	* java/awt/im/spi/InputMethodDescriptor.java: Added import for javadoc.
	(getAvailableLocales): Javadoc fix.
	* java/awt/KeyboardFocusManager.java: Added import for javadoc.
	(defaultPolicy): Javadoc fix.
	(setGlobalObject): Javadoc fixes.
	(getObject): Likewise.
	(getGlobalObject): Likewise.
	* java/awt/im/InputMethodRequests.java: Added imports for javadoc.
	* java/awt/im/spi/InputMethodContext.java: Added imports for javadoc.
	(enableClientWindowNotification): Javadoc fix.
	* java/awt/im/spi/InputMethod.java: Added imports for javadoc.
	(removeNotify): Javadoc fix.
	(notifyClientWindowChange): Likewise.
	* java/awt/im/InputContext.java: Added import for javadoc.
	* java/awt/image/ColorModel.java (getDataElements): Javadoc fix.
	* java/awt/geom/Area.java (recursiveSubdivide): Javadoc fix.
	* java/awt/geom/GeneralPath.java (GeneralPathIterator): Javadoc fix.
	* java/awt/im/InputMethodHighlight.java: Javadoc fixes.  Added
	imports.
	* java/awt/color/ICC_Profile.java (getInstance): Javadoc fix.
	(getInstance): Likewise.
	* java/awt/EventQueue.java: Organized imports.
	* java/awt/image/BufferedImage.java: Organized imports.
	* java/awt/image/PackedColorModel.java (initMasks): Javadoc fix.
	* java/awt/GraphicsConfiguration.java (createCompatibleVolatileImage):
	Javadoc fixes.
	* java/awt/DefaultKeyboardFocusManager.java (delayRequests): Javadoc
	fix.
	* java/awt/ColorPaintContext.java (ColorPaintContext): Javadoc fix.

2005-10-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/JOptionPane.java
	(getInputValue): If the option selected is 'Cancel', then
	the input value is set to null.
	(showInternalConfirmDialog): Added check to prevent NPE.
	(showInternalConfirmDialog): Likewise.
	(showInternalConfirmDialog): Likewise.
	(showInternalConfirmDialog): Likewise.
	(showInternalOptionDialog): Likewise.
	(showOptionDialog): Likewise.

2005-10-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * javax/rmi/CORBA/ValueHandler.java (getRunTimeCodeBase): 
        Fixed return type.
        * gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.java 
        (getRunTimeCodeBase): Implemented.

2005-10-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/JMenuItem.java
	(init): Set horizontalTextPosition to TRAILING, instead of 
	LEFT. Icons are drawn in the correct spot now.

2005-10-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * doc/www.gnu.org/corba.wml: New file. 

2005-10-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(layoutLabel): place text to the right of the icon, if there is one.

2005-10-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalComboBoxButton.java
	(paintComponent): reposition text and truncate if necessary,
	(truncateText): private utility method.

2005-10-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
         
        * NEWS: Added entry about Classpath VMCID and IIOP. 
         
2005-10-02  Anthony Green  <green@redhat.com>

	* native/jni/Makefile.am: Maybe build ALSA code.
	Maybe build DSSI code.

	* gnu/javax/sound/midi/alsa/AlsaPortDevice.java,
	gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.java
	gnu/javax/sound/midi/alsa/AlsaInputPortDevice.java
	gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java
	gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java: Rebuilt.
	native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c,
	native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.c,
	native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaSequencerDevice.c,
	native/jni/midi-dssi/dssi_data.h, native/jni/midi-dssi/Makefile.am, 
	native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.c
	native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c,
	native/jni/midi-alsa/Makefile.am: New files.

	* include/Makefile.am: Add sound header files.
	* 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_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h,
	include/gnu_javax_sound_midi_alsa_AlsaSequencerDevice.h: New
	files.
	
	* configure.ac (AC_CONFIG_FILES): Add
	native/jni/midi-alsa/Makefile, native/jni/midi-dssi/Makefile.

2005-10-02  Mark Wielaard  <mark@klomp.org>

	* java/awt/Font.java (peer): Make field transient.
	(Font(String,int,int)): Explicitly set name field.
	(Font(String,Map)): Likewise.
	(readObject): New private method.

2005-10-02  Mark Wielaard  <mark@klomp.org>

	* java/io/ObjectOutputStream.java (writeObject): Add defining class
	to NotSerializableException.

2005-10-02  Tom Tromey  <tromey@redhat.com>

	* java/net/URLStreamHandler.java (hostsEqual): Javadoc fix.
	* java/net/URLClassLoader.java (definePackage): Javadoc fixes.
	* java/net/Inet4Address.java (Inet4Address): Javadoc fix.
	* java/net/Socket.java (getLocalAddress): Javadoc fix.
	* java/net/DatagramSocket.java (connect): Javadoc fix.

2005-10-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * gnu/javax/rmi/PortableServer.java,
        gnu/javax/rmi/CORBA/ValueHandlerImpl.java,
        javax/rmi/BAD_OPERATION.java,
        javax/rmi/ORB.java,
        javax/rmi/CORBA/ObjectImpl.java,
        javax/rmi/CORBA/SystemException.java: Deleted. 

2005-10-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/rmi/CORBA/corbaObjectOutput.java (main):
	Removed method.

2005-10-02  Casey Marshall  <csm@gnu.org>

	* gnu/javax/crypto/DiffieHellmanImpl.java (random): removed.
	(<init>): removed 'random' initialization.
	(engineDoPhase): use params from the incoming key; generate the
	intermediate result from the incoming key, not a random one; only
	support one-phase DH, for now.
	(engineInit): removed 'random' initialization.

2005-10-02  Robert Schuster  <robertschuster@fsfe.org>

	* gnu/xml/stream/XMLOutputFactoryImpl.java:
	(setProperty): Added 'else'.

2005-10-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * gnu/CORBA/CDR/Vio.java,
        gnu/CORBA/CDR/cdrBufOutput.java,
        gnu/CORBA/CDR/gnuRuntime.java,
        gnu/javax/rmi/CORBA/corbaObjectInput.java,
        gnu/javax/rmi/CORBA/dwoTester.java,
        gnu/javax/rmi/CORBA/gnuRmiUtil.java: Corrected copyright 
        header identation.

2005-10-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/CDR/ArrayValueHelper.java,
	gnu/CORBA/CDR/IDLTypeHelper.java,
	gnu/CORBA/CDR/UnknownExceptionCtxHandler.java,
	gnu/CORBA/CDR/gnuRuntime.java,
	gnu/CORBA/CDR/gnuValueStream.java,
	gnu/CORBA/CDR/VMVio.java,
	gnu/CORBA/IorProvider.java,
	gnu/javax/rmi/CORBA/TieTargetRecord.java,
	gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.java,
	gnu/javax/rmi/CORBA/corbaObjectInput.java,
	gnu/javax/rmi/CORBA/corbaObjectOutput.java,
	gnu/javax/rmi/CORBA/dwoTester.java,
	gnu/javax/rmi/CORBA/gnuRmiUtil.java: New files.
	* gnu/CORBA/CDR/aligningInputStream.java,
	gnu/CORBA/CDR/aligningOutputStream.java:
	gnu/CORBA/CDR/Vio.java,
	gnu/CORBA/CDR/cdrBufInput.java,
	gnu/CORBA/CDR/cdrBufOutput.java,
	gnu/CORBA/CDR/cdrInput.java,
	gnu/CORBA/CDR/cdrOutput.java,
	gnu/CORBA/CDR/noHeaderInput.java,
	gnu/CORBA/Functional_ORB.java,
	gnu/CORBA/GIOP/MessageHeader.java,
	gnu/CORBA/GIOP/ServiceContext.java,
	gnu/CORBA/IOR_Delegate.java,
	gnu/CORBA/IOR_contructed_object.java,
	gnu/CORBA/Interceptor/Registrator.java,
	gnu/CORBA/NamingService/NameParser.java,
	gnu/CORBA/NamingService/NamingServiceTransient.java,
	gnu/CORBA/ObjectCreator.java,
	gnu/CORBA/Poa/LocalDelegate.java,
	gnu/CORBA/Poa/ORB_1_4.java,
	gnu/CORBA/Poa/gnuPOA.java,
	gnu/CORBA/Poa/gnuServantObject.java,
	gnu/CORBA/Simple_delegate.java,
	gnu/CORBA/gnuAny.java,
	gnu/CORBA/gnuRequest.java,
	org/omg/CORBA/OMGVMCID.java,
	org/omg/CORBA/StringValueHelper.java,
	org/omg/CORBA/SystemException.java,
	org/omg/CORBA/WStringValueHelper.java,
	org/omg/CORBA/portable/ObjectImpl.java,
	org/omg/CORBA_2_3/ORB.java,
	org/omg/CORBA_2_3/portable/InputStream.java,
	org/omg/CORBA_2_3/portable/OutputStream.java: Modified to support
	RMI over CORBA mechanism.
	* gnu/javax/rmi/CORBA/DelegateFactory.java,
	gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java,
	gnu/javax/rmi/CORBA/StubDelegateImpl.java,
	gnu/javax/rmi/CORBA/UtilDelegateImpl.java,
	javax/rmi/CORBA/ClassDesc.java,
	javax/rmi/CORBA/PortableRemoteObjectDelegate.java,
	javax/rmi/CORBA/Stub.java,
	javax/rmi/CORBA/StubDelegate.java,
	javax/rmi/CORBA/Tie.java,
	javax/rmi/CORBA/Util.java,
	javax/rmi/CORBA/UtilDelegate.java,
	javax/rmi/CORBA/ValueHandler.java,
	javax/rmi/CORBA/package.html,
	javax/rmi/PortableRemoteObject.java,
	javax/rmi/package.html: New files (replacing).
	* gnu/javax/rmi/CORBA/ValueHandlerImpl.java,
	gnu/javax/rmi/PortableServer.java: Modified to keep the code
	compileable between subsequent patches. 

2005-10-02  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/ImageIO.java: Fix compilation problems.

2005-10-01  Mark Wielaard  <mark@klomp.org>

	* javax/swing/plaf/metal/MetalScrollBarUI.java
	(MetalScrollBarPropertyChangeHandler.propertyChange):
	Only set free standing when increase or decrease button isn't null.
	If not FREE_STANDING_PROP pass up event to super class.

2005-10-02  Mark Wielaard  <mark@klomp.org>

	Workarounds for bug #24166
	* javax/imageio/ImageIO.java (filter): Catch IOException in
	canDecodeInput().
	(TranscoderFilter.WriterObjectFilter): Renamed to TranscoderFilter.
	(getImageReadersBySuffix): Use ReaderObjectFilter, not the nonexisting
	ReaderSuffixFilter.
	(createImageInputStream): Test with Class.isAssignableFrom() and for
	foundSpi == null.
	(createImageOutputStream): Likewise and use output, not input.
	(getImageReader): Always return null for now.
	(getImageReaders): Use input, not object.
	(getImageWriters): Rename formatName to format and create a
	WriterObjectFilter with type and format not just object.
	(getImageWriter): Always return null for now.
	(getImageTranscoders): Create TranscoderFilter not ImageTranscoderSpi
	instance.

2005-10-02  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicButtonUI.java: API doc updates.

2005-10-02  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/IIOException.java: Document.
	* javax/imageio/IIOImage.java: Document.
	* javax/imageio/IIOParam.java: Complete and document.
	* javax/imageio/IIOParamController.java: Document.
	* javax/imageio/ImageIO.java: Complete and document.
	* javax/imageio/ImageReader.java: Complete and document.
	* javax/imageio/ImageTranscoder.java: Document.
	* javax/imageio/ImageTypeSpecifier.java: Complete and document.
	* javax/imageio/ImageWriter.java: Complete and document.
	* javax/imageio/package.html: Write.

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/Field.java
	(getGenericType): New method.
	(getSignature): New method.
	* vm/reference/java/lang/reflect/Method.java
	(getSignature): New method.
	(getGenericExceptionTypes): New method.
	(getGenericParameterTypes): New method.
	(getGenericReturnType): New method.

2005-10-01  Tom Tromey  <tromey@redhat.com>

	PR classpath/23890:
	* java/util/Calendar.java (equals): Include other calendar 
	attributes.
	(hashCode): Updated.
	* java/util/GregorianCalendar.java (hashCode): New method.
	(equals): Use super.equals().

2005-10-01  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/image/ComponentSampleModel.java (numBands): Shadow
	package-private field in parent class with this protected field.
	* java/awt/image/SampleModel.java (numBands): Make field
	package-private.

2005-10-01  Tom Tromey  <tromey@redhat.com>

	PR classpath/23880:
	* gnu/java/security/x509/ext/Extension.java (Value.hashCode): New
	method.
	* gnu/java/security/der/BitString.java (hashCode): New method.
	* javax/security/auth/x500/X500Principal.java (hashCode): New method.

2005-10-01  Jeroen Frijters  <jeroen@frijters.net>

	* java/net/URLClassLoader.java
	(Resource.name): Removed field.
	(JarURLResource.name): Added field.
	(FileResource.getURL): Use File.toURL() instead of doing it in
	a way that breaks on Windows.

2005-10-01  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/include/layout.wml: Point Tasks menu item to
	mediation wiki.
	* doc/www.gnu.org/tasks.wml: Redirect to mediation wiki.

2005-10-01  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_setTexturePixelsUnlocked):
	Call cairo_pattern_set_extend after gr->pattern has been set and checked
	versus NULL.

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-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTextPane.java
	(replaceSelection): Don't update the caret position here.
	* javax/swing/plaf/basic/BasicTextUI.java
	(DocumentHandler.insertUpdate): Likewise.
	(DocumentHandler.removeUpdate): Likewise.
	* javax/swing/text/DefaultCaret.java
	(DocumentHandler): New inner class. Handles caret position updates.
	(PropertyChangeHandler): New inner class. (Un)installs document
	listener when the text component's document changes.
	(install): Install the new listeners on the text component.
	(deinstall): Deinstall the new listeners on the text component.
	* javax/swing/text/DefaultEditorKit.java
	(DefaultKeyTypedAction.actionPerformed): Don't update the caret
	position here.

2005-09-30  Lillian Angel  <langel@redhat.com>

	* javax/swing/AbstractButton.java
	(AbstractButton): updateUI should be called after
	everything is initialized, so everything is revalidated.
	* javax/swing/JMenuItem.java
	(JMenuItem): Added call to init so model is set.
	(JMenuItem): Likewise.
	* javax/swing/JOptionPane.java
	(createDialog): Removed invalidate and repaint calls.
	(JOptionPane): Likewise.
	* javax/swing/JPopupMenu.java
	(setVisible): Changed size to be the preferred size.

2005-09-30  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(paintTabArea): Added check to adjust runCount if
	it is less that tabCount.

2005-09-30  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainDocument.java:
	(removeUpdate): Fixed length of new LeafElement and off-by-one error
	in call to rootElement.replace().

2005-09-30  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(propertyChange): No reason to reset the layout manager here.
	(setDividerLocation): Changed to check right component, not left.
	Also, updated the location to a valid spot.

2005-09-30  David Gilbert  <david.gilbert@object-refinery.com>

	* examples/gnu/classpath/examples/swing/SliderDemo.java:
	New file.

2005-09-30  Lillian Angel  <langel@redhat.com>

	* javax/swing/AbstractButton.java
	(setActionCommand): Added check to prevent NPE.
	(getMnemonic): Likewise.
	(setMnemonic): Likewise.
	(setSelected): Likewise.
	(isSelected): Likewise.
	(setEnabled): Likewise.
	(doClick): Likewise.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(paintMenuItem): Added check to prevent NPE.
	(paintText): Likewise.

2005-09-30  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(propertyChange): Added call to reset the layout manager
	whenever the size of the divider is changed.
	(setDividerLocation): Added adjustment to container
	sizes if the divider goes over the bottom/right side.
	Also, fixed the size of the right/top component.
	(validLocation): Added check for min/max location returned.

2005-09-30  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/StyleContext.java:
	(SmallAttributeSet.getAttribute): If the attribute we're looking for is
	ResolveAttribute, don't try to check the resolve parent, because this 
	will cause an infinite loop.

2005-09-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(accessibleContext): Removed unneeded field. This is already
	declared in JComponent.
	* javax/swing/Box.java
	(accessibleContext): Removed unneeded field. This is already
	declared in JComponent.
	* javax/swing/JFrame.java
	(EXIT_ON_CLOSE): New constant field.

2005-09-30  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/GapContent.java:
	(shiftEnd): Call adjustPositionsInRange rather than getPositionsInRange
	and then iterating over the set and adjusting them.
	(shiftGap): Likewise.
	(shiftGapStartDown): Call setPositionsInRange rather than
	getPositionsInRange and then iterating over the set to set each
	Position.
	(shiftGapEndUp): Likewise.
	(setPositionsInRange): New implementation method.
	(adjustPositionsInRange): New implementation method.
	(resetMarksAtZero): Call setPositionsInRange rather than 
	getPositionsInRange and then iterating over the set to set each
	Position.

2005-09-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(getScrollableUnitIncrement): Respect the direction argument.
	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(VSBChangeListener.stateChanged): Compare ypos with viewPosition.y
	instead of viewPosition.x.
	(ViewportChangeHandler.stateChanged): Call
	syncScrollPaneWithViewport in all cases, not only when the
	extents have changed.
	(syncScrollPaneWithViewport): Also sync the maximum and value
	properties of the scrollbar models with the viewport.

2005-09-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	(paint): Only call paintFocus if button is actually focused.

2005-09-30  Roman Kennke  <kennke@aicas.com>

	Fixes Bug #24115
	* javax/swing/AbstractButton.java
	(AbstractButton): Don't call init() from here. Moved some
	initialization code from init() to the constructor.
	(init): Moved most of the initialization code to the constructor.
	* javax/swing/JCheckBox.java
	(JCheckBox()): call this(..) instead of super(..). Don't call init()
	here, this is already performed by the JToggleButton constructor.
	(JCheckBox(Action)): Don't call init() here, this is already
	performed by the JToggleButton constructor.
	(JCheckBox(Icon)): call this(..) instead of super(..). Don't call
	init() here, this is already performed by the JToggleButton
	constructor.
	(JCheckBox(Icon, boolean)): Likewise.
	(JCheckBox(String)): Likewise.
	(JCheckBox(String, boolean)): Likewise.
	(JCheckBox(String, Icon)): Likewise.
	(JCheckBox(String, Icon, boolean)): Don' call init here. This is
	already performed by the JToggleButton constructor. Set the
	correct defaults for horizontalAlignment and borderPainted
	properties here.
	* javax/swing/JRadioButton.java
	(JRadioButton(String, Icon, boolean)): Use acccessor methods
	instead of directly manipulating package private fields of
	AbstractButton.
	* javax/swing/JToggleButton.java
	(JToggleButton(String, Icon, boolean)): Set correct value for the
	alignmentX property.

2005-09-30  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JFileChooser.java: Import AccessibleRole.

2005-09-30  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(cp_gtk_graphics2d_init_jni): Check ExceptionOccured after running
	class initializer.

2005-09-30  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkFontMetrics.java (initFont): New static
	method.
	(GdkFontMetrics): Use initFont() in super() call.

2005-09-30  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	(Java_gnu_java_awt_peer_gtk_GdkTextLayout_getOutline): Initialize all
	fields of the FT_Outline_Funcs ftCallbacks struct.
	(_moveTo): Takes an void * as argument.
	(_lineTo): Likewise.
	(_quadTo): Likewise.
	(_curveTo): Likewise.

2005-09-30  Sven de Marothy  <sven@physto.se>

	* javax/swing/JFileChooser.java:
	(getAccessibleContext): Implement.
	(AccessibleJFileChooser): Inner class implemented.
	
2005-09-30  Jeroen Frijters  <jeroen@frijters.net>

	Fixes Bug 24122
	* gnu/xml/transform/TransformerImpl.java
	(writeStreamResult): Added call to connection.setDoInput(false).

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

	* java/net/URLConnection.java (setDoInput): Javadoc fix.
	(setDoOutput): Likewise.
	(setContentHandlerFactory): Likewise.
	(setFileNameMap): Likewise.

2005-09-29  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(installUI): Call the new installKeyboardActions hook.
	(uninstallUI): Call the new uninstallKeyboardActions hook.
	(installKeyboardActions): New hook method.
	(uninstallKeyboardActions): New hook method.

2005-09-29  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(ActionScroller.ActionScroller): Added constructor.

2005-09-29  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTableUI.java
	(KeyHandler): New inner class.
	(createKeyListener): New method.

2005-09-29  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(getLeftChildIndent): Fixed method signature.
	(drawCentered): Fixed method signature.

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

	PR classpath/23381:
	* java/beans/PropertyDescriptor.java (hashCode): New method.

2005-09-29  Roman Kennke  <kennke@aicas.com>

	* javax/swing/OverlayLayout.java: Added API docs all over.

2005-09-29  David Gilbert  <david.gilbert@object-refinery.com>

	* examples/gnu/classpath/examples/swing/ButtonDemo.java
	(createContent): add a close button,
	(actionPerformed): perform close action,
	* examples/gnu/classpath/examples/swing/ComboBoxDemo.java
	(createContent): add a close button,
	(actionPerformed): perform close action.

2005-09-29  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SizeRequirements.java
	(getAlignedSizeRequirements): Fixed calculation of preferred and
	maximum size as well as the alignment.

2005-09-29  Roman Kennke  <kennke@aicas.com>

	Fixes Bug #23851
	* javax/swing/OverlayLayout.java
	(OverlayLayout): Implemented.
	(invalidateLayout): Implemented.
	(addLayoutComponent(Component, Object)): Implemented.
	(addLayoutComponent(String, Component)): Implemented.
	(removeLayoutComponent): Implemented.
	(preferredLayoutSize): Implemented.
	(minimumLayoutSize): Implemented.
	(maximumLayoutSize): Implemented.
	(getLayoutAlignmentX): Implemented.
	(getLayoutAlignmentY): Implemented.
	(layoutContainer): Implemented.
	(checkRequirements): New private helper method.
	(checkTotalRequirements): New private helper method.
	(checkLayout): New private helper method.

2005-09-29  David Gilbert  <david.gilbert@object-refinery.com>

	* examples/gnu/classpath/examples/swing/ComboBoxDemo.java: new demo.

2005-09-29  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/print/PrinterJob.java
	(print(PrintRequestAttributeSet)): Remove abstract modifier and
	implement.

2005-09-29  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JPopupMenu.java
	(setVisible): use current size, not preferred size, when checking for
	screen edge,
	* javax/swing/plaf/basic/BasicComboPopup.java
	(show): include top and bottom insets in preferred size,
	* javax/swing/plaf/metal/MetalComboBoxButton.java
	(MetalComboBoxButton): don't pass icon to super class,
	(paintComponent): call super.paintComponent() and reworked label 
	drawing.

2005-09-29  Roman Kennke  <kennke@aicas.com>

	Fixes Bug #24105
	* javax/swing/text/GapContent.java
	(GapContentPosition.getOffset): Adjusted assert statement.
	(shiftGap): Adjusted index in getPositionsInRange call. Call
	resetMarksAtZero if gapStart has moved to 0.
	(replace): Call shiftGap and shiftGapEndUp only if necessary.
	(resetMarksAtZero): New method.

2005-09-29  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	Added a new field for the gap between the icon and text.
	(setPreferredMenuItemSize): Changed gap from defaultTextIconGap
	to defaultTextArrowIconGap

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

	* java/rmi/activation/ActivationGroup_Stub.java (serialVersionUID):
	New field.

2005-09-28  Lillian Angel  <langel@redhat.com>

	Fixes Bug #24080
	* java/awt/Window.java
	(show): Fixed the synchronized block to fix deadlock
	problem.

2005-09-29  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GdkTextLayout.java
	(getOutline): Implement as native
	* include/gnu_java_awt_peer_gtk_GdkTextLayout.h
	Add declaration
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	(getOutline): Implement.
	
2005-09-29  Roman Kennke  <kennke@aicas.com>

	* java/rmi/server/RMIClassLoader.java
	(loadClass(URL, String)): New method.

2005-09-29  Roman Kennke  <kennke@aicas.com>

	Fixes Bug #24114
	* javax/swing/plaf/basic/BasicTextUI.java
	(installDefaults): Set the background color correctly.

2005-09-29  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicIconFactory.java
	(getMenuArrowIcon): adjusted the size and painting of the returned
	icon,
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(paintMenuItem): adjusted arrow icon position.

2005-09-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/awt/peer/qt/QtGraphics.java:
	(getRenderingHints()): Create a clone as no such
	constructor exists with generic typing.
	(setRenderingHints(Map<?,?>)): Added parametric typing
	and fixed use of RenderingHints constructor.
	* java/awt/AWTEventMulticaster.java:
	(getListeners(EventListener,Class<T>)): Added generic
	typing.
	* java/awt/Component.java:
	(getListeners(Class<T>)): Likewise.
	(getFocusTraversalKeys(int)): Likewise.
	* java/awt/Font.java:
	(Font(Map<? extends Attribute,?>)): Likewise.
	(deriveFont(Map<? extends Attribute,?>)): Likewise.
	(getAttributes()): Likewise.
	(getAvailableAttributes()): Simplified naming with static import.
	(getFont(Map<? extends Attribute,?>)): Added generic typing.
	* java/awt/Graphics2D.java:
	(setRenderingHints(Map<?,?>)): Likewise.
	(addRenderingHints(Map<?,?>)): Likewise.
	* java/awt/KeyboardFocusManager.java:
	(setDefaultFocusTraversalKeys(int,Set<? extends KeyStroke>)):
	Likewise.
	(getKeyEventDispatchers()): Likewise.
	(getKeyEventPostProcessors()): Likewise.
	* java/awt/MenuItem.java:
	(getListeners(Class<T>)): Likewise.
	* java/awt/RenderingHints.java:
	(RenderingHints(Map<Key,?>)): Likewise.
	(putAll(Map<?,?>)): Likewise.
	(keySet()): Likewise.
	(values()): Likewise.
	(entrySet()): Likewise.
	* java/awt/Toolkit.java:
	(desktopProperties): Likewise.
	(createDragGestureRecognizer(Class<T>,DragSource,Component,int,
	DragGestureListener)): Likewise.
	(mapInputMethodHighlight(InputMethodHighlight)): Likewise.
	* java/lang/Class.java:
	(getDeclaringClass()): Likewise.
	* java/lang/Enum.java:
	(valueOf(Class<S>,String)): Fixed return type.
	* java/lang/SecurityManager.java:
	(checkMemberAccess(Class<?>,int)): Likewise.
	* java/lang/reflect/Array.java:
	(newInstance(Class<?>,int)): Likewise.
	(newInstance(Class<?>,int[])): Likewise.
	* vm/reference/java/lang/reflect/Constructor.java:
	(getTypeParameters()): Type parameter changed from ? to Constructor.
	* vm/reference/java/lang/reflect/Field.java:
	(getDeclaringClass()): Added generic typing.
	(getType()): Likewise.
	* vm/reference/java/lang/reflect/Method.java:
	(getDeclaringClass()): Likewise.
	(getExceptionTypes()): Likewise.
	(getParameterTypes()): Likewise.

2005-09-28  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/AbstractDocument.java:
	(BranchElement.getElementIndex): If there are no children, don't return
	-1, instead getStartOffset() will throw NPE.  Also, if no child Element
	contains the specified offset, return the closest one.

2005-09-28  Lillian Angel  <langel@redhat.com>

	* javax/swing/ToolTipManager.java
	(showTip): Added check to prevent NPE.
	(adjustLocation): Changed else if to if, to
	check final y position of tooltip incase
	it is still cut off.

2005-09-28  Roman Kennke  <kennke@aicas.com>

	* java/rmi/server/RMIClassLoader.java:
	Moved all implementation code to
	gnu.java.rmi.server.RMIClassLoaderImpl.
	(getProviderInstance): New helper method to find a provider.
	(getDefaultProviderInstance): New helper method to find a provider.
	(loadClass(String, String, Class)): New method.
	* gnu/java/rmi/server/RMIClassLoaderImpl.java:
	New class. The implementation is moved from
	java.rmi.server.RMIClassLoader.

2005-09-28  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/AbstractDocument.java:
	(AbstractElement.getResolveParent): If the AttributeSet's 
	getResolveParent returns null, use the Element's parent's AttributeSet.

2005-09-28  Roman Kennke  <kennke@aicas.com>

	* java/rmi/activation/ActivationGroup_Stub.java:
	New class.

2005-09-28  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(paint): No need to call calculateThumbLocation, called
	by calculateGeometry.

2005-09-28  Lillian Angel  <langel@redhat.com>

	Fixes Bug #23934
	* javax/swing/plaf/basic/BasicSliderUI.java
	(paint): Called calculateGeometry, so the slider is 
	initially set up.

2005-09-28  Lillian Angel  <langel@redhat.com>
	
	Fixes Bug #24080
	* java/awt/Window.java
	(show): Added a synchronized block to fix deadlock
	problem.

2005-09-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(ActionScroller): Added unused class for binary compatibility.
	* javax/swing/plaf/basic/BasicTableHeaderUI.java
	(MouseInputHandler): Made inner class public as specified.
	* javax/swing/plaf/basic/BasicTableUI.java
	(FocusHandler):  Made inner class public as specified.
	(MouseInputHandler):  Made inner class public as specified.

2005-09-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(currentIcon): Made method package private, so that other button
	UIs can access it.
	(paint): Removed unnecessary call to paintButtonNormal().
	(paintButtonNormal): Removed unnecessary method. The background
	is already filled correctly when paint() is entered.
	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	(paint): Call the new paintFocus() method instead of the inherited
	from BasicButtonUI.
	(paintFocus): New method. Paints the focus indicator for
	JRadioButtons and subclasses.
	* javax/swing/plaf/basic/BasicToggleButtonUI.java
	(paint): New method. Implements custom painting. Mostly, this
	is needed in order to call the new paintIcon() method.
	(paintIcon): New method. Narrows the types from the super-class
	method.

2005-09-28  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/Utilities.java:
	(getRowEnd): Call getText() rather than trying to get the Element-
	specific portion to avoid GapContent errors.
	(getRowStart): Likewise.

2005-09-28  Tom Tromey  <tromey@redhat.com>

	* javax/sound/midi/MidiUnavailableException.java (serialVersionUID):
	New field.
	* javax/sound/midi/InvalidMidiDataException.java (serialVersionUID):
	New field.

2005-09-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/UIDefaults.java
	(getBoolean(Object)): API doc correction.

2005-09-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalButtonListener.java
	(propertyChange): check new value of property to determine which
	border to set.

2005-09-28  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(installDefaults): Fixed checks for setting defaults.
	Should check if default is null also.

2005-09-28  Lillian Angel  <langel@redhat.com>

	Fixes Bug #24077
	* gnu/java/awt/peer/gtk/GdkFontMetrics.java
	(GdkFontMetrics): Added a check for the font
	being null. Fixed a NPE. 
	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(GdkGraphics): Added check if the font is null.
	If it is, the font should be set to the default.
	(setFont): If font parameter is null, this.font should not
	be changed.
	* javax/swing/JPopupMenu.java:
	Fixed API documentation to say 'JDialog' rather than
	'JWindow'.

2005-09-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(currentIcon): Made method package private, so that other button
	UIs can access it.
	(paint): Removed unnecessary call to paintButtonNormal().
	(paintButtonNormal): Removed unnecessary method. The background
	is already filled correctly when paint() is entered.
	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	(paint): Call the new paintFocus() method instead of the inherited
	from BasicButtonUI.
	(paintFocus): New method. Paints the focus indicator for
	JRadioButtons and subclasses.
	* javax/swing/plaf/basic/BasicToggleButtonUI.java
	(paint): New method. Implements custom painting. Mostly, this
	is needed in order to call the new paintIcon() method.
	(paintIcon): New method. Narrows the types from the super-class
	method.

2005-09-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(createDefaultTheme): Change default back to DefaultMetalTheme.
	The Ocean theme is too inconsistent.

2005-09-28  Roman Kennke  <kennke@aicas.com>

	* java/awt/Font.java
	(tk): Made method package private. Must not be protected.
	(getFontFromToolkit): Made method package private. Must not
	be protected.
	(getPeerFromToolkit): Made method package private. Must not
	be protected.

2005-09-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(createMouseWheelListener): New hook method for creating
	mouse wheel listeners.
	(installListeners): Use new hook method to create mouse wheel
	listeners.

2005-09-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalProgressBarUI.java
	(createUI): Removed Hashtable lookup.
	* javax/swing/plaf/metal/MetalSeparatorUI.java
	(paint): New method. Uses the metal colors for drawing separators.
	* javax/swing/plaf/metal/MetalSplitPaneUI.java
	(createUI): Removed Hashtable lookup.
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(createUI): Removed Hashtable lookup.
	* javax/swing/plaf/metal/MetalTextFieldUI.java
	(createUI): Removed Hashtable lookup.
	* javax/swing/plaf/metal/MetalTreeUI.java
	(createUI): Removed Hashtable lookup.
	* javax/swing/plaf/metal/Ocean.java
	(addCustomEntriesToTable): New method. Adds some custom UI defaults
	for the Ocean theme.

2005-09-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalScrollBarUI.java
	(paintThumb): Use new MetalUtils.fillMetalPattern signature.
	* javax/swing/plaf/metal/MetalSplitPaneDivider.java
	(paint): Use new MetalUtils.fillMetalPattern signature.

2005-09-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalInternalFrameTitlePane.java
	(paintPalette): Use new MetalUtils.fillMetalPattern signature.
	(paintComponent): Use new MetalUtils.fillMetalPattern signature.

2005-09-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(MenuItemBorder.paintBorder): Fixed painting so that a thin white
	line is drawn on the left of unarmed items. Fixed color handling.
	(PopupMenuBorder.borderInsets): Fixed insets. 
	(PopupMenuBorder.paintBorder): Removed left white line. This is
	drawn now in the MenuItemBorder.
	(ToolBarBorder.paintBorder): Use correct call to new MetalUtils
	fillMetalPattern method signature.

2005-09-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalUtils.java
	(fillMetalPattern): If we have a Graphics2D, then go into
	optimized drawing mode.
	(fillMetalPattern2D): New method. Implements pattern drawing using
	textures.
	(initializePattern): New method. Initializes the texture.

2005-09-28  Roman Kennke  <kennke@aicas.com>

	* java/awt/Font.java: Reformatted file.

2005-09-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(TreeHardDriveIcon): new private class,
	(TreeFloppyDriveIcon): new private class,
	(TreeComputerIcon): new private class,
	(getTreeControlIcon): implemented,
	(getTreeComputerIcon): implemented,
	(getTreeHardDriveIcon): implemented.

2005-09-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(ToolBarBorder): now implements SwingConstants.
	
2005-09-27  Tom Tromey  <tromey@redhat.com>

	* java/sql/Timestamp.java (compareTo(Date)): Changed argument type
	from Object.
	* javax/naming/Name.java (Name): Implements Comparable<Object>.
	* java/util/Date.java (Date): Implements Comparable<Date>.
	(compareTo(Object)): Removed.
	* java/text/CollationKey.java (CollationKey): Implements
	Comparable<CollationKey>.
	(compareTo(Object)): Removed.
	* java/net/URI.java (URI): Implements Comparable<URI>.
	(compareTo): Updated argument type.
	* java/math/BigDecimal.java (BigInteger): Implements
	Comparable<BigDecimal>.
	(compareTo(Object)): Removed.
	* java/math/BigInteger.java (BigInteger): Implements
	Comparable<BigInteger>.
	(compareTo(Object)): Removed.
	* java/io/File.java (File): Implements Comparable<File>.
	(compareTo(Object)): Removed.

2005-09-27  Tom Tromey  <tromey@redhat.com>

	* java/nio/charset/spi/CharsetProvider.java (charsets): Changed
	return type.
	* java/nio/charset/Charset.java (aliases): Changed return type.
	(availableCharsets): Likewise.
	* java/nio/channels/spi/AbstractSelector.java (cancelledKeys):
	Changed type.
	(AbstractSelector): Updated.
	(cancelledKeys): Updated.

2005-09-27  Tom Tromey  <tromey@redhat.com>

	* java/util/logging/LogManager.java (loggers): Genericized type.
	(LogManager): Updated.
	(addLogger): Likewise.
	(findAncestor): Likewise.
	(getLogger): Likewise.
	(getLoggerNames): Fixed return type.
	(reset): Updated.

2005-09-27  Tom Tromey  <tromey@redhat.com>

	* java/util/zip/ZipFile.java (entries): Updated return type.
	(ZipEntryEnumeration): Updated 'implements' type.
	(entries): Updated type.
	(ZipEntryEnumeration.elements): Likewise.
	(readEntries): Updated.
	(getEntries): Likewise.
	(getEntry): Likewise.
	(getInputStream): Likewise.

2005-09-27  Tom Tromey  <tromey@redhat.com>

	* java/lang/Compiler.java (compileClass): Updated argument type.

2005-09-27  Tom Tromey  <tromey@redhat.com>

	* java/awt/im/InputMethodHighlight.java (InputMethodHighlight):
	Updated argument types.
	(getStyle): Updated return type.
	* java/awt/MenuBar.java (shortcuts): Updated return type.
	* java/awt/Window.java (hide): Now deprecated.
	(show): Likewise.

2005-09-27  Tom Tromey  <tromey@redhat.com>

	* java/lang/String.java (CASE_INSENSITIVE_ORDER): Now a
	Comparator<String>.
	(CaseInsensitiveComparator): Updated.
	(CaseInsensitiveComparator.compare): Changed argument types.

2005-09-27  Anthony Green  <green@redhat.com>

	* javax/sound/midi/MidiSystem.java (getSequence): Add
	missing methods.
	* javax/sound/midi/Sequencer.java (stopRecording): Ditto.
	* javax/sound/midi/ShortMessage.java (ShortMessage): Ditto.
	(setMessage): Fix visibility.  Add missing implementations.
	* javax/sound/midi/ShoundbankResouce.java: Rename "soundBank" to
	"soundbank", and "getSoundBank" to "getSoundbank".
	
2005-09-27  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(rolloverBorder): new field,
	(getRolloverBorder): new method,
	* javax/swing/plaf/metal/MetalButtonListener.java: new class,
	* javax/swing/plaf/metal/MetalButtonUI.java
	(instance): removed field,
	(constructor): initialise fields from UI defaults,
	(getFocusColor): just return field value,
	(getSelectColor): just return field value,
	(getDisabledTextColor): just return field value,
	(createUI): return a new instance every time,
	(installDefaults): check for isRolloverEnabled and install rollover
	border if necessary,
	(uninstallDefaults): implemented,
	(createButtonListener): implemented,
	(paintButtonPressed): implemented,
	(paintFocus): implemented,
	(paintText): implemented.

2005-09-27  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/SimpleAttributeSet.java:
	(containsAttribute): Check the resolve parent if the attribute is not
	found locally.
	(containsAttributeLocally): New package-private method.
	(isEqual): Re-implemented.  Return true if the two sets have the same
	size and this set contains the given set.

2005-09-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JSeparator.java
	(updateUI): Removed invalidate call. This is unnecessary.
	* javax/swing/plaf/basic/BasicSeparatorUI.java
	(paint): Reworked painting so that it paints the separator
	correctly.
	(getPreferredSize): Fixed to return the correct values according
	to the JDK.
	(getMinimumSize): Likewise.
	(getMaximumSize): Likewise.

2005-09-27  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(RolloverButtonBorder): new class.

2005-09-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/BoxLayout.java
	(preferredLayoutSize): Fixed to respect the containers insets.
	(layoutComponent): Likewise.

2005-09-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SizeRequirements.java
	(calculateTiledPositions): Only adjust sizes if the allocated
	span is actually different from the used span.
	(calculateAlignedPositions): Call adjustFromRight also if
	baseline == 0, otherwise we get strange results because 0 * x = 0.

2005-09-27  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/SimpleAttributeSet.java:
	(removeAttributes(AttributeSet)): Only remove attributes from the 
	current set if their keys AND values are found in the given set

2005-09-27  Lillian Angel  <langel@redhat.com>

	Fixes Bug #24067
	* java/awt/Component.java
	(removeNotify): Should call hide on the peer before
	disposing of it. This stops the flashing when the 
	tooltips are removed from the component.
	* javax/swing/plaf/basic/BasicToolTipUI.java
	(getPreferredSize): If the accelerator is null, we should
	paint the mnenomic if it is available.

2005-09-27  Tom Tromey  <tromey@redhat.com>

	* java/awt/Window.java (createBufferStrategy): Can throw AWTException.
	* java/awt/Canvas.java (createBufferStrategy): Can throw AWTException.

2005-09-27  Lillian Angel  <langel@redhat.com>
	
	Fixes Bug #24044
	* javax/swing/ToolTipManager.java
	(showTip): currentTip needs to be revalidated on HeavyWeightPopups
	* javax/swing/plaf/basic/BasicToolTipUI.java
	(getPreferredSize): Fixed to get the preferred size of the 
	tooltip including the accelerator, if it has one.
	(paint): Fixed to paint the accelerator in its font
	and color, if it has one.

2005-09-27  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/Utilities.java:
	(getRowEnd): New method.
	(getRowStart): New method.

2005-09-27  Tom Tromey  <tromey@redhat.com>

	* java/beans/beancontext/BeanContextServicesSupport.java
	(BCSSChild.serialVersionUID): Fixed.
	* java/beans/beancontext/BeanContextSupport.java
	(BCSChild.serialVersionUID): Fixed.

2005-09-27  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicToolBarUI.java
	(installDefaults): get border from UI defaults,
	* javax/swing/plaf/metal/MetalBorders.java:
	(ToolBarBorder): new class,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): added tool bar border default,
	* javax/swing/plaf/metal/MetalToolBarUI.java
	(MetalContainerListener): new class,
	(instance): removed field,
	(MetalRolloverListener): new class,
	(contListener): new field,
	(rolloverListener): new field,
	(createUI): return a new instance every time,
	(createRolloverListener): implemented,
	(createContainerListener): implemented,
	(createNonRolloverBorder): implemented.

2005-09-27  Anthony Green  <green@redhat.com>

	* javax/sound/midi/MidiFileFormat.java (bytes, microseconds):
	Rename to byteLength and microsecondLength respectively.

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-26  Lillian Angel  <langel@redhat.com>

	* javax/swing/ToolTipManager.java
	(showTip): validating of toolTipWindow should not have been 
	removed.

2005-09-26  Lillian Angel  <langel@redhat.com>

	* javax/swing/ToolTipManager.java
	(showTip): Removed validating of currentTip. setVisible(true) 
	does this. Also, removed validating of toolTipWindow because 
	show() does this.

2005-09-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SizeRequirements.java
	(adjustGreater): Special handle the case when the components have
	no spare room for adjustment.
	(adjustSmaller): Special handle the case when the components have
	no spare room for adjustment.

2005-09-27  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(hide): Repaint component before invalidating the parent.
	(show): Repaint component before invalidating the parent.
	* javax/swing/JComponent.java
	(revalidate): Check if we are in the event thread, and if not,
	then queue a self-request in the event thread.
	(setVisible): Repaint the parent and queue a revalidate.

2005-09-27  Sven de Marothy  <sven@physto.se>

	* javax/swing/JComboBox.java
	(firePopupMenuCanceled): Implement
	(firePopupMenuWillBecomeInvisible): Implement
	(firePopupMenuWillBecomeVisible): Implement

2005-09-27  Sven de Marothy  <sven@physto.se>

	* javax/swing/text/html/CSS.java
	(getAttribute,getAllAttributeKeys): Implement

2005-09-26  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTree.java
	(JTree): Root should be visible by default.
	* javax/swing/ToolTipManager.java
	(showTip): Added check for validity of currentTip. Prevents
	over-validating.
	(hideTip): currentTip should be reset.
	* javax/swing/JMenuItem.java
	(setAccelerator): Registered accelerator as a keyboard action.

2005-09-26  Tom Tromey  <tromey@redhat.com>

	* java/lang/reflect/Proxy.java: Javadoc fix.
	* java/io/OutputStreamWriter.java (OutputStreamWriter): Javadoc fix.

2005-09-26  Anthony Green  <green@redhat.com>

	* javax/sound/midi/Synthesizer.java (loadInstrument,
	unloadInstrument, remapInstrument, loadAllInstruments,
	unloadAllInstruments, unloadInstrument, loadInstrument): Don't
	declare the unchecked IllegalArgumentException.
	* javax/sound/midi/MidiSystem.java (getMidiDevice, write): Ditto.
	* javax/sound/midi/ShortMessage.java: Fix 80-column formatting
	problem.
	* javax/sound/midi/Sequence.java: Ditto.
	* javax/sound/midi/MidiMessage.java: Ditto.
	* javax/sound/midi/MidiSystem.java: Ditto.
	* javax/sound/midi/MidiFileFormat.java: Ditto.

2005-09-26  Anthony Green  <green@redhat.com>

	* javax/sound/midi/InvalidMidiDataException.java
	* javax/sound/midi/MidiFileFormat.java
	* javax/sound/midi/ControllerEventListener.java
	* javax/sound/midi/Patch.java javax/sound/midi/Sequence.java
	* javax/sound/midi/SysexMessage.java javax/sound/midi/Sequencer.java
	* javax/sound/midi/spi/MidiFileReader.java
	* javax/sound/midi/spi/MidiFileWriter.java
	* javax/sound/midi/spi/SoundbankReader.java
	* javax/sound/midi/spi/MidiDeviceProvider.java
	* javax/sound/midi/Track.java javax/sound/midi/MidiChannel.java
	* javax/sound/midi/MetaMessage.java javax/sound/midi/Instrument.java
	* javax/sound/midi/MidiMessage.java
	* javax/sound/midi/MidiUnavailableException.java
	* javax/sound/midi/Transmitter.java javax/sound/midi/MidiEvent.java
	* javax/sound/midi/VoiceStatus.java javax/sound/midi/MidiDevice.java
	* javax/sound/midi/SoundbankResource.java
	* javax/sound/midi/Soundbank.java javax/sound/midi/Receiver.java
	* javax/sound/midi/MetaEventListener.java
	* javax/sound/midi/ShortMessage.java
	* javax/sound/midi/Synthesizer.java
	* javax/sound/midi/MidiSystem.java: New files.

2005-09-26  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkDialogPeer.java
	(create): If the dialog is a toolTip or a
	PopupMenu, its type should be set to:
	GDK_WINDOW_TYPE_HINT_MENU, so the parent
	window does not lose focus.
	* javax/swing/JTree.java
	(setModel): Should update the UI everytime the
	model is changed.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(installUI): Should not set the root to be visible.
	(paintControlIcons): changed to use getVisibleRect.
	* javax/swing/plaf/metal/MetalTreeUI.java
	(installUI): Should not set the root to be visible.

2005-09-26  Anthony Balkissoon  <abalkiss@redhat.com>

	* gnu/java/text/BaseBreakIterator.java:
	(following): Removed unused local variable.

2005-09-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SizeRequirements.java
	(calculateTiledPositions): Improved to also take minimum and maximum
	sizes into account and better use the allocated space.
	(adjustGreater): New helper function.
	(adjustSmaller): New helper function.

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
	(constructor): Changed type to generic type.
	(cast, getEnumConstants): Added cast.
	(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-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-09-25  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/MalformedParameterizedTypeException.java: Removed.

2005-09-25  Tom Tromey  <tromey@redhat.com>

	* java/util/Formatter.java (lineSeparator): Use SystemProperties.

2005-09-25  Casey Marshall  <csm@gnu.org>

	Fixes PR classpath/23916. Fix suggested by Santiago Gala
	<sgala@apache.org>.
	* java/security/AccessControlContext.java
	(<init>): update javadoc; check SecurityPermission
	"createAccessControlContext" if a security manager is set.
	(getProtectionDomains): new method.
	* vm/reference/java/security/VMAccessController.java
	(DEBUG): set to 'gnu.classpath.Configuration.DEBUG.'
	(pushContext, popContext): add debug statement.
	(getContext): debug output changes; include the DomainCombiner
	specified in the AccessControlContext, if any.

2005-09-25  Tom Tromey  <tromey@redhat.com>

	* javax/security/sasl/SaslServerFactory.java: Updated javadoc.
	* javax/security/sasl/Sasl.java: Updated javadoc.
	* javax/security/sasl/SaslClientFactory.java: Updated javadoc.
	* javax/security/sasl/RealmChoiceCallback.java: Updated javadoc.
	* javax/security/sasl/RealmCallback.java: Updated javadoc.
	* javax/security/sasl/AuthenticationException.java: Updated
	javadoc.
	* javax/security/sasl/SaslServer.java (getNegotiatedProperty):
	Don't throw SaslException.
	* javax/security/sasl/SaslClient.java (getNegotiatedProperty):
	Don't throw SaslException.
	* javax/security/sasl/SaslException.java (serialVersionUID): New
	field.
	* javax/security/sasl/AuthorizeCallback.java (AuthorizeCallback):
	Implements Serializable.
	(serialVersionUID): New field.

2005-09-25  Casey Marshall  <csm@gnu.org>

	* gnu/java/security/provider/Gnu.java
	(<init>): add Diffie-Hellman key factory and key pair generator.
	* gnu/java/security/provider/DiffieHellmanKeyFactoryImpl.java,
	* gnu/java/security/provider/DiffieHellmanKeyPairGeneratorImpl.java:
	new files.

2005-09-24  Tom Tromey  <tromey@redhat.com>

	* java/util/FormattableFlags.java (PLUS, SPACE, ZERO, COMMA,
	PAREN): New constants.
	* java/util/UnknownFormatConversionException.java
	(UnknownFormatConversionException): Set exception text.
	* java/util/IllegalFormatException.java (IllegalFormatException):
	New constructor.
	* java/util/FormatFlagsConversionMismatchException.java
	(FormatFlagsConversionMismatchException): Set exception text.
	* java/lang/String.java (format): New methods.
	* java/io/PrintStream.java (printf): New methods.
	(format): Likewise.
	* java/io/PrintWriter.java (printf): New methods.
	(format): Likewise.
	* java/util/Formattable.java: New file.
	* java/util/FormatterClosedException.java (serialVersionUID):
	Fixed.
	* java/util/Formatter.java: New file.

2005-09-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SizeRequirements.java
	(calculateAlignedPositions): Improved algorithm to better respect
	the minimum and maximum size and to better use the available space.
	(adjustFromRight): New helper method.
	(adjustFromLeft): New helper method.

2005-09-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/BoxLayout.java
	(layoutContainer): Respect the insets of the container.

2005-09-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	Fixed some API comments.
	(paintChildren): Set clip to exclude the border area.

2005-09-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paint): Paint border after the children are painted. Otherwise the
	children could draw over the border.

2005-09-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SizeRequirements.java
	(getAlignedRequirements): Implemented this method.
	(calculateAlignedPositions): Implemented this method.
	* javax/swing/BoxLayout.java
	(Direction): Removed unneeded inner interface.
	(Horizontal): Removed unneeded inner class.
	(Vertical): Removed unneeded inner class.
	(SizeReq): Removed unneeded inner class.
	(preferredLayoutSize): Reimplemented to use SizeRequirements.
	(minimumLayoutSize): Reimplemented to use SizeRequirements.
	(maximumLayoutSize): Reimplemented to use SizeRequirements.
	(layoutContainer): Reimplemented to use SizeRequirements.
	(layoutAlgorithm): Removed unneeded package private method.
	(distributeSpace): Removed unneeded package private method.
	(getSizeRequirements): New private helper method.

2005-09-24  Sven de Marothy  <sven@physto.se>

	* gnu/javax/imageio/bmp/BMPDecoder.java
	(BMPDecoder): Fix static field references.

2005-09-24  Sven de Marothy  <sven@physto.se>

	* java/awt/Font.java
	Fixed comments.
	(pointSize): New field.
	(Font): Set size fields.
	(getSize, getSize2D): Return size fields.

2005-09-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paint): Check if clip == null and if so set it to the component's
	bounds.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(getClipBounds): Added null check so that null is returned when
	clip == null, instead of throwing an NPE while accessing
	null.getBounds2D().

2005-09-24  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
	(Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Replace deprecated
	gtk colormap stuff.

2005-09-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paint): Activate double buffering if it is not already activated.
	(paintImmediately2): Prepare a component graphics object here and
	call paintDoubleBuffered with this.
	(paintDoubleBuffered): Changed to work nicely with the new paint()
	and paintImmediately2() methods.

2005-09-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added font default for
	FormattedTextField.font. Solves an NPE that was caused by a null
	font on a JFormattedTextField.

2005-09-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultComboBoxModel.java
	(addElement): always fire event for interval added, and call 
	setSelectedItem() if this is the first item.

2005-09-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultComboBoxModel.java: updated API docs all over.

2005-09-24  Sven de Marothy  <sven@physto.se>

	* java/awt/FontMetrics.java
	(getMaxCharBounds, hasUniformLineMetrics): New methods.
	
2005-09-24  Sven de Marothy  <sven@physto.se>

	* gnu/javax/imageio/bmp/BMPDecoder.java,
	* gnu/javax/imageio/bmp/BMPImageReaderSpi.java,
	* gnu/javax/imageio/bmp/DecodeBF32.java,
	* gnu/javax/imageio/bmp/DecodeRGB8.java,
	* gnu/javax/imageio/bmp/BMPException.java,
	* gnu/javax/imageio/bmp/BMPInfoHeader.java,
	* gnu/javax/imageio/bmp/DecodeRGB1.java,
	* gnu/javax/imageio/bmp/DecodeRLE4.java,
	* gnu/javax/imageio/bmp/BMPFileHeader.java,
	* gnu/javax/imageio/bmp/DecodeRGB24.java,
	* gnu/javax/imageio/bmp/DecodeRLE8.java,
	* gnu/javax/imageio/bmp/BMPImageReader.java,
	* gnu/javax/imageio/bmp/DecodeBF16.java,
	* gnu/javax/imageio/bmp/DecodeRGB4.java:
	New files.

2005-09-23  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(setFont): If font == null, simply return. Avoids a NPE.

2005-09-23  Sven de Marothy  <sven@physto.se>

	* java/io/OutputStreamWriter.java:
	(OutputStreamWriter): Added missing constructors.

2005-09-23  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(getFont): Should return null, not a default font.
	* javax/swing/ToolTipManager.java
	(showTip): Called revalidate currentTip before painted, and
	called validate on JDialog toolTip.

2005-09-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(layoutCompoundLabel): Removed debug code.

2005-09-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JScrollPane.java
	(setHorizontalScrollBar): Removed handling of listeners on the model.
	This is now done in the BasicScrollPaneUI.
	(setHorizontalScrollBarPolicy): Added revalidate call.
	(setVerticalScrollBar): Removed handling of listeners on the model.
	This is now done in the BasicScrollPaneUI.
	(setVerticalScrollBarPolicy): Added revalidate call.
	(setViewport): Removed handling of listeners on the viewport.
	This is now done in the BasicScrollPaneUI.
	(createScrollListener): Removed unnecessary and undocumented method.
	The functionality of this method is moved to BasicScrollPaneUI
	as specified.
	(JScrollPane): Removed initialization of removed listener.
	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(HSBChangeListener): New inner class.
	(VSBChangeListener): New inner class.
	(ViewportChangeHandler): New inner class.
	(PropertyChangeHandler): New inner class.
	(MouseWheelHandler): New inner class.
	(installUI): Also call installListeners.
	(installListeners): New method. Initializes the listeners on the
	scrollpane.
	(createHSBChangeListener): New method.
	(createVSBChangeListener): New method.
	(createViewport): New method.
	(createPropertyChangeListener): New method.
	(uninstallUI): Also call uninstallListeners.
	(uninstallListeners): New method.
	(syncScrollPaneWithViewport): New method.
	(updateColumnHeader): New method.
	(updateRowHeader): New method.
	(updateScrollBarDisplayPolicy): New method.
	(updateViewport): New method.

2005-09-23  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTextField.java: Reformatted and added API docs.

2005-09-23  Lillian Angel  <langel@redhat.com>

	* javax/swing/ToolTipManager.java
	(showTip): Set lightWeightPopupEnabled to default.
	Validated and repainted new containerPanel and
	repainted toolTipWindow and repainted currentTip. The 
	toolTips paint well now.

2005-09-23  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(paintRecursive): Changed clip to be the visible
	rectangle of the view.

2005-09-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultComboBoxModel.java
	(DefaultComboBoxModel(Object[])): set selected item,
	(DefaultComboBoxModel(Vector): likewise,
	(addElement): reimplemented,
	(removeElementAt): update selected item,
	(removeAllElements): clear selected item and fire correct event,
	(setSelectedItem): update item always,
	(getElementAt): return null for index out of bounds,
	* javax/swing/plaf/metal/MetalComboBoxButton.java
	(paintComponent): check for null selection.

2005-09-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicToolBarUI.java
	Added some deprecated and unused fields for binary compatibility.
	(installListeners): Fixed method parameters.
	(installUI): Call installListeners with fixed method parameters.

2005-09-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicPanelUI.java
	(uninstallUI): New method.
	(uninstallDefaults): New method.

2005-09-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(MinimumHeight): New constant field.
	(MinimumWidth): New constant field.
	(minimumWidth): Removed unused field.
	(minimumHeight): Removed unused field.
	(installDefaults): Removed initializing of minimumSize and
	minimumHeight.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Initialize OptionPane.minimumSize from
	constant fields in BasicOptionPaneUI.

2005-09-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicMenuUI.java
	(ChangeHandler): Added some deprecated and unused fields for
	binary compatibility.

2005-09-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(deactivateFrame): New method.
	(InternalFramePropertyChangeListener.propertyChange): Call
	new deactivate() method instead of getDesktopManager.deactivate()

2005-09-23  Lillian Angel  <langel@redhat.com>

	Fixes Bug #24022
	* javax/swing/plaf/basic/BasicTreeUI.java
	(paint): Took out unneeded code.

2005-09-23  Lillian Angel  <langel@redhat.com>

	Fixes Bug #23529
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(mousepressed): Made delay shorted while pressing the arrow
	button. This makes the scrollbar move more smoothly.
	(mouseReleased): Reset the delay to the default, so single
	clicks only move the scrollbar 1 unit. Also, when the
	mouse is released, the scrollbar should move 1 unit.
	(shouldScroll): Should not be able to scroll by block
	when the mouse is in the thumbRect.
	(mousePressed): Made delay shorted while pressing in the
	scroll area. This makes the scrollbar move more smoothly.
	(mouseReleased): Should move the scrollbar 1 block when the
	mouse is released. Also, reset the timer to default delay.

2005-09-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicDesktopPaneUI.java
	(installKeyboardActions): Call renamed method registerKeyboardActions.

2005-09-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicDesktopPaneUI.java
	(registerKeyboardAction): Renamed this method to
	registerKeyboardActions as specifie.

2005-09-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(FocusHandler.repaintCellFocus): Marked protected instead of
	package private as specified.
	(KeyHandler.keyPressed): Call new methods selectNextIndex and
	selectPreviousIndex instead of doing the work here.
	(PropertyChangeHandler.propertyChange): Update the
	updateLayoutStateNeeded field correctly.
	(BasicListUI): Removed listener initialization. Moved this
	to installListeners.
	(installListeners): Initialize listeners here instead in the
	constructor. Use the createXXXListener hooks instead of creating
	the listeners directly.
	(createFocusListener): New hook method for creating a focus listener.
	(createListDataListener): New hook method for creating a list
	data listener.
	(createListSelectionListener): New hook method for creating a list
	selection listener.
	(createMouseInputListener): New hook method for creating a mouse
	input listener.
	(createPropertyChangeListener): New hook method for creating a
	property change listener.

2005-09-23  David Gilbert <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(OptionDialogBorder): new class.

2005-09-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicColorChooserUI.java
	(uninstallDefaultChoosers): New method.
	(uninstallUI): Call uninstallDefaultChoosers.

2005-09-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(layoutCompoundLabel): Fix the case when verticalTextPosition=BOTTOM
	and without icon. The label text slipped out of the view rectangle
	in this case.

2005-09-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(setCurrentTheme): throw exception if argument is null, improved API
	docs.
	
2005-09-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JPanel.java
	(accessibleContext): Removed this unnecessary field. Use the
	inherited field of the same name from JComponent instead.

2005-09-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/UIManager.java
	(static_initializer): Load MetalLookAndFeel only as fallback, if
	the system property 'swing.defaultlaf' is not defined. Before
	it has accidentally loaded the MetalLookAndFeel in all cases,
	regardless of the property setting.

2005-09-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintChildren): If a child component is invisible, skip it.
	Handle the (rare) case when no clip is set as if it's set to the
	child component's bounds. These fixes should make Swing working
	again as before.

2005-09-22  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetResizable):
	Replace deprecated gtk_window_set_policy with gtk_window_set_resizable.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkMenuPeer_delItem): Replace deprecated
	gtk_container_children with gtk_container_get_children.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_nativeSetHelpMenu): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_delMenu): Likewise.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(Java_gnu_java_awt_peer_gtk_GtkImage_freePixmap): Replace deprecated
	gdk_pixmap_unref with g_object_unref.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked):
	Replace deprecated gdk_cursor_destroy with gdk_cursor_unref.
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetParent):
	Replace deprecated gtk_container_children with
	gtk_container_get_children.
	(find_fg_color_widget): Replace deprecated macro GTK_IS_OPTION_MENU with
	GTK_IS_COMBO_BOX.
	(component_button_release_cb): Replace deprecated gdk_window_get_size
	with gdk_drawable_get_size.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeSetCheckboxGroup):
	Replace deprecated gtk_radio_button_group with
	gtk_radio_button_get_group.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_remove): Likewise.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkCanvasPeer_create): Replace deprecated
	gtk_type_new with gtk_drawing_area_new.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_copyState): Replace deprecated
	gdk_*_ref with g_object_ref.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_initState__II): Likewise.
	Replace deprecated gdk_rgb_get_cmap with gdk_rgb_get_colormap.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_initFromImage): Replace
	deprecated gdk_*_ref with g_object_ref.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_initStateUnlocked): Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_dispose): Replace deprecated
	gdk_*_unref with g_object_unref.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_copyArea): Replace deprecated
	gdk_window_copy_area with gdk_draw_drawable.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_setFGColor): Replace deprecated
	gdk_color_alloc with gdk_colormap_alloc_color.

2005-09-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/Utilities.java:
	(getWordEnd): Implemented.
	(getWordStart): Implemented.

2005-09-22  Keith SEitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/filters/StepFilter.java (StepFilter): Do not test
	for null thread ID -- just test if it has not been garbage collected.
	* gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.java (ThreadOnlyFilter):
	Likewise.

2005-09-22  Lillian Angel  <langel@redhat.com>

	* javax/swing/JPopupMenu.java
	(setVisible): Size of menu should always be the preferred
	size. It was sometimes cutting of the accelerator.
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	Increased defaultAcceleratorLabelGap field to 10, to
	make menuItem more readable.

2005-09-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/Utilities.java:
	(getPreviousWord): Fixed incorrect logic.  Use preceding() instead of 
	following(), previous() instead of next().

2005-09-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* gnu/java/text/BaseBreakIterator.java:
	(following): Don't restore old CharacterIterator index.

2005-09-22  Tom Tromey  <tromey@redhat.com>

	* javax/swing/JList.java (AccessibleJList): New constructor.

2005-09-22  Tom Tromey  <tromey@redhat.com>

	* java/net/ServerSocket.java (accept): Use correct security manager
	call.

2005-09-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/Utilities.java:
	(getNextWord): Implemented.
	(getPreviousWord): Implemented.

2005-09-22  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/MetalLookAndFeel.java
	(initComponentDefaults): Changed back to original 
	values.

2005-09-22  Lillian Angel  <langel@redhat.com>

	* javax/swing/ToolTipManager.java
	(showTip): Moved tooltip location adjustments to a
	helper method.
	(adjustLocation): New helper method.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Fixed defaults for Table, 
	TableHeader, Tree to match JDK.
	* javax/swing/plaf/MetalLookAndFeel.java
	(initComponentDefaults): Fixed defaults for Table and
	TableHeader to match JDK.	
	* javax/swing/plaf/basic/BasicToolTipUI.java
	(defaultBorder): Removed, along with inner class. Not needed.
	(installDefaults): Changed border to be the default border in
	L&F.

2005-09-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JSpinner.java
	(ListEditor): New inner class. Provides an editor for the
	SpinnerListModel.

2005-09-22  Tom Tromey  <tromey@redhat.com>

	* java/io/FileWriter.java (FileWriter): Typo fix.

2005-09-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JApplet.java
	(accessibleContext): Made field protected as specified.
	* javax/swing/JButton.java
	(accessibleContext): Removed field. The inherited JComponents
	accessibleContext field should be used instead.
	* javax/swing/JLabel.java
	(accessibleContext): Removed field. The inherited JComponents
	accessibleContext field should be used instead.
	* javax/swing/JRootPane.java
	(JRootPane): Removed unnecessary setDoubleBuffered() call.

2005-09-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/html/HTML.java:
	(SYNTHETIC): Renamed variable SYNTETIC to SYNTHETIC.
	(Tag): Changed comment for static Tag IMPLIED.

2005-09-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JViewport.java
	(JViewport): Initialize cached fields for blitting.
	(setViewPosition): Repaint viewport.
	(revalidate): Set damaged flag. Used for blitting.
	(reshape): Likewise.
	(paint): New method. Decide which paint method to use.
	(computeBlit): New method. Computes the parameters for blitting.
	(paintSimple): New method. Performs painting in simple mode.
	(paintBackingStore): New method. Performs painting in backingstore
	mode.
	(paintBlit): New method. Performs painting in blit mode. For
	now this falls back to backing store mode.
	* javax/swing/plaf/basic/BasicViewportUI.java
	(ChangeListener): Removed inner class.
	(installDefaults): Load default for background color. Changed
	signature to protected.
	(installListeners): Removed method.
	(uninstallDefaults): Changed signature to protected.
	(installUI): Call installDefaults().
	(uninstallUI): Call uninstallDefaults().
	(getPreferredSize): Removed.
	(paint): Removed.
	(paintSimple): Removed.
	(paintBackingStore): Removed.

2005-09-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(AccessibleJComponent.addPropertyChangeListener): Partly omplemented.
	(AccessibleJComponent.getAccessibleStateSet): Partly implemented.
	(doubleBuffered): Default value of this field is true.
	(paint): Moved double buffer painting stuff to separate method.
	(paintChildren): Don't call into AWT painting code here. This allows
	for a small optimization.
	(paintImmediately): Don't go up to the parent window, try to start
	painting on the nearest JRootPane if possible.
	(paintImmediately2): New method. Actually performs repainting
	on the repaint root.
	(paintDoubleBuffered): New method. Performs painting using
	a double buffer.
	(paintSimple): New method. Performs painting without buffer.

2005-09-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/filechooser/FileFilter.java: reformatted and added API
	docs.

2005-09-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/classpath/ByteArray.java,
	* gnu/classpath/ObjectPool.java,
	* gnu/javax/crypto/DiffieHellmanImpl.java,
	* gnu/javax/crypto/GnuDHPrivateKey.java,
	* gnu/javax/crypto/RSACipherImpl.java,
	* java/lang/Deprecated.java,
	* java/lang/Enum.java,
	* java/lang/Iterable.java,
	* java/lang/MalformedParameterizedTypeException.java,
	* java/lang/Override.java,
	* java/lang/ProcessBuilder.java,
	* java/lang/SuppressWarnings.java,
	* java/lang/annotation/Annotation.java,
	* java/lang/annotation/Documented.java,
	* java/lang/annotation/ElementType.java,
	* java/lang/annotation/IncompleteAnnotationException.java,
	* java/lang/annotation/Inherited.java,
	* java/lang/annotation/Retention.java,
	* java/lang/annotation/RetentionPolicy.java,
	* java/lang/annotation/Target.java,
	* java/lang/reflect/AnnotatedElement.java,
	* java/lang/reflect/GenericDeclaration.java,
	* java/lang/reflect/MalformedParameterizedTypeException.java,
	* java/lang/reflect/TypeVariable.java,
	* java/util/AbstractQueue.java,
	* java/util/DuplicateFormatFlagsException.java,
	* java/util/EnumMap.java,
	* java/util/EnumSet.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/InputMismatchException.java,
	* java/util/InvalidPropertiesFormatException.java,
	* java/util/MissingFormatArgumentException.java,
	* java/util/MissingFormatWidthException.java,
	* java/util/PriorityQueue.java,
	* java/util/Queue.java,
	* java/util/UnknownFormatConversionException.java,
	* java/util/UnknownFormatFlagsException.java,
	* org/omg/CORBA/SendingContext/RunTimeOperations.java,
	* org/omg/CORBA/SendingContext/Runtime.java,
	* vm/reference/java/lang/VMPackage.java:
	Fixed address within GPL.
	
2005-09-21  Lillian Angel  <langel@redhat.com>

	* javax/swing/ToolTipManager.java
	(showTip): Fixed location of tooltip. Sometimes
	the ToolTip was being cut off.

2005-09-21  Mark Wielaard  <mark@klomp.org>

	* gnu/classpath/ByteArray.java: Reindent boilerplate.

2005-09-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/classpath/ByteArray.java,
	* gnu/javax/crypto/DiffieHellmanImpl.java,
	* gnu/javax/crypto/GnuDHPrivateKey.java,
	* gnu/javax/crypto/RSACipherImpl.java:
	Fixed address within GPL license.

2005-09-21  Mark Wielaard  <mark@klomp.org>

	* lib/split-for-gcj.sh: Cut list to 3 package levels deep.

2005-09-21  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/html/HTML.java:
	(Tag): Changed name of IMPLIED Tag from "implied" to "p-implied" to 
	match the JDK.
	* javax/swing/text/html/HTMLDocument.java:
	(AdditionalComments): New field.

2005-09-21  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/html/HTMLDocument.java:
	(getBase): Implemented.
	(setBase): Implemented.
	(getPreservesUnknownTags): Implemented.
	(setPreservesUnknownTags): Implemented.
	(BlockElement): New class partially implemented.

2005-09-21  Tom Tromey  <tromey@redhat.com>

	* java/awt/BorderLayout.java: Reverted field reordering.

2005-09-21  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTable.java
	(distributeSpill): Fixed a NPE.
	* javax/swing/ToolTipManager.java
	(mouseExited): No need to do this stuff, removed code.
	(showTip): Revalidating and repainting too much, removed.
	(hideTip): Likewise.

2005-09-21  Tom Tromey  <tromey@redhat.com>

	* java/awt/BorderLayout.java (invalidateLayout): Updated comment.
	(setBounds): Likewise.
	(MIN, MAX, PREF): Moved nearer top of file.
	(getLayoutComponent): New methods.
	(getConstraints): New method.
	(vgap, hgap, north, south, east, west): Reordered fields to conform
	to serialization spec.

2005-09-21  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/html/HTMLDocument.java:
	(LeafIterator): New class.
	(getIterator): Implemented.
	(Iterator): New abstract class.

2005-09-21  Tom Tromey  <tromey@redhat.com>

	* java/math/BigDecimal.java (ZERO, ONE): Now public.  Updated
	javadoc.
	(TEN): New constant.
	* java/math/BigInteger.java (ZERO): Updated javadoc.
	(ONE): Likewise.
	(TEN): New constant.

2005-09-21  Lillian Angel  <langel@redhat.com>

	Fixes Bug #23937
	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(propertyChange): When WANTS_INPUT_PROPERTY is changed,
	the buttons should be updated.
	(getButtons): Applied patch in bug report. Sets default
	buttons.

2005-09-21  Lillian Angel  <langel@redhat.com>

	* javax/swing/ToolTipManager.java
	(showTip): Added code to move currentPoint to a new place.
	(getGoodPoint): Removed, not needed.

2005-09-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalFileChooserUI.java: new file (partial 
	implementation).

2005-09-20  Lillian Angel  <langel@redhat.com>

	* javax/swing/JPopupMenu.java
	(setVisible): If HeavyWeightPopup, setLightWeightPopupEnabled
	is false.
	* javax/swing/ToolTipManager.java
	(showTip): Change so toolTips on lightWeightPopups are 
	added different than those on heavyWeightPopups.
	(canToolTipFit): Removed. This is not needed/used.

2005-09-20  Lillian Angel  <langel@redhat.com>

	* javax/swing/ToolTipManager.java
	(mouseMoved): Removed unneeded code. If the mouse
	moves into another component, then mouseEntered would
	do the same thing. Otherwise, it is not needed.
	(showTip): Fixed so that the containerPanel is an 
	instance of Panel. Made code more efficent.
	Tooltips were causing weird problems with the
	JMenus.
	(getGoodPoint): Fixed to return a better location.
	* javax/swing/plaf/basic/BasicMenuBarUI.java
	(mouseClicked): Fixed to prevent a NPE.

2005-09-20  Tom Tromey  <tromey@redhat.com>

	PR classpath/22906:
	* gnu/java/net/protocol/jar/Connection.java (get): Added useCaches
	argument.
	(connect): Updated.

2005-09-20  Tom Tromey  <tromey@redhat.com>

	* javax/print/DocFlavor.java (serialVersionUID): Fixed typo.

2005-09-19  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultEditorKit.java:
	(write): Partially Implemented and made slight correction to API docs.
	* javax/swing/text/html/HTMLEditorKit.java:
	(createDefaultDocument): Override parent method because we need to 
	return an HTMLDocument not a DefaultStyledDocument.
	
2005-09-20  Roman Kennke  <kennke@aicas.com>

	Fixes PR #23900.
	* javax/swing/JLayeredPane.java
	(remove(int)): Removed repaint() call. This is unnecessary because
	already triggered by Container.remove().
	(remove(Component)): Removed this superfluous method. It's not
	in the specs and the functionality is already in Container.
	(paint): New method. Overridden in order to provide reasonable
	painting for JLayeredPanes.

2005-09-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(UpdateHandler): Renamed to PropertyChangeHandler. This name is
	closer to the purpose of this class.
	(PropertyChangeHandler.propertyChange): Delegate property change
	to propertyChange hook method in the enclosing BasicTextUI.
	(propertyChange): New protected method. This serves as a hook
	for subclasses to handle property changes in the text component.
	* javax/swing/plaf/basic/BasicTextFieldUI.java
	(properyChange): Handle editable property here and adjust background
	accordingly.

2005-09-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(getParagraphElement): If the position argument is out of the
	document's bounds, then the closest paragraph element must be
	returned. This is fixed.

2005-09-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(resizeAndRepaint): New protected method.

2005-09-20  Tom Tromey  <tromey@redhat.com>

	* javax/xml/namespace/QName.java: Now Serializable.
	(serialVersionUID): New field.
	(qName, hashCode): Now transient.
	(QName): Don't compute qName here.
	(equals): Now final.
	(hashCode): Simplified.
	(toString): Compute qName here.

2005-09-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(getTextFieldBorder): This method must return an BorderUIResource
	instance. Fixed.

2005-09-20  Mark Wielaard  <mark@klomp.org>

	Reported by Martin Cordova <martin.cordova@gmail.com>
	* native/jni/java-net/javanet.c (_javanet_accept): Throw
	SocketTimeoutException on EAGAIN timeout.

2005-09-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(installDefaults): Handle the rollover UIDefaults property.
	(paintText): Correctly paint disabled button label text.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Fix some text component border defaults.
	* javax/swing/plaf/basic/BasicTextPaneUI.java
	(installUI): New method. This sets up some style attributes
	for the JTextPane.

2005-09-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefault): Added and fixed some UI defaults.

2005-09-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(ButtonBorder.paintBorder): Fetch correct color for disabled
	button border.
	(getTextFieldBorder): Correctly initialize text field border. This
	should be a compound border with a MarginBorder and TextFieldBorder
	instead of a plain TextFieldBorder.
	(getTextBorder): New method.

2005-09-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(setParagraphAttributes): Implemented this method.
	(insertUpdate): Fixed attribute comparison to avoid NPE.

2005-09-20  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR awt/23951
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(isRealized): Leave GDK critical region when exiting early.

2005-09-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Collections.java:
	Fixes Bug #PR22921.
	(emptySet()): Implemented.
	(emptyList()): Implemented.
	(emptyMap()): Implemented.
	(rotate(List<?>,int)): Fixed signature.
	(shuffle(List<?>)): Fixed signature.
	(shuffle(List<?>,Random)): Fixed signature.
	(frequency(Collection<?>,Object)): Documented.
	(addAll(Collection<? super T>, T... a)): Implemented.
	(disjoint(Collection<?>,Collection<?>)): Implemented.
	(swap(List<?>,int,int)): Fixed signature.
	(checkedCollection(Collection<E>,Class<E>)): Implemented.
	(Collections.CheckedCollection): New inner class.
	(Collections.CheckedIterator): New inner class.
	(checkedList(List<E>, Class<E>)): Implemented.
	(Collections.CheckedList): New inner class.
	(Collections.CheckedRandomAccessList): New inner class.
	(Collections.CheckedListIterator): New inner class.
	(checkedMap(Map<K,V>,Class<K>,Class<V>)): Implemented.
	(Collections.CheckedMap): New inner class.
	(checkedSet(Set<E>,Class<E>)): Implemented.
	(Collections.CheckedSet): New inner class.
	(checkedSortedMap(SortedMap<K,V>,Class<K>,Class<V>)): Implemented.
	(Collections.CheckedSortedMap): New inner class.
	(checkedSortedSet(SortedSet<E>,Class<E>)): Implemented.
	(Collections.CheckedSortedSet): New inner class.
	
2005-09-19  Tom Tromey  <tromey@redhat.com>

	* java/awt/PopupMenu.java (AccessibleAWTPopupMenu.serialVersionUID):
	New field.
	* java/awt/TextField.java (AccessibleAWTTextField.serialVersionUID):
	New field.
	* java/awt/TextArea.java (AccessibleAWTTextArea.serialVersionUID): 
	New field.
	* java/awt/Menu.java (AccessibleAWTMenu.serialVersionUID): New field.
	* java/awt/CheckboxMenuItem.java (AccessibleAWTCheckboxMenuItem.serialVersionUID):
	New field.
	* java/awt/TextComponent.java (AccessibleAWTTextComponent.serialVersionUID):
	New field.
	* java/awt/MenuItem.java (AccessibleAWTMenuItem.serialVersionUID):
	New field.
	* java/awt/Frame.java (AccessibleAWTFrame.serialVersionUID): New 
	field.
	* java/awt/Dialog.java (AccessibleAWTDialog.serialVersionUID): New
	field.
	* java/awt/Button.java (AccessibleAWTButton.serialVersionUID): New
	field.
	* java/awt/Window.java (AccessibleAWTWindow.serialVersionUID): New
	field.
	* java/awt/ScrollPane.java (AccessibleAWTScrollPane.serialVersionUID):
	New field.
	* java/awt/List.java (AccessibleAWTList.serialVersionUID): New field.
	(AccessibleAWTListChild.serialVersionUID): Likewise.
	(AccessibleAWTListChild.parent): Moved earlier.
	(AccessibleAWTListChild.indexInParent): Renamed.

2005-09-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/filechooser/FileView.java:
	Reformatted and added API doc comments.

2005-09-19  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JRootPane.java:
	(createGlassPane): Don't set the layout manager to BorderLayout.  Leave
	it as JPanel's default FlowLayout.

2005-09-19  Lillian Angel  <langel@redhat.com>

	* javax/swing/ToolTipManager.java:
	Changed tooltip to be JDialog (no entry in taskbar),
	instead of JWindow.
	(actionPerformed): No need to start timer here.
	(mouseEntered): No need to call showTip here, it is called
	when the timer fires.
	(showTip): Shouldn't show tip if it is already visible or
	the current component is not showing.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(getRowForPath): Re-implemented.
	(mousePressed): Call getRowForPath instead, also
	added a check in for leaf icons.

2005-09-19  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JLayeredPane.java:
	(<init>): Set layout manager to null.

2005-09-19  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java:
	(GlassPaneDispatcher.handleEvent): Added check for mouseEventTarget
	being null to avoid NPE.

2005-09-19  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JRootPane.java:
	(RootLayout.layoutContainer): Added comment about how the 
	components should be sized.  Fixed size of glassPane which fills the 
	entire viewable region, including overtop the menuBar.  Used bounds 
	minus insets for containerSize, as indicated in comment, rather than 
	getSize().  Used setBounds instead of setSize for layeredPane because 
	its relation to the other components' sizes is more obvious that way.

2005-09-19  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java:
	(GlassPaneDispatcher.handleEvent): Replaced call to SwingUtilities' 
	convertMouseEvent (with identical source and desination) with a simple 
	cast.  If acquireComponentForMouseEvent reveals we're going to 
	re-dispatch this event to ourselves (and loop infinitely), return. Also
	replaced contentPane by glassPane as the source argument to 
	SwingUtilities.convertMouseEvent since the glassPane is the real
	source.

2005-09-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicArrowButton.java
	(paintTriangle): minor correction to highlight on triangle for disabled
	buttons.
	
2005-09-19  Tom Tromey  <tromey@redhat.com>

	* javax/print/DocFlavor.java (BYTE_ARRAY.serialVersionUID): New field.
	(INPUT_STREAM.serialVersionUID): Likewise.

2005-09-19  Tom Tromey  <tromey@redhat.com>

	* java/text/DateFormat.java (serialVersionUID): New field.

2005-19-19  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(selectPath): Changed so DISCONTIGUOUS_TREE_SELECTION is the
	default.
	* javax/swing/JTree.java
	(AccessibleJTreeNode): Initialized all fields.
	(addAccessibleSelection): Implemented.
	(clearAccessibleSelection): Implemented.
	(doAccessibleAction): Implemented.
	(getAccessibleAction): Implemented.
	(getAccessibleActionCount): Implemented.
	(getAccessibleActionDescription): Implemented.
	(getAccesssibleChild): Remove mod variable, made global.
	(getAccessibleComponent): Changed to return this, since this
	class implements AccessibleComponent.
	(getAccessibleSelection): Likewise.
	(getAccessibleSelection): Implemented.
	(getAccessibleSelectionCount): Implemented.
	(getAccessibleStateSet): Remove mod variable, made global.
	(getCursor): Implemented.
	(isAccessibleChildSelected): Remove mod variable, made global.
	(removeAccessibleSelection): Implemented.
	(selectAllAccessibleSelection): Implemented.
	(setCursor): Implemented.
	(AccessibleJTree): Nothing to do.
	(getAccessibleAt): Implemented.
	(getAccessibleSelection): Implemented.
	(getAccessibleSelection): Implemented.	

2005-09-19  Tom Tromey  <tromey@redhat.com>

	* javax/xml/xpath/XPathFunctionException.java (serialVersionUID): New
	field.
	* javax/xml/xpath/XPathFactoryConfigurationException.java
	(serialVersionUID): New field.
	* javax/xml/xpath/XPathExpressionException.java (serialVersionUID): New
	field.
	* javax/xml/xpath/XPathException.java (serialVersionUID): New field.
	* javax/xml/transform/TransformerConfigurationException.java (locator):
	Removed.
	(TransformerConfigurationException): Pass locator to super constructor.
	(serialVersionUID): New field.
	* javax/xml/transform/TransformerFactoryConfigurationError.java
	(serialVersionUID): New field.
	* javax/xml/transform/TransformerException.java (containedException):
	Renamed field.
	(serialVersionUID): New field.

2005-09-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(UpdateHandler.propertyChange): Handle changes of the editable
	property.
	(paintBackground): Moved implementation to
	UpdateHandler.propertyChange. This method itself should not fill
	the background.

2005-09-19  Mark Wielaard  <mark@klomp.org>

	* native/jni/java-net/java_net_VMInetAddress.c
	(Java_java_net_VMInetAddress_getHostByAddr): Add error string as
	exception message.
	* native/jni/java-net/javanet.c (_javanet_accept): Likewise.
	(_javanet_shutdownInput): Likewise.
	(_javanet_shutdownOutput): Likewise.

2005-09-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/border/TitledBorder.java
	(paintBorder): Correctly set the Y offset for the border title.
	(getMeasurements): Determine the correct Y offset for the border
	title.

2005-09-19  Robert Schuster  <robertschuster@fsfe.org>

	* java/util/ResourceBundle.java: Changed type of bundleCache
	to WeakHashMap.

2005-09-19  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/Checkbox.java:
	(Checkbox): Properly set as selected checkbox in corresponding
	checkbox group.
	(paramString): Removed checkbox group information.
	* java/awt/Component.java:
	(paramString): Removed redundant "=".

2005-09-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(installComponents): call configureArrowButton after creating button,
	(configureEditor): set the selected item,
	(configureArrowButton): set a zero margin,
	(getPreferredSize): delegate to getMinimumSize(),
	(getMinimumSize): now uses code that was in getPreferredSize(),
	(getDefaultSize): reduce default height,
	(ComboBoxLayoutManager.layoutComponent): use comboBox height as button
	width,
	(PropertyChangeHandler.propertyChange): set font on arrow button,
	* javax/swing/plaf/metal/MetalComboBoxUI.java
	(instances): deleted field,
	(MetalComboBoxLayoutManager): new class,
	(MetalPropertyChangeListener): new class,
	(MetalComboPopup): new class,
	(createUI): just return new instance,
	(createEditor): implemented,
	(createPopup): implemented,
	(createArrowButton): implemented,
	(createPropertyChangeListener): implemented,
	(paint): implemented,
	(editablePropertyChanged): implemented,
	(createLayoutManager): implemented,
	(removeListeners): implemented,
	(getMinimumSize): implemented.

2005-09-19  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_dispose): Fix double
	unreferencing pfont->font. Unref pfont->layout instead.

2005-09-18  Tom Tromey  <tromey@redhat.com>

	* java/util/Timer.java (TaskQueue.purge): New method.
	(Timer(String)): New constructor.
	(Timer(String,boolean)): Likewise.
	(purge): New method.

2005-09-18  Tom Tromey  <tromey@redhat.com>

	* java/lang/Short.java (valueOf): New method.
	* java/lang/Double.java (valueOf): New method.
	* java/lang/Float.java (valueOf): New method.

2005-09-18  Tom Tromey  <tromey@redhat.com>

	* java/lang/Long.java (reverse): Correctly handle sign extension.

2005-09-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(installComponents): remove listBox color settings,
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): corrected ComboBox and ListBox defaults.

2005-09-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxRenderer.java
	(BasicComboBoxRenderer): set no focus border,
	(getListCellRendererComponent): set background color if cell has focus,
	removed border switching code.

2005-09-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(borderInsets): deleted,
	(arrowButtonWidth): deleted,
	(configureEditor): set font,
	(isFocusTraversable): set to true for non-editable combobox,
	(paint): deleted border painting code,
	(paintBorder): deleted,
	(getPreferredSize): returns a value, not null,
	(getMinimumSize): likewise,
	(getMaximumSize): likewise,
	(rectangleForCurrentValue): reimplemented,
	(paintCurrentValue): no longer adjusts for border insets,
	(getDisplaySize): update maximum width and height independently,
	(ComboBoxLayoutManager): removed redundant 'extends Object',
	(ComboBoxLayoutManager.preferredLayoutSize): call getPreferredSize(),
	(ComboBoxLayoutManager.minimumLayoutSize): delegate to 
	preferredLayoutSize(),
	(ComboBoxLayoutManager.layoutContainer): use arrow button preferred 
	size in layout,
	(PropertyChangeHandler.propertyChange): added 'font' handling.

2005-09-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(installListeners): add listener to arrowButton instead of comboBox,
	deleted call to configureArrowButton(),
	(uninstallListeners): remove listener from arrowButton instead of 
	comboBox, and deleted call to unconfigureArrowButton(),
	(configureArrowButton): set font and enabled state, deleted 
	addMouseListener() call,
	(unconfigureArrowButton): deleted removeMouseListener() call,
	(MouseHandler.mousePressed): just toggle display status of popup,
	(MouseHandler.mouseReleased): deleted.

2005-09-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(largestItemSize): renamed displaySize,
	(getLargestItemSize): renamed getDisplaySize and changed to protected,
	(ComboBoxLayoutManager.preferredLayoutSize): updated for renamed field 
	and method,
	(ListDataHandler.intervalAdded): likewise,
	(ListDataHandler.intervalRemoved): likewise.

2005-09-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java:
	Updated API docs all over.

2005-09-18  David Gilbert  <david.gilbert@object-refinery.com>

	* java/text/RuleBasedCollator.java:
	Fixed spelling error in comment.

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

	* .settings/org.eclipse.jdt.ui.prefs: Add file template.

2005-09-17  Anthony Green  <green@redhat.com>

	* java/security/Security.java (getProviders): Pre-allocate the
	target array for Collection.toArray call.
	* gnu/java/security/PolicyFile.java (parse): Ditto.
	* javax/swing/filechooser/FileSystemView.java: Ditto.
	* javax/swing/JFileChooser.java (getChoosableFileFilters): Ditto.

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

	PR classpath/22963:
	* java/nio/charset/Charset.java (forName): Javadoc fix.
	(providers2): Use ServiceFactory.

2005-09-17  Mark Wielaard  <mark@klomp.org>

	* org/ietf/jgss/GSSException.java (BAD_BINDINGS, BAD_MECH,
	BAD_NAME, BAD_NAMETYPE, CONTEXT_EXPIRED, CREDENTIALS_EXPIRED,
	DEFECTIVE_CREDENTIAL, DEFECTIVE_TOKEN, DUPLICATE_TOKEN, FAILURE,
	NO_CONTEXT, NO_CRED, OLD_TOKEN): Document official RFC values.

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

	* java/lang/Short.java (SIZE): New constant.
	(MIN_CACHE, MAX_CACHE): Likewise.
	(shortCache): New field.
	(reverseBytes): New method.
	* java/lang/Long.java (SIZE): New constant.
	(valueOf): New method.
	(bitCount): New method.
	(rotateLeft): New method.
	(rotateRight): New method.
	(highestOneBit): New method.
	(numberOfLeadingZeros): New method.
	(lowestOneBit): New method.
	(numberOfTrailingZeros): New method.
	(signum): New method.
	(reverseBytes): New method.
	(reverse): New method.
	* java/lang/Float.java (SIZE): New constant.
	* java/lang/Double.java (SIZE): New constant.
	* java/lang/Character.java (SIZE): New constant.
	(MAX_CACHE): Likewise.
	(charCache): New field.
	(valueOf): New method.
	(reverseBytes): Likewise.
	* java/lang/Byte.java (SIZE): New constant.
	(byteCache): New field.
	(valueOf): New method.
	* java/lang/Boolean.java (parseBoolean): New method.

2005-09-17  Mark Wielaard  <mark@klomp.org>

	Reported by David Lichteblau <david@lichteblau.com>
	* native/jni/classpath/jcl.c (JCL_NewRawDataObject): Create
	NewGlobalRef before calling DeleteLocalRef.

2005-09-17  Paul Jenner  <psj@harker.dyndns.org>

	* configure.ac: Clarify that Werror configure option is
	disabled by default.

2005-09-17  Mark Wielaard  <mark@klomp.org>

	* javax/swing/plaf/basic/BasicMenuItemUI.java: Reindent boilerplate.

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

	* java/util/prefs/Preferences.java (systemNodeForPackage):
	Javadoc fix.
	(userNodeForPackage): Likewise.
	* java/util/logging/LoggingPermission.java (serialVersionUID):
	New field.
	* java/io/ObjectInputStream.java (parseContent): Javadoc fix.

2005-09-17  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/home.wml: Update mauve link.

2005-09-16  Anthony Green  <green@redhat.com>

	PR libgcj/20198
	* java/net/URLClassLoader.java (FileURLLoader.getResource): File
	resources should all have canonicalized names.

2005-09-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTree.java
	(AccessibleJTreeNode): Fixed documentation.
	(addAccessibleSelection): Likewise, still needs to 
	be implemented.
	(addFocusListener): Implemented.
	(addPropertyChangeListener): Implemented.
	(clearAccessibleSelection): Implemented.
	(contains): Implemented.
	(doAccessibleAction): Fixed documentation, still
	needs to be implemented.
	(getAccessibleAction): Likewise.
	(getAccessibleActionCount): Likewise.
	(getAccessibleActionDescription): Implemented.
	(getAccessibleAt): Implemented.
	(getAccessibleChild): Implemented.
	(getAccessibleChildrenCount): Implemented.
	(getAccessibleComponent): Fixed documentation.
	(getAccessibleContext): Implemented.
	(getAccessibleDescription): Implemented.
	(getAccessibleIndexInParent): Implemented.
	(getAccessibleName): Implemented.
	(getAccessibleParent): Fixed documentation.
	(getAccessibleRole): Likewise.
	(getAccessibleSelection): Likewise, still needs to 
	be implemented.
	(getAccessibleSelection): Likewise.
	(getAccessibleSelectionCount): Implemented.
	(getAccessibleStateSet): Implemented.
	(getAccessibleText): Fixed documentation.
	(getAccessibleValue): Likewise.
	(getBackground): Implemented.
	(getBounds): Implemented.
	(getCursor): Fixed documentation, still needs to be 
	implemented.
	(getFont): Implemented.
	(getFontMetrics): Implemented.
	(getForeground): Implemented.
	(getLocale): Implemented.
	(getLocation): Implemented.
	(getLocationInJTree): Implemented.
	(getLocationOnScreen): Implemented.
	(getSize): Implemented.
	(isAccessibleChildSelected): Implemented.
	(isEnabled): Implemented.
	(isFocusTraversable): Implemented.
	(isShowing): Implemented.
	(isVisible): Implemented.
	(removeAccessibleSelection): Fixed documentation, need to 
	fix current implementation.
	(removeFocusListener): Implemented.
	(removePropertyChangeListener): Implemented.
	(requestFocus): Implemented.
	(selectAllAccessibleSelection): Need to implement. Added FIXME.
	(setAccessibleDescription): Implemented.
	(setAccessibleName): Implemented.
	(setBackground): Implemented.
	(setBounds): Implemented.
	(setCursor): Fixed documentation, still need to implement.
	(setEnabled): Implemented.
	(setFont): Implemented.
	(setForeground): Implemented.
	(setLocation): Implemented.
	(setSize): Implemented.
	(setVisible): Implemented.
	(AccessibleJTree): Fixed documentation, still need
	to implement.
	(addAccessibleSelection): Implemented.
	(clearAccessibleSelection): Implemented.
	(fireVisibleDataPropertyChange): Implemented.
	(getAccessibleAt): Fixed documentation, need to implement.
	(getAccessibleChild): Implemented.
	(getAccessibleChildrenCount): Implemented.
	(getAccessibleIndexInParent): Fixed documentation.
	(getAccessibleRole): Likewise.
	(getAccessibleSelection): Likewise, still need to implement.
	(getAccessibleSelection): Likewise.
	(getAccessibleSelectionCount): Implemented.
	(isAccessibleChildSelected): Implemented.
	(removeAccessibleSelection): Implemented.
	(selectAllAccessibleSelection): Implemented.
	(treeCollapsed): Implemented.
	(treeExpanded): Implemented.
	(treeNodesChanged): Implemented.
	(treeNodesInserted): Implemented.
	(treeNodesRemoved): Implemented.
	(treeStructureChanged): Implemented.
	(valueChanged): Implemented.
	(TreeModelListener): Fixed documentation.

2005-09-16  Tom Tromey  <tromey@redhat.com>

	* java/io/PrintWriter.java (PrintWriter): New constructors.

2005-09-16  Tom Tromey  <tromey@redhat.com>

	PR classpath/22689:
	* java/io/PrintWriter.java (closed): New field.
	(checkError): Only flush if stream not closed.
	(close): Set 'closed'.

2005-09-16  Tom Tromey  <tromey@redhat.com>

	* java/lang/Character.java (MIN_SURROGATE, MAX_SURROGATE): New
	constants.
	(isHighSurrogate): New method.
	(isLowSurrogate): Likewise.
	(isSurrogatePair): Likewise.
	(toCodePoint): Likewise.
	(codePointAt): Likewise.
	(codePointBefore): Likewise.
	* java/lang/StringBuffer.java (codePointCount): Check bounds.
	(codePointAt): Rewrote.
	(codePointBefore): Likewise.
	* java/lang/String.java (codePointAt): New method.
	(codePointBefore): Likewise.
	(codePointCount): Likewise.
	(contentEquals): New overload.

2005-09-16  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/ProgressMonitor: Implemented the former stubbed
	class and added documentation.
	(close): Implemented and added documentation.
	(setProgress): Dito.
	(isCanceled): Dito.
	(setMinimum): Added documentation.
	(getMinimum): Dito.
	(setMaximum): Dito.
	(getMaximum): Dito.
	(setNote): Dito.
	(getMillisToDecideToPopup): Dito.
	(setMillisToDecideToPopup): Dito.
	(getMillisToPopup): Dito.
	(setMillisToPopup): Dito.
	(getNote): Dito.
	* javax/swing/ProgressMonitorInputStream: Implemented stub
	methods.
	(close): Implemented.
	(read): Dito.
	(reset): Dito.
	(skip): Dito.
	(getProgressMonitor): Dito.
	
2005-09-16  Tom Tromey  <tromey@redhat.com>

	PR classpath/23882:
	* java/text/StringCharacterIterator.java (StringCharacterIterator): 
	Javadoc fix.
	(hashCode): New method.
	* java/text/ParsePosition.java (hashCode): New method

2005-09-16    Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/Timer.java (Waker.run): Do not enter loop on 
	repeats = false (fixes #23918).

2005-09-16  Andrew Haley  <aph@redhat.com>

	* java/io/ObjectStreamClass.java (findAccessibleMethod): Allow
	protected readResolve().  Rewrite accessibility check.

2005-09-16  Andrew Haley  <aph@redhat.com>

	* scripts/loc: New file.

2005-09-16  Anthony Green  <green@redhat.com>

	* java/lang/String.java (getBytes): Throw an InternalError instead
	of silently returning null.

2005-09-16  Lillian Angel  <langel@redhat.com>

	Fixes Bug #22610
	* java/awt/Container.java
	(remove): Removed component listeners from the component
	being removed. This was a problem if that same component
	that was removed was added to a new component.

2005-09-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalComboBoxEditor.java
	(MetalComboBoxEditorBorder.paintBorder): modified border appearance.

2005-09-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxRenderer.java: updated API docs
	and minor reformatting.

2005-09-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JList.java
	(AccessibleJList): New inner class.

2005-09-16  David Gilbert  <david.gilbert@object-refinery.com>

	* examples/gnu/classpath/examples/swing/ButtonDemo.java: new file.

2005-09-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(RadioButtonIcon.paintIcon): change color of selection indicator 
	according to component state.

2005-09-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalCheckBoxIcon.java
	(drawCheck): change color according to component state.

2005-09-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(ButtonBorder.paintBorder): draw a different border for a disabled 
	button.

2005-09-15  Tom Tromey  <tromey@redhat.com>

	* java/lang/EnumConstantNotPresentException.java: New file.

2005-09-15  Anthony Green  <green@redhat.com>

	* java/awt/Color.java (RGBtoHSB): Don't use integer division when
	calculating saturation.
	* java/awt/Rectangle.java (equals): Explain why hashCode() isn't
	required.
	* java/awt/Point.java (equals): Ditto.

	* java/util/zip/ZipFile.java (checkZipFile): Make sure we read the
	4 byte magic number.

2005-09-15  Tom Tromey  <tromey@redhat.com>

	* javax/swing/text/html/parser/DTD.java (FILE_VERSION): Now
	final.

2005-09-15  Tom Tromey  <tromey@redhat.com>

	* javax/naming/Name.java: Extends Comparable.

2005-09-15  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/Component.java:
	(isDisplayable): Don't check the parent's displayability, only return
	true if peer is non-null and false if peer is null.

2005-09-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SwingUtilities.java
	(layoutCompoundLabel): check for empty text string,
	* javax/swing/plaf/basic/BasicButtonUI.java
	(paint): check isBorderPainted() when calculating view rect,
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(CloseAction): new constructor,
	(IconifyAction): new constructor,
	(MaximizeAction): new constructor,
	(MoveAction): new constructor,
	(RestoreAction): new constructor,
	(SizeAction): new constructor,
	(TitlePaneLayout.layoutContainer): calculate button widths from icon 
	widths,
	(installDefaults): initialise icon fields,
	(uninstallDefaults): clear icon fields,
	(createButtons): set button text to null,
	(setButtonIcons): use icon fields.

2005-09-15  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicComboBoxRenderer.java
	(getListCellRendererComponent): Added code in to check if string
	is larger than comboBox. If it is, the string is truncated and 
	'...' is drawn at the end of it.
	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(getDefaultSize): Initially too small, still not fully implemented.
	(getLargestItemSize): Made private, not in API.
	(minimumLayoutSize): Implemented properly.
	(intervalAdded): ComboBox should not be resized with every new
	component. This is fixed.

2005-09-15  Tom Tromey  <tromey@redhat.com>

	* java/lang/EnumConstantNotPresentException.java: New file.

2005-09-15  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java:
	Reformatted file.

2005-09-15  Lillian Angel  <langel@redhat.com>
	
	Fixes Bug #23678
	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(CBLabelRenderer): Removed. Not in API, and it is really
	redundant to have.
	(installComponents): Changed the renderer set for the combo box.
	Also, added the buttonPanel to the parentsPanel, so they are 
	always painted correctly. Set the FlowLayout to LEFT
	instead of default being CENTER.

2005-09-15  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JRootPane.java:
	(setContentPane): Remove the old content pane first.  Throw 
	IllegalComponentStateException if the parameter is null.  Added docs.

2005-09-15  Tom Tromey  <tromey@redhat.com>

	Workaround for PR classpath/23863:
	* native/fdlibm/mprec.h (MAX_BIGNUM_WDS): Define as 128 on
	non-Pack_32 platforms.

2005-09-15  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/Component.java:
	(isDisplayable): Return true if peer != null.
	* java/awt/Window.java:
	(isDisplayable): Removed this method. Now inherits from Component.

2005-09-15  Anthony Green  <green@redhat.com>

	* java/io/PushbackInputStream.java (available, read, skip): Handle
	closed stream operations gracefully.

2005-09-15  Anthony Green  <green@redhat.com>
 
	* java/nio/charset/Charset.java: close() each stream we open.
	* java/net/URLStreamHandler.java: Remove redundant null pointer
	check.
	* java/security/Identity.java (equals, identityEquals): Don't use
 	`==' to compare uninterned Strings.  Use String.equals().
	* java/lang/Class.java (pd): Mark this field as transient for
	FindBugs won't complain (although not strictly necessary).

2005-09-15  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTextArea.java:
	(append): Changed invalidate call to revalidate call.
	(setRows): Likewise.
	(setColumns): Likewise.

2005-09-15  Lillian Angel  <langel@redhat.com>
	
	Fixes #23873
	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(createMessageArea): Changed orientation of message from EAST to
	CENTER. Also, fixed empty border values to make message more centered.
	* javax/swing/JOptionPane.java
	(showConfirmDialog): Added check for pane.getValue, since clicking on 
	'x' of window does not have an initialized value. Was causing a 
	ClassCastException.
	(showConfirmDialog): Likewise.
	(showConfirmDialog): Likewise.
	(showConfirmDialog): Likewise.

2005-09-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(installDefaults): set font,
	(uninstallDefaults): clear font,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): update ToggleButton defaults,
	* javax/swing/plaf/metal/MetalToggleButtonUI.java
	(instance): removed field,
	(createUI): just return new instance every time,
	(MetalToggleButtonUI): look up defaults directly,
	(getFocusColor): return value from field initialised in constructor,
	(getSelectColor): likewise,
	(getDisabledTextColor): likewise,
	(installDefaults): override to make public,
	(paintButtonPressed): implemented,
	(paintText): implemented,
	(paintFocus): implemented.

2005-09-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(toggleButtonBorder): new private field,
	(ToggleButtonBorder): new class,
	(getToggleButtonBorder): new method.

2005-09-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insertUpdate): Tweaked attribute comparison to avoid NPE.

2005-09-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insertUpdate): Tweaked attribute comparison to avoid NPE.
	* javax/swing/text/GlyphView.java
	(DefaultGlyphPainter.getBoundedPosition): Implemented.
	(DefaultGlyphPainter.viewToModel): Implemented.
	(getTabExpander): Don't be specific to ParagraphView here. All
	parents that implement TabExpander can be accepted.
	(getBeginIndex): Removed. This method is not documented in the
	specs.
	(getBreakWeight): Implemented.
	(changedUpdate): Implemented.
	(insertUpdate): Implemented.
	(removeUpdate): Implemented.
	(createFragment): Implemented.
	(breakView): Use createFragment.
	* javax/swing/text/Utilities.java
	(getTabbedTextOffset): Implemented both variants of this method.

2005-09-14    Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * gnu/CORBA/Connected_objects.java (equals),
        * gnu/CORBA/Poa/activeObjectMap.java (equals): Removed, fixes
        #23879.
        * gnu/CORBA/Version.java (hashCode),
        * gnu/CORBA/gnuAny.java (hashCode): New method, fixes #23879.

2005-09-14  Lillian Angel  <langel@redhat.com>

	* javax/swing/JProgressBar.java
	(JProgressBar): Fixed to use setOrientation function.
	* javax/swing/plaf/metal/MetalProgressBarUI.java
	(createUI): Was using the same instance of the UI for 
	each new JProgressBar. Fixed this.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(installUI): Added call to prepareForUIInstall.
	(uninstallUI): Added call to prepareForUIUninstall.

2005-09-14  Anthony Balkisoon  <abalkiss@redhat.com>

	* javax/swing/text/ComponentView.java:
	(createComponent): Implemented.

2005-09-14    Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * org/omg/CosNaming/NameComponent (hashCode): New method,
        fixes #23883). 

2005-09-14  Lillian Angel  <langel@redhat.com>
	
	Fixes Bug #23795
	* javax/swing/plaf/basic/BasicTreeUI.java:
	Made private fields package private.
	(setCellRenderer): Took out code that updateRenderer takes
	care of.
	(getPathBounds): Fixed to use treeModel field.
	(getPathForRow): Likewise.
	(getRowCount): Likewise.
	(installComponents): Implemented.
	(createNodeDimensions): Implemented.
	(uninstallComponents): Implemented.
	(getVerticalLegBuffer): Implemented.
	(getHorizontalLegBuffer): Implemented.
	(updateLayoutCacheExpandedNodes): Implemented.
	(updateExpandedDescendants): Implemented.
	(updateDepthOffset): Implemented.
	(updateRenderer): Implemented.
	(updateSize): Implemented.
	(installDefaults): Added some more defaults.
	(installUI): Moved code to installComponents.
	(paint): Fixed to use treeModel field.
	(ensureRowsAreVisible): Implemented.
	(getMinimumSize): Implemented.
	(getMaximumSize): Implemented.
	(checkForClickInExpandControl): Implemented.
	(isLocationInExpandControl): Implemented.
	(handleExpandControlClick): Implemented.
	(toggleExpandState): Implemented.
	(isToggleSelectionEvent): Implemented.
	(isMultiSelectEvent): Implemented.
	(isToggleEvent): Implemented.
	(selectPathForEvent): Implemented.
	(actionPerformed): Changed to use toggleExpandState.
	(mousePressed): Fixed code to use helper methods. Made
	more efficent.
	(TreeCancelEditingAction): Fixed Constructor signature.
	(actionPerformed): Fixed to use treeModel field.
	(paintRecursive): Fixed to use line drawing helper methods.
	(paintControlIcons): Fixed to use control icons helper methods.
	(getCurrentControlIcon): New method.
	(findNode): Changed to use treeModel field.
	(getNextNode): Likewise.
	(getPreviousNode): Likewise.
	(getNextSibling): Likewise.
	(getPreviousSibling): Likewise.
	(getPathToRoot): Likewise.
	(drawDashedHorizontalLine): Implemented.
	(drawDashedVerticalLine): Implemented.
	(paintExpandControl): Implemented.
	(paintHorizontalPartOfLeg): New method.
	(paintVerticalPartOfLeg): New method.
	(paintRow): New method.
	(shouldPaintExpandControl): New Method.
	* javax/swing/plaf/metal/MetalTreeUI.java:
	Added private fields for listeners.
	(getHorizontalLegBuffer): Implemented.
	(installUI): Implemented.
	(uninstallUI): Implemented.
	(decodeLineStyle): New method.
	(isLocationInExpandControl): Implemented.
	(paint): Implemented.
	(paintHorizontalSeparators): New method.
	(paintVerticalPartOfLeg): Implemented.
	(paintHorizontalPartOfLeg): Implemented.

2005-09-14  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTextArea.java:
	(append): After non-empty append, invalidate.
	(setRows): If number of rows changes, invalidate.
	(setColumns): If number of columns changes, invalidate.

2005-09-14  Anthony Green  <green@redhat.com>

	* java/net/InetSocketAddress.java (toString): Adjust to match Sun
	JRE output, which is [HOSTNAME]/[IPADDRESS]:[PORT].
	* gnu/java/security/der/DERReader.java: Remove stray semicolon.
	* gnu/xml/pipeline/ValidationConsumer.java: Fix flags test (was
	constant expression).
	* javax/swing/plaf/basic/BasicFileChooserUI.java,
	* javax/swing/filechooser/FileSystemView.java,
	* java/util/logging/LogManager.java,
	* gnu/xml/libxmlj/dom/GnomeDocument.java,
	* gnu/xml/aelfred2/JAXPFactory.java,
	* gnu/java/security/x509/ext/Extension.java,
	* gnu/java/security/x509/ext/BasicConstraints.java,
	* gnu/java/rmi/server/RMIObjectInputStream.java,
	* gnu/java/rmi/dgc/DGCImpl_Stub.java,
	* gnu/java/beans/decoder/BooleanHandler.java: Use
	Boolean.valueOf() instead of new Boolean.

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

	* java/lang/StringBuffer.java (StringBuffer): New constructor.
	(trimToSize): New method.
	(codePointAt): Likewise.
	(codePointBefore): Likewise.
	(codePointCount): Likewise.
	(appendCodePoint): Likewise.
	(append): New overloads.
	(insert): Likewise.

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

	* java/lang/Character.java: Typo fixes in javadoc.

2005-09-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(calculateTabWidth): Don't use the calcRect here. This lead to an
	inconsistent state when this method is called from another method
	that also uses calcRect.
	(calculateTabHeight): Don't use the calcRect here. This lead to an
	inconsistent state when this method is called from another method
	that also uses calcRect.

2005-09-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java:
	Reformatted file.

2005-09-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/io/ObjectInputStream.java:
	(readObject()): Moved marker parsing to its own method.
	(parseContent(byte)): Fixed TC_OBJECT handling to loop on
	blockdata written manually by the class.
	
2005-09-14  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* native/jni/classpath/jcl.c: Replaced undefined 	
	POINTERS_ARE_64BIT with SIZEOF_VOID_P == 8.

2005-09-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(PaletteCloseIcon): now implements UIResource.

2005-09-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ButtonModel.java: Added API docs all over.

2005-09-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java: Added API comments to make clear
	that null values for tab titles are allowed.

2005-09-14  Roman Kennke  <kennke@aicas.com>

	Fixes Bug#23859.
	* javax/swing/JTabbedPane.java
	(insertTab): Check if title == null and if so, then set it
	to "". Otherwise the null string would cause a segfault or
	an assertion failure in font metrics calculation as reported
	in bug#23859.

2005-09-14  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/CORBA/ExceptionCreator.java: minor API doc fixes,
	* gnu/CORBA/Version.java: likewise.

2005-09-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicFormattedTextFieldUI.java:
	(getPropertyPrefix): added API docs,
	* javax/swing/plaf/basic/BasicPasswordFieldUI.java:
	(getPropertyPrefix): added API docs,
	* javax/swing/plaf/basic/BasicTextAreaUI.java:
	(getPropertyPrefix): added API docs,
	* javax/swing/plaf/basic/BasicTextFieldUI.java:
	(getPropertyPrefix): added API docs,
	* javax/swing/plaf/basic/BasicTextPaneUI.java:
	(getPropertyPrefix): added API docs.

2005-09-14  David Gilbert  <david.gilbert@object-refinery.com>

	* org/omg/CORBA/ORB.java: minor API doc fixes,
	* org/omg/CORBA/PERSIST_STORE.java: likewise,
	* org/omg/CORBA/PolicyError.java: likewise,
	* org/omg/CORBA/ValueBaseHolder.java: likewise,
	* org/omg/CORBA/VisibilityHelper.java: likewise.

2005-09-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalComboBoxIcon.java: fixed header,
	(paintIcon): change color to reflect component state.

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

	* .settings/org.eclipse.jdt.core.prefs: Ignore javadoc warnings
	for hidden or deprecated members.

2005-09-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	Bumped up serialVersionUIDs to JDK 1.5 compatibility.
	(getContent): Made method final.
	(AbstractElement.dumpElement): Removed superfluous private method.
	(AbstractElement.dump): Made diagnostic output more speaking.
	* javax/swing/text/BoxView.java
	(paintChild): Don't allocate the child region here.
	(paint): Allocate the child region here instead.
	* javax/swing/text/ComponentView.java:
	Added API doc comments.
	* javax/swing/text/CompositeView.java
	(getNextVisualPositionFrom): Declared to throw BadLocationException.
	(getNextNorthSouthVisualPositionFrom): Likewise.
	(getNextEastWestVisualPositionFrom): Likewise.
	* javax/swing/text/DefaultCaret.java
	Bumped up serialVersionUIDs to JDK 1.5 compatibility.
	* javax/swing/text/DefaultEditorKit.java
	Slight reformatting.
	* javax/swing/text/DefaultFormatter.java
	Bumped up serialVersionUIDs to JDK 1.5 compatibility.
	* javax/swing/text/DefaultStyledEditorKit.java
	(ElementBuffer.insertUpdate): Removed unneeded statement.
	(ElementBuffer.insertStartTag): Attach a resolve parent to new
	paragraph elements.
	(createDefaultRoot): Attach a resolve parent to new paragraph
	elements.
	* javax/swing/text/InternationalFormatter.java
	Bumped up serialVersionUIDs to JDK 1.5 compatibility.
	* javax/swing/text/JTextComponent.java
	Slight reformatting.
	(paramString): Added TODO comment.
	* javax/swing/text/SimpleAttributeSet.java
	Bumped up serialVersionUIDs to JDK 1.5 compatibility.
	(equals): Don't require object to be SimpleAttributeSet. Allows
	comparing to all kinds of AttributeSets.
	(isEqual): Likewise.
	* javax/swing/text/StringContent.java
	Bumped up serialVersionUIDs to JDK 1.5 compatibility.
	* javax/swing/text/StyleConstants.java
	(getBackground): Return white as default background instead of black.
	* javax/swing/text/StyleConstext.java
	Bumped up serialVersionUIDs to JDK 1.5 compatibility.
	(SmallAttributeSet.equals):  Don't require object to be
	SmallAttributeSet. Allows comparing to all kinds of AttributeSets.
	* javax/swing/text/StyledEditorKit.java
	Fixed some comments.
	* javax/swing/text/TabSet.java
	Bumped up serialVersionUIDs to JDK 1.5 compatibility.
	* javax/swing/text/TabStop.java
	Bumped up serialVersionUIDs to JDK 1.5 compatibility.
	* javax/swing/text/View.java
	Removed unneeded import.
	
2005-09-14  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/JOptionPane.java:
	(showConfirmDialog): Changed QUESTION_MESSAGE like the JDK
	does.
	* javax/swing/plaf/basic/BasicOptionPaneUI.java:
	(getButtons): Treat DEFAULT_OPTION like
	YES_NO_CANCEL_OPTION like the JDK.

2005-09-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(GapContentPosition.getOffset): Made assertion more speaking.
	(GapContent): Modified initialization for compatibility with JDK.
	(shiftEnd): Update marks prior to modification of the content.
	Use new getPositionsInRange method.
	(shiftGap): Use new getPositionsInRange method. Tweaked to corectly
	update the marks.
	(shiftGapStartDown): New method.
	(shiftGapEndUp): New method.
	(replace): Use shiftGapEndUp. Modified resizing offset.
	(getGapStart): New method.
	(getGapEnd): New method.
	(getPositionsInRange): New method.

2005-09-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GlyphView.java
	(AbstractGlyphPainter.getAscent): New abstract method.
	(AbstractGlyphPainter.getDescent): New abstract method.
	(AbstractGlyphPainter.getBoundedPosition): New abstract method.
	(AbstractGlyphPainter.viewToModel): New abstract method.
	(AbstractGlyphPainter.getNextVisualPositionFrom): New method.
	(AbstractGlyphPainter.getPainter): New method.
	(DefaultGlyphPainter.paint): Add support for more text attributes.
	(DefaultGlyphPainter.getAscent): New method.
	(DefaultGlyphPainter.getDescent): New method.
	(DefaultGlyphPainter.getBoundedPosition): New method.
	(DefaultGlyphPainter.viewToModel): New method.
	(GlyphView): Store start and end offset in the GlyphView.
	(getPreferredSpan): Differentiate the axis parameter.
	(viewToModel): Implemented this method.
	(getStartOffset): Return value of private field instead of the
	element value.
	(getEndOffset): Return value of private field instead of the
	element value.
	(getBackground): New method.
	(isStrikeThrough): New method.
	(isSubscript): New method.
	(isSuperscript): New method.
	(isUnderline): New method.
	(clone): New method.
	(breakView): New method.
	(getBreakWeight): New method.
	(changedUpdate): New method.
	(insertUpdate): New method.
	(removeUpdate): New method.
	(createFragment): New method.
	(getAlignment): New method.
	(getNextVisualPositionFrom): New method.

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

	* java/util/regex/Matcher.java (matches): Javadoc fix.
	(start): Likewise.
	* java/lang/reflect/Proxy.java (equals): Javadoc fix.
	* java/io/ObjectInputStream.java (inputGetObjectStreamClasses): Javadoc
	fix.
	* java/util/zip/ZipFile.java (getEntry): Javadoc fix.
	* java/util/logging/XMLFormatter.java (getHead): Javadoc fix.
	* java/util/logging/LogManager.java (getLevelProperty): Javadoc fix.
	* java/util/logging/Handler.java (getEncoding): Javadoc fix.
	(setFilter): Likewise.
	* java/util/logging/FileHandler.java: Organized imports.
	* java/util/jar/Manifest.java (Manifest): Javadoc fix.
	* java/util/TreeMap.java (putFromObjStream): Javadoc fix.
	* java/util/SimpleTimeZone.java (isBefore): Javadoc fix.
	* java/util/ResourceBundle.java (tryBundle): Javadoc fix.
	* java/util/Random.java (seed): Javadoc fix.
	* java/util/Collections.java (SynchronizedSortedSet): Javadoc fix.
	(SingletonMap): Likewise.
	(addAll): Javadoc fix.
	* java/lang/reflect/UndeclaredThrowableException.java: Javadoc fix.
	* java/lang/reflect/Member.java (DECLARED, PUBLIC): Javadoc fix.
	* java/lang/ref/WeakReference.java: Javadoc fix.
	* java/lang/ref/Reference.java: Javadoc fix.
	(Reference): Likewise.
	* java/lang/Thread.java (setContextClassLoader): Javadoc fix.
	(getContextClassLoader): Likewise.
	(stop): Likewise.
	* java/lang/System.java (runFinalizersOnExit): Javadoc fix.
	* java/lang/String.java (upperExpand): Javadoc fix.
	* java/lang/StrictMath.java: Javadoc fixes.
	* java/lang/SecurityManager.java: Added imports for javadoc.
	(currentClassLoader): Javadoc fix.
	(classLoaderDepth): Likewise.
	(currentLoadedClass): Likewise.
	(checkRead): Likewise.
	(checkWrite): Likewise.
	(checkAccess): Likewise.
	* java/lang/RuntimePermission.java: Added import for javadoc.
	* java/lang/Readable.java (read): Added import for javadoc.

2005-09-13  Casey Marshall  <csm@gnu.org>

	* gnu/classpath/ByteArray.java: new file.
	* gnu/java/security/provider/Gnu.java
	(<init>): add Diffie Hellman and RSA algorithms.
	* gnu/javax/crypto/DiffieHellmanImpl.java: new file.
	* gnu/javax/crypto/GnuDHPrivateKey.java: new file.
	* gnu/javax/crypto/RSACipherImpl.java: new file.

2005-09-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalComboBoxButton.java: new file,
	* javax/swing/plaf/metal/MetalComboBoxEditor.java: likewise.

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

	* java/lang/Process.java: Added import for javadoc.
	* java/lang/Object.java (notify): Javadoc fix.
	(notifyAll): Likewise.
	* java/io/PipedInputStream.java (connect): Javadoc fix.
	* java/io/OutputStreamWriter.java: Organized imports.
	* java/io/ObjectStreamField.java (setOffset): Javadoc fix.
	* java/io/ObjectInputStream.java (readFields): Javadoc fix.
	* java/io/DataOutputStream.java (writeChars): Javadoc fix.
	(writeFloat): Likewise.
	(writeDouble): Likewise.
	* java/util/Locale.java (readObject): Javadoc fix.
	(writeObject): Likewise.
	* java/io/LineNumberReader.java (read): Javadoc fix.
	(setLineNumber): Likewise.
	(mark): Likewise.
	* java/io/InputStreamReader.java: Updated imports.
	* java/lang/Integer.java (parseInt): Javadoc fix.
	* java/io/FilterReader.java (skip): Javadoc fix.
	* java/util/HashMap.java (containsValue): Javadoc fix.
	* java/lang/ClassLoader.java (findLibrary): Javadoc fix.
	(setPackageAssertionStatus): Likewise.
	(setClassAssertionStatus): Likewise.
	* java/lang/Class.java: Added imports for javadoc.
	(matchMethod): Javadoc fix.
	* java/util/ArrayList.java (readObject): Javadoc fix.
	(writeObject): Likewise.
	* java/lang/String.java (CaseInsensitiveComparator): Javadoc fix.
	* java/util/zip/PendingBuffer.java (toByteArray): Javadoc fix.
	* javax/swing/plaf/metal/OceanTheme.java: Mark as 1.5.
	* java/util/logging/SimpleFormatter.java (format): Javadoc fix.
	* java/util/zip/ZipFile.java (getEntries): Javadoc fix.

2005-09-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(lightHighlight): removed,
	(installDefaults): only update component attributes if they are tagged
	with UIResource, initialise button colors from correct defaults,
	(uninstallDefaults): only clear attributes that are tagged with
	UIResource.

2005-09-13  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTree.java
	(AccessibleJTree): Added new Inner class.
	(AccessibleJTree.addAccessibleSelection): New method.
	(AccessibleJTree.clearAccessibleSelection): New method.
	(AccessibleJTree.fireVisibleDataPropertyChange): New method.
	(AccessibleJTree.getAccessibleAt): New method.
	(AccessibleJTree.getAccessibleChild): New method.
	(AccessibleJTree.getAccessibleChildrenCount): New method.
	(AccessibleJTree.getAccessibleIndexInParent): New method.
	(AccessibleJTree.getAccessibleRole): New method.
	(AccessibleJTree.getAccessibleSelection): New method.
	(AccessibleJTree.getAccessibleSelection): New method.
	(AccessibleJTree.getAccessibleSelectionCount): New method.
	(AccessibleJTree.isAccessibleChildSelected): New method.
	(AccessibleJTree.removeAccessibleSelection): New method.
	(AccessibleJTree.selectAllAccessibleSelection): New method.
	(AccessibleJTree.treeCollapsed): New method.
	(AccessibleJTree.treeExpanded): New method.
	(AccessibleJTree.treeNodesChanged): New method.
	(AccessibleJTree.treeNodesInserted): New method.
	(AccessibleJTree.treeNodesRemoved): New method.
	(AccessibleJTree.treeStructureChanged): New method.
	(AccessibleJTree.valueChanged): New method.
	(AccessibleJTreeNode): Likewise.
	(AccessibleJTreeNode.addAccessibleSelection): New method.
	(AccessibleJTreeNode.addFocusListener): New method.
	(AccessibleJTreeNode.addPropertyChangeListener): New method.
	(AccessibleJTreeNode.clearAccessibleSelection): New method.
	(AccessibleJTreeNode.contains): New method.
	(AccessibleJTreeNode.doAccessibleAction): New method.
	(AccessibleJTreeNode.getAccessibleAction): New method.
	(AccessibleJTreeNode.getAccessibleActionCount): New method.
	(AccessibleJTreeNode.getAccessibleActionDescription): New method.
	(AccessibleJTreeNode.getAccessibleAt): New method.
	(AccessibleJTreeNode.getAccessibleChild): New method.
	(AccessibleJTreeNode.getAccessibleChildrenCount): New method.
	(AccessibleJTreeNode.getAccessibleComponent): New method.
	(AccessibleJTreeNode.getAccessibleContext): New method.
	(AccessibleJTreeNode.getAccessibleDescription): New method.
	(AccessibleJTreeNode.getAccessibleIndexInParent): New method.
	(AccessibleJTreeNode.getAccessibleName): New method.
	(AccessibleJTreeNode.getAccessibleParent): New method.
	(AccessibleJTreeNode.getAccessibleRole): New method.
	(AccessibleJTreeNode.getAccessibleSelection): New method.
	(AccessibleJTreeNode.getAccessibleSelectionCount): New method.
	(AccessibleJTreeNode.getAccessibleStateSet): New method.
	(AccessibleJTreeNode.getAccessibleText): New method.
	(AccessibleJTreeNode.getAccessibleValue): New method.
	(AccessibleJTreeNode.getBackground): New method.
	(AccessibleJTreeNode.getBounds): New method.
	(AccessibleJTreeNode.getCursor): New method.
	(AccessibleJTreeNode.getFont): New method.
	(AccessibleJTreeNode.getFontMetrics): New method.
	(AccessibleJTreeNode.getForeground): New method.
	(AccessibleJTreeNode.getLocale): New method.
	(AccessibleJTreeNode.getLocation): New method.
	(AccessibleJTreeNode.getLocationInJTree): New method.
	(AccessibleJTreeNode.getLocationOnScreen): New method.
	(AccessibleJTreeNode.getSize): New method.
	(AccessibleJTreeNode.isAccessibleChildSelected): New method.
	(AccessibleJTreeNode.isEnabled): New method.
	(AccessibleJTreeNode.isVisible): New method.
	(AccessibleJTreeNode.removeAccessibleSelection): New method.
	(AccessibleJTreeNode.removeFocusListener): New method.
	(AccessibleJTreeNode.removePropertyChangeListener): New method.
	(AccessibleJTreeNode.requestFocus): New method.
	(AccessibleJTreeNode.selectAllAccessibleSelection): New method.
	(AccessibleJTreeNode.setAccessibleDescription): New method.
	(AccessibleJTreeNode.setAccessibleName): New method.
	(AccessibleJTreeNode.setBackground): New method.
	(AccessibleJTreeNode.setBounds): New method.
	(AccessibleJTreeNode.setCursor): New method.
	(AccessibleJTreeNode.setEnabled): New method.
	(AccessibleJTreeNode.setFont): New method.
	(AccessibleJTreeNode.setForeground): New method.
	(AccessibleJTreeNode.setLocation): New method.
	(AccessibleJTreeNode.setVisible): New method.
	(removeDescendantToggledPaths): Implemented.
	(treeDidChange): Implemented.

2005-09-13  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jawt/jawt.c (_Jv_AWTLock): Do nothing.
	(_Jv_AWTUnlock): Likewise.

2005-09-13  David Daney  <ddaney@avtrex.com>

	* java/io/ByteArrayOutputStream.java: Reformated copyright notice.
	(toString(int)): Pass correct parameters to String constructor.

2005-09-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComboBox.java
	(getPrototypeDisplayValue): added API docs,
	(setPrototypeDisplayValue): fire property change event.
	
2005-09-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(ElementSpec): New inner class.
	(ElementBuffer.change): Also store the DefaultDocumentEvent.
	(ElementBuffer.split): Also update the document event.
	(ElementBuffer.insert): New method.
	(ElementBuffer.insertUpdate): New method.
	(ElementBuffer.insertStartTag): New method.
	(ElementBuffer.insertEndTag): New method.
	(ElementBuffer.insertContentTag): New method.
	(SectionElement): New inner class.
	(createDefaultRoot): Return SectionElement instead of BranchElement.
	(getParagraphElement): Optimized access to paragraph element.
	(setCharacterAttributes): Fire changedUpdate after modification.
	(insertUpdate): New method.

2005-09-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SizeRequirements.java
	(toString): Implemented this method.
	(calculateAlignedPositions): Partly implemented this method.

2005-09-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java: Added API comments all over.

2005-09-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTree.java: Reformatted file.
	* javax/swing/ListCellRenderer.java: Likewise.
	* javax/swing/ListSelectionModel.java: Likewise.
	* javax/swing/MenuElement.java: Likewise.
	* javax/swing/OverlayLayout.java: Likewise.
	* javax/swing/ProgressMonitor.java: Likewise.
	* javax/swing/ProgressMonitorInputStream.java: Likewise.
	* javax/swing/Renderer.java: Likewise.
	* javax/swing/RepaintManager.java: Likewise.
	* javax/swing/RootPaneContainer.java: Likewise.
	* javax/swing/Scrollable.java: Likewise.
	* javax/swing/SingleSelectionModel.java: Likewise.
	* javax/swing/SizeSequence.java: Likewise.
	* javax/swing/SpinnerListModel.java: Likewise.
	* javax/swing/UnsupportedLookAndFeelException.java: Likewise.
	* javax/swing/ViewportLayout.java: Likewise.
	* javax/swing/WindowConstants.java: Likewise.

2005-09-12  Tom Tromey  <tromey@redhat.com>

	* .settings/org.eclipse.jdt.core.prefs: Enable javadoc warnings.

2005-09-12  Tom Tromey  <tromey@redhat.com>

	* java/lang/ThreadLocal.java: Organized imports.
	* java/lang/Double.java: Organized imports.

2005-09-12  Casey Marshall  <csm@gnu.org>

	PR 23819
	* javax/security/auth/Subject.java (SecureSet.<init>): rename
	input paremeter to 'inElements.'
	(SecureSet.contains): return 'elements.contains,' not
	'elements.remove.'

	PR 23822
	* javax/security/auth/SubjectDomainCombiner.java
	(combine): don't access 'subject' if null.

2005-09-12  David Gilbert  <david.gilbert@object-refinery.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(mkDesktopWorld): add palette style frame,
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(closeIcon): new field,
	(installListeners): call createPropertyChangeListener() to create the 
	new listener to allow for overriding,
	(installDefaults): set the font in the title, read closeIcon from 
	defaults,
	(uninstallDefaults): clear closeIcon,
	(setButtonIcons): set icon for closeButton,
	(paintComponent): set font for title,
	* javax/swing/plaf/metal/MetalInternalFrameTitlePane.java
	(MetalInternalFrameTitlePanePropertyChangeHandler): new support class,
	(MetalTitlePaneLayout): likewise,
	(paletteTitleHeight): initialise from defaults elsewhere,
	(title): new private field,
	(installDefaults): initialise various defaults,
	(uninstallDefaults): clear defaults,
	(addSubComponents): add sub-components used in this look and feel,
	(createLayout): return new instance of MetalTitlePaneLayout,
	(paintPalette): renders the title pane using the palette style,
	(paintComponent): call paintPalette() if the internal frame uses the
	palette style, otherwise handle painting without calling superclass 
	anymore,
	(setPalette): update the icon visibility,
	(createPropertyChangeListener): return a new change handler,
	* javax/swing/plaf/metal/MetalInternalFrameUI.java
	(IS_PALETTE): new static field,
	(installUI): check IS_PALETTE property,
	(createNorthPane): removed empty border,
	(setPalette): update border as appropriate,
	(paletteListener): new private field,
	(installListeners): install a listener to handle changes in the 
	IS_PALETTE property,
	(uninstallListeners): clear the listener from installListeners(),
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): added defaults for 'DesktopIcon.border',
	'InternalFrame.paletteBorder', 'InternalFrame.paletteCloseIcon', and
	'InternalFrame.paletteTitleHeight'.
	
2005-09-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(putClientProperty): fire property change event.

2005-09-12  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JScrollPane.java:
	(addNonNull): Changed from adding to container with no constraints to
	adding to container with the appropriate ScrollPaneConstant as a 
	constraint.  This avoids IllegalArgumentExceptions in ScrollPaneLayout.
	(setColumnHeader): Added constraint to addNonNull call.
	(setCorner): Likewise.
	(setHorizontalScrollBar): Likewise.
	(setRowHeader): Likewise.
	(setVerticalScrollBar): Likewise.
	(setViewport): Likewise.
	* javax/swing/JViewport.java:
	(setViewSize): Don't set the size or fireStateChanged unless the new 
	size is different from the old size.
	(setView): Reset isViewSizeSet to false.
	* javax/swing/ScrollPaneLayout:
	(addSingletonComponent): Implemented and documented.
	(addLayoutComponent): Throw an IllegalArgumentException if key is 
	not one of the appropriate ScrollPaneConstants constants.  Added docs.
	(setVerticalScrollBarPolicy): Likewise.
	(setHorizontalScrollBarPolicy): Likewise.
	(getCorner): Added docs.

2005-09-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JCheckBox.java
	(AccessibleJCheckBox): New inner class.
	(getAccessibleContext): Implemented this method.
	* javax/swing/JLayeredPane.java
	(AccessibleJLayeredPane): New inner class.
	(getAccessibleContext): Implemented this method.

2005-09-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(getCellRect): Don't include cell gap in cell rectangle
	calculation. It's already included in TableColumnModel.getWidth().
	(createDefaultColumnsFromModel): Initialize table header values.
	* javax/swing/plaf/basic/BasicTableUI.java
	(paint): Don't include cell gap in cell rectangle
	calculation. It's already included in TableColumnModel.getWidth().

2005-09-12  Tom Tromey  <tromey@redhat.com>

	* org/ietf/jgss/GSSException.java (BAD_BINDINGS, BAD_MECH,
	BAD_NAME, BAD_NAMETYPE, CONTEXT_EXPIRED, CREDENTIALS_EXPIRED,
	DEFECTIVE_CREDENTIAL, DEFECTIVE_TOKEN, DUPLICATE_TOKEN, FAILURE,
	NO_CONTEXT, NO_CRED, OLD_TOKEN): Use values from JDK, not RFC.

2005-09-12  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* lib/Makefile.am (JAVAC): Specify -source 1.4 to ecj.

2005-09-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/tree/DefaultTreeCellEditor.java
	(isCellEditable): Stopped the timer if it is started and
	should not be restarted. This is a fix for the 'click-pause-
	click' method to start editing.

2005-09-12  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/AWTUtilities.java
	(convertPoint): Added a check to determine if source and
	destination components are showing.
	* javax/swing/JPopupMenu.java
	(setVisible): Added check to determine if component is showing.
	(show): Likewise.
	* javax/swing/MenuSelectionManager.java
	(componentForPoint): Added check to determine if component is showing.
	* javax/swing/ToolTipManager.java
	(showTip): Added check to determine if component is showing.
	* javax/swing/plaf/basic/BasicToolBarUI.java
	(mousePressed): Added check to determine if component is showing.

2005-09-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(InternalFrameCloseIcon.paintIcon): change colors according to button
	state,
	(InternalFrameAltMaximizeIcon.paintIcon): likewise,
	(InternalFrameMaximizeIcon.paintIcon): likewise,
	(InternalFrameMinimizeIcon.paintIcon): likewise.

2005-09-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(TableHeaderBorder): New inner class.
	(TextFieldBorder.paintBorder): Only paint the active border
	if the text field is enabled _and_ editable.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added default to use the new
	TableHeaderBorder for table headers.

2005-09-12  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/Container.java:
	(findComponentForMouseEventAt): Reduced visibility to package-private.
	(getDeepestComponentForMouseEventAt): Reduced visibility to 
	package-private and removed static modifier.

2005-09-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(desktopIconBorder): new private field,
	(DesktopIconBorder): new support class,
	(getDesktopIconBorder): implemented,
	(InternalFrameBorder.paintBorder): change color of line highlights if
	the internal frame is selected.
	
2005-09-12  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomDocument.java: Implementation of xml:id W3C
	Recommendation.

2005-09-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(TableColumnPropertyChangeHandler): New inner class. Handles
	changes of column widths.
	(JTable(TableModel, TableColumnModel, ListSelectionModel)):
	Check if column model == null and if so, create a default model.
	(initializeLocalVars): Changed to use createDefaultColumnsFromModel
	instead of createColumnsFromModel.
	(addColumn): Add property change handler to new column.
	(createColumnsFromModel): Removed redundant private method.
	Use the public createDefaultColumnsFromModel instead.
	(tableChanged): Use createDefaultColumnsFromModel instead of
	createColumnsFromModel.
	(setModel): Use createDefaultColumnsFromModel instead of
	createColumnsFromModel.
	(doLayout): When handling AUTO_RESIZE_OFF, then adjust the
	size of the resizing column to it's (new) preferred size.
	(createDefaultColumnsFromModel): Added assertion to make sure
	that the column model is not null. Add property change handler
	to new columns.
	* javax/swing/table/TableColumn.java
	(setWidth): Fire property change with name 'width' instead
	of using the (obsolete) constant field COLUMN_WIDTH_PROPERTY.
	(setPreferredWidth): Make this property a bound property.

2005-09-11  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR swing/22922
	* java/awt/event/InputEvent.java (modifiersEx): New field.
	(InputEvent): Assume modifiers parameter contains both new- and
	old-style masks.
	(isShiftDown): Check modifiers for old-style shift mask and
	modifiersEx for new-style shift mask.
	(isControlDown): Likewise for control mask.
	(isMetaDown): Likewise for meta mask.
	(isAltDown): Likewise for alt mask.
	(isAltGraphDown): Likewise for alt-graph mask.
	(getModifiers): Return value of modifiers field.
	(getModifiersEx): Return value of modifiersEx field.
	* java/awt/event/MouseEvent.java
	(MouseEvent(Component,int,long,int,int,int,int,boolean,int)):
	Clear button new-style mask for mouse released events.
	(paramString): Remove old-style modifier handling.
	(readObject): Extend modifiers and assign to modifiersEx.
	* java/awt/event/KeyEvent.java (readObject): Extend modifiers and
	assign to modifiersEx.
	* native/jni/gtk-peer/gtkpeer.h: Define macros for new-style mouse
	masks.  Define macros for old-style key masks.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c:
	Remove macros for old-style key masks.
	(button_to_awt_mods): Always return bitwise OR of new- and
	old-style modifiers.
	(cp_gtk_state_to_awt_mods): Likewise.
	(state_to_awt_mods_with_button_states): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(keyevent_state_to_awt_mods): Likewise.

2005-09-11  Mark Wielaard  <mark@klomp.org>

	* m4/acinclude.m4 (CLASSPATH_CHECK_GCJ): Check for gcj 4 with
	#if __GNUC__ <= 3.

2005-09-11  Mark Wielaard  <mark@klomp.org>

	* lib/gen-classlist.sh.in: Use sort -r to work around bug #21418.

2005-09-11  Mark Wielaard  <mark@klomp.org>

	* gnu/java/nio/channels/FileChannelImpl.java (finalize): Check whether
	fd != -1 before calling close().

2005-09-10  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(PaletteBorder): new class.
	
2005-09-10  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(PaletteCloseIcon): new class.

2005-09-10  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalInternalFrameUI.java:
	(instances): removed,
	(createUI): just return new instance,
	API docs all over.
	
2005-09-10  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (fail_g2d): New method.
	(GdkGraphics2D(GdkGraphics2D)): Call fail_g2d if Graphics2D not
	specified.
	(GdkGraphics2D(int,int)): Likewise.
	(GdkGraphics2D(GtkComponentPeer)): Likewise.

2005-09-10  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/EmbeddedWindow.java (addNotify): Throw
	AssertionError if field access fails.

2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (static): Reindent
	second error message.

2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR awt/23692
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (static): Only call
	initStaticState if using Graphics2D.  Otherwise print error and
	exit.
	(setClip(Shape)): If clip == null and component == null, do
	nothing.

2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(GdkGraphics(GtkComponentPeer)): Set font field to a sensible
	default if component font is null.

2005-09-09  Keith Seitz  <keiths@redhat.com>

	* vm/reference/gnu/classpath/jdwp/VMIdManager.java (newObjectId): 
	Set the reference for the ID.

2005-09-09  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/VmDeathEvent.java: New file.

2005-09-09  Tom Tromey  <tromey@redhat.com>

	For PR libgcj/23288:
	* java/net/URLClassLoader.java (definePackage): Correctly order
	arguments to definePackage.  Look up per-entry Attributes.
	(getAttributeValue): New method.

2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java (installUI): Install
	defaults after initializing tree.

2005-09-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/CSS.java
	New file. Defines standard CSS attributes.

2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Window.java (isDisplayable): Do not call super's
	isDisplayable.

2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR swing/23796
	* gnu/java/awt/peer/gtk/GtkDialogPeer.java
	(create): Respect dialog's decorated flag.

2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR swing/23558
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(window_get_new_state): Remove function.
	(window_get_new_state): Mark widget parameter as unused.  Remove
	call to window_get_new_state.
	(window_active_state_change_cb): Remove function.
	(connectSignals): Do not connect window_active_state_change_cb
	callback.

2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR swing/23796
	* gnu/java/awt/peer/gtk/GtkFramePeer.java (create): Respect
	frame's decorated flag.

2005-09-09  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(installDefaults): Fixed method signature.
	(uninstallDefaults): Likewise.
	(uninstallUI): Fixed call to uninstallDefaults.
	(installUI): Fixed call to installDefaults.
	* javax/swing/JPopupMenu.java
	(HeavyWeightPopup): Fixed to extend JDialog, since
	nothing is added to the taskbar with JDialog. Also, 
	fixed so the popup menu is undecorated. Frames and
	title bars should not be drawn, when popup is a 
	HeavyWeightPopup. A new bug was filed since the
	decorated and undecorated frames are all drawn 
	alike.
	* javax/swing/JRootPane.java
	(setWindowDecorationStyle): Added check for
	PLAIN_DIALOG.

2005-09-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added the remaining color defaults.

2005-09-09  Andrew Haley  <aph@redhat.com>

	* java/net/URLClassLoader.java (addURLImpl): Synchronize on the
	loader.
	(toString): Likewise.

2005-09-09  Jeroen Frijters  <jeroen@frijters.net>

	* javax/security/auth/login/Configuration.java
	(getConfiguration): Call getConfig() instead of doing the work.
	(getConfig): Instantiate the configuration provider.

2005-09-09  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/reflect/Proxy.java
	(pack): Initialize field.

2005-09-09  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/ObjectInputStream.java: Removed static initializer.
	* java/io/ObjectOutputStream.java: Removed static initializer.
	* vm/reference/java/io/VMObjectInputStream.java: Added static
	initializer.
	(oisClass, vmoisClass): Removed unused fields.
	* vm/reference/java/io/VMObjectStreamClass.java: Added static
	initializer.

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

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): re-added 'ScrollBar.width' default.
	
2005-09-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicArrowButton.java
	(buttonBorder.paintBorder): fixed drawing issues,
	(getMaximumSize): return constant value,
	(getMinimumSize): likewise,
	(getPreferredSize): likewise.
	
2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR swing/23558
	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(FocusHandler.focusLost): Do not call popup.hide.

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

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (static): Fix typo
	(Grahics -> Graphics).

2005-09-08  Tom Tromey  <tromey@redhat.com>

	* examples/gnu/classpath/examples/swing/ClasspathSwingActivityBoard.launch:
	New file.

2005-09-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(MetalLookAndFeel): Only load default theme if no theme has been
	set before.
	(initComponentDefaults): Fixed and added color default values
	for various components.

2005-09-08  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/Container.java:
	(findComponentForMouseEventAt): Removed check for opacity.

2005-09-08  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
	(executeVersion): Major and minor version are integers, not bytes.

2005-09-08  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/Container.java:
	(findComponentForMouseEventAt): New implementation method.
	(getDeepestComponentForMouseEventAt): New implementation method.
	(acquireComponentForMouseEvent): Replaced call to
	AWTUtilities.getDeepestComponentAt with call to new implementation
	method getDeepestComponentAt to appropriately handle transparent
	components with no MouseListeners attached.
	
2005-09-08  Tom Tromey  <tromey@redhat.com>

	* .classpath: Enable compilation of jdwp.

2005-09-08  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java
	(runCommand): Return value is true to indicate that the back-end
	should shutdown; not whether it should stay alive.
	* gnu/classpath/jdwp/processor/ArrayTypeCommandSet.java
	(runCommand): Likewise.
	* gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.java
	(runCommand): Likewise.
	* gnu/classpath/jdwp/processor/ClassTypeCommandSet.java
	(runCommand): Likewise.
	* gnu/classpath/jdwp/processor/EventRequestCommandSet.java
	(runCommand): Likewise.
	* gnu/classpath/jdwp/processor/MethodCommandSet.java (runCommand):
	Likewise
	* gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java
	(runCommand): Likewise.
	* gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
	(runCommand): Likewise.
	* gnu/classpath/jdwp/processor/StackFrameCommandSet.java
	(runCommand): Likewise.
	* gnu/classpath/jdwp/processor/StringReferenceCommandSet.java
	(runCommand): Likewise.
	* gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.java
	(runCommand): Likewise.
	* gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java
	(runCommand): Likewise.
	* gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
	(runCommand): Likewise.

2005-09-08  Lillian Angel  <langel@gmail.com>
	
	* javax/swing/JPopupMenu.java:
	Fixes Bug #PR23533
	(setVisible): Adjusted popup menu's location
	depending on the size of the screen.

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

	* Makefile.am (EXTRA_DIST): Add autogen.sh
	* lib/standard.omit: Remove gnu/classpath/jdwp, gnu/xml/stream and
	javax/xml/stream.
	* vm/reference/standard.omit: Removed.

2005-09-08  Tom Tromey  <tromey@redhat.com>

	* .classpath: Omit more directories and files.
	* .settings/org.eclipse.jdt.core.prefs: Compile to 1.4 platform.
	* .settings/org.eclipse.jdt.ui.prefs: Likewise.

2005-09-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/OceanTheme.java
	New class. Implements the ocean theme for Metal.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(createDefaultTheme): Made Ocean the default theme as in JDK1.5.

2005-09-08  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(FileChooserDetailViewIcon): new private class,
	(FileChooserHomeFolderIcon): likewise,
	(FileChooserListViewIcon): likewise,
	(FileChooserNewFolderIcon): likewise,
	(FileChooserUpFolderIcon): likewise,
	(getFileChooserDetailViewIcon): implemented,
	(getFileChooserHomeFolderIcon): implemented,
	(getFileChooserListViewIcon): implemented,
	(getFileChooserNewFolderIcon): implemented,
	(getFileChooserUpFolderIcon): implemented.

2005-09-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(foreground): Removed this field. This is better stored
	in the text component itself.
	(inactiveForeground): Removed this field. This is stored
	in the disabledTextColor property of the text component.
	(installDefaults): Load foreground and disabledTextColor
	properties from UIDefaults. Remove call to updateComponentColors.
	(paintBackground): Set the correct background color here.
	(updateComponentColor): Removed this method.
	* javax/swing/text/PlainView.java
	(disabledColor): New field. Stores the text color for disabled
	text fields.
	(drawUnselectedText): Respect the 'enabled' property of
	the text component.
	(paint): Fetch the disabled color of the text component.

2005-09-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(UpdateHandler.propertyChanged): Also update colors if the
	'editable' property is changed.
	(updateComponentColors): Correctly handle editable vs. enabled
	changes.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Fixed color defaults for TextFields
	to use the current theme.

2005-09-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(UpdateHandler.propertyChanged): Update the components colors
	when the state of the 'enabled' property changes.
	(foreground): New field that stores the foreground color.
	(background): New field that stores the background color.
	(inactiveForeground): New field that stores the inactive
	foreground color.
	(inactiveBackground): New field that stores the inactive
	background color.
	(updateComponentColors): New method. Updates the text
	components' colors according to the state of the 'enabled'
	property.
	(installDefaults): Load the defaults for the component colors.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added defaults for TextField colors
	and border.

2005-09-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	Fixes Bug #22966.
	(GapContentPosition.getOffset): Added assertion to check for
	consistent state of the Position. Fixed condition in if-statement.
	(serialVersionUID): Updated serialVersionUID to match JDK1.5.
	(shiftGap): If gapStart == newGapStart, then return immediatly.

2005-09-08  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): added 'ScrollBar.width' default,
	* javax/swing/plaf/metal/MetalScrollBarUI.java
	(MetalScrollBarPropertyChangeHandler): new class,
	(FREE_STANDING_PROP): added,
	(MIN_THUMB_SIZE): modified dimensions,
	(increaseButton): new field,
	(decreaseButton): new field,
	(scrollBarWidth): new field,
	(isFreeStanding): new field,
	(createUI): just return a new instance,
	(installDefaults): implemented,
	(createPropertyChangeListener): implemented,
	(createDecreaseButton): implemented,
	(createIncreaseButton): implemented,
	(paintTrack): implemented,
	(paintTrackHorizontal): new private method,
	(paintTrackVertical): new private method,
	(paintThumb): updated,
	* javax/swing/plaf/metal/MetalScrollButton.java: implemented,
	* javax/swing/plaf/metal/MetalUtils.java
        (fillMetalPattern): modified alternating color calculation.

2005-09-08  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/ObjectInputStream.java
	(readObject): Removed println and fixed Proxy class descriptor
	deserialization.
	(resolveProxyClass): Use Class.forName() instead of calling
	ClassLoader.loadClass() directly.
	* java/io/ObjectOutputStream.java
	(writeClassDescriptor): Added support for serializing Proxy
	class descriptor.

2005-09-08  Jeroen Frijters  <jeroen@frijters.net>

	* javax/naming/CompoundName.java
	(readObject, writeObject): New methods.

2005-09-07  Lillian Angel  <langel@redhat.com>

	* javax/swing/SpringLayout.java:
	Fixes Bug #PR23003
	(getConstraints): Width and height should always
	be reset, even if constraints is not null. Constraints
	deal with the location of the component.

2005-09-07  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/GapContent.java:
	Fixes Bug #PR22966
	(getOffset): Fixed check, was redundant.

2005-09-07  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/GapContent.java:
	Fixes Bug #PR22966
	(getOffset): Added check for mark <= gapEnd

2005-09-07  Roman Kennke  <roman@kennke.org>

	* javax/swing/JApplet.java
	(AccessibleJApplet): New inner class.
	(getAccesibleContext): Implemented accessibility support.
	* javax/swing/JDialog.java
	(AccessibleJDialog): New inner class.
	(getAccesibleContext): Implemented accessibility support.
	* javax/swing/JFrame.java
	(AccessibleJFrame): New inner class.
	(getAccesibleContext): Implemented accessibility support.
	* javax/swing/JWindow.java
	(AccessibleJWindow): New inner class.
	(getAccesibleContext): Implemented accessibility support.

2005-09-07  Roman Kennke  <roman@kennke.org>

	* javax/swing/JPanel.java
	(AccessibleJPanel): New inner class.
	(getAccessibleContext): Implemented this method.

2005-09-07  Roman Kennke  <roman@kennke.org>

	* javax/swing/JPanel.java: Reformatted to match our coding
	standards.

2005-09-07  Roman Kennke  <roman@kennke.org>

	* javax/swing/JViewport.java
	(AccessibleJViewport): New inner class.
	(getAccessibleContext): New method. Implements the Accessible
	interface for JViewport.

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

	* javax/swing/plaf/metal/MetalIconFactory.java
	(HorizontalSliderThumbIcon.paintIcon): handle disabled component state,
	and fetch colors from the look and feel,
	(VerticalSliderThumbIcon.paintIcon): likewise,
	* javax/swing/plaf/metal/MetalSliderUI.java
	(MetalPropertyListener): implemented,
	(constructor): added color initialisation,
	(createUI): reimplemented to return a new instance every time,
	(createPropertyChangeListener): return a new instance of 
	MetalPropertyListener,
	(paintTrack): reimplemented to handle track fill option, and the 
	disabled component state,
	(paintMinorTickForHorizSlider): fetch colors from look and feel,
	(paintMajorTickForHorizSlider): likewise,
	(paintMinorTickForVertSlider): likewise,
	(paintMajorTickForVertSlider): likewise.
	
2005-09-07  Robert Schuster  <robertschuster@fsfe.org>

	* native/jni/qt-peer/componentevent.cpp: Added inclusion
	of assert.h

2005-09-07  Robert Schuster  <robertschuster@fsfe.org>

	* INSTALL: Mention that GCJ4 is now mandatory.

2005-09-07  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/Box.java: Added java.awt.Container import statement.

2005-09-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): added some RadioButton defaults,
	* javax/swing/plaf/metal/MetalRadioButtonUI.java
	(instance): removed,
	(focusColor): added,
	(selectColor): added,
	(disabledTextColor): added,
	(createUI): return a new instance for every component,
	(installDefaults): implemented,
	(uninstallDefaults): implemented,
	(getSelectColor): implemented,
	(getDisabledTextColor): implemented,
	(getFocusColor): implemented,
	(paint): added FIXME note,
	(paintFocus): implemented.

2005-09-06  Lillian Angel  <langel@redhat.com>
	
	Fixes Bug #PR23023 
	* javax/swing/plaf/basic/BasicFileChooserUI.java:
	Added 2 fields and reformatted copyright.
	(actionPerformed): Should be able to open directories.
	(mouseClicked): Set text in text field.
	(installUI): Initialized the current parent path.
	(installComponents): Fixed initialization for text field.	

2005-09-06  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicFileChooserUI.java:
	Formatted entire class.

2005-09-06  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Set version to 0.19-pre.

	* doc/www.gnu.org/announce/20050906.wml: New file.
	* doc/www.gnu.org/newsitems.txt: Add 0.18 release announcement.
	* doc/www.gnu.org/downloads/downloads.wml: Add 0.18.

2005-09-06  Roman Kennke  <roman@kennke.org>

	* javax/swing/Box.java
	(AccessibleBox): Extend Container.AccessibleAWTContainer.
	(Filler.AccessibleBoxFiller): Extend Component.AccessibleAWTComponent.
	(Filler.getAccessibleContext): Uncomment disabled code.
	(getAccessibleContext): Uncomment disabled code.
	* javax/swing/JRootPane.java:
	JRootPane implements Accessible.
	(AccessibleJRootPane): Extend AccessibleJComponent.

2005-09-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(RadioButtonIcon.drawCheck): removed,
	(RadioButtonIcon.paintIcon): reimplemented,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): added defaults for JRadioButton.
	
2005-09-06  Lillian Angel  <langel@redhat.com>

	Fixes Bug #PR20015
	* javax/swing/JMenuBar.java
	(getUIClassID): Fixed API documentation.
	* javax/swing/plaf/basic/BasicMenuBarUI.java:
	Added a private field for the mouse listener.
	(BasicMenuBarUI): Initialized mouseListener.
	(installListeners): Added mouseListener.
	(uninstallListeners): Removed mouseListener.
	(MouseInputHandler): New class added.
	(mouseClicked): Added code to deselect menu items
	when menu bar is clicked.	

2005-09-06  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	Fixes Bug #PR23527 
	(paintMenuItem): Moved view rectangle over to the 
	left the same amount as defaultTextIconGap so the
	accelerator is painted with some space on the right.

2005-09-06  Lillian Angel <langel@redhat.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	Formatted class.

2005-09-06  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicScrollBarUI:
	Fixes Bug PR23529.
	(installUI): Changed delay for Timer. Was set too
	long and actionPerformed was not being called fast
	enough when the user clicks on the scroll bar. This
	is because the timer is stopped after the mouse is
	released.

2005-09-06  Mark Wielaard  <mark@klomp.org>

	* NEWS: Add new features for 0.18.
	* configure.ac: Set version to 0.18.

2005-09-06  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gtkpeer.h (SYNCHRONIZE_GDK): Define.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c (gtkInit)
	[SYNCHRONIZE_GDK]: Make GDK synchronous.

2005-09-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR awt/20720
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(get_first_keyval_from_keymap): Return -1 if no keyval was found
	for given hardware keycode.
	(keysym_to_awt_keycode): Likewise.
	(keysym_to_awt_keylocation): Likewise.
	(key_press_cb): Return immediately if no keyval was found for
	given hardware keycode.
	(key_release_cb): Likewise.

2005-09-05  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/Makefile.am (all-local): Invoke $(SHELL) to execute
	the script.

	* scripts/check_jni_methods.sh: Make script working with non GNU
	grep versions.

2005-09-05  Roman Kennke  <roman@kennke.org>

	* javax/swing/event/DocumentEvent.java:
	(ElementChange) Made inner interface static to conform to the specs.

2005-09-05  Roman Kennke  <roman@kennke.org>

	* javax/swing/JDesktopPane.java: Fixed typo in class description.
	* javax/swing/JEditorPane.java: Removed unneeded import.
	Added class description.
	* javax/swing/JDialog.java: Made class description more useful.
	* javax/swing/JFileChooser.java: Added class description.
	* javax/swing/JFormattedTextField.java: Added class description.
	(AbstractFormatter): Likewise.
	(AbstractFormatterFactory): Likewise.
	* javax/swing/JFrame.java: Made class description more useful.

2005-09-05  Roman Kennke  <roman@kennke.org>

	* javax/swing/event/DocumentEvent.java:
	Reindented file to conform to our coding standards.

2005-09-05  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/XMLEventAllocatorImpl.java,
	gnu/xml/stream/XMLInputFactoryImpl.java,
	gnu/xml/stream/XMLStreamReaderImpl.java: Various fixes from system
	testing.
	* javax/xml/namespace/QName.java: Avoid unnecessary test.

2005-09-05  Mark Wielaard  <mark@klomp.org>

	* lib/standard.omit: Add gnu/xml/stream and javax/xml/stream.
	* NEWS: Describe Untested/Disabled new features.

2005-09-04  Mark Wielaard  <mark@klomp.org>

	* configure.ac (AC_CONFIG_FILES): Add examples/Makefile.jawt.
	* examples/.cvsignore: Add Makefile.jawt.
	* examples/Makefile.am (EXAMPLE_C_FILES): New variable.
	(ALL_EXAMPLE_FILES): Likewise.
	(install-data-local): Use ALL_EXAMPLE_FILES and add Makefile.jawt.
	(uninstall-local): Likewise.
	(EXTRA_DIST): Add Makefile.awt.in.
	* examples/Makefile.jawt.in: New file.
	* examples/README: Add jawt instructions.
	* examples/gnu/classpath/examples/jawt/DemoJAWT.c
	(Java_DemoJAWT_paint): Rename to
	Java_gnu_classpath_examples_jawt_DemoJAWT_paintIt.
	(Java_gnu_classpath_examples_jawt_DemoJAWT_paintIt): Flip foreground
	color based on on parameter.
	* examples/gnu/classpath/examples/jawt/DemoJAWT.java (paint): Renamed
	paintIt.
	(paint): Call paintIt.
	(on): New boolean field.
	(main): Add Frame name, switch on variable every 0.5 seconds and call
	Frame.repaint().
	* examples/gnu/classpath/examples/jawt/Makefile: Removed.
	* include/Makefile.am (include_HEADERS): New for jni.h, jni_md.h,
	jawt.h and jawt_md.h.

2005-09-05  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/reflect/Proxy.java
	(sameTypes): Removed.
	(equals): Fixed bug #23727.

2005-09-04  Mark Wielaard  <mark@klomp.org>

	* gnu/classpath/jdwp/event/filters/ClassMatchFilter.java
	(matches): Remove InvalidClassException since it is never thrown.
	* vm/reference/gnu/classpath/jdwp/VMIdManager.java
	(newReferenceTypeId): Only return null when SoftReference is cleared,
	don't catch InstantiationException or IllegalAccessException since
	they are never thrown.

2005-09-04  Mark Wielaard  <mark@klomp.org>

	* gnu/CORBA/NamingService/NamingServiceTransient.java: Re-un-indent
	boilerplate.

2005-09-04  Mark Wielaard  <mark@klomp.org>

	* gnu/CORBA/Interceptor/Registrator.java (m_prefix): Mark static.
	* gnu/java/awt/peer/qt/QtButtonPeer.java: Replace uses of
	toolkit.eventQueue.postEvent() with QtToolkit.eventQueue.postEvent().
	* gnu/java/awt/peer/qt/QtCheckboxPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtChoicePeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtComponentPeer.java: Likewise and similar
	for guiThread and graphicsEnv.
	* gnu/java/awt/peer/qt/QtListPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtMenuItemPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtMenuPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtScrollbarPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtTextAreaPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtTextFieldPeer.java: Likewise.

2005-09-04  Chris Burdess  <dog@gnu.org>

	* doc/README.jaxp: Updated JAXP documentation for StAX.
	* javax/xml/stream/XMLEventFactory.java,
	* javax/xml/stream/XMLInputFactory.java,
	* javax/xml/stream/XMLOutputFactory.java: Use GNU implementation by
	default.

2005-09-04  Andreas Tobler  <a.tobler@schweiz.ch>

	Fix for bug #23653
	* lib/Makefile.am (metafiles): Use find -name -prune not -path.

2005-09-04  Mark Wielaard  <mark@klomp.org>

	* NEWS: Add description of new awt.datatransfer functionality.

2005-09-04  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/AbstractDocument.java
	(LeafElement.LeafElement): Set startPos and endPos through
	createPosition() if parent is null.

2005-09-04  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream: StAX implementation.

2005-09-04  Guilhem Lavaux  <guilhem@kaffe.org>

	* java/lang/Integer.java
	(parseInt): Added some messages to the exception thrown by this
	method.

2005-09-04  Chris Burdess  <dog@gnu.org>

	* javax/xml/stream/XMLEventFactory.java,
	* javax/xml/stream/XMLEventWriter.java,
	* javax/xml/stream/XMLInputFactory.java,
	* javax/xml/stream/XMLOutputFactory.java,
	* javax/xml/stream/XMLResolver.java,
	* javax/xml/stream/XMLStreamConstants.java,
	* javax/xml/stream/events/Attribute.java,
	* javax/xml/stream/events/EndEntity.java,
	* javax/xml/stream/events/EntityDeclaration.java,
	* javax/xml/stream/events/EntityReference.java,
	* javax/xml/stream/events/StartEntity.java,
	* javax/xml/stream/events/XMLEvent.java,
	* javax/xml/stream/util/EventReaderDelegate.java:
	StAX API changes to conform to JWSDP 1.5.

2005-09-03  Mark Wielaard  <mark@klomp.org>

	Fixes bug #23701
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
	(clipboard_owner_change_cb): Only used when GTK_MINOR_VERSION > 4.
	(Java_gnu_java_awt_peer_gtk_GtkClipboard_initNativeState):
	Only request owner-change events for GTK_MINOR_VERSION > 4.
	(clipboard_get_func): Only handle pixbuf and uri when
	GTK_MINOR_VERSION > 4.
	(Java_gnu_java_awt_peer_gtk_GtkClipboard_advertiseContent): Only call
	gtk_target_list_add_* functions when GTK_MINOR_VERSION > 4. Similar
	for gtk_clipboard_set_can_store.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(Java_gnu_java_awt_peer_gtk_GtkImage_drawPixelsScaledFlipped): Mark
	flipx and flipy unused for GTK_MINOR_VERSION <= 4.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
	(clipboard_targets_received): Don't handle images for
	GTK_MINOR_VERSION <= 4.
	(Java_gnu_java_awt_peer_gtk_GtkSelection_requestImage): Likewise.
	(clipboard_uris_received): Likewise for text/uri-list.
	(Java_gnu_java_awt_peer_gtk_GtkSelection_requestURIs): Likewise.

2005-09-03  Andreas Tobler  <a.tobler@schweiz.ch>

	* autogen.sh: Document libtool version needed for Darwin.
	(LIBTOOLIZE): Don't special case Darwin, always use libtoolize.

2005-09-03  Chris Burdess  <dog@gnu.org>

	* javax/xml/stream,
	* javax/xml/stream/events,
	* javax/xml/stream/util:
	New StAX API classes.

2005-09-02  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/transport/ITransport.java (shutdown): New method.
	* gnu/classpath/jdwp/transport/JdwpConnection.java (JdwpConnection):
	Add ThreadGroup argument.
	* gnu/classpath/jdwp/transport/SocketTransport.java (shutdown):
	New method.

2005-09-02  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/Jdwp.java: New file.
	* gnu/classpath/jdwp/JdwpConstants.java: New file.
	* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java: New file.

2005-09-02  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/processor/CommandSet.java [vm]: Remove.
	VMVirtualMachine is entirely static.
	* gnu/classpath/jdwp/event/EventManager.java (requestEvent)
	(deleteRequest, clearRequests): Change all VMVirtualMachine calls
	to reflect new API.
	* gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.java
	(executeVisibleClasses): Likewise.
	* gnu/classpath/jdwp/processor/ClassTypeCommandSet.java
	(invokeMethod): Likewise.
	* gnu/classpath/jdwp/processor/MethodCommandSet.java
	(executeLineTable, executeVariableTable): Likewise.
	* gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java
	(executeInvokeMethod): Likewise.
	* gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
	(executeSourceFile, executeStatus): Likewise.
	* gnu/classpath/jdwp/processor/StackFrameCommandSet.java
	(executeGetValues, ,executeSetValues, executeThisObject): Likewise.
	* gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java
	(executeSuspend, executeResume, executeStatus, executeFrames)
	(executeFrameCount, executeSuspendCount): Likewise.	
	* gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
	(executeClassesBySignature, executeClassesBySignature)
	(executeAllClasses, executeDispose, executeSuspend)
	(executeResume): Likewise.

2005-09-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CosNaming/NamingContextOperations.java:
	Do not inherit from CORBA object.
	* org/omg/CosNaming/_NamingContextExtImplBase.java (_methods),
	* omg/CosNaming/_NamingContextImplBase.java (methods):
	Made package private.
	* omg/CosNaming/NamingContextPOA.java,
	* omg/CosNaming/NamingContextExtPOA.java,
	* org/omg/CosNaming/BindingIteratorPOA.java: New files.

2005-09-02  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/image/CropImageFilter.java
	(setPixels(int,int,int,int,ColorModel,byte[],int,int)): Set
	consumer pixels at 0, 0 location.
	(setPixels(int,int,int,int,ColorModel,int[],int,int)): Likewise.

2005-09-02  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(mousepressed): Fixed, so that clicking on control icon will not
	start editing.

2005-09-02  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTree.java:
	(getScrollableTracksViewportHeight): Return true if parent is a 
	JViewport and parent's height is smaller than ours.
	(getScrollableTracksViewportWidth): Return true if parent is a
	JViewport and parent's width is smaller than ours.

2005-09-02  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTree.java
	(installUI): TreeSelectionListener removed because added too many
	times.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Fixed names for some tree defaults.
	* javax/swing/plaf/basic/BasicTreeUI.java:
	Added new fields for editing and keyboard actions.
	(setCellEditor): Took out unneeded if statement.
	(isEditing): Returned boolean instead.
	(updateCellEditor): Used set method.
	(installDefaults): Set focus to tree.
	(installKeyBoardActions): Implemented.
	(convertModifiers): New function implemented.
	(installUI): Used set method and initialized isEditing.
	(startEditing): set isEditing.
	(TreeAction): New class implemented to perform keyboard actions.
	(ActionListenerProxy): New private class used to distribute the key
	board actions to the true receiver.
	(editingStopped): Added code to prevent NPEs. set isEditing and focus 
	to tree. Also, removed TreeSelectionListeners for cellEditor.
	(editingCanceled): Likewise.
	(keyPressed): Removed code, not needed anymore.
	(actionPerformed): Implemented for up/down keyboard actions.
	(actionPerformed): Implemented for left/right keyboard actions.
	* javax/swing/tree/DefaultTreeCellEditor.java
	(DefaultTreeCellEditor): Set lastPath.
	(isCellEditable): editingComponent should be configured if has not
	been.
	(stopCellEditing): No need to set cell editor to null here.
	(cancelCellEditing): Likewise.
	(valueChanged): Set tPath to the path that was last selected. Used for
	the click-pause-click implementation.
	(actionPerformed): Re-implemented in a simplier fashion.
	* javax/swing/tree/DefaultTreeCellRenderer.java
	(getTreeCellRendererComponent): Only set border color if val is lead
	selection path.

2005-09-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Interceptor/ClientRequestInterceptors.java (send_poll):
	remove ForwardRequest from declaration.

2005-09-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/PortableInterceptor/CurrentOperations.java:
	Inherit from org.omg.CORBA.CurrentOperations.
	* org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java
	(send_poll): Remove ForwardRequest from declaration.

2005-09-02  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JList.java:
	(getPreferredScrollableViewportSize): Implemented.

2005-09-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/IOR_Delegate.java (request),
	* gnu/CORBA/SocketRepository.java (get_socket),
	* gnu/CORBA/gnuRequest (getParameterStream),
	* gnu/CORBA/NamingService/NameParser.java,
	* gnu/CORBA/NamingService/NamingServiceTransient.java: Rewritten.
	* gnu/CORBA/Functional_ORB.java (nameParser): New field.
	(string_to_object): Rewritten.
	(ior_to_object): Made public.
	* org/omg/CORBA/ORB.java (string_to_object): 
        Documentation update.

2005-09-02  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTree.java:
	(getPreferredScrollableViewportSize): Implemented.

2005-09-02  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): set correct value for 
	'InternalFrame.titleFont'.

2005-09-02  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/ClasspathToolkit.java (registerImageIOSpis):
	Reintroduced (empty) method.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (static): Moved initialization
	of imageIOSpis to new registerImageIOSpis() method.
	(registerImageIOSpis): New (overloaded) method.
	* javax/imageio/spi/IIORegistry.java (IIORegistry): Call to Toolkit
	registration method if instanceof ClasspathToolkit.

2005-09-02  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR awt/22979
	* gnu/java/awt/peer/gtk/GtkImage.java,
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c (GtkImage()):
	New constructor.
	(drawPixelsScaled): Return immediately if width or height is <= 0.
	(drawPixelsScaledFlipped): Likewise for srcwidth, srcheight,
	dstwidth, dstheight.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (createImage(String)):
	Create a blank image when filename is "".
	* javax/swing/ImageIcon.java (ImageIcon(String)): Mention blank
	icons in documentation.
	(ImageIcon(String,String)): Likewise.

2005-09-02  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR awt/23557
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (drawString(String,
	float, float)): Return immediately if string is null or
	zero-length.

2005-09-02  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR awt/20014
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (static): Always call
	initStaticState.

2005-09-02  Robert Schuster  <robertschuster@fsfe.org>

	* README: Added MysaifuVM to list of VMs
	* INSTALL: Added info about Qt4 and ecj.

2005-09-01  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR awt/23536
	* gnu/java/awt/peer/gtk/GtkImage.java,
	gnu_java_awt_peer_gtk_GtkImage.c (GtkImage(URL)): New constructor.
	(GtkImage(byte[])) New constructor.
	(loadImageFromData): New method.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (createImage(URL)): Call
	GtkImage(URL) constructor.
	(createImage(byte[],int,int)): Call GtkImage(byte[]) constructor.
	* include/gnu_java_awt_peer_gtk_GtkImage.h: Regenerate.

2005-09-01  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/ClasspathToolkit.java (getFont): Get non-public
	constructor from Font. Chain "cannot happen" exceptions in
	AssertionError.

2005-09-01  Mark Wielaard  <mark@klomp.org>

	* java/util/jar/JarFile.java (JarEnumeration.nextElement): Only
	readSignature when verifying jar.
	(getEntry): Likewise.

2005-09-01  Anthony Balkissoon  <abalkiss@redhat.com>

	Fixes bug #23204
	* javax/swing/ViewportLayout.java:
	(preferredLayoutSize): If the view is scrollable, call its
	getPreferredScrollableViewportSize method.
	(layoutContainer): If the view is scrollable, check its 
	getScrollableTracksViewportWidth and getScrollableTracksViewportHeight
	methods before resizing the view to match the viewport.

2005-09-01  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gtk_jawt.c
	(classpath_jawt_get_visualID): Cast returned NULL to VisualID.
	(classpath_jawt_get_drawable): Cast returned NULL to Drawable.

2005-09-01  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java:
	Added new field to keep track of contents in newly edited cell.
	(isEditing): Made more intuitive.
	(stopEditing): Changed because it was causing an infinite loop.
	(installUI): Should be set to true when set.
	(completeEditing): Passed newVal to valueForPathChanged instead.
	(EditorTimerUpdate): Made timer faster because was not working well.
	(actionPerformed): No need for 'BasicTreeUI.this.'
	(update): Likewise.
	(editingStopped): Likewise. Also, set newVal to appropriate value.
	(editingCanceled): Likewise.
	(keyPressed): Likewise.
	(mousePressed): Likewise.
	(treeExpanded): Likewise.
	(treeCollapsed): Likewise.
	(treeNodesChanged): Likewise.
	(TreeNodesInserted): Likewise.
	(treeNodesRemoved): Likewise.
	(treeStructureChanged): Likewise.
	(valueChanged): Editing is canceled when a new cell is clicked.
	(getCellBounds): Initialized row for path.
	* javax/swing/tree/DefaultTreeCellEditor.java
	(startEditingTimer): No need to start timer if it is already set.
	* javax/swing/tree/DefaultTreeModel.java
	(valueForPathChanged): Fixed so value of node is changed only if it
	is a MutableTreeNode. Otherwise, it cannot be changed. Also, 
	implemented with check if root node is the node being changed.
	(nodeChanged): Should get the path of the node, not the parent.

2005-08-31  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR awt/20782
	* native/jni/gtk-peer/gtk_jawt.c
	(classpath_jawt_get_default_display): Check if widget is realized
	and return NULL if it is not.
	(classpath_jawt_get_visualID): Likewise.
	(classpath_jawt_get_drawable): Likewise.

2005-08-31  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (setBounds): Only
	add parent's x and y co-ordinates to translation if parent's
	parent is not a window.

2005-08-31  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicFileChooserUI.java:
	(boxEntries): Made this method package private because I added a 
	call to it from an implicitly defined listener class. Also fixed 
	indentation.
	(createPropertyChangeListener): If the returned property listener
	hears DIRECTORY_CHANGED_PROPERTY, call boxEntries() to update the
	look-in box entries.

2005-08-31  Anthony Balkissoon  <abalkiss@redhat.com>

	PR swing/23037
	* javax/swing/JFileChooser.java
	(changeToParentDirectory): If parent directory is null, do nothing.

2005-08-31  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTable.java:
	(initializeLocalVars): Changed default autoResizeMode to 
	AUTO_RESIZE_SUBSEQUENT_COLUMNS to match the JDK.
	* javax/swing/plaf/basic/BasicTableUI.java:
	(getMaximumSize): Implemented.
	(getMinimumSize): Implemented.

2005-08-31  Mark Wielaard  <mark@klomp.org>

	* java/nio/charset/Charset.java (charsetForName): Try default provider
	before trying to load extra providers.
	(availableCharsets): Explicitly add default provider Charsets.
	(providers2): Don't include default provider.

2005-08-31  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(textFieldBorder): new field,
	(Flush3DBorder): new class,
	(TextFieldBorder): new class,
	(getTextFieldBorder): implemented.

2005-08-31  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(getPropertyPrefix): include dot in prefix,
	(installDefaults): remove dot which is included in prefix now,
	* javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java
	(getPropertyPrefix): return correct prefix,
	* javax/swing/plaf/basic/BasicCheckBoxUI.java
	(getPropertyPrefix): return correct prefix,
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(getPropertyPrefix): return correct prefix,
	* javax/swing/plaf/basic/BasicMenuUI.java
	(getPropertyPrefix): return correct prefix,
	* javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java
	(getPropertyPrefix): return correct prefix,
	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	(getPropertyPrefix): include dot in prefix,
	(getDefaultIcon): removed dot which is part of the prefix,
	* javax/swing/plaf/basic/BasicToggleButtonUI.java
	(getPropertyPrefix): include dot in prefix,
	* javax/swing/plaf/metal/MetalCheckBoxUI.java: now extends 
	MetalRadioButtonUI,
	(getPropertyPrefix): implemented.

2005-08-30  Mark Wielaard  <mark@klomp.org>
	    Christian Schlichtherle  <christian@schlichtherle.de>

	* java/util/zip/ZipEntry.java (setTime): Use
	Calendar.setTimeInMillis().
	(getTime): First parse extra bytes. Use Calendar.getTimeInMillis().
	(parseExtra): Don't return early to make sure that KNOWN_EXTRA is
	always set.
	* java/util/zip/ZipFile.java (readEntries): Parse name and comment
	as UTF-8 string.
	(close): Check that raf is not null.
	* java/util/zip/ZipInputStream.java (getNextEntry): Set name as
	UTF-8 bytes.
	* java/util/zip/ZipOutputStream.java (setComment): Set comment as
	UTF-8 bytes.
	(putNextEntry): Likewise for name.
	(finish): Likewise for both.

2005-08-30  David Gilbert  <david.gilbert@object-refinery.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(mkMenuBar): added a JRadioButtonMenuItem,
	* javax/swing/plaf/metal/MetalIconFactory.java
	(RadioButtonMenuItemIcon): new inner class,
	(getRadioButtonMenuItemIcon): implemented,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): added RadioButtonMenuItem defaults.

2005-08-30  Lillian Angel <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java:
	Added a timer field for repainting the editing component.
	(EditorUpdateTimer): Inner class added and implemented. Updates
	the caret and text box. Still need to fix typing in text box.
	(startEditing): Started the timer.
	(editingCanceled): Stopped the timer.
	(editingStopped): Likewise.

2005-08-30  Lillian Angel  <langel@redhat.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(mkTreeWorld): Made tree editable.
	* javax/swing/DefaultCellEditor.java
	(isCellEditable): Added in check for number of mouse clicks.
	(DefaultCellEditor): To start editing a textfield, number of clicks
	is 3.
	* javax/swing/plaf/basic/BasicTreeUI.java:
	Took out unneeded fields
	(isEditing): Fixed to check boolean.
	(updateCellEditor): Made more efficent.
	(installUI): Created cell editor for initialization.
	(editingStopped): Added in check to prevent a NPE.
	(editingCanceled): Likewise.
	(keyPressed): Added in check for pressing Enter. Enter should stop
	editing and complete it, when in the process of editing. 
	(mousePressed): Optimized by using MouseEvent's getClickCount. The
	clicking on nodes works better. Also, added in code to start the
	editing.
	(valueChanged): Implemented.
	(selectPath): Took out code to remove an already selected path. A node
	should remain selected if clicked on more than once. Works like JDK.
	* javax/swing/tree/DefaultTreeCellEditor.java:
	Added a helper field.
	(paint): Took out redundant code.
	(DefaultTreeCellEditor): Added class to listener list.
	(configureEditingComponent): Updated since listener was added to list.
	(isCellEditable): Finished implementation.
	(stopCellEditing): Added a check for editingComponent to prevent a NPE.
	(cancelCellEditing): Likewise.
	(valueChanged): Took out redundant code.
	(actionPerformed): Added code in to implement click-pause-click
	editing.
	(shouldStartTimer): Fixed check.
	(canEditImmediately): Took out redunant code.
	(inHitRegion): Changed region to be text area only (not icon).
	(createTreeCellEditor): No need to use canEdit here, removed.

2005-08-30  Christian Schlichtherle  <christian@schlichtherle.de>

	* java/util/zip/DeflaterOutputStream.java
	(DeflaterOutputStream(OutputStream)): Increase buffer size to 4096.
	(DeflaterOutputStream(OutputStream,Deflater)): Likewise.

2005-08-30  Christian Schlichtherle  <christian@schlichtherle.de>

	* java/util/zip/DeflaterHuffman.java (bit4Reverse): Mark final.

2005-08-30  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalLabelUI.java
	(instance): renamed 'metalLabelUI' and changed from private to 
	protected,
	(createUI): modified for renamed field,
        (paintDisabledText): implemented,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): modified Label defaults.

2005-08-30  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): added some defaults for TabbedPane,
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(TabbedPaneLayout): implemented new class,
	(createLayoutManager): implemented,
	(paintTabBorder): implemented,
	(paintTopTabBorder): implemented,
	(paintLeftTabBorder): implemented,
	(paintBottomTabBorder): implemented,
	(paintRightTabBorder): implemented,
	(paintTabBackground): implemented,
	(shouldPadTabRun): implemented,
	* examples/gnu/classpath/examples/swing/Demo.java:
	(mkTabWorld): new method,
	(mkTabbedPane): added tab for 'Tab World'.
	
2005-08-30  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/Statement.java:
	(Statement): Use zero length array if argument array is null.
	(toString): Use StringBuffer for efficiency reasons, make use of
	internal name.    
	(generateInternalName): New method, generates instance names like
	the JDK has.
	(doExecute): Removed debugging output that could lead to an exception
	because wrong loop variable usage.
	* java/beans/Expression.java: Static constant 'unset' renamed to 
	'UNSET'.

2005-08-29  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/Event.java: New file describing JDWP
	events.
	* gnu/classpath/jdwp/event/ClassPrepareEvent.java: New file.
	* gnu/classpath/jdwp/event/ThreadEndEvent.java: New file.
	* gnu/classpath/jdwp/event/ThreadStartEvent.java: New file.
	* gnu/classpath/jdwp/event/VmInitEvent.java (VmInitEvent): New file.

2005-08-29  Tom Tromey  <tromey@redhat.com>

	* .externalToolBuilders/Configure.launch: Changed --prefix.
	* .externalToolBuilders/CompileNative.launch: Invoke install target.
	* .cdtproject: New file.
	* .classpath: Changed output directory.
	* .cvsignore: Added 'install'.

2005-08-29  Lillian Angel  <langel@redhat.com>

	* javax/swing/JPasswordField.java
	(getText): Changed to pass error to AssertionError.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(setCellEditor): Updated boolean when appropriate.
	(stopEditing): Took out redundant code.
	(updateCellEditor): Updated boolean when appropriate.
	(installListeners): Took out CellEditorListener. It is added
	when the cellEditor is set.
	(installUI): Similar.
	(ensureRowsAreVisible): Fixed API documentation 
	(startEditing): Fixed to add editing container to the tree.
	(checkForClickInExpandControl): Fixed API documentation.
	(editingStopped): Added code to remove listeners and container.
	(editingCanceled): Similar.
	(mousePressed): Updated to stop editing when a different cell is
	clicked.
	(treeNodesChanged): Called repaint.
	(treeNodesRemoved): Likewise.
	(treeStructureChanged): Likewise.
	(paintNode): Updated to paint a node that is being edited.
	(paintRecursive): Fixed API documentation.
	* javax/swing/tree/DefaultTreeCellEditor.java
	(paint): Fixed to paint icon and text box in correct location with
	correct spacing.
	(doLayout): Fixed API documentation.
	(DefaultTreeCellEditor): Took out call to configure editing component.
	(configureEditingComponent): Initialized editing icon.
	(getTreeCellEditorComponent): Took out code to stop editing.
	Not needed.
	(addCellEditorListener): Passed on to realEditor.
	(removeCellEditorListener): Likewise.

2005-08-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/ORB.java (string_to_object): Documentation update.
	* gnu/CORBA/Functional_ORB.java (string_to_object): Rewritten.
	(ior_to_object): New method.
	* gnu/CORBA/NamingService/NameParser.java: New file.

2005-08-28  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/AbstractDocument.java (addEdit): Document gcj bug
	workaround.
	(getChange): Likewise.

2005-08-28  Tom Tromey  <tromey@redhat.com>

	* org/omg/PortableInterceptor/ORBInitInfoOperations.java: Removed
	non-ascii character.

2005-08-28  Chris Burdess  <dog@gnu.org>

        * javax/swing/text/AbstractDocument.java: Fully qualify references to
        ElementChange class.

2005-08-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Interceptor/ForwardRequestHolder.java,
	* gnu/CORBA/Interceptor/gnuClientRequestInfo.java,
	* gnu/CORBA/Interceptor/gnuIcCurrent.java,
	* gnu/CORBA/Interceptor/gnuIorInfo.java,
	* gnu/CORBA/Interceptor/gnuServerRequestInfo.java,
	* gnu/CORBA/Interceptor/IORInterceptors.java,
	* gnu/CORBA/Interceptor/ClientRequestInterceptors.java,
	* gnu/CORBA/Interceptor/Registrator.java,
	* gnu/CORBA/Interceptor/ServerRequestInterceptors.java,
	* gnu/CORBA/GIOP/contextSupportingHeader.java,
	* org/omg/PortableInterceptor/ClientRequestInfo.java,
	* org/omg/PortableInterceptor/ClientRequestInfoOperations.java,
	* org/omg/PortableInterceptor/ClientRequestInterceptor.java,
	* org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java,
	* org/omg/PortableInterceptor/Current.java,
	* org/omg/PortableInterceptor/CurrentHelper.java,
	* org/omg/PortableInterceptor/CurrentOperations.java,
	* org/omg/PortableInterceptor/ForwardRequest.java,
	* org/omg/PortableInterceptor/ForwardRequestHelper.java,
	* org/omg/PortableInterceptor/InvalidSlot.java,
	* org/omg/PortableInterceptor/InvalidSlotHelper.java,
	* org/omg/PortableInterceptor/ORBInitInfo.java,
	* org/omg/PortableInterceptor/ORBInitInfoOperations.java,
	* org/omg/PortableInterceptor/ORBInitializer.java,
	* org/omg/PortableInterceptor/ORBInitializerOperations.java,
	* org/omg/PortableInterceptor/PolicyFactory.java,
	* org/omg/PortableInterceptor/PolicyFactoryOperations.java,
	* org/omg/PortableInterceptor/RequestInfo.java,
	* org/omg/PortableInterceptor/RequestInfoOperations.java,
	* org/omg/PortableInterceptor/ServerRequestInfo.java,
	* org/omg/PortableInterceptor/ServerRequestInfoOperations.java,
	* org/omg/PortableInterceptor/ServerRequestInterceptor.java,
	* org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java,
	* org/omg/PortableInterceptor/package.html:
	New files.
	* gnu/CORBA/ExceptionCreator.java,
	* gnu/CORBA/Functional_ORB.java,
	* gnu/CORBA/IOR.java,
	* gnu/CORBA/IOR_Delegate.java,
	* gnu/CORBA/ObjectCreator.java,
	* gnu/CORBA/Restricted_ORB.java,
	* gnu/CORBA/bufferedResponseHandler.java,
	* gnu/CORBA/gnuCodecFactory.java,
	* gnu/CORBA/gnuRequest.java,
	* gnu/CORBA/primitiveArrayTypeCode.java,
	* gnu/CORBA/primitiveTypeCode.java,
	* gnu/CORBA/CDR/Vio.java,
	* gnu/CORBA/CDR/cdrOutput.java,
	* gnu/CORBA/DynAn/gnuDynAny.java,
	* gnu/CORBA/DynAn/gnuDynEnum.java,
	* gnu/CORBA/DynAn/gnuDynFixed.java,
	* gnu/CORBA/DynAn/gnuDynValue.java,
	* gnu/CORBA/GIOP/ReplyHeader.java,
	* gnu/CORBA/GIOP/RequestHeader.java,
	* gnu/CORBA/GIOP/ServiceContext.java,
	* gnu/CORBA/GIOP/v1_0/RequestHeader.java,
	* gnu/CORBA/Poa/LocalDelegate.java,
	* gnu/CORBA/Poa/LocalRequest.java,
	* gnu/CORBA/Poa/ORB_1_4.java,
	* gnu/CORBA/Poa/gnuServantObject.java,
	* gnu/CORBA/Poa/servantDelegate.java,
	* org/omg/CORBA/ServiceDetailHelper.java,
	* org/omg/CORBA/DynAnyPackage/Invalid.java,
	* org/omg/CORBA/DynAnyPackage/InvalidSeq.java,
	* org/omg/CORBA/DynAnyPackage/InvalidValue.java,
	* org/omg/CORBA/DynAnyPackage/TypeMismatch.java,
	* org/omg/DynamicAny/NameDynAnyPairSeqHelper.java,
	* org/omg/DynamicAny/_DynAnyFactoryStub.java,
	* org/omg/DynamicAny/_DynAnyStub.java,
	* org/omg/DynamicAny/_DynArrayStub.java,
	* org/omg/DynamicAny/_DynEnumStub.java,
	* org/omg/DynamicAny/_DynFixedStub.java,
	* org/omg/DynamicAny/_DynSequenceStub.java,
	* org/omg/DynamicAny/_DynStructStub.java,
	* org/omg/DynamicAny/_DynUnionStub.java,
	* org/omg/DynamicAny/_DynValueStub.java,
	* org/omg/IOP/ServiceContext.java,
	* org/omg/IOP/TaggedComponentHelper.java,
	* org/omg/IOP/TaggedProfileHelper.java,
	* org/omg/PortableInterceptor/IORInfo.java,
	* org/omg/PortableInterceptor/IORInfoOperations.java,
	* org/omg/PortableInterceptor/IORInterceptor.java,
	* org/omg/PortableInterceptor/IORInterceptorOperations.java,
	* org/omg/PortableInterceptor/Interceptor.java,
	* org/omg/PortableInterceptor/LOCATION_FORWARD.java,
	* org/omg/PortableInterceptor/SUCCESSFUL.java,
	* org/omg/PortableInterceptor/SYSTEM_EXCEPTION.java,
	* org/omg/PortableInterceptor/TRANSPORT_RETRY.java,
	* org/omg/PortableInterceptor/USER_EXCEPTION.java,
	* org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java,
	* org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java,
	* org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java,
	* org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java,
	* org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.java:
	Rewritten.
	* org/omg/CORBA/ORB.java,
	* org/omg/CORBA/package.html,
	* NEWS:
	Documentation update.

2005-08-28  Chris Burdess  <dog@gnu.org>

	* gnu/xml/xpath/ArithmeticExpr.java: Fix div and mod by zero to
	follow IEEE rules.

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

	* m4/acinclude.m4 (CLASSPATH_WITH_GLIBJ): Always check for 'zip'
	program.  Changed zip install handling.

2005-08-26  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/EventRequest.java: New file.
	* gnu/classpath/jdwp/exception/JdwpIllegalArgumentException.java:
	New file.

2005-08-26  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/filters/IEventFilter.java: New file.
	Describes the interface used for event filtering managed by
	the event manager.
	* gnu/classpath/jdwp/event/filters/ClassExcludeFilter.java: New file.
	* gnu/classpath/jdwp/event/filters/ClassMatchFilter.java: New file.
	* gnu/classpath/jdwp/event/filters/ClassOnlyFilter.java: New file.
	* gnu/classpath/jdwp/event/filters/ConditionalFilter.java: New file.
	* gnu/classpath/jdwp/event/filters/CountFilter.java: New file.
	* gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java: New file.
	* gnu/classpath/jdwp/event/filters/FieldOnlyFilter.java: New file.
	* gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.java: New file.
	* gnu/classpath/jdwp/event/filters/LocationOnlyFilter.java: New file.
	* gnu/classpath/jdwp/event/filters/StepFilter.java: New file.
	* gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.java: New file.

2005-08-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicCheckBoxUI.java
	(installUI): removed,
	* javax/swing/plaf/basic/BasicIconFactory.java
	(CheckBoxMenuItemIcon): new support class,
	(getCheckBoxMenuItemIcon): return instance of CheckBoxMenuItemIcon,
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): changed value for 'CheckBoxMenuItem.checkIcon'
	and removed entry for 'CheckBoxMenuItem.icon',
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(paintMenuItem): let icon handle selection status,
	* javax/swing/plaf/metal/MetalIconFactory.java
	(CheckBoxMenuItemIcon): new support class,
	(getCheckBoxIcon): implemented,
	(getCheckBoxMenuItemIcon): implemented,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): added entry for 'CheckBoxMenuItem.checkIcon'.

2005-08-26  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(create): Only set overwrite confirmation if using GTK >= 2.8.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(setVisibleNative): Call gdk_flush before releasing GDK lock.
	(setVisibleNativeUnlocked): Don't call gdk_flush.

2005-08-26  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR classpath/21660:
	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(AWT_FILEDIALOG_LOAD): New macro.
	(AWT_FILEDIALOG_SAVE): Likewise.
	(create(GtkContainerPeer,int)): Add mode parameter.  Create Save
	dialog if mode is AWT_FILEDIALOG_SAVE.  Remove workaround for
	http://bugzilla.gnome.org/show_bug.cgi?id=166852.
	(create()): Add mode argument to create call.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(setVisibleNative): Override method.
	(setVisibleNativeUnlocked): Override method.  Call gdk_flush after
	showing or hiding window.
	* include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: Regenerate.
	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Regenerate.

2005-08-25  Mark Wielaard  <mark@klomp.org>

	* timezones.pl (parseRule): Add dayoffset when $time represents
	more then a day.
	* java/util/TimeZone.java (timezones): Regenerate.

2005-08-25  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/util/Value.java (Value): Update for
	real VMIdManager API.
	* gnu/classpath/jdwp/util/Location.java (Location): Likewise.

2005-08-25  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/processor/EventRequestCommandSet.java
	(executeSet): Use constants for case values.
	Fix "typo": It is really ThreadOnlyFilter.
	Correct arguments to InstanceOnlyFilter.

2005-08-25  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/processor/CommandSet.java (CommandSet): Make
	an abstract class.
	Add protected variables for VMIdManager and VMVirtualMachine.
	(runCommand): Make abstract.
	* gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java
	(ArrayReferenceCommandSet): Derive from CommandSet instead of
	implementing it. Remove private hooks to ID manager and VM.
	Update all VMIdManager and EventManager API calls.
	* gnu/classpath/jdwp/processor/ArrayTypeCommandSet.java
	(ArrayTypeCommandSet): Likewise.
	* gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.java
	(ClassLoaderReferenceCommandSet): Likewise.
	* gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.java
	(ClassObjectReferenceCommandSet): Likewise.
	* gnu/classpath/jdwp/processor/ClassTypeCommandSet.java
	(ClassTypeCommandSet): Likewise.
	* gnu/classpath/jdwp/processor/EventRequestCommandSet.java
	(EventRequestCommandSet): Likewise.
	* gnu/classpath/jdwp/processor/FieldCommandSet.java
	(FieldCommandSet): Likewise.
	* gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.java
	(InterfaceTypeCommandSet): Likewise.
	* gnu/classpath/jdwp/processor/MethodCommandSet.java
	(MethodCommandSet): Likewise.
	* gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java
	(ObjectReferenceCommandSet): Likewise.
	* gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
	(ReferenceTypeCommandSet): Likewise.
	* gnu/classpath/jdwp/processor/StackFrameCommandSet.java
	(StackFrameCommandSet): Likewise.
	* gnu/classpath/jdwp/processor/StringReferenceCommandSet.java
	(StringReferenceCommandSet): Likewise.
	* gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.java
	(ThreadGroupReferenceCommandSet.java): Likewise.
	* gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java
	(ThreadReferenceCommandSet): Likewise.
	* gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
	(VirtualMachineCommandSet): Likewise.

	* gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java
	(executeStatus): Fix constant name.
	* gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
	(executeDisposeObjects): Don't do anything yet -- this
	is unimplemented.
	
2005-08-25  Mark Wielaard  <mark@klomp.org>

	Reported by Bastiaan Huisman <huisman@science.uva.nl>
	* scripts/tzabbrevs: Change America/Buenos_Aires to
	America/Argentina/Buenos_Aires for AGT link.
	* scripts/timezones.pl (parseTime): Assume and return wall time.
	Reindent output.
	* java/util/TimeZone.java (timezones): Regenerate using tzdata2005l.

2005-08-25  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/EventManager.java: New file concerning
	JDWP event request management and notification infrastructure.

2005-08-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * scripts/eclipse-gnu.xml: Reverted my patch 2005-07-31.
        
2005-08-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTextPane.java
	(JTextPane()): Don't set the document to null here.

2005-08-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.preferenceChanged): Revalidate the text component.
	(RootView.setParent): Set parent of views to null. The parent
	of the added child view is set to the root view in the
	BasicTextUI class.
	(RootView.getView): Implemented new method.
	(RootView.getViewCount): Implemented new method.
	(RootView.changedUpdate): Use the correct ViewFactory here.
	(RootView.insertUpdate): Use the correct ViewFactory here.
	(RootView.removeUpdate): Use the correct ViewFactory here.
	(setView): Set the view's parent to the root view.

2005-08-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/View.java
	(View): Don't manage child views here.
	(getContainer): Throw AssertionError if we have no parent. This
	should not happen.
	(append): Call replace to do the real action. Child views
	are not managed in the View class itself.
	(removeAll): Give replace an empty array instead of null.
	Avoids NPEs in subclasses that don't handle the null case.
	(preferenceChanged): Don't revalidate here. This is too
	expensive and not necessary.
	(updateChildren): Let replace do the actual action. We don't
	manage child views in the View class.
	(forwardUpdate): Don't access children directly.
	(dump): Added package private methods useful for debugging.

2005-08-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/StyledEditorKit.java
	(StyledViewFactory.create): Use new BoxView constructor. Throw
	AssertionError if an unknown element type is encountered,
	since this should not happen.

2005-08-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/GlyphView.java
	(GlyphPainter): Implemented abstract inner class.
	(DefaultGlyphPainter): Implemented concrete impl of
	GlyphPainter.
	(getGlyphPainter): Implemented new method.
	(setGlyphPainter): Likewise.
	(checkPainter): Likewise.
	(paint): Likewise.
	(getPreferredSpan): Likewise.
	(modelToView): Likewise.
	(getTabExpander): Likewise.
	(getTabbedSpan): Likewise.
	(getPartialSpan): Likewise.
	(getBeginIndex): Likewise.
	(getEndIndex): Likewise.
	(getText): Likewise.
	(getFont): Likewise.
	(getForeground): Likewise.

2005-08-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/GapContent.java
	(getString): Throw BadLocationException instead of letting
	a StringIndexOutOfBoundsException bubble up.

2005-08-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/ParagraphView.java
	(Row): Implemented inner class.
	(ParagraphView(Element)): Implemented constructor.
	(nextTabStop): Added dummy implementation for TabExpander
	interface.
	(createRow): Implemented new method.

2005-08-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/FlowView.java
	(FlowStrategy): Implemented inner class.
	(LogicalView): Likewise.
	(FlowView(Element, int)): Implemented constructor.
	(getFlowAxis): Implemented new method.
	(getFlowSpan): Likewise.
	(getFlowStart): Likewise.
	(createRow): Added new abstract method.
	(loadChildren): Implemented new method.
	(layout): Implemented new method.
	(insertUpdate): Implemented new method.
	(removeUpdate): Implemented new method.
	(changedUpdate): Implemented new method.
	(getViewIndexAtPosition): Implemented new method.

2005-08-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/CompositeView.java
	(loadChildren): Call replace to actually change the child
	elements. This way subclasses can modify the child
	management behaviour by simply overriding replace.
	(setParent): Only call loadChildren if the parent to be set
	is actually not null.
	(replace): Check for null children. Set the parent of removed
	children to null. Set the parent of the added children to
	this.
	(modelToView): Added some sanity checks.

2005-08-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/BoxView.java
	(BoxView(Element, int)): Implemented.
	(getAxis): Likewise.
	(setAxis): Likewise.
	(layoutChanged): Likewise.
	(isLayoutValid): Likewise.
	(paintChild): Likewise.
	(replace): Likewise.
	(paint): Likewise.
	(getPreferredSpan): Likewise.
	(getMaximumSpan): Likewise.
	(baselineRequirements): Likewise.
	(calculateMajorAxisRequirements): Likewise.
	(calculateMinorAxisRequirements): Likewise.
	(isBefore): Likewise.
	(isAfter): Likewise.
	(getViewAtPoint): Likewise.
	(childAllocation): Likewise.
	(layout): Likewise.
	(layoutMajorAxis): Likewise.
	(layoutMinorAxis): Likewise.
	(isAllocationValid): Likewise.
	(getWidth): Likewise.
	(getHeight): Likewise.
	(setSize): Likewise.
	(validateLayout): Likewise.

2005-08-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/AbstractDocument.java
	(AbstractElement.dumpElement): Throw AssertionError when
	a BadLocationException is encountered.
	(BranchElement.getElementIndex): Return -1 if there is no child
	element. Return elementCount - 1 if the requested offset is after
	the child elements of that element.
	(BranchElement.getEndOffset): Throw NPE if this element has no
	children.
	(BranchElement.getStartOffset): Throw NPE if this element has
	no children.
	(DefaultDocumentEvent.addEdit): Implemented.
	(DefaultDocumentEvent.getChange): Implemented.

2005-08-25  Lillian Angel  <langel@redhat.com>

	* javax/swing/JPasswordField.java
	(setText): Changed to raise an AssertionError when a 
	BadLocationException is caught.

2005-08-25  Tom Tromey  <tromey@redhat.com>

	* configure.ac: Call AC_PROG_CXX.

2005-08-25  Mark Wielaard  <mark@klomp.org>

	* javax/xml/namespace/QName.java: Updated boilerplate address.
	* gnu/xml/xpath/XPathParser.y: Likewise.
	* gnu/xml/xpath/XPathParser.java: Regenerated.

2005-08-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/xml/datatype/DatatypeFactory.java: minor API doc fixes,
	* javax/xml/parsers/DocumentBuilder.java: likewise,
	* javax/xml/parsers/SAXParser.java: likewise,
	* javax/xml/transform/Source.java: likewise.

2005-08-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/DefaultTreeModel.java
	(nodesWereRemoved): minor API doc fix.
	
2005-08-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(activeBGColor): removed,
	(activeFGColor): removed,
	(inactiveBGColor): removed,
	(inactiveFGColor): removed,
	(installDefaults): replaced removed fields above with correct ones,
	(uninstallDefaults): likewise,
	(setButtonIcons): implemented,
	(paintComponent): replaced removed fields above with correct ones;
	* javax/swing/plaf/metal/MetalInternalFrameTitlePane.java: implemented,
	* javax/swing/plaf/metal/MetalInternalFrameUI.java
	(createNorthPane): implemented,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): added internal frame icons.

2005-08-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/ClasspathToolkit.java (getFont): Throw
	RuntimeException in case of error.
	* gnu/java/awt/EmbeddedWindow.java (addNotify): Likewise.

2005-08-24  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(beginNativeRepaintID): Remove variable.
	(endNativeRepaintID): Likewise.
	(cp_gtk_button_init_jni): Don't look up beginNativeRepaint and
	endNativeRepaint methods.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java (resizing): Remove
	field.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(resizing): Remove field.
	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java (hiding): Remove
	field.
	(setVisible): Don't override.
	* gnu/java/awt/peer/gtk/GtkChoicePeer.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
	(selectNative): New method.
	(selectNativeUnlocked): Likewise.
	(select): Call setNativeUnlocked if in the GTK main thread,
	selectNative otherwise.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(gtkWidgetSetCursorUnlocked): New method.
	(setCursor(Cursor)): Call gtkWidgetSetCursorUnlocked if in the GTK
	main thread, gtkWidgetSetCursor otherwise.
	(setVisibleNative): New method.
	(setVisibleNativeUnlocked): Likewise.
	(setVisible): Call setVisibleNativeUnlocked if in the GTK main
	thread, setVisibleNative otherwise.
	(hide): Call setVisible(false).
	(show): Call setVisible(true).

2005-08-24  Tom Tromey  <tromey@redhat.com>

	* java/text/SimpleDateFormat.java (compileFormat): Correctly
	handle quoted single quotes.  PR classpath/23183.

2005-08-24  Mark Wielaard  <mark@klomp.org>

	* vm/reference/gnu/classpath/jdwp/VMFrame.java: Update copyright
	boilerplate address.
	* vm/reference/gnu/classpath/jdwp/VMIdManager.java: Likewise.

2005-08-24  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/newsitems.txt: Fix announcement url.

2005-08-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(InternalFrameCloseIcon): new private class,
	(InternalFrameAltMaximizeIcon): likewise,
	(InternalFrameMaximizeIcon): likewise,
	(InternalFrameMinimizeIcon): likewise,
	(getInternalFrameCloseIcon): implemented,
	(getInternalFrameMaximizeIcon): implemented,
	(getInternalFrameMinimizeIcon): implemented,
	(getInternalFrameAltMaximizeIcon): implemented.

2005-08-24  Mark Wielaard  <mark@klomp.org>

	* gnu/CORBA/ForwardRequestHelper.java: Update copyright boilerplate
	address.
	* gnu/classpath/jdwp/processor/CommandSet.java: Likewise.
	* gnu/classpath/jdwp/processor/StringReferenceCommandSet.java:
	Likewise.
	* gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.java:
	Likewise.
	* gnu/classpath/jdwp/processor/ClassTypeCommandSet.java: Likewise.
	* gnu/classpath/jdwp/processor/StackFrameCommandSet.java: Likewise.
	* gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java:
	Likewise.
	* gnu/classpath/jdwp/util/LineTable.java: Likewise.
	* gnu/classpath/jdwp/util/MethodResult.java: Likewise.
	* gnu/classpath/jdwp/util/VariableTable.java: Likewise.
	* javax/xml/namespace/QName.java: Likewise.
	* org/omg/DynamicAny/_DynAnyFactoryStub.java: Likewise.
	* org/omg/DynamicAny/_DynAnyStub.java: Likewise.
	* org/omg/DynamicAny/_DynArrayStub.java: Likewise.
	* org/omg/DynamicAny/_DynEnumStub.java: Likewise.
	* org/omg/DynamicAny/_DynFixedStub.java: Likewise.
	* org/omg/DynamicAny/_DynSequenceStub.java: Likewise.
	* org/omg/DynamicAny/_DynStructStub.java: Likewise.
	* org/omg/DynamicAny/_DynUnionStub.java: Likewise.
	* org/omg/DynamicAny/_DynValueStub.java: Likewise.
	* org/omg/PortableServer/ForwardRequest.java: Likewise.
	* org/omg/PortableServer/CurrentHelper.java: Likewise.
	* org/omg/PortableServer/ForwardRequestHelper.java: Likewise.
	* org/omg/PortableServer/ServantActivatorHelper.java: Likewise.
	* org/omg/PortableServer/ServantLocatorHelper.java: Likewise.
	* org/omg/PortableServer/_ServantActivatorStub.java: Likewise.
	* org/omg/PortableServer/_ServantLocatorStub.java: Likewise.

2005-08-24  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Set version to 0.18-pre.

2005-08-24  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/newsitems.txt: Add Generics Branch Merge
	Announcement.

2005-08-24  Lillian Angel  <langel@redhat.com>

	* javax/swing/DefaultCellEditor.java
	(isCellEditable): Reversed last changes.

2005-08-24  Lillian Angel  <langel@redhat.com>

	* javax/swing/DefaultCellEditor.java
	(isCellEditable): If the event is null, the cell is still 
	editable.
	* javax/swing/plaf/basic/BasicTextUI.java
	(getVisibleEditorRect): Use getPreferredSize to get the width
	and height.
	* javax/swing/tree/DefaultTreeCellEditor.java
	(paint): Fixed to paint the JTextField with the background
	and border at the correct location.
	(DefaultTreeCellEditor): Changed to initialize realEditor.
	(configureEditingComponent): Helper function implemented.
	(getTreeCellEditorComponent): Fixed to use realEditor to get component.
	(isCellEditable): Fixed to configure editing component.
	(shouldSelectCell): Always returns true.
	(stopCellEditing): Fixed to configure editing component if needed.
	(cancelCellEditing): Fixed to configure editing component if needed.
	(createTreeCellEditor): Fixed to initialize fields.

2005-08-24  Mark Wielaard  <mark@klomp.org>

	* resource/japhar-0.09.patch.1: Removed.
	* resource/orp-1.0.8.patch: Removed.
	* resource/orp-1.0.9.patch: Removed.
	* resource/Makefile.am (EXTRA_DIST): Removed.

2005-08-24  Mark Wielaard  <mark@klomp.org>

	* NEWS: Split in general changes and vm interface changes. Add RawData
	to Pointer conversion.

2005-08-24  Mark Wielaard  <mark@klomp.org>

	* native/jni/java-lang/java_lang_VMDouble.c
	(Java_java_lang_VMDouble_parseDouble): Remove KISSME_LINUX_USER hack.

2005-08-24  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Check for QtGui >= 4.0.1. Check for and
	add extra include dirs ($includedir/Qt) to QT_CFLAGS.
	* native/jni/qt-peer/.cvsignore: Add slotcallbacks.moc.h.
	* native/jni/qt-peer/Makefile.am (QT_CXXFLAGS): Removed.
	(libqtpeer_la_CXXFLAGS): Removed.
	(libqtpeer_la_LDFLAGS): Removed.
	(AM_LDFLAGS): Set to @CLASSPATH_MODULE@ @QT_LIBS@.
	(AM_CXXFLAGS): Set to @QT_CFLAGS@.

2005-08-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installDefaults): just fetch border from UIDefaults,
	* javax/swing/plaf/metal/MetalIconFactory.java
	(InternalFrameDefaultMenuIcon): implemented,
	(getInternalFrameDefaultMenuIcon): implemented,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): add values for "InternalFrame.border" and
	"InternalFrame.icon".

2005-08-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(InternalFrameBorder): implemented.
	
2005-08-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicDesktopPaneUI.java
	(installDefaults): set background color using "desktop" color,
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initSystemColorDefaults): removed "Desktop.background" color,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initSystemColorDefaults): added "desktop" color.

2005-08-23  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(stopEditing): Implemented.
	(cancelEditing): Implemented.
	(startEditingAtPath): Implemented.
	(getEditingPath): Implemented.
	(createDefaultCellEditor): Implemented.
	(updateCellEditor): Implemented.
	(completeEditing): Implemented.
	(completeEditing): Implemented.
	(startEditing): Implemented.
	(editingStopped): Implemented.
	(editingCanceled): Implemented.
	* javax/swing/tree/DefaultTreeCellEditor.java
	(stopCellEditing): Stopped the timer.
	(cancelCellEditing): Likewise.
	
2005-08-23  Lillian Angel  <langel@redhat.com>

	* javax/swing/DefaultCellEditor.java
	(getTreeCellEditorComponent): Implemented cases for JCheckBox
	and JComboBox.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(BasicTreeUI): Moved lines to installUI where the renderer
	and editor are created.
	(installUI): Likewise.
	* javax/swing/tree/DefaultTreeCellEditor.java
	(getPreferredSize): Implemented.
	(DefaultTreeCellEditor): Implemented.
	(DefaultTreeCellEditor): Implemented.
	(getTreeCellEditorComponent): Implemented.
	(getCellEditorValue): Implemented.
	(isCellEditable): Implemented.
	(shouldSelectCell): Implemented.
	(stopCellEditing): Implemented.
	(cancelCellEditing): Implemented.
	(valueChanged): Implemented.
	(actionPerformed): Implemented.
	(shouldStartEditingTimer): Implemented.
	(startEditingTimer): Implemented.
	(canEditImmediately): Implemented.
	(inHitRegion): Implemented.
	(determineOffset): Implemented.
	(prepareForEditing): Implemented.
	(createContainer): Implemented.
	(createTreeCellEditor): Implemented.

2005-08-23  Tom Tromey  <tromey@redhat.com>

	* java/text/SimpleDateFormat.java (compileFormat): Reformatted.

2005-08-23  Tom Tromey  <tromey@redhat.com>

	PR classpath/23531
	* java/sql/Date.java (toString): Not deprecated.
	(valueOf): Likewise.
	* java/sql/Time.java (toString): Not deprecated.
	(valueOf): Likewise.

2005-08-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/UIManager.java:  
	(addAuxiliaryLookAndFeel): renamed field, added check for null 
	argument,
	(removeAuxiliaryLookAndFeel): reimplemented,
	(getAuxiliaryLookAndFeels): renamed field,
	(installLookAndFeel): implemented by delegation.

2005-08-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/UIManager.java: added API docs all over.
	
2005-08-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/UIManager.java: 
	(look_and_feel): renamed currentLookAndFeel,
	(currentUIDefaults): new field,
	(get(Object)): access cached UIDefaults,
	(get(Object, Locale)): likewise,
	(getBoolean(Object)): likewise,
	(getBoolean(Object, Locale)): likewise,
	(getBorder(Object)): likewise,
	(getBorder(Object, Locale)): likewise,
	(getColor(Object)): likewise,
	(getColor(Object, Locale)): likewise,
        (getDefaults): return reference to UIDefaults from current look and 
	feel rather than recreating them every time,
	(getDimension(Object)): access local defaults,
	(getDimension(Object, Locale)): likewise,
	(getFont(Object)): likewise,
	(getFont(Object, Locale)): likewise,
	(getIcon(Object)): likewise,
	(getIcon(Object, Locale)): likewise,
	(getInsets(Object)): likewise,
	(getInsets(Object, Locale)): likewise,
	(getInt(Object)): likewise,
	(getInt(Object, Locale)): likewise,
        (getLookAndFeel): renamed attribute,
	(getLookAndFeelDefaults): return reference to UIDefaults from current
	look and feel rather than recreating them every time,
	(getString(Object)): access local defaults,
	(getString(Object, Locale)): likewise,
	(getUI(JComponent)): likewise,
	(installLookAndFeel(String, String)): implemented by delegation,
	(put(Object, Object)): update local defaults,
	(setLookAndFeel): create and retain reference to UIDefaults.

2005-08-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/UIManager.java:
	(addPropertyChangeListener): implemented,
	(removePropertyChangeListener): likewise,
	(getPropertyChangeListeners): likewise,
	(setLookAndFeel): fire a property change event.
	
2005-08-23  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(BasicTreeUI): Moved these lines to installUI 
	because they were causing NullPointerExceptions.
	(installUI): Added code from constructor.
	* javax/swing/plaf/metal/MetalTreeUI.java
	(createUI): Formatted code.

2005-08-23  Tom Tromey  <tromey@redhat.com>

	* configure.ac: Fixed typo.

2005-08-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/SwingPropertyChangeSupport.java
	(writeObject): removed empty method,
	(readObject): likewise,
	(getPropertyChangeListeners()): implemented,
	(getPropertyChangeListeners(String)): likewise,
	(hasListeners): return true if there are any general listeners,
	added API docs all over.
	
2005-08-23  Mark Wielaard  <mark@klomp.org>

	* native/jni/qt-peer/qttextfieldpeer.cpp
	(Java_gnu_java_awt_peer_qt_QtTextFieldPeer_getCaretPosition): Renamed
	from Java_gnu_java_awt_peer_qt_QtTextFieldPeer_getCaretPositionNative.

	* gnu/java/awt/peer/qt/QtComponentPeer.java (getMinimumSizeNative):
	Removed unused native method.
	(getPreferredSizeNative): Likewise.

	* include/gnu_java_awt_peer_qt_QMatrix.h: Regenerated.
	* include/gnu_java_awt_peer_qt_QPainterPath.h: Likewise.
	* include/gnu_java_awt_peer_qt_QPen.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtAudioClip.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtButtonPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtCanvasPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtCheckboxPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtChoicePeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtComponentPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtContainerPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtDialogPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtFileDialogPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtFontMetrics.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtFontPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtFramePeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtGraphics.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtImage.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtLabelPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtListPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtMenuBarPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtMenuItemPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtMenuPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtPanelPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtScreenDevice.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtScrollPanePeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtScrollbarPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtTextAreaPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtTextFieldPeer.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtToolkit.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtVolatileImage.h: Likewise.
	* include/gnu_java_awt_peer_qt_QtWindowPeer.h: Likewise.

2005-08-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/EventQueue.java (getNextEvent): Don't check if this is
	the dispatch thread.

2005-08-23  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/qt/QtAudioClip.java
	* gnu/java/awt/peer/qt/QtComponentGraphics.java
	* gnu/java/awt/peer/qt/QtComponentPeer.java
	* gnu/java/awt/peer/qt/QtDialogPeer.java
	* gnu/java/awt/peer/qt/QtFontPeer.java
	* gnu/java/awt/peer/qt/QtFramePeer.java
	* gnu/java/awt/peer/qt/QtGraphics.java
	* gnu/java/awt/peer/qt/QtImage.java
	* gnu/java/awt/peer/qt/QtImageGraphics.java
	* gnu/java/awt/peer/qt/QtLabelPeer.java
	* gnu/java/awt/peer/qt/QtMenuBarPeer.java
	* gnu/java/awt/peer/qt/QtMenuComponentPeer.java
	* gnu/java/awt/peer/qt/QtMenuPeer.java
	* gnu/java/awt/peer/qt/QtPanelPeer.java
	* gnu/java/awt/peer/qt/QtRepaintThread.java
	* gnu/java/awt/peer/qt/QtToolkit.java
	* gnu/java/awt/peer/qt/QtVolatileImage.java
	* include/gnu_java_awt_peer_qt_QtComponentPeer.h
	* include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h
	* include/gnu_java_awt_peer_qt_QtGraphics.h
	* include/gnu_java_awt_peer_qt_QtMenuPeer.h
	* include/gnu_java_awt_peer_qt_QtVolatileImage.h
	* native/jni/qt-peer/componentevent.cpp
	* native/jni/qt-peer/componentevent.h
	* native/jni/qt-peer/eventmethods.h
	* native/jni/qt-peer/keybindings.cpp
	* native/jni/qt-peer/keybindings.h
	* native/jni/qt-peer/qtcomponentpeer.cpp
	* native/jni/qt-peer/qtframepeer.cpp
	* native/jni/qt-peer/qtgraphics.cpp
	* native/jni/qt-peer/qtimage.h
	* native/jni/qt-peer/qtlabelpeer.cpp
	* native/jni/qt-peer/qtmenucomponentpeer.cpp
	* native/jni/qt-peer/qtmenupeer.cpp
	* native/jni/qt-peer/qtscrollpanepeer.cpp
	* native/jni/qt-peer/qttextfieldpeer.cpp
	* native/jni/qt-peer/qtvolatileimage.cpp
	* native/jni/qt-peer/qtwindowpeer.cpp:
	Reindented, minor fixes.
	* gnu/java/awt/peer/qt/QtImageDirectGraphics.java
	New file.
	
2005-08-22  Tom Tromey  <tromey@redhat.com>

	* java/net/JarURLConnection.java (getJarEntry): Return null if no
	entry specified.

2005-08-22  Tom Tromey  <tromey@redhat.com>

	* lib/split-for-gcj.sh: Create Makefile.deps atomically.
	* lib/gen-classlist.sh.in: Don't run split-for-gcj.sh.
	* lib/Makefile.gcj (Makefile.deps): New target.
	* lib/Makefile.am (compile-classes): Pass top_srcdir to
	Makefile.gcj.

2005-08-22  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Added in default border for Tree.
	* javax/swing/tree/DefaultTreeCellRenderer.java:
	Formatting entire class.
	(getPreferredSize): Implemented.

2005-08-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/SwingPropertyChangeSupport.java: reformatted.
	
2005-08-22  Mark Wielaard  <mark@klomp.org>

	* javax/swing/ImageIcon.java: Add documentation.

2005-08-22  Tom Tromey  <tromey@redhat.com>

	* javax/swing/text/LayoutQueue.java: New file.

2005-08-22  Tom Tromey  <tromey@redhat.com>

	PR libgcj/23499:
	* doc/api/Makefile.am (install-data-local): Now conditional on
	CREATE_API_DOCS.
	(uninstall-local): Likewise.

2005-08-22  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.am (ACLOCAL_AMFLAGS): New.

2005-08-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/UIManager.java: fixed error message typo in static
	initialization code.
	
2005-08-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/AbstractDocument.java: fixed minor API doc problems,
	* javax/swing/text/Caret.java: likewise,
	* javax/swing/text/CompositeView.java: likewise,
	* javax/swing/text/DefaultCaret.java: likewise,
	* javax/swing/text/DefaultEditorKit.java: likewise,
	* javax/swing/text/DefaultStyledDocument.java: likewise,
	* javax/swing/text/ElementIterator.java: likewise,
	* javax/swing/text/GlyphView.java: likewise,
	* javax/swing/text/IconView.java: likewise,
	* javax/swing/text/View.java: likewise.

2005-08-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SwingUtilities.java: fixed some minor API doc problems.
	
2005-08-22  David Gilbert  <david.gilbert@object-refinery.com>

	* NEWS: added item regarding javax.swing.plaf.multi.* package 
	implementation.
	
2005-08-22  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gtkpeer.h (cp_gtk_clipboard,
	cp_gtk_stringTarget, cp_gtk_imageTarget, cp_gtk_filesTarget): New
	extern variables.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c: New file.
	* native/jni/gtk-peer/Makefile.am (libgtkpeer_la_SOURCES): Add
	gnu_java_awt_peer_gtk_GtkSelection.c.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c: Renames
	clipboard to cp_gtk_clipboard, stringTarget to cp_gtk_stringTarget,
	imageTarget to cp_gtk_imageTarget, filesTarget to cp_gtk_filesTarget,
	cp_gtk_clipboard_owner_change_cb to clipboard_owner_change_cb,
	cp_gtk_clipboard_get_func to clipboard_get_func,
	cp_gtk_clipboard_clear_func to clipboard_clear_func, moved
	GtkSelection native methods to new file.

2005-08-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkSelection.java: Update for new FSF
	address.

2005-08-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(KEYBOARD_DIVIDER_MOVE_OFFSET): Initialize with 3.

2005-08-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/swing/ImageIcon.java (getIconHeight): Return -1 if image
	is null.
	(getIconWidth): Likewise.

2005-08-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(window_get_frame_extents): If window is not decorated, guess 0,
	0, 0, 0 inset values.

2005-08-21  Tom Tromey  <tromey@redhat.com>

	* javax/swing/text/AbstractWriter.java (NEWLINE): Now 'final'.

2005-08-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Label.java (setText): Refine text inequality test.

2005-08-21  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java (setClip(Shape)): Clear
	clip when clip == null.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (setClip(Shape)):
	Likewise.

2005-08-20  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Label.java (setText): Invalidate label.

2005-08-20  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/image/AreaAveragingScaleFilter.java: Add checks for
	consumer != null.
	* java/awt/image/CropImageFilter.java: Likewise.
	* java/awt/image/ImageFilter.java: Likewise.
	* java/awt/image/RGBImageFilter.java: Likewise.
	* java/awt/image/ReplicateScaleFilter.java: Likewise.

2005-08-20  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java (findFormatName):
	Just return null when ext == null.

2005-08-20  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/AWTKeyStroke.java (getAWTKeyStroke): Include old-style
	modifiers in returned AWTKeyStroke's modifier mask.

2005-08-20  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (setStroke): Clear
	dashes if dashes is null.
	(setStrokeUnlocked): Likewise.

2005-08-20  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Window.java (getMostRecentFocusOwner): New method.

2005-08-20  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/qt/MainQtThread.java
	* gnu/java/awt/peer/qt/QtComponentGraphics.java
	* gnu/java/awt/peer/qt/QtComponentPeer.java
	* gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java
	* gnu/java/awt/peer/qt/QtFramePeer.java
	* gnu/java/awt/peer/qt/QtImage.java
	* gnu/java/awt/peer/qt/QtListPeer.java
	* gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.java
	* gnu/java/awt/peer/qt/QtToolkit.java
	* native/jni/qt-peer/componentevent.cpp
	* native/jni/qt-peer/componentevent.h
	* native/jni/qt-peer/eventmethods.h
	* native/jni/qt-peer/mainqtthread.cpp
	* native/jni/qt-peer/mainthreadinterface.cpp
	* native/jni/qt-peer/mainthreadinterface.h
	* native/jni/qt-peer/qtcomponentpeer.cpp
	* native/jni/qt-peer/qtframepeer.cpp
	* native/jni/qt-peer/qtgraphics.cpp
	Refactored.
	* 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
	Regenerated.
	* gnu/java/awt/peer/qt/QtRepaintThread.java:
	New file.

2005-08-20  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gtk_jawt.c
	(classpath_jawt_get_default_display): Remove locking.
	(classpath_jawt_get_visualID): Likewise.
	(classpath_jawt_get_drawable): Likewise.
	(classpath_jawt_object_lock): Remove function.
	(classpath_jawt_object_unlock): Likewise.
	(classpath_jawt_create_lock): Likewise.
	(classpath_jawt_destroy_lock): Likewise.
	* native/jni/classpath/classpath_jawt.h
	(classpath_jawt_object_lock): Remove function.
	(classpath_jawt_object_unlock): Likewise.
	(classpath_jawt_create_lock): Likewise.
	(classpath_jawt_destroy_lock): Likewise.
	* native/jawt/jawt.c [!__GNUC__] (__attribute__): Define to
	nothing.
	(_Jv_Lock): Call classpath_jawt_lock.
	(_Jv_Unlock): Call classpath_jawt_unlock.
	(_Jv_GetDrawingSurfaceInfo): Move surface_info_x11 initialization
	from ...
	(_Jv_GetDrawingSurface): Remove surface_info_x11 initialization.
	(_Jv_FreeDrawingSurface): Don't destroy target object.
	* native/jawt/Makefile.am: Add SONAME FIXME.
	* include/jawt_md.h (struct _JAWT_X11DrawingSurfaceInfo): Re-order
	display field.  Add colour map, depth and GetAWTColor function
	pointer fields.
	* include/jawt.h (struct _JAWT_Rectangle): New structure.
	(struct _JAWT_DrawingSurfaceInfo): Add drawing surface, bounds,
	clip size and clipping rectangle fields.
	(struct _JAWT_DrawingSurface): Add env field.  Rename lock field
	target.  Re-order function pointer and lock fields.  Remove
	surface_info field.
	(struct _JAWT): Add GetComponent function pointer field.

2005-08-20  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/id/ClassLoaderId.java (getClassLoader): New method.
	* gnu/classpath/jdwp/id/ClassObjectId.java (getClassObject): New method.
	* gnu/classpath/jdwp/id/JdwpId.java 
	(getReference): New method.
	(setReference): New method.
	* gnu/classpath/jdwp/id/ObjectId.java (getObject): New method.
	* gnu/classpath/jdwp/id/ReferenceTypeId.java (getType): New method.
	* gnu/classpath/jdwp/id/StriNgId.java (getString): New method.
	* gnu/classpath/jdwp/id/ThreadGroupId.java (getThreadGroup): New method.
	* gnu/classpath/jdwp/id/ThreadId.java (getThread): New method.

	* gnu/classpath/jdwp/id/ObjectId.java (setId): New method.
	(disableCollection): New method.
	(enableCollection): New method.

	* gnu/classpath/jdwp/id/JdwpId.java (equals): Remove test for class equality.
	(setId): Make public.

2005-08-20  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/exception/InvalidThreadGroupException.java
	(InvalidThreadGroupException): Fix misleading string error message.
	(InvalidThreadGroupException): Fix typo -- should be
	JdwpConstants.Error.INVALID_THREAD_GROUP.

	* gnu/classpath/jdwp/exception/InvalidClassLoaderException.java: New
	exception.
	* gnu/classpath/jdwp/exception/InvalidFieldException.java: New
	exception.
	* gnu/classpath/jdwp/exception/InvalidLocationException.java: New
	exception.
	* gnu/classpath/jdwp/exception/InvalidMethodException.java: New
	exception.

2005-08-19  Audrius Meskauskas <AudriusA@Bioinformatics.org>

        * NEWS: Added note about DynamicAny package.

2005-08-19  Mark Wielaard  <mark@klomp.org>

	* native/jni/qt-peer/Makefile.am (libqtpeer_la_SOURCES):
	Added eventmethods.h.

2005-08-19  Tom Tromey  <tromey@redhat.com>

	* javax/swing/tree/DefaultTreeCellEditor.java: Removed erroneous
	import.

2005-08-19  Tom Tromey  <tromey@redhat.com>

	* javax/swing/text/AbstractWriter.java: New file.
	* javax/swing/text/ElementIterator.java: New file.

2005-08-19  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(getCellBounds): No need to call getFont twice. This 
	is fixed.
	* javax/swing/tree/DefaultTreeCellEditor.java:
	Added API documentation for all fields.
	(getPreferredSize): Implemented.
	(paint): Implemented.
	(doLayout): Implemented.
	(getFont): Implemented.
	(getPreferredSize): Implemented.
	(DefaultTreeCellEditor): Partially implemented.
	(DefaultTreeCellEditor): Partially implemented.
	(setBorderSelectionColor): Implemented.
	(getBorderSelectionColor): Implemented.
	(setFont): Implemented.
	(getFont): Implemented.
	(getTreeCellEditorComponent): Added API documentation.	
	(getCellEditorValue): Added API documentation.
	(isCellEditable): Added API documentation.
	(shouldSelectCell): Added API documentation.
	(stopCellEditing): Added API documentation.
	(cancelCellEditing): Added API documentation.
	(valueChanged): Added API documentation.
	(actionPerformed): Added API documentation.
	(setTree): Implemented.
	(shouldStartEditingTimer): Added API documentation.
	(startEditingTimer): Added API documentation.
	(canEditImmediately): Added API documentation.
	(inHitRegion): Added API documentation.
	(determineOffset): Added API documentation.
	(prepareForEditing): Added API documentation.
	(createContainer): Added API documentation.
	(createTreeCellEditor): Added API documentation.

2005-08-19  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* lib/.cvsignore: Add META-INF, Makefile.deps and lists.

2005-08-19  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac: Generate native/jawt/Makefile.
	* include/jawt.h: Import from libgcj.
	* include/jawt_md.h: Likewise.
	* native/Makefile.am (JAWTDIR): New variable.
	* native/jawt: New directory.
	* native/jawt/.cvsignore: New file.
	* native/jawt/Makefile.am: Likewise.
	* native/jawt/jawt.c: Import from libgcj.

2005-08-19  Lillian Angel  <langel@redhat.com>

	* javax/swing/tree/DefaultTreeModel.java
	(setAsksAllowsChildren): Removed comment, unneeded.
	(setRoot): Formatting.
	(getIndexOfChild): Formatting.
	(reload): Added API documentation.
	(reload): Likewise.
	(valueForPathChanged): Implemented.
	(insertNodeInto): Implemented.
	(removeNodeFromParent): Implemented.
	(nodeChanged): Implemented.
	(nodesWereInserted): Implemented.
	(nodesWereRemoved): Implemented.
	(nodesChanged): Implemented.
	(nodeStructureChanged): Added API documentation.
	(getPathToRoot): Implemented.
	(getPathToRoot): Implemented.
	(fireTreeNodesChanged): Added API documentation.

2005-08-19  Roman Kennke  <roman@kennke.org>

	* java/awt/image/DirectColorModel.java
	(createCompatibleWritableRaster): Added API documentation.

2005-08-18  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Font.java (Font(String,Map)): Make package private.
	* gnu/java/awt/ClasspathToolkit.java (getFont): Access
	package-private Font.Font(String,Map) constructor using
	reflection.

2005-08-18  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/GLightweightPeer.java,
	gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	gnu/java/awt/peer/gtk/GtkContainerPeer.java,
	gnu/java/awt/peer/gtk/GtkFramePeer.java,
	gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java,
	gnu/java/awt/peer/gtk/GtkTextAreaPeer.java,
	gnu/java/awt/peer/gtk/GtkTextFieldPeer.java,
	gnu/java/awt/peer/gtk/GtkToolkit.java,
	gnu/java/awt/peer/gtk/GtkWindowPeer.java,
	gnu/java/awt/peer/qt/QtComponentPeer.java,
	gnu/java/awt/peer/qt/QtContainerPeer.java,
	gnu/java/awt/peer/qt/QtFramePeer.java,
	gnu/java/awt/peer/qt/QtMenuComponentPeer.java,
	gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.java,
	gnu/java/awt/peer/qt/QtTextAreaPeer.java,
	gnu/java/awt/peer/qt/QtTextFieldPeer.java,
	gnu/java/awt/peer/qt/QtWindowPeer.java,
	java/awt/peer/ComponentPeer.java,
	java/awt/peer/ContainerPeer.java, java/awt/peer/FramePeer.java,
	java/awt/peer/MenuComponentPeer.java,
	java/awt/peer/TextComponentPeer.java,
	java/awt/peer/WindowPeer.java: Add new 1.5 methods.
	* java/awt/Window.java (Window()): Initialize
	graphicsConfiguration.
	* java/awt/GraphicsConfiguration.java
	(createCompatibleVolatileImage(int,int,int)): New method.
	* java/awt/Font.java (Font(String,Map)): Add FIXME.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(getLocalGraphicsEnvironment): Call new constructor.
	* gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java (getToolkit):
	Remove method.
	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
	(GdkGraphicsEnvironment(GtkToolkit)): Remove method.
	(GdkGraphicsEnvironment()): New constructor.
	(getToolkit): Remove method.
	* gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java
	(getToolkit): Remove method.
	(createCompatibleVolatileImage): New method.
	* gnu/java/awt/ClasspathToolkit.java (getFont): Add FIXME.

2005-08-18  Lillian Angel  <langel@redhat.com>

	* javax/swing/DefaultCellEditor.java
	(getTreeCellEditorComponent): Implemented.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(isEditing): Implemented.
	(mouseClicked): Moved code to mousePressed
	(mousePressed): Code moved here from mouseClicked and
	added in code to stop editing.
	(selectPath): Default is changed to CONTIGUOUS_TREE_SELECTION
	* javax/swing/tree/DefaultTreeSelectionModel.java
	(DefaultTreeSelectionModel): Default is changed to CONTIGUOUS_TREE_SELECTION.

2005-08-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicArrowButton.java:
	Set default size to 12.
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(calculatePreferredSize): Don't restrict width and height to
	a minimum of 20.

2005-08-18  Keith Seitz  <keiths@redhat.com>

	* vm/reference/gnu/classpath/jdwp/VMIdManager.java: New file
	with example implementation of ID-management for JDWP back-end.
	* gnu/classpath/jdwp/id/JdwpIdFactory.java: Removed. Now part of
	VMIdManager.

2005-08-18  Lillian Angel  <langel@redhat.com>

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

2005-08-18  Lillian Angel  <langel@redhat.com>

	* javax/swing/tree/DefaultTreeCellRenderer.java
	(paint): Added check for null border.

2005-08-18  Roman Kennke  <roman@kennke.org>

	* java/awt/FlowLayout.java
	(setAlignment): Added comment explaining why we don't check
	for illegal values here.

2005-08-18  Roman Kennke  <roman@kennke.org>

	* java/awt/image/PixelGrabber.java
	(startGrabbing): Replaced ImageConsumer.ABORTED with
	ImageConsumer.IMAGEABORTED.

2005-08-18  Roman Kennke  <roman@kennke.org>

	* java/awt/image/PixelGrabber.java
	(constructors): Check if the ImageProducer is null and throw
	a NPE if that is the case.
	(startGrabbing): When an exception is thrown in the grabber thread,
	exit gracefully and notify the waiting threads.
	(imageComplete): Only call ip.removeConsumer() if ip is not null.

2005-08-18  David Gilbert  <david.gilbert@object-refinery.com>

	* java/text/StringCharacterIterator.java
	(StringCharacterIterator(String)): documented NullPointerException.
	
2005-08-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/multi/MultiButtonUI.java: new file,
	* javax/swing/plaf/multi/MultiColorChooserUI.java: new file,
	* javax/swing/plaf/multi/MultiComboBoxUI.java: new file,
	* javax/swing/plaf/multi/MultiDesktopIconUI.java: new file,
	* javax/swing/plaf/multi/MultiDesktopPaneUI.java: new file,
	* javax/swing/plaf/multi/MultiFileChooserUI.java: new file,
	* javax/swing/plaf/multi/MultiInternalFrameUI.java: new file,
	* javax/swing/plaf/multi/MultiLabelUI.java: new file,
	* javax/swing/plaf/multi/MultiListUI.java: new file,
	* javax/swing/plaf/multi/MultiLookAndFeel.java: new file,
	* javax/swing/plaf/multi/MultiMenuBarUI.java: new file,
	* javax/swing/plaf/multi/MultiMenuItemUI.java: new file,
	* javax/swing/plaf/multi/MultiOptionPaneUI.java: new file,
	* javax/swing/plaf/multi/MultiPanelUI.java: new file,
	* javax/swing/plaf/multi/MultiPopupMenuUI.java: new file,
	* javax/swing/plaf/multi/MultiProgressBarUI.java: new file,
	* javax/swing/plaf/multi/MultiRootPaneUI.java: new file,
	* javax/swing/plaf/multi/MultiScrollBarUI.java: new file,
	* javax/swing/plaf/multi/MultiScrollPaneUI.java: new file,
	* javax/swing/plaf/multi/MultiSeparatorUI.java: new file,
	* javax/swing/plaf/multi/MultiSliderUI.java: new file,
	* javax/swing/plaf/multi/MultiSpinnerUI.java: new file,
	* javax/swing/plaf/multi/MultiSplitPaneUI.java: new file,
	* javax/swing/plaf/multi/MultiTabbedPaneUI.java: new file,
	* javax/swing/plaf/multi/MultiTableHeaderUI.java: new file,
	* javax/swing/plaf/multi/MultiTableUI.java: new file,
	* javax/swing/plaf/multi/MultiTextUI.java: new file,
	* javax/swing/plaf/multi/MultiToolBarUI.java: new file,
	* javax/swing/plaf/multi/MultiToolTipUI.java: new file,
	* javax/swing/plaf/multi/MultiTreeUI.java: new file,
	* javax/swing/plaf/multi/MultiViewportUI.java: new file,
	* javax/swing/plaf/multi/package.html: new file.
	
2005-08-18  David Gilbert  <david.gilbert@object-refinery.com>

	* java/util/Vector.java
	(copyInto) fixed incorrect API description.
	
2005-08-17  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c: Remove
	JamVM deadlock workarounds.

2005-08-17  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java,
	gnu_java_awt_peer_gtk_GtkFramePeer.c (postConfigureEvent): Prevent
	callback calling back into peers.
	(setBounds): Likewise.
	(setMenuBarWidthUnlocked): New method.
	* native/jni/gtk-peer/gtkpeer.h (cp_gtk_filedialog_init_jni):
	Declare function.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
	(gtkInit): Call cp_gtk_filedialog_init_jni.
	(loadSystemColors): Work around deadlock.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
	(textcomponent_changed_cb): Don't release GDK lock.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
	(item_activate_cb): Don't release GDK lock.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
	(item_highlighted_cb): Don't release GDK lock.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(component_button_press_cb): Don't release GDK lock.
	(component_button_release_cb): Likewise.
	(component_motion_notify_cb): Likewise.
	(component_enter_notify_cb): Likewise.
	(component_leave_notify_cb): Likewise.
	(component_expose_cb): Likewise.
	(component_focus_in_cb): Likewise.
	(component_focus_out_cb): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(block_expose_event_cb): Remove callback.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java,
	gnu_java_awt_peer_gtk_GtkWindowPeer.c (postConfigureEvent):
	Prevent callback calling back into peers.
	(setBounds): Likewise.
	(nativeSetBoundsUnlocked): New method.
	(setBoundsUnlocked): Likewise.
	(nativeSetVisibleUnlocked): Likewise.
	(setVisibleUnlocked): Likewise.
	(window_delete_cb): Don't release GDK lock.
	(window_destroy_cb): Likewise.
	(window_show_cb): Likewise.
	(window_active_state_change_cb): Likewise.
	(window_focus_state_change_cb): Likewise.
	(window_focus_in_cb): Likewise.
	(window_focus_out_cb): Likewise.
	(window_window_state_cb): Likewise.
	(window_property_changed_cb): Likewise.
	(realize_cb): Likewise.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (mainThread): New
	variable.
	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
	gnu_java_awt_peer_gtk_GtkFileDialogPeer.c (setVisible): Prevent
	callback calling back into peers.
	(filename_filter_cb): Don't release GDK lock.
	(handle_response_cb): Likewise.
	(cp_gtk_filedialog_init_jni): New function.
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java (setState): Prevent
	callback from calling back into peers.
	(item_toggled_cb): Don't release GDK lock.
	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
	gnu_java_awt_peer_gtk_GdkPixbufDecoder.c (area_prepared_cb): Don't
	release GDK lock.
	(area_updated_cb): Likewise.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java,
	gnu_java_awt_peer_gtk_GdkGraphics2D.c (initStateUnlocked): New
	method.
	(cairoSurfaceSetFilterUnlocked): Likewise.
	(initComponentGraphics2DUnlocked): Likewise.
	(setTexturePixelsUnlocked): Likewise.
	(setGradientUnlocked): Likewise.
	(cairoSetMatrixUnlocked): Likewise.
	(cairoSetRGBAColorUnlocked): Likewise.
	(cairoSetLineWidthUnlocked): Likewise.
	(cairoSetLineCapUnlocked): Likewise.
	(cairoSetLineJoinUnlocked): Likewise.
	(cairoSetDashUnlocked): Likewise.
	(cairoSetMiterLimitUnlocked): Likewise.
	(setPaintUnlocked): Likewise.
	(setTransformUnlocked): Likewise.
	(setStrokeUnlocked): Likewise.
	(setColorUnlocked): Likewise.
	(setBackgroundUnlocked): Likewise.
	(setRenderingHintsUnlocked): Likewise.
	(setFontUnlocked): Likewise.
	(realize_cb): Don't release GDK lock.  Call
	initComponentGraphics2DUnlocked.
	* gnu/java/awt/peer/gtk/GdkGraphics.java,
	gnu_java_awt_peer_gtk_GdkGraphics.c (initStateUnlocked): New
	method.
	(initComponentGraphicsUnlocked): New method.
	(realize_cb): Don't release GDK lock.  Call
	initComponentGraphicsUnlocked.
	* include/gnu_java_awt_peer_gtk_GdkGraphics.h: Regenerate.
	* include/gnu_java_awt_peer_gtk_GdkGraphics2D.h: Likewise.
	* include/gnu_java_awt_peer_gtk_GtkFramePeer.h: Likewise.
	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Likewise.

2005-08-17  Tom Tromey  <tromey@redhat.com>

	* .project: Correctly omit jdwp from vm/reference.

2005-08-17  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(viewToModel): Changed to match API spec.
	* javax/swing/text/CompositeView.java
	(viewToModel): Changed to match API spec.
	* javax/swing/text/FieldView.java
	(viewToModel): Changed to match API spec.
	* javax/swing/text/GlyphView.java
	(viewToModel): Changed to match API spec.
	* javax/swing/text/IconView.java
	(viewToModel): Changed to match API spec.
	* javax/swing/text/PasswordView.java
	(viewToModel): Changed to match API spec.
	* javax/swing/text/PlainView.java
	(viewToModel): Changed to match API spec.
	* javax/swing/text/View.java
	(viewToModel): Changed to match API spec.

2005-08-17  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JList.java:
	(indexToLocation): Implemented.
	(getLastVisibleIndex): If the last index in the list is showing and
	there is extra room at the bottom, return the last index, not -1.

2005-08-17  Lillian Angel <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(getCellLocation): Added in check if node is a leaf.
	Shouldnt call getChildCount if a leaf. May cause NPE.
	(paintRecursive): Likewise.
	(paintControlIcons): Likewise.
	(findNode): Likewise.
	(getNextNode): Likewise.
	(getPreviousNode): Likewise.
	(getNextSibling): Likewise.
	(getPreviousSibling): Likewise.

2005-08-17  Lillian Angel  <langel@redhat.com>

	* javax/swing/tree/DefaultTreeCellRenderer.java
	(paint): paints the background and border of cell.

2005-08-17  Roman Kennke  <roman@kennke.org>

	Reported by Ingo Proetel  <proetel@aicas.com>
	* java/awt/image/DirectColorModel.java
	(createCompatibleWritableRaster): Added argument check.

2005-08-17  Roman Kennke  <roman@kennke.org>

	* java/awt/FontMetrics.java
	(charWidth(int)): Correctly map Unicode indices to char[] here.

2005-08-17  Roman Kennke  <roman@kennke.org>

	* java/lang/Character.java
	(toChars(int)): New JDK1.5 method.
	(toChars(int, char[], int)): New JDK1.5 method.
	(charCount): New JDK1.5 method.
	(isSupplementaryCodePoint): New JDK1.5 method.
	(isValidCodePoint): New JDK1.5 method.

2005-08-17  Lillian Angel  <langel@redhat.com>

	* java/awt/FontMetrics.java
	(charWidth): Reversed Roman's patch, was not compiling.
	* javax/swing/tree/DefaultTreeCellRenderer.java
	(getTreeCellRendererComponent): Set Opaque to true for 
	painting reasons.

2005-08-17  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/qt/QtFramePeer.java (setIcon): Mark non-native
	and add FIXME.
	(setMaximizedBounds): Likewise.
	* include/gnu_java_awt_peer_qt_QtFramePeer.h: Regenerated.
	* native/jni/qt-peer/.cvsignore: New file.
	* native/jni/qt-peer/Makefile.am (libqtpeer_la_SOURCES):
	Remove eventmethods.h.
	
2005-08-17  Mark Wielaard  <mark@klomp.org>

	* scripts/check_jni_methods.sh: Find JNI method declarations in
	.cpp files. Check both GNU style functions (start of line) and
	one-line like declarations. Use diff -U 0, not -0.

2005-08-17  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicLabelUI.java
	(paint): Don't paint the border here. If there is a border to
	be painted, this is usually performed in JComponent.paint().

2005-08-17  Roman Kennke  <roman@kennke.org>

	* java/awt/FontMetrics.java
	(charWidth(int)): Correctly map Unicode indices to char[] here.

2005-08-17  Roman Kennke  <roman@kennke.org>

	* java/awt/Component.java
	This applies to various variants of the repaint() methods:
	(repaint): If the component is not showing, forward repaint
	request to the parent.

2005-08-17  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicLabelUI.java
	(paint): Don't fill the background here. If the label is opaque
	then the background is filled in ComponentUI.update(), otherwise
	it must not be touched.

2005-08-17  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
	(setComponentBounds): Don't post COMPONENT_RESIZED event.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(setBoundsCallbackID): Remove variable.
	(cp_gtk_window_init_jni): Don't initialize setBoundsCallbackID.
	(setBoundsCallback): Remove method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
	(setMenuBarPeer): Check if menubar is NULL.
	(setMenuBarWidth): Likewise.
	* java/awt/Window.java (dispatchEventImpl): Validate upon
	receiving a COMPONENT_RESIZED event.
	(setBoundsCallback): Remove method.
	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Regenerate.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java (setBoundsCallback):
	Remove method declaration.
	(postConfigureEvent): Separate handling of resizes and moves.
	Call setSize and post COMPONENT_RESIZED event.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java (postConfigureEvent):
	Separate handling of resizes and moves.  Call setSize.
	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
	(setComponentBounds): Call setSize and post COMPONENT_RESIZED
	event.
	* gnu/java/awt/peer/gtk/GtkContainerPeer.java (isValidating):
	Remove field.

2005-08-15  Dalibor Topic  <robilad@kaffe.org>

	* configure.ac: Added option to enable building qt peers.

	* include/Makefile.am: Added qt peer headers.

	* 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,
        native/jni/qt-peer/Makefile.am:
	New files.

	* native/jni/Makefile.am: Handle qt peers.

	* native/jni/qt-peer/slotcallbacks.moc.h: Removed. Now generated
	on demand by moc.

2005-08-16  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/qt/QtButtonPeer.java
	* gnu/java/awt/peer/qt/QtCheckboxPeer.java
	* gnu/java/awt/peer/qt/QtChoicePeer.java
	* gnu/java/awt/peer/qt/QtComponentGraphics.java
	* gnu/java/awt/peer/qt/QtComponentPeer.java
	* gnu/java/awt/peer/qt/QtContainerPeer.java
	* gnu/java/awt/peer/qt/QtDialogPeer.java
	* gnu/java/awt/peer/qt/QtFontPeer.java
	* gnu/java/awt/peer/qt/QtFramePeer.java
	* gnu/java/awt/peer/qt/QtGraphics.java
	* gnu/java/awt/peer/qt/QtImage.java
	* gnu/java/awt/peer/qt/QtImageGraphics.java
	* gnu/java/awt/peer/qt/QtListPeer.java
	* gnu/java/awt/peer/qt/QtMenuBarPeer.java
	* gnu/java/awt/peer/qt/QtMenuItemPeer.java
	* gnu/java/awt/peer/qt/QtMenuPeer.java
	* gnu/java/awt/peer/qt/QtScrollbarPeer.java
	* gnu/java/awt/peer/qt/QtTextAreaPeer.java
	* gnu/java/awt/peer/qt/QtTextFieldPeer.java
	* gnu/java/awt/peer/qt/QtToolkit.java
	* gnu/java/awt/peer/qt/QtWindowPeer.java
	* native/jni/qt-peer/keybindings.cpp
	* native/jni/qt-peer/keybindings.h 
	* native/jni/qt-peer/qtbuttonpeer.cpp
	* native/jni/qt-peer/qtcanvaspeer.cpp
	* native/jni/qt-peer/qtcheckboxpeer.cpp
	* native/jni/qt-peer/qtchoicepeer.cpp
	* native/jni/qt-peer/qtcomponent.cpp
	* native/jni/qt-peer/qtcomponentpeer.cpp
	* native/jni/qt-peer/qtdialogpeer.cpp
	* native/jni/qt-peer/qtframepeer.cpp
	* native/jni/qt-peer/qtgraphics.cpp 
	* native/jni/qt-peer/qtimage.cpp
	* native/jni/qt-peer/qtlabelpeer.cpp
	* native/jni/qt-peer/qtlistpeer.cpp
	* native/jni/qt-peer/qtmenupeer.cpp
	* native/jni/qt-peer/qtpanelpeer.cpp
	* native/jni/qt-peer/qtscrollbarpeer.cpp
	* native/jni/qt-peer/qtscrollpanepeer.cpp
	* native/jni/qt-peer/qttextareapeer.cpp
	* native/jni/qt-peer/qttextfieldpeer.cpp
	* native/jni/qt-peer/qtwindowpeer.cpp
	* native/jni/qt-peer/slotcallbacks.cpp
	* native/jni/qt-peer/slotcallbacks.h
	Reindented, Transmogrified and Wielaardituded.
	* gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java
	* native/jni/qt-peer/eventmethods.h
	* native/jni/qt-peer/qtembeddedwindowpeer.cpp
	* native/jni/qt-peer/slotcallbacks.moc.h
	New files
	* native/jni/qt-peer/eventmethods.cpp
	* native/jni/qt-peer/slotcallbacks.moc
	Removed.
	
2005-08-16  Tom Tromey  <tromey@redhat.com>

	* .project: Fixed typo.  Added builder for native code.
	* .externalToolBuilders/CompileNative.launch: New file.

2005-08-16  Tom Tromey  <tromey@redhat.com>

	* .classpath: Ignore jdwp.
	* .project: Added builder to create LocaleData.java.
	* .externalToolBuilders/CreateLocaleData.launch: New file.
	* examples/gnu/classpath/examples/jawt/DemoJAWT.java: Added package.

2005-08-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/PasswordView.java
	(drawUnselectedText): Fixed so the password is drawn correctly 
	in the text box and no * characters are drawn before anything
	was typed.

2005-08-16  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkClipboard.java: Reimplemented.
	* gnu/java/awt/peer/gtk/GtkClipboardNotifier.java: New class.
	* gnu/java/awt/peer/gtk/GtkSelection.java: New class.
	* gnu/java/awt/peer/gtk/GtkImage.java (GtkImage(Pointer)): New
	constructor.
	(createFromPixbuf): New private native method.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (systemClipboard): Removed.
	(getSystemClipboard): Do security check and return
	GtkClipboard.getInstance().
	* include/Makefile.am: Add gnu_java_awt_peer_gtk_GtkSelection.h.
	* include/gnu_java_awt_peer_gtk_GtkClipboard.h: Regenerated.
	* include/gnu_java_awt_peer_gtk_GtkImage.h: Regenerated.
	* include/gnu_java_awt_peer_gtk_GtkSelection.h: New header file.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c:
	Reimplemented.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(Java_gnu_java_awt_peer_gtk_GtkImage_createFromPixbuf): New

2005-08-16  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicTableUI.java:
	(ActionListenerProxy): Replaced type TableAction with parent type
	ActionListener to avoid Semantic errors.

2005-08-16  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	(initComponentDefaults): Fixed typo.
	* javax/swing/plaf/basic/BasicTableUI.java:
	(installKeyboardActions): Replaced calls to registerKeyboardAction with
	additions to an explicit InputMap-ActionMap pair and then set this
	pair as the parent pair to the JTable's.  This matches the JDK where
	the UI Input-Action pairs are the parents of the component's.
	(ActionListenerProxy): New class.

2005-08-16  Mark Wielaard  <mark@klomp.org>

	* examples/gnu/classpath/examples/datatransfer/Demo.java:
	Document and implement ItemListener and FlavorListener.
	(flavors): New field.
	(details): New field.
	(Demo): Add more space, add the flavors panel and flavor listener.
	(createTextPanel): Smaller and wider.
	(createFlavorsPanel): New private method.
	(flavorsChanged): New public method.
	(itemStateChanged): Likewise.
	(ImageComponent.ImageComponent): Smaller default.
	(ObjectComponent.ObjectComponent): Make wider.
	(FlavorsComponent): New static class.
	(FlavorDetailsComponent): Likewise.

2005-08-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Changed font for PasswordField because textbox was 
	being drawn at an awkward height.
	* javax/swing/text/PasswordView.java
	(getPreferredSpan): Implemented
	(modelToView): likewise.
	(viewToModel): partially implemented.

2005-08-16  Jeroen Frijters  <jeroen@frijters.net>

	* java/awt/Component.java
	(dispatchEventImpl): Always call peer.handleEvent().

2005-08-16  Jeroen Frijters  <jeroen@frijters.net>

	* java/awt/Container.java
	(addImpl, remove): Only repaint if the container is showing.

2005-08-16  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
	(Java_gnu_java_awt_peer_gtk_GtkToolkit_nativeQueueEmpty): Removed.

2005-08-15  Dalibor Topic  <robilad@kaffe.org>

        * native/jni/qt-peer/mainqtthread.cpp,
        native/jni/qt-peer/qmatrix.cpp,
        native/jni/qt-peer/qpainterpath.cpp,
        native/jni/qt-peer/qpen.cpp,
        native/jni/qt-peer/qtbuttonpeer.cpp,
        native/jni/qt-peer/qtcanvaspeer.cpp,
        native/jni/qt-peer/qtcheckboxpeer.cpp,
        native/jni/qt-peer/qtchoicepeer.cpp,
        native/jni/qt-peer/qtcomponentpeer.cpp,
        native/jni/qt-peer/qtdialogpeer.cpp,
        native/jni/qt-peer/qtfiledialogpeer.cpp,
        native/jni/qt-peer/qtfontmetrics.cpp,
        native/jni/qt-peer/qtfontpeer.cpp,
        native/jni/qt-peer/qtframepeer.cpp,
        native/jni/qt-peer/qtgraphics.cpp,
        native/jni/qt-peer/qtimage.cpp,
        native/jni/qt-peer/qtlabelpeer.cpp,
        native/jni/qt-peer/qtlistpeer.cpp,
        native/jni/qt-peer/qtmenubarpeer.cpp,
        native/jni/qt-peer/qtmenucomponentpeer.cpp,
        native/jni/qt-peer/qtmenuitempeer.cpp,
        native/jni/qt-peer/qtmenupeer.cpp,
        native/jni/qt-peer/qtpanelpeer.cpp,
        native/jni/qt-peer/qtpopupmenupeer.cpp,
        native/jni/qt-peer/qtscreendevice.cpp,
        native/jni/qt-peer/qtscrollbarpeer.cpp,
        native/jni/qt-peer/qtscrollpanepeer.cpp,
        native/jni/qt-peer/qttextareapeer.cpp,
        native/jni/qt-peer/qttextfieldpeer.cpp,
        native/jni/qt-peer/qtvolatileimage.cpp,
        native/jni/qt-peer/qtwindowpeer.cpp:
	Include <assert.h>.

2005-08-15  Lillian Angel  <langel@redhat.com>

	* javax/swing/JPasswordField.java
	(getText): Fixed the length of the string to retrieve.

2005-08-15  Sven de Marothy  <sven@physto.se>

	* java/awt/TextComponent.java
	(select): Fix typo.
	
2005-08-15  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JComponent.java:
	(processKeyEvent): Added functionality for processing key events in
	non-focused components using the WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
	field.
	* javax/swing/plaf/basic/BasicTableUI.java:
	(installKeyboardActions): Changed key bindings to be registered as
	WHEN_ANCESTOR_OF_FOCUSED_COMPONENT rather than as WHEN_FOCUSED.
	(TableAction.actionPerformed): If the key action is anything besides
	"start editing" then we stop editing if we are doing so.  Repaint the
	table at the end of this method.

2005-08-15  Lillian Angel  <langel@redhat.com>

	* javax/swing/JPasswordField.java
	(echoCharIsSet): Fixed this to work according to API.
	(getText): Implemented
	(getText): Implemented
	(getPassword): Implemented
	(paramString): Implemented

2005-08-15  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/ClasspathToolkit.java (nativeQueueEmpty): Remove
	method.
	(wakeNativeQueue): Likewise.
	(iterateNativeQueue): Likewise.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (static): Start GTK main
	thread.
	(nativeQueueEmpty): Remove method.
	(wakeNativeQueue): Likewise.
	(iterateNativeQueue): Likewise.
	(gtkMain): New method.
	* include/gnu_java_awt_peer_gtk_GtkToolkit.h: Regenerate.
	* java/awt/EventQueue.java: Remove references to ClasspathToolkit.
	* java/awt/Frame.java (fireDummyEvent): Remove method.
	Remove calls to fireDummyEvent.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
	(dispose): Don't wake up main thread.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c: Remove
	single-thread code.

2005-08-15  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTree.java
	(expandPath): called fireTreeWillExpand and fireTreeExpanded 
	since it is not required that the calling class fires these
	events.
	(collapsePath): Likewise.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(mouseClicked): Took out code that called fireTreeWillExpand/
	fireTreeWillCollapse and fireTreeExpanded/fireTreeCollapsed.
	(keyPressed): Likewise.

2005-08-15  Roman Kennke  <roman@kennke.org>

	* java/awt/FlowLayout.java
	(setAlignment): Removed check for illegal values. These values
	are treated as LEFT alignment instead.
	(layoutContainer): Treat unknown align values as LEFT in default
	clause of if-else statement.

2005-08-15  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkButtonPeer.java (handleEvent): Remove
	method.
	(postActionEvent): New method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c:
	Rename state_to_awt_mods cp_gtk_state_to_awt_mods.
	* native/jni/gtk-peer/gtkpeer.h: Declare cp_gtk_state_to_awt_mods.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(clicked_cb): New function.
	(connectSignals): Connect clicked_cb callback to "clicked" signal.

2005-08-14  Casey Marshall  <csm@gnu.org>

	* gnu/java/security/provider/DSAKeyPairGenerator.java
	(initialize): set 'keysize' to 'modlen.'
	(getDefaults): return 'true' for keysizes '768' and '1024.'

2005-08-14  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* lib/Makefile.am (JAVAC): Disable ecj warning output.

2005-08-14  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/ClasspathToolkit.java
	(getScreenSize, getColorModel, getFontMetrics, getImage, createImage,
	 createImageProducer, registerImageIOSpis):
	Remove redundant (overloaded) methods.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(registerImageIOSpis): Move registration to static initializer.
	* javax/imageio/spi/IIORegistry.java:
	Remove call to Toolkit registration method.
	
2005-08-13  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (repaintTimer): Make
	field final.

2005-08-14  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/ClasspathToolkit.java
	(getScreenSize, getColorModel, getFontMetrics, getImage, createImage,
	 createImageProducer, registerImageIOSpis):
	Remove redundant (overloaded) methods.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(registerImageIOSpis): Move registration to static initializer.
	* javax/imageio/spi/IIORegistry.java:
	Remove call to Toolkit registration method.
	
2005-08-13  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (repaintTimer): Make
	field final.

2005-08-14  Sven de Marothy  <sven@physto.se>

	* java/awt/Container.java
	(addImpl): Call addNotify() only if the container has a peer.

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

	* java/util/Collections.java (reverseOrder): New method.
	(frequency): Likewise.
	(ReverseComparator): No longer final.

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

	* java/util/Timer.java (Timer(String)): New constructor.
	(Timer(String,boolean)): Likewise.
	(purge): New method.
	(TaskQueue.purge): Likewise.

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

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

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.
	* java/util/InvalidPropertiesFormatException.java: New file.

2005-08-13  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/ObjectInputStream.java
	(readClassDescriptor): Don't cache caller's class loader.
	(resolveClass): Don't cache caller's class loader and support
	primitive types. Fixes bug #23377.

2005-08-13  Mark Wielaard  <mark@klomp.org>

	* scripts/check_jni_methods.sh: Set and check for PROBLEM.

2005-08-13  Mark Wielaard  <mark@klomp.org>

	* scripts/check_jni_methods.sh: Don't create temp files in source dir.
	Don't override existing files. Fast fail on errors.

2005-08-12  Aaron Luchko  <aluchko@redhat.com>

	* vm/reference/gnu/classpath/jdwp/VMFrame.java(getValue):
	Fix typo in comment.

2005-08-12  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
	(executeAllThreads): Use enumerate(Thread[]) instead of 
	enumerate(Thread[], true).
	(runCommand): Throw NotImplementedException when command is not found.

2005-08-12  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java
	(executeInvokeMethod): Change MethodInvoker to MethodResult.

2005-08-12  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/util/VariableTable.java: A class representing a
	Variable Table for a method.
	* gnu/classpath/jdwp/util/LineTable.java: A class representing a Line
	Table for a method.

2005-08-12  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkMenuBarPeer.java (addMenu(Menu)): New
	method.
	* gnu/java/awt/peer/gtk/GtkMenuPeer.java (addSeparator): Likewise.
	* java/awt/peer/MenuBarPeer.java (addMenu): New method
	declaration.
	* java/awt/peer/MenuPeer.java (addSeparator): New method
	declaration.

2005-08-12  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (setBounds): Get
	frame insets directly from peer rather than from Window.getInsets.
	(toString): New method.

2005-08-12  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/util/Location.java: New file to handle JDWP
	locations.

2005-08-12  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkButtonPeer.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(gtkWidgetGetPreferredDimensions): New method.
	* gnu/java/awt/peer/gtk/GtkLabelPeer.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
	(gtkWidgetGetPreferredDimensions): New method.
	* include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: Regenerate.
	* include/gnu_java_awt_peer_gtk_GtkButtonPeer.h: Likewise.

2005-08-12  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/exception/JdwpInternalErrorException.java
	(JdwpInternalErrorException): Added new constructor.
	* gnu/classpath/jdwp/util/Value.java
	(getUntaggedObj):
	Changed InvalidFieldException to JdwpInternalErrorException.
	(writeUntaggedValue): Likewise.
	(writeTaggedValue): Likewise.
	(writeValue): Likewise.

2005-08-12  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/EventRequestCommandSet.java:
	Implemented the EventRequest CommandSet.

2005-08-12  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTable.java:
	(setValueAt): Do nothing if isCellEditable returns false.
	(editCelLAt): Removed the Key Listener for the JTextField.  Listening
	for ESCAPE should be handled by the JTable itself.  Note, this is not
	implemented yet.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	(initComponentDefaults): Added several keybindings to JTable's
	ancestorInputMap.  These are all implemented.
	* javax/swing/plaf/basic/BasicTableUI.java:
	(KeyHandler): Removed this class.  Note that most of the code from the
	keyPressed method now resides in the actionPerformed method of the
	BasicTableUI.TableAction class.
	(convertModifiers): New private method to convert from new InputEvent
	modifier masks to the old style.
	(installKeyboardActions): Implemented.  Gets the key bindings from
	the UIManager and registers them for the JTable.
	(TableAction): New class.  This is where the actions corresponding to
	key presses resides.
	(installListeners): Removed installation of KeyListener.

2005-08-12  Aaron Luchko  <aluchko@redhat.com>

	* vm/reference/standard.omit: New file to omit jdwp reference classes
	from build.

2005-08-12  Aaron Luchko  <aluchko@redhat.com>

	* vm/reference/gnu/classpath/jdwp/VMFrame.java: Implemented reference
	implementation of interface to VM for JDWP frame management.
	* gnu/classpath/jdwp/processor/StackFrameCommandSet.java: Updated
	import.
	(executeGetValues): Use VMFrame instead of Frame.
	(executeSetValues): Use VMFrame instead of Frame.
	(executeThisObject): Use VMFrame instead of Frame.
	* gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java:
	Updated import.
	(executeFrames): Changed getLoc() to getLocation() and use
	VMFrame instead of Frame.

2005-08-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(getCellLocation): Added in a check to make sure the node has children.
	Fixed loop to use post-increment.
	(paintRecursive): Fixed loop to use post-increment.
	(paintControlIcons): Likewise.
	(getNextNode): Fixed check to make sure that node has children.
	(getPreviousSibling): Added in check to make sure index is in correct
	range.

2005-08-12  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/qt/QtButtonPeer.java: Replace uses of
	toolkit.eventQueue.postEvent() with QtToolkit.eventQueue.postEvent().
	* gnu/java/awt/peer/qt/QtCheckboxPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtChoicePeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtComponentPeer.java: Likewise and for
	guiThread.QApplicationPointer and graphicsEnv.getScreenDevices().
	* gnu/java/awt/peer/qt/QtMenuItemPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtMenuPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtScrollbarPeer.java: Likewise.
	* gnu/java/security/PolicyFile.javai (refresh): Assign only outside
	if statement.

2005-08-12  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/GapContent.java
	(insertString): Use replace() to actually insert content.
	(remove): Use replace() to actually remove content.
	(shiftGap): Repaired misplaced curly brace in if block of
	boudary check.
	(replace): Check for null argument for addItems.

2005-08-12  Roman Kennke  <roman@kennke.org>

	Reported by: Ingo Proetel  <proetel@aicas.com>
	* java/net/URLClassLoader.java
	(findClass): Added null check to avoid NullPointerException.

2005-08-12  Roman Kennke  <roman@kennke.org>

	Reported by: Ingo Proetel  <proetel@aicas.com>
	* java/util/logging/Logger.java
	This applies to a couple of log() methods:
	(log): Added check if the specified level is actually enabled,
	otherwise ignore logging request.

2005-08-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	* (getMinimumDividerLocation): Fixed to work similar to 
	getMaximumDividerLocation. Was not able to move divider
	in both directions before.

2005-08-12  Roman Kennke  <roman@kennke.org>

	* java/awt/Component.java
	(reshape): Simplified repainting of parent.
	(paint): Don't call peer.paint() here. The paint method is
	exclusivly meant to be overridden by subclasses that wish to
	perform custom painting and should do nothing by default.
	(repaint): Use local variable in null pointer checks to avoid
	NullPointerExceptions.
	(imageUpdate): Slight formatting adjustments.
	(dispatchEvent): Don't call peer.handleEvent() here, this must
	be done in dispatchEventImpl().
	(dispatchEventImpl): Dispatch PAINT and UPDATE events to the
	peer.
	* java/awt/Container.java
	(paint): Don't call super.paint() here, this method does nothing
	anyway. Visit only lightweight children.
	(update): Instead of clearing the background only for top-level
	containers, clear the background for all heavyweight containers.

2005-08-12  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* examples/gnu/classpath/examples/jawt/DemoJAWT.c: New file.
	* examples/gnu/classpath/examples/jawt/DemoJAWT.java: Likewise.
	* examples/gnu/classpath/examples/jawt/Makefile: Likewise.

2005-08-11  Mark Wielaard  <mark@klomp.org>

	* examples/gnu/classpath/examples/datatransfer/Demo.java:
	New example.

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

	For PR classpath/23008:
	* gnu/java/nio/charset/UTF_16Decoder.java (decodeLoop): Correctly
	mask bytes when constructing characters.

2005-08-11  Mark Wielaard  <mark@klomp.org>

	* native/jni/classpath/Makefile.am (EXTRA_DIST): Add classpath_jawt.h.
	* include/gnu_java_awt_peer_qt_*: Removed.

2005-08-11  Audrius Meskauskas <AudriusA@Bioinformatics.org>

        * org/omg/PortableInterceptor/IORInfoOperations.java,
        org/omg/PortableInterceptor/IORInterceptor.java,
        org/omg/PortableInterceptor/IORInterceptorOperations.java,
        org/omg/PortableInterceptor/IORInfo.java: New files.

2005-08-11  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTable
	(rowAtPoint): Added in a check for null. Was getting NPE.
	(columnAtPoint): Likewise.

2005-08-11  Lillian Angel <langel@redhat.com>

	* javax/swing/plaf/basic/BasicViewportUI.java
	(paintSimple): Changed to paint the portBounds from (0,0).

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

	* java/awt/image/ConvolveOp.java (filter): Defer numBands check
	until after null check.  PR classpath/22999.

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

	* java/util/Observable.java (addObserver): Throw
	NullPointerException if necessary.  PR classpath/23279.

2005-08-11  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/qt/QtMenuComponentPeer.java,
	gnu/java/awt/peer/qt/QtGraphics.java,
	gnu/java/awt/peer/qt/QtTextFieldPeer.java,
	gnu/java/awt/peer/qt/QtFramePeer.java,
	gnu/java/awt/peer/qt/QtPanelPeer.java,
	gnu/java/awt/peer/qt/QtToolkit.java,
	gnu/java/awt/peer/qt/QtWindowPeer.java,
	gnu/java/awt/peer/qt/QtButtonPeer.java,
	gnu/java/awt/peer/qt/QtImageGraphics.java,
	gnu/java/awt/peer/qt/QtContainerPeer.java,
	gnu/java/awt/peer/qt/QtComponentPeer.java,
	gnu/java/awt/peer/qt/QtListPeer.java,
	gnu/java/awt/peer/qt/QtChoicePeer.java,
	gnu/java/awt/peer/qt/QtScrollPanePeer.java,
	gnu/java/awt/peer/qt/MainQtThread.java,
	gnu/java/awt/peer/qt/QtImage.java,
	gnu/java/awt/peer/qt/NativeWrapper.java,
	gnu/java/awt/peer/qt/QtCheckboxPeer.java,
	gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.java,
	gnu/java/awt/peer/qt/QtTextAreaPeer.java,
	gnu/java/awt/peer/qt/QtDialogPeer.java,
	gnu/java/awt/peer/qt/QPen.java,
	gnu/java/awt/peer/qt/QtCanvasPeer.java,
	gnu/java/awt/peer/qt/QtLabelPeer.java,
	gnu/java/awt/peer/qt/QtGraphicsEnvironment.java,
	gnu/java/awt/peer/qt/QtImageConsumer.java,
	gnu/java/awt/peer/qt/QtScrollbarPeer.java,
	gnu/java/awt/peer/qt/QtFontMetrics.java,
	gnu/java/awt/peer/qt/QtMenuBarPeer.java,
	gnu/java/awt/peer/qt/QtFontPeer.java,
	gnu/java/awt/peer/qt/QMatrix.java,
	gnu/java/awt/peer/qt/QtVolatileImage.java,
	gnu/java/awt/peer/qt/QPainterPath.java,
	gnu/java/awt/peer/qt/QtComponentGraphics.java,
	gnu/java/awt/peer/qt/QtScreenDevice.java,
	gnu/java/awt/peer/qt/QtMenuPeer.java,
	gnu/java/awt/peer/qt/QtAudioClip.java,
	gnu/java/awt/peer/qt/QtPopupMenuPeer.java,
	gnu/java/awt/peer/qt/QtFileDialogPeer.java,
	gnu/java/awt/peer/qt/QtMenuItemPeer.java,
	* native/jni/qt-peer/qpen.cpp,
	native/jni/qt-peer/keybindings.cpp,
	native/jni/qt-peer/qtcomponentpeer.cpp,
	native/jni/qt-peer/buttonevent.h,
	native/jni/qt-peer/qtdialogpeer.cpp,
	native/jni/qt-peer/qtmenubarpeer.cpp,
	native/jni/qt-peer/mainqtthread.cpp,
	native/jni/qt-peer/qtpanelpeer.cpp,
	native/jni/qt-peer/qmatrix.cpp,
	native/jni/qt-peer/qtmenucomponentpeer.cpp,
	native/jni/qt-peer/qtgraphics.cpp,
	native/jni/qt-peer/qttoolkit.cpp,
	native/jni/qt-peer/qtbuttonpeer.cpp,
	native/jni/qt-peer/keybindings.h,
	native/jni/qt-peer/qtvolatileimage.cpp,
	native/jni/qt-peer/qtcomponent.h,
	native/jni/qt-peer/slotcallbacks.cpp,
	native/jni/qt-peer/qtpopupmenupeer.cpp,
	native/jni/qt-peer/qtmenuitempeer.cpp,
	native/jni/qt-peer/qtchoicepeer.cpp,
	native/jni/qt-peer/nativewrapper.cpp,
	native/jni/qt-peer/qtscreendevice.cpp,
	native/jni/qt-peer/qtfontpeer.cpp,
	native/jni/qt-peer/qpainterpath.cpp,
	native/jni/qt-peer/qtstrings.h,
	native/jni/qt-peer/qttextfieldpeer.cpp,
	native/jni/qt-peer/qtimage.cpp,
	native/jni/qt-peer/componentevent.h,
	native/jni/qt-peer/qtwindowpeer.cpp,
	native/jni/qt-peer/qtframepeer.cpp,
	native/jni/qt-peer/qtscrollpanepeer.cpp,
	native/jni/qt-peer/qtfontmetrics.cpp,
	native/jni/qt-peer/qtlistpeer.cpp,
	native/jni/qt-peer/mainthreadinterface.h
	native/jni/qt-peer/slotcallbacks.h
	native/jni/qt-peer/qtfiledialogpeer.cpp,
	native/jni/qt-peer/eventmethods.cpp,
	native/jni/qt-peer/qtimage.h,
	native/jni/qt-peer/qtstrings.cpp,
	native/jni/qt-peer/nativewrapper.h
	native/jni/qt-peer/qtaudioclip.cpp,
	native/jni/qt-peer/qtfont.h,
	native/jni/qt-peer/qtscrollbarpeer.cpp,
	native/jni/qt-peer/containers.h,
	native/jni/qt-peer/qtcheckboxpeer.cpp,
	native/jni/qt-peer/mainthreadinterface.cpp,
	native/jni/qt-peer/componentevent.cpp,
	native/jni/qt-peer/qttextareapeer.cpp,
	native/jni/qt-peer/qtcomponent.cpp,
	native/jni/qt-peer/qtmenupeer.cpp,
	native/jni/qt-peer/qtlabelpeer.cpp,
	native/jni/qt-peer/qtcanvaspeer.cpp,
	native/jni/qt-peer/qtgraphics.h,
	* include/gnu_java_awt_peer_qt_QtCheckboxPeer.h,
	include/gnu_java_awt_peer_qt_QtToolkit.h,
	include/gnu_java_awt_peer_qt_QtAudioClip.h,
	include/gnu_java_awt_peer_qt_QtScreenDevice.h,
	include/gnu_java_awt_peer_qt_QtTextFieldPeer.h,
	include/gnu_java_awt_peer_qt_QtMenuItemPeer.h,
	include/gnu_java_awt_peer_qt_QtButtonPeer.h,
	include/gnu_java_awt_peer_qt_QtWindowPeer.h,
	include/gnu_java_awt_peer_qt_QtDialogPeer.h,
	include/gnu_java_awt_peer_qt_QtImage.h,
	include/gnu_java_awt_peer_qt_QtMenuBarPeer.h,
	include/gnu_java_awt_peer_qt_QtVolatileImage.h,
	include/gnu_java_awt_peer_qt_QtFontPeer.h,
	include/gnu_java_awt_peer_qt_QtChoicePeer.h,
	include/gnu_java_awt_peer_qt_QtGraphics.h,
	include/gnu_java_awt_peer_qt_QtComponentPeer.h,
	include/gnu_java_awt_peer_qt_QtMenuPeer.h,
	include/gnu_java_awt_peer_qt_QtTextAreaPeer.h,
	include/gnu_java_awt_peer_qt_QPen.h,
	include/gnu_java_awt_peer_qt_QtPanelPeer.h,
	include/gnu_java_awt_peer_qt_QPainterPath.h,
	include/gnu_java_awt_peer_qt_QtFontMetrics.h,
	include/gnu_java_awt_peer_qt_QtScrollPanePeer.h,
	include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h,
	include/gnu_java_awt_peer_qt_QMatrix.h,
	include/gnu_java_awt_peer_qt_QtLabelPeer.h,
	include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h,
	include/gnu_java_awt_peer_qt_QtFramePeer.h,
	include/gnu_java_awt_peer_qt_QtListPeer.h,
	include/gnu_java_awt_peer_qt_QtScrollbarPeer.h,
	include/gnu_java_awt_peer_qt_QtCanvasPeer.h,
	include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h,
	include/gnu_java_awt_peer_qt_MainQtThread.h,
	include/gnu_java_awt_peer_qt_QtFileDialogPeer.h,
	include/gnu_java_awt_peer_qt_QtContainerPeer.h:
	New files.

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

	For PR classpath/23238:
	* lib/gen-classlist.sh.in: Use @SHELL@; invoke split-for-gcj.sh
	with it.
	* configure.ac (SH): Removed subst.

2005-08-11  Andrew Haley  <aph@redhat.com>

	* lib/split-for-gcj.sh: Comment.

2005-08-11  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicViewportUI.java
	(paintSimple): This line was causing problems with the JTable viewport.
	However, the scrollpane still needs to be fixed. It is still not
	painting beyond the view's bounds.

2005-08-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* lib/split-for-gcj.sh: Don't use unportable %{parameter%word}.
	Don't use unportable !.

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

	* lib/gen-classlist.sh.in (GCJ): New subst.
	Invoke split-for-gcj.sh if the results changed.
	* lib/Makefile.am (CLEANFILES): Removed old entries.
	(compile-classes): Don't run split-for-gcj.sh.

2005-08-10  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java:      
	Implemented the ThreadReference CommandSet.

2005-08-10  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/ClassTypeCommandSet.java:
	Implemented the ClassType CommandSet.
	* gnu/classpath/jdwp/util/MethodResult.java: Class to wrap
	around results of method executions.

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

	For PR classpath/22580:
	* lib/Makefile.am (compile-classes): Made conditional on
	FOUND_GCJ.
	(JAVAC): Redefined when FOUND_GCJ.

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

	* lib/Makefile.am (JAVAC): Use $(SHELL) to invoke
	split-for-gcj.sh.  For PR classpath/23238.

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

	* lib/split-for-gcj.sh: Use 'while' loop to avoid length limits.

2005-08-10  Andreas Tobler  <toa@pop.agri.ch>

	* native/jni/java-net/gnu_java_net_PlainSocketImpl.c: Include
	target_native_file.h.  PR classpath/22926.

2005-08-10  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTree.java
	(doExpandParents): Took out call to checkExpandParents.
	(checkExpandParents): Helper method not needed. Caused problems since
	fireTreeWillExpand was being called too many times. fireTreeWillExpand
	is called from BasicTreeUI whenever a node is expanded.

2005-08-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * org/omg/PortableInterceptor/Interceptor.java,
        org/omg/PortableInterceptor/InterceptorOperations.java: New files.
        * org/omg/DynamicAny/_DynAnyFactoryStub.java,
        org/omg/DynamicAny/_DynAnyStub.java,
        org/omg/DynamicAny/_DynArrayStub.java,
        org/omg/DynamicAny/_DynEnumStub.java,
        org/omg/DynamicAny/_DynFixedStub.java,
        org/omg/DynamicAny/_DynStructStub.java,
        org/omg/DynamicAny/_DynUnionStub.java,
        org/omg/DynamicAny/_DynValueStub.java,
        org/omg/DynamicAny/_DynSequenceStub.java: Added _opsClass field.

2005-08-10  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java:
	Formatted entire class.

2005-08-10  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/plaf/basic/BasicTreeUI.java
	(mouseClicked): Called fireTreeWillExpand and fireTreeWillCollapse when
	appropriate.
	(keyPressed): Likewise.

2005-08-10  Roman Kennke  <roman@kennke.org>

	* java/awt/Container.java
	(paint): Call visitChildren with lightweightOnly == true.
	(update): Only call paint if we are not in a toplevel container.

2005-08-09  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/StackFrameCommandSet.java:
	Implemented the StackFrame CommandSet.

2005-08-09  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTable.java:
	(editingCancelled): Implemented.
	(editCellAt): Added a KeyListener to our editor to listen for
	the ESCAPE key and cancel editing upon receiving it.

2005-08-09  Lillian Angel  <langel@redhat.com>

	* javax/swing/JTable.java
	(setRowHeight): Fixed condition on when to throw exception.
	(setRowHeight): Parameters were mixed up.

2005-08-09  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLabelUI.java
	(paint): Added in painting code for label border.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(paintControlIcons): Fixed location for control icons.
	* javax/swing/plaf/metal/MetalLookAndFeel.java:
	Added defaults for selection and non-selection border for
	tree cells.
	* javax/swing/tree/DefaultTreeCellRenderer.java
	(getTreeCellRendererComponent): Set borders for node. Also,
	made node transparent (not opaque), So JLabel draws icon,
	text and border appropriately.

2005-08-09  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLabelUI.java
	(paint): Added in code to paint background rect according to
	API. Also, formatting changes.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(setCellRenderer): Fixed to changed renderer in JTree.
	(uninstallDefaults): Line taken out because not needed.
	(paintNode): Took out unneeded code because BasicLabelUI was fixed.
	(paintRecursive): Fixed so lines are only drawn when parents have
	children.	

2005-08-09  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/DefaultCellEditor.java:
	(EditorDelegate.setValue): Implemented.
	(EditorDelegate.getCellEditorValue): Implemented.
	(EditorDelegate.isCellEditable): Implemented.
	(EditorDelegate.shouldSelectCell): Implemented.
	(EditorDelegate.stopCellEditing): Implemented.
	(EditorDelegate.cancelCellEditing): Implemented.
	(EditorDelegate.startCellEditing): Implemented.
	(EditorDelegate.actionPerformed): Implemented.
	(EditorDelegate.itemStateChanged): Implemented.
	(EditorDelegate.fireEditingStopped): New implementation method.
	(EditorDelegate.fireEditingCancelled): New implementation method.
	(DefaultCellEditor): Implemented 3 constructors.
	(getComponent): Implemented.
	(getClickCountToStart): Implemented.
	(setClickCountToStart): Implemented.
	(getCellEditorValue): Implemented.
	(isCellEditable): Implemented.
	(shouldSelectCell): Implemented.
	(cancelCellEditing): Implemented.
	(getTableCellEditorComponent): Implemented.
	* javax/swing/JTable.java:
	(EditorUpdateTimer): New private class.
	(editingStopped): Implemented.
	(setValueAt): If the Object value is a Component, add it to the JTable
	so it can obtain focus.
	(editCellAt): Implemented.
	(removeEditor): Implemented.
	(prepareEditor): Implemented.
	* javax/swing/plaf/basic/BasicTableUI.java:
	(KeyHandler.keyPressed): Added F2 "start editing" key action.
	(MouseHandler.mousePressed): Added check to see if a new cell was
	selected and we need to stop editing.
	(paint): If the cell is a JTextField, paint its Caret as well.
	* javax/swing/table/DefaultTableCellRenderer.java:
	(getTableCellRendererComponent): If a JTextField is passed in, return
	one.  This is used for editing JTable cells.

2005-08-09  Aaron Luchko <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.java:	
	Implemented the ClassLoaderReference CommandSet.

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

	* javax/swing/tree/DefaultTreeModel.java: Fix copyright
	boilerplate formatting.

2005-08-09  Lillian Angel  <langel@redhat.com>

	* javax/swing/tree/DefaultTreeModel.java:
	Fixed formatting of class.

2005-08-09  Lillian Angel  <langel@redhat.com>

	Fixes Bug #23255
	* javax/swing/plaf/basic/BasicTreeUI.java:
	Fixed entire class to use Objects as opposed to TreeNodes.
	(getPathBounds): Changed root to Object
	(getPathForRow): Likewise.
	(getRowCount): Likewise.
	(getPreferredSize): Changed root and nextNode to be of type
	Object.
	(isLeaf): Took out unnecessary code. 
	(keyPressed): Changed all TreeNodes to be of type Object.
	(getCellLocation): Likewise.
	(paintNode): Likewise.
	(paintRecursive): Likewise.
	(getParent): Implemented.
	(findNode): Helper Implemented.
	(getNextVisibleNode): Changed return and parameter type to Object.
	(getPreviousVisibleNode): Likewise.
	(getNextNode): Likewise.
	(getPreviousNode): Likewise.
	(getNextSibling): Likewise.
	(getPreviousSibling): Likewise.
	(getPathToRoot): Likewise.
	(getLevel): Likewise.
	* javax/swing/tree/DefaultTreeModel.java
	(getIndexOfChild): Implemented.

2005-08-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * org/omg/CORBA/package.html: Documentation update.
        * org/omg/DynamicAny/package.html: New file.

2005-08-08  Casey Marshall  <csm@gnu.org>

	PR classpath/23120
	* gnu/java/security/provider/DSAKeyPairGenerator.java
	(<init>): made public; set default values.
	(initialize): just call 'initialize(int,boolean,SecureRandom).'
	(initialize): just call 'initialize(DSAParams,SecureRandom).'
	(initialize): check all values for 'null' before overwriting.
	(initialize): fill in defaults or generate new parameters here.
	(generateKeyPair): don't create parameters; fill in 'random' if
	'null;' use 'random,' not a new Random object, when generating
	random numbers.
	(getDefaults): fix keysize check.

	PR classpath/22990
	* java/security/KeyPairGenerator.java (initialize): do nothing.
	
2005-08-08  Tom Tromey  <tromey@redhat.com>

	PR classpath/23285:
	* native/jni/classpath/classpath_jawt.h
	(classpath_jawt_get_awt_version, classpath_jawt_lock,
	classpath_jawt_unlock, classpath_jawt_create_lock,
	classpath_jawt_destroy_lock): Use '(void)' in prototype.
	* native/jni/gtk-peer/Makefile.am (libgtkpeer_la_SOURCES): Added
	gtk_jawt.c.
	* native/jni/gtk-peer/gtk_jawt.c: New file from libgcj.
	(classpath_jawt_create_lock, classpath_jawt_destroy_lock): Use
	cp_gtk_gdk_env.

2005-08-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * org/omg/DynamicAny/FieldNameHelper.java: New file.

2005-08-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org> 

        * org/omg/DynamicAny/_DynAnyFactoryStub.java,
        org/omg/DynamicAny/_DynAnyStub.java,
        org/omg/DynamicAny/_DynArrayStub.java,
        org/omg/DynamicAny/_DynEnumStub.java,
        org/omg/DynamicAny/_DynFixedStub.java,
        org/omg/DynamicAny/_DynStructStub.java,
        org/omg/DynamicAny/_DynUnionStub.java,
        org/omg/DynamicAny/_DynValueStub.java,
        org/omg/DynamicAny/_DynSequenceStub.java: New files.

2005-08-08  Lillian Angel  <langel@redhat.com>

	Fixes bug #23252
	* javax/swing/JTree.java
	(setModel): Changed to allow model to be null.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(setModel): Changed to depend on JTree functions
	(getPathBounds): Fixed to work when model = null.
	(getPathForRow): Likewise.
	(getRowCount): Likewise.
	(installListeners): Likewise.
	(installUI): Likewise.
	(paint): Likewise.
	(getPreferredSize): Likewise.
	
2005-08-08  Casey Marshall  <csm@gnu.org>

	Fixes bug #22914
	* gnu/classpath/debug/Component.java (POLICY): new constant.
	* gnu/java/security/PolicyFile.java (logger): new constant.
	(DEBUG,debug,debug): removed.
	(DEFAULT_POLICY): use 'SystemProperties' class to bypass security
	check.
	(DEFAULT_USER_POLICY): new constant.
	(getPermissions): replace 'debug' calls with logger calls.
	(refresh): add 'DEFAULT_USER_POLICY' to the initial list;
	interpret 'java.security.policy' and 'policy.url' properties
	properly; replace 'debug' calls with logger calls.
	(parse): replace 'debug' calls with logger calls.

2005-08-07  Casey Marshall  <csm@gnu.org>

	* javax/security/auth/x500/X500Principal.java
	(encodeDer): use the right iterator for the inner loop.
	(parseString): test for end of input.
	(readAttributeType): provide detail message for exception.
	(readAttributeValue): return the result on end of input;
	read the next character while looping.
	(putComponent): accept 'o' and 'ou' short names.

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

        * org/omg/DynamicAny/AnySeqHelper.java,
        org/omg/DynamicAny/NameDynAnyPairSeqHelper.java,
        org/omg/DynamicAny/NameValuePairHelper.java,
        org/omg/DynamicAny/NameDynAnyPairHelper.java,
        org/omg/DynamicAny/NameValuePairSeqHelper.java,
        org/omg/DynamicAny/DynAnySeqHelper.java,
        gnu/CORBA/DynAnySeqHolder.java,
        gnu/CORBA/NameDynAnyPairSeqHolder.java,
        gnu/CORBA/NameDynAnyPairHolder.java,
        gnu/CORBA/NameValuePairSeqHolder.java,
        gnu/CORBA/NameValuePairHolder.java: New files.

2005-08-07  Ito Kazumitsu <kaz@maczuka.gcd.org>

	Fixes bug #22929
	* java/net/NetworkInterface.java
	(condense): New static private method.
	(getNetworkInterfaces): Call condense().
	(getByName, getByInetAddress): Call getNetworkInterfaces()
	so that condensed result may be returned.
	* vm/reference/java/net/VMNetworkInterface.java (getInterfaces):
	Clarify return value in documentation.

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

	Fixes bug #22920
	* java/net/DatagramSocket.java (DatagramSocket(SocketAddress)):
	Use gnu.classpath.SystemProperties to get impl.prefix.

2005-08-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * gnu/CORBA/CDR/noHeaderInput.java,
        gnu/CORBA/gnuValueHolder.java,
        gnu/CORBA/DynAn/gnuDynAny.java,
        gnu/CORBA/DynAn/gnuDynArray.java,
        gnu/CORBA/DynAn/gnuDynSequence.java,
        gnu/CORBA/DynAn/gnuDynValueBox.java,
        gnu/CORBA/DynAn/abstractRecord.java,
        gnu/CORBA/DynAn/gnuDynAnyFactory.java,
        gnu/CORBA/DynAn/gnuDynValue.java,
        gnu/CORBA/DynAn/gnuDynStruct.java,
        gnu/CORBA/DynAn/anyDivideable.java,
        gnu/CORBA/DynAn/anyUndivideable.java,
        gnu/CORBA/DynAn/gnuDynEnum.java,
        gnu/CORBA/DynAn/abstractDynAny.java,
        gnu/CORBA/DynAn/gnuDynFixed.java,
        gnu/CORBA/DynAn/valueChangedListener.java,
        gnu/CORBA/DynAn/gnuDynUnion.java: New files.
        * org/omg/DynamicAny/DynUnionOperations.java,
        org/omg/DynamicAny/DynAnyOperations.java,
        org/omg/DynamicAny/DynAnyFactoryOperations.java,
        org/omg/DynamicAny/DynValueBox.java,
        org/omg/DynamicAny/DynValueCommon.java,
        org/omg/DynamicAny/DynAnyFactoryHelper.java,
        gnu/CORBA/typeNamer.java,
        gnu/CORBA/fixedTypeCode.java,
        gnu/CORBA/CDR/Vio.java,
        gnu/CORBA/CDR/cdrInput.java,
        gnu/CORBA/CDR/cdrOutput.java,
        gnu/CORBA/holderFactory.java,
        gnu/CORBA/universalHolder.java,
        gnu/CORBA/Poa/ORB_1_4.java,
        gnu/CORBA/Restricted_ORB.java,
        gnu/CORBA/gnuAny.java,
        org/omg/CORBA/TypeCode.java
        org/omg/CORBA/Any.java,
        org/omg/CORBA/ORB.java,
        org/omg/CORBA/ObjectHelper.java,
        org/omg/CORBA/ObjectHolder.java,
        org/omg/CORBA_2_3/portable/InputStream.java,
        org/omg/CORBA_2_3/portable/OutputStream.java,
        gnu/CORBA/DynAn/NameValuePairHolder.java: Rewritten.

2005-08-06  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/ObjectInputStream.java
	(readClassDescriptor): Removed bogus handling of primitive types.
	(readFields.GetField.defaulted): Pass cause to exception.
	(readFields.GetField.getField): Pass cause to exception.
	(newObject, callReadMethod): Call initCause on exception.

2005-08-06  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/IllegalArgumentException.java,
	java/lang/IllegalStateException.java,
	java/lang/SecurityException.java,
	java/lang/UnsupportedOperationException.java: Merged from generics
	branch.

2005-08-05  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/plaf/basic/BasicTreeUI.java:
	(getPathBounds): Changed to use TreeNode and not 
	DefaultMutableTreeNode.
	(getPathForRow): Likewise.
	(getRowCount): Likewise.
	(getPreferredSize): Likewise.
	(keyPressed): Likewise.
	(paintNode): Likewise.
	(getCellLocation): Likewise.
	(paintRecursive): Likewise.
	(paintControlIcons): Likewise.
	(getNextVisibleNode): Likewise.
	(getPreviousVisibleNode): Likewise.
	(getNextNode): Implemented because not using DefaultMutableTreeNode.
	(getPreviousNode): Implemented
	(getNextSibling): Implemented
	(getPreviousSibling): Implemented
	(getPathToRoot): Implemented
	(getLevel): Implemented

2005-08-05  Mark Wielaard  <mark@klomp.org>

	* java/awt/datatransfer/FlavorEvent.java: New class.
	* java/awt/datatransfer/FlavorListener.java: Likewise.
	* java/awt/datatransfer/Clipboard.java (name): Made final.
	(listeners): New final ArrayList field.
	(setContents): Reimplemented.
	(getAvailableDataFlavors): New method.
	(isDataFlavorAvailable): Likewise.
	(getData): Likewise.
	(addFlavorListener): Likewise.
	(removeFlavorListener): Likewise.
	(getFlavorListeners): Likewise.
	* java/awt/datatransfer/DataFlavor.java (javaFileListFlavor):
	Construct with mime media-type application/x-java-file-list.
	(DataFlavor(String mimeType, String humanPresentableName)): Call
	constructor that uses given mimeType.
	(getSubType): Reimplemented.
	(getParameter): Handle 'vitual' humanPresentableName parameter.
	(isMimeTypeEqual): Reimplement.
	(isRepresentationClassRemote): Implement.
	(toString): Add formatting.

2005-08-05  Lillian Angel  <langel@redhat.com>

	* java/awt/GridBagLayout.java
	(setConstraints): Removed checks in if statements because if the height
	or width is less than 0, it should be updated to a positive number in
	all cases.

2005-08-05  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c: Include
	jcl.h.
	(createRawData): Removed unused variable method.
	(getData): Removed unused variable field.
	* native/jni/java-nio/gnu_java_nio_charset_iconv_IconvDecoder.c
	(createRawData): Removed unused variable method.
	(getData): Removed unused variable field.
	* native/jni/java-nio/gnu_java_nio_charset_iconv_IconvEncoder.c
	(createRawData): Removed unused variable method.
	(getData): Removed unused variable field.
	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c
	(Java_java_nio_VMDirectByteBuffer_init): Removed.
	* vm/reference/java/nio/VMDirectByteBuffer.java (init): Removed.
	* include/java_nio_VMDirectByteBuffer.h: Regenerated.

2005-08-05  Roman Kennke  <roman@kennke.org>

	* java/awt/Container.java:
	(preferredSize): Call getLayout() instead of directly referencing
	the private field. This makes components work that override
	getLayout().
	(minimumSize): Call getLayout() instead of directly referencing
	the private field. This makes components work that override
	getLayout(). Use cached size if component is still valid.
	(maximumSize): Call getLayout() instead of directly referencing
	the private field. This makes components work that override
	getLayout(). Use cached size if component is still valid.
	(update): If we are a top-level-container, call super.update(),
	otherwise directly call paint().
	(visitChildren): Also visit children that are itself Containers.
	* java/awt/Component.java
	(update): Clear the background only for lightweight and top-level
	components.

2005-08-05  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicGraphicsUtils.java
	(getPreferredButtonSize): Added horizontalAdjustment to width
	to create gap at end of label text.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(getPreferredSize): Removed "*2" since fix was moved to 
	BasicGraphicsUtils

2005-08-05  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/DefaultCaret.java: Added API comments all
	over.
	* javax/swing/text/DefaultEditorKit.java: Added API comments
	all over.

2005-08-05  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/ObjectInputStream.java
	(read(byte[],int,int)): Simplified and fixed bug 23236.

2005-08-04  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/MethodCommandSet.java: Implemented
	the Method CommandSet.

2005-08-04  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(getPreferredSize): Multiplied defaultTextIconGap by 2, 
	so there is equal space around the MenuItem

2005-08-04  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(paintIcon): Added in border painting code for MenuItem
	* javax/swing/plaf/metal/MetalLookAndFeel.java:
	Added in default for CheckBox border

2005-08-04  Roman Kennke  <roman@kennke.org>

	* java/awt/BorderLayout.java: Reformatted this file to meet our
	coding standards.

2005-08-04  Roman Kennke  <roman@kennke.org>

	* java/awt/BorderLayout.java
	(layoutContainer): Replaced getSize() call with getWidth() and
	getHeight(). This avoids heap allocation and fixes a bug in
	an application here.

2005-08-04  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/JCheckBox.java
	(init): Moved these to ui
	* javax/swing/plaf/basic/BasicCheckBoxUI.java
	(installUI): initalized icons
	* javax/swing/plaf/metal/MetalLookAndFeel.java:
	Took out CheckBoxMenuItem defaults because did not
	work as expected. For now it uses the BasicL&F's defaults.

2005-08-04  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JList.java:
	(getFirstVisibleIndex): Translate visible rectangle by one less pixel.
	(getLastVisibleIndex): Likewise.

2005-08-04  Lillian Angel  <langel@redhat.com>

	* javax/swing/JCheckBox.java
	(init): Initialized icons. Was not working otherwise.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Added in checkIcon for the CheckBox.
	* javax/swing/plaf/metal/MetalLookAndFeel.java:
	Added in checkIcon for CheckBox and defaults for
	CheckBoxMenuItem.	

2005-08-03  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/JCheckBoxMenuItem.java
	(installUI): set the items visible. Fixes exceptions that are
	thrown because item is not explicitly set visible.

2005-08-03  Ewout Prangsma  <ewout@prangsma.net>

	* java/lang/Enum.java:
	(valueOf(Class<S>,String)): Implemented.
	
2005-08-03  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicViewportUI.java
	(paintSimple): Corrected the clip that is used to draw the
	viewport's content. This fixes scrolling in JScrollPane and
	JViewport.

2005-08-03  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Changed the fonts from Helvetica to Dialog.

2005-08-03  Guilhem Lavaux  <guilhem@kaffe.org>

	* include/java_nio_VMDirectByteBuffer.h:
	Regenerated.

	* native/jni/java-nio/gnu_java_nio_charset_iconv_IconvEncoder.c
	(getData): Fixed function call.

	Reported by: Andreas Tobler <toa@pop.agri.ch>
	
2005-08-03  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/plaf/basic/BasicIconFactory.java:
	(getMenuItemCheckIcon): Implemented so a check mark is drawn when
	the item is selected.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Modified the checkbox defaults
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(paintMenuItem): Changed to only draw check when item is selected.

2005-08-03  Roman Kennke  <roman@kennke.org>

	* java/awt/FontMetrics.java
	(charsWidth): Iterate to len + offset instead to len.

2005-08-03  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/jni/classpath/jcl.c
	(JCL_NewRawDataObject): Fixed typo.

2005-08-03  Guilhem Lavaux  <guilhem@kaffe.org>
	
        * gnu/classpath/Pointer.java,
        gnu/classpath/Pointer32.java,
        gnu/classpath/Pointer64.java,
        gnu/classpath/RawData.java,
        gnu/classpath/RawData32.java,
        gnu/classpath/RawData64.java,
        gnu/java/awt/peer/gtk/GtkImage.java,
        gnu/java/nio/charset/iconv/IconvDecoder.java,
        gnu/java/nio/charset/iconv/IconvEncoder.java,
        java/nio/Buffer.java,
        java/nio/DirectByteBufferImpl.java,
        java/nio/MappedByteBufferImpl.java,
        native/jni/classpath/jcl.c,
        native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c,
        native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c,
        native/jni/java-nio/gnu_java_nio_charset_iconv_IconvDecoder.c,
        native/jni/java-nio/gnu_java_nio_charset_iconv_IconvEncoder.c,
        native/jni/java-nio/java_nio_MappedByteBufferImpl.c,
        native/jni/java-nio/java_nio_VMDirectByteBuffer.c,
        vm/reference/java/nio/VMDirectByteBuffer.java: Renamed 
        references to gnu/classpath/RawData to gnu/classpath/Pointer.

2005-08-03  Guilhem Lavaux  <guilhem@kaffe.org>

	* java-nio/gnu_java_nio_channels_FileChannelImpl.c
	(mapImpl): Fixed typo.

2005-08-03  Guilhem Lavaux  <guilhem@kaffe.org>

	* classpath/jcl.c
	(JCl_NewRawDataObject): Added error handling.

	* classpath/jcl.h
	(jpointer): New integer type to represent a pointer. 

	* gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c,
	java-nio/gnu_java_nio_channels_FileChannelImpl.c,
	java-nio/gnu_java_nio_charset_iconv_IconvDecoder.c,
	java-nio/gnu_java_nio_charset_iconv_IconvEncoder.c,
	java-nio/java_nio_MappedByteBufferImpl.c,
	java-nio/java_nio_VMDirectByteBuffer.c,
	xmlj/xmlj_util.c: Use JCL functions instead of directly 
	accessing gnu/classpath/RawData.

2005-08-03  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/AttributeSet.java: Added some API comments
	to class description.
	* javax/swing/text/BadLocationException.java: Added / fixed
	API comments all over.
	* javax/swing/text/Caret.java: Added API comments all over.

2005-08-02  Roman Kennke  <roman@kennke.org>

	* java/awt/Component.java
	(getBounds): Removed debug statements that accidentally slipped in.

2005-08-02  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTable.java:
	(getCellRect): Height should be the row height, not the entire table
	height.
	(getRowHeight): New public method, part of API.
	* javax/swing/JViewport.java:
	(scrollRectToVisible): Fixed buggy scrolling conditions.
	* javax/swing/plaf/basic/BasicTableUI.java:
	(KeyHandler.keyPressed): Implemented PAGE-UP, PAGE-DOWN, CTRL-PAGE-UP,
	and CTRL-PAGE-DOWN key actions.  Also added line to scroll the table
	appropriately after changing the selection.
	(KeyHandler.getFirstVisibleColumnIndex): New implementation method.
	(KeyHandler.getLastVisibleColumnIndex): Likewise.
	(KeyHandler.getFirstVisibleRowIndex): Likewise.
	(KeyHandler.getLastVisibleRowIndex): Likewise.

2005-08-02  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/AbstractDocument.java
	(AbstractElement.AbstractElement): Create an empty AttributeSet
	if the argument s == null.
	(AbstractElement.getAttribute): Return the element itself instead
	of the wrapped attributes.

2005-08-02  Roman Kennke  <roman@kennke.org>

	* java/awt/Toolkit.java
	(createCustomCursor): Added check for headless environment.
	(getBestCursorSize): Added check for headless environment.

2005-08-02  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/GapContent.java
	(shiftGap): Changed to used '&&'. both indexes should be 
	greater than 0.

2005-08-02  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/GapContent.java:
	Formatting code.

2005-08-02  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/GapContent.java
	(shiftGap): Added in if statement to check if indexes are negative.
	Does not work properly if they are.

2005-08-02  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.viewToModel): New method.
	* javax/swing/text/BoxView.java
	(isBefore): New method. This is a stub method to implement the
	new abstract method from CompositeView.
	(isAfter): New method. This is a stub method to implement the
	new abstract method from CompositeView.
	(getViewAtPoint): New method. This is a stub method to implement the
	new abstract method from CompositeView.
	(childAllocation): New method. This is a stub method to implement the
	new abstract method from CompositeView.
	* javax/swing/text/ComponentView.java
	(viewToModel): New method. This is a stub method to implement the
	new abstract method from View.
	* javax/swing/text/CompositeView.java
	(loadChildren): Implemented new method.
	(setParent): Implemented new method.
	(getViewCount): Implemented new method.
	(getView): Implemented new method.
	(replace): Implemented new method.
	(getChildAllocation): Implemented new method.
	(modelToView(int, Shape, Position.Bias)): Implemented this method.
	(modelToView(int, Position.Bias, int, Position.Bias, Shape):
	Implemented new method.
	(viewToModel): Implemented new method.
	(getNextVisualPositionFrom): Implemented new method.
	(getViewIndex): Implemented new method.
	(isBefore): New abstract method.
	(isAfter): New abstract method.
	(getViewAtPoint): New abstract method.
	(childAllocation): New abstract method.
	(getViewAtPosition): Implemented new method.
	(getViewIndexAtPosition): Implemented new method.
	(getInsideAllocation): Implemented new method.
	(setParagraphInsets): Implemented new method.
	(setInsets): Implemented new method.
	(getLeftInset): Implemented new method.
	(getRightInset): Implemented new method.
	(getTopInset): Implemented new method.
	(getBottomInset): Implemented new method.
	(getNextNorthSouthVisualPositionFrom): New method.
	(getNextEastWestVisualPositionFrom): New method.
	(flipEastAndWestAtEnds): Implemented new method.
	* javax/swing/text/GlyphView.java
	(viewToModel): New method. This is a stub method to implement the
	new abstract method from View.
	* javax/swing/text/IconView.java
	(viewToModel): New method. This is a stub method to implement the
	new abstract method from View.
	* javax/swing/text/PlainView.java
	(viewToModel): New method. This is a stub method to implement the
	new abstract method from View.
	* javax/swing/text/View.java
	(viewToModel): New abstract method.

2005-08-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * org/omg/DynamicAny/DynValueCommon.java: Inherit from
        DynValueOperations, DynAny, IDLEntity, org.omg.CORBA.Object,
        Serializable.
        * org/omg/DynamicAny/DynValueCommonOperations.java: Inherit from
        DynAnyOperations.
        * org/omg/DynamicAny/DynAnyHelper.java,
        org/omg/DynamicAny/DynStructHelper.java,
        org/omg/DynamicAny/DynUnionHelper.java,
        org/omg/DynamicAny/DynValueHelper.java,
        org/omg/DynamicAny/DynAnyFactoryHelper.java,
        org/omg/DynamicAny/DynArrayHelper.java,
        org/omg/DynamicAny/DynEnumHelper.java,
        org/omg/DynamicAny/DynFixedHelper.java,
        org/omg/DynamicAny/DynSequenceHelper.java: New files.

2005-08-01  Andreas Tobler  <a.tobler@schweiz.ch>

	* examples/README: Add GNULookAndFeel.java to the compile command.

2005-08-01  Mark Wielaard  <mark@klomp.org>

	* examples/gnu/classpath/examples/swing/Demo.java (mkTreeWorld):
	Remove double declaration of int i.

2005-08-01  Andreas Tobler  <a.tobler@schweiz.ch>

	* examples/gnu/classpath/examples/swing/Demo.java: Exit when
	pressing 'Close' on the panel.

2005-08-01  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.ac (LIBVERSION): Check against darwin to set module
	'no' for it. Modules under darwin are not linkable.

2005-08-01  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/AttributeSet.java: Added API comments all over.

2005-08-01  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/AbstractDocument.java: Added API comments all over.

2005-08-01  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/ClassLoader.java
	(defineClass(String,byte[],int,int,ProtectionDomain),
	resolveClass, findSystemClass, setSigners, findLoadedClass):
	Added call to checkInitialized().
	(checkInitialized): New method.

2005-08-01  Jeroen Frijters  <jeroen@frijters.net>

	* NEWS: Added info about VM interfaces changes.
	* java/lang/Class.java
	(forName(String), forName(String, boolean, ClassLoader)): Simplified
	VM interface.
	* java/lang/ClassLoader.java
	(loadedClasses): Removed field.
	(defineClass(String,byte[],int,int,ProtectionDomain)): Removed
	code to add class to loadedClasses.
	* vm/reference/java/lang/VMClass.java
	(forName(String)): Removed method.
	(forName(String,boolean,ClassLoader)): New method.
	(initialize): Removed method.
	(loadArrayClass): Removed method.
	* vm/reference/java/lang/VMClassLoader.java
	(USE_VM_CACHE): Removed field.
	(findLoadedClass): Made native.

2005-08-01  Mark Wielaard  <mark@klomp.org>

	Reported by Wolfgang Baer <WBaer@gmx.de>
	* javax/swing/text/GapContent.java (shiftGap): Use new
	CapContentPosition in binarySearch.
	(shiftEnd): Likewise.

2005-08-01  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/bugs.wml: New file.
	* doc/www.gnu.org/newsitems.txt: Add bugzilla entry.
	* doc/www.gnu.org/events/events.wml: Correct Fosdem 2005 date.
	* doc/www.gnu.org/include/layout.wml: Direct bug reports to bugs.html.

2005-08-01  Jan Roehrich <jan@roehrich.info>

        * javax.swing.plaf.basic.BasicTreeUI: Method drawCentered
        added / corrected javadoc issues in paintHorizonalLine 
        and paintVerticalLine / fixed getRightChildIndent signature
        (problem probably caused by copy/paste)

2005-08-01  Jan Roehrich <jan@roehrich.info>

        * javax.swing.plaf.basic.BasicTreeUI: paintVerticalLine and
        paintHorizontalLine added.

2005-07-31  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        org/omg/DynamicAny/DynValueOperations.java,
        org/omg/DynamicAny/DynAnyFactory.java,
        org/omg/DynamicAny/DynAnyFactoryOperations.java,
        org/omg/DynamicAny/DynValue.java,
        org/omg/DynamicAny/DynValueBox.java,
        org/omg/DynamicAny/DynValueBoxOperations.java,
        org/omg/DynamicAny/DynValueCommon.java,
        org/omg/DynamicAny/DynValueCommonOperations.java: New files.

2005-07-31  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * org/omg/DynamicAny/DynFixedOperations.java,
        org/omg/DynamicAny/DynEnum.java,
        org/omg/DynamicAny/DynArrayOperations.java: Inherit from
        DynAnyOperations.
        * org/omg/DynamicAny/NameDynAnyPair.java: Inherit from
        org.omg.CORBA.portable.IDLEntity.
        * org/omg/DynamicAny/DynAnyOperations.java
        (assign, current_component): Fixes in throws declaration.
        * org/omg/DynamicAny/DynEnumOperations.java,
        org/omg/DynamicAny/DynSequenceOperations.java,
        org/omg/DynamicAny/DynStructOperations.java,
        org/omg/DynamicAny/DynUnionOperations.java,
        org/omg/DynamicAny/DynAny.java,
        org/omg/DynamicAny/DynFixed.java,
        org/omg/DynamicAny/DynSequence.java,
        org/omg/DynamicAny/DynStruct.java,
        org/omg/DynamicAny/DynUnion.java,
        org/omg/DynamicAny/DynArray.java,
        org/omg/DynamicAny/NameValuePair.java: Reformatted.

2005-07-31  Mark Wielaard  <mark@klomp.org>

	* gnu/java/nio/FileLockImpl.java: Mark class final.
	(ch): Removed field.
	(valid): New field.
	(FileLockImpl): Set valid to true.
	(isValid): Test and set valid field.
	(release): Release lock if it is still valid.
	* java/nio/channels/FileLock.java: Mark all fields private final.
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c
	(Java_gnu_java_nio_channels_FileChannelImpl_lock): Translate
	Long.MAX_VALUE to zero for fcntl.
	(Java_gnu_java_nio_channels_FileChannelImpl_unlock): Likewise.

2005-07-31  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * scripts/eclipse-gnu.xml: Drop extends, implements, 
        throws into new line. 

2005-07-31  Jan Roehrich <jan@roehrich.info>

	* javax.swing.plaf.basic.BasicTreeUI: fixed indentation.

2005-07-30  Casey Marshall  <csm@gnu.org>

	* native/jni/java-nio/java_nio_MappedByteBuffer.c
	(Java_java_nio_MappedByteBufferImpl_isLoadedImpl): cast argument 3
	to 'mincore' to 'void *' to avoid warnings on GNU.

2005-07-30  Casey Marshall  <csm@gnu.org>

	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c
	(Java_gnu_java_nio_channels_FileChannelImpl_mapImpl):
	eliminate various compiler warnings; mark 'buffer' as 'volatile;'
	throw an exception if we can't get a constructor method ID.
	* native/jni/java-nio/java_nio_MappedByteBufferImpl.c:
	include 'stdlib.h.'
	(get_raw_values): eliminate compiler warnings.
	(Java_java_nio_MappedByteBufferImpl_isLoadedImpl): likewise.
	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c
	(Java_java_nio_VMDirectByteBuffer_put__Lgnu_classpath_RawData_2I_3BII):
	eliminate compiler warning.

2005-07-29  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/StyledEditorKit.java: Added the remaining API
	comments.

2005-07-29  Lillian Angel  <langel@redhat.com>

	* javax/swing/MenuSelectionManager.java
	(isComponentPartOfCurrentMenu): Fixed to prevent NPE.
	* javax/swing/plaf/basic/BasicMenuUI.java
	(popupVisible): Likewise.

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

	* java/awt/event/MouseWheelEvent.java: fixed typo in API docs.
	
2005-07-29  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/DefaultStyledDocument.java: Added
	comments all over.
	* javax/swing/text/StyledEditorKit: Likewise.

2005-07-29  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/JTextField.java
	(insertString): Added in check for null to resolve a NPE.
	* javax/swing/text/GapContent.java
	(getOffset): Added in check for mark = gapStart because
	if mark = gapStart = 0, then a negative is returned. This was
	not right.

2005-07-29  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicEditorPaneUI.java: Added API
	comments all over.
	* javax/swing/plaf/basic/BasicTextUI.java: Likewise.
	
2005-07-29  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/DefaultStyledDocument.java
	(split): Moved throw statement into proper else clause.
	* javax/swing/text/StyledEditorKit.java
	(StyledViewFactory.create): Return the actual view instead of null.

2005-07-29  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTextPane.java: Added API comments all over.

2005-07-29  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTextPane.java
	(constructor()): Implemented this constructor. Initialize the
	EditorKit and set the Document to null.
	(constructor(StyledDocument)): Implemented this constructor.
	Initialize the EditorKit and Document.
	(getUIClassID): Inlined the constant String.
	(setDocument): Implemented this method.
	(getStyledDocument): Likewise.
	(setStyledDocument): Likewise.
	(replaceSelection): Likewise.
	(insertComponent): Clarified the TODO comment.
	(insertIcon): Clarified the TODO comment.
	(addStyle): Implemented this method.
	(removeStyle): Likewise.
	(getStyle): Likewise.
	(getLogicalStyle): Likewise.
	(setLogicalStyle): Likewise.
	(getCharacterAttributes): Likewise.
	(setCharacterAttributes): Likewise.
	(getParagraphAttributes): Likewise.
	(getInputAttributes): Likewise.
	(getStyledEditorKit): Likewise.
	(createDefaultEditorKit): Likewise.
	(setEditorKit): Likewise.
	* javax/swing/plaf/basic/BasicEditorPaneUI.java
	(getEditorKit): Implemented this method.
	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.getViewFactory): Ask the installed EditorKit for its
	ViewFactory.
	(RootView.setView): Set this as the parent of the installed real
	root view.
	(RootView.modelToView): Don't cast to PlainView here. Use View
	instead.
	(setView): Don't set the parent here. This is handled inside the
	root view.

2005-07-29  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/AbstractDocument.java
	(createPosition): Delegate this call to the actual Content.
	(LeafElement.constructor): Manage the start and end marks via
	Position objects.
	(LeafElement.getEndOffset): Use Position instead of static mark.
	(LeafElement.getStartOffset): Use Position instead of static mark.
	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.change): New method. Performs structural changes
	in the element tree that are necessary in order to change
	text attributes.
	(ElementBuffer.changeUpdate): New method. This is the method for
	change().
	(ElementBuffer.split): New package-private method. Splits an
	element into two elements.
	(setCharacterAttributes): Implemented this method. This sets
	character attributes on a piece of content.
	* javax/swing/text/GapContent.java
	(GapContentPosition): New inner class. Implements the Position
	interface for GapContent.
	(constructor): Initialize the list that stores the Position objects.
	(createPosition): Reimplemented. Now uses the GapContentPosition
	class.
	(shiftEnd): Update the stored positions.
	(shiftGap): Update the stored positions.
	* javax/swing/text/LabelView.java: New class.
	* javax/swing/text/PlainDocument.java
	(removeUpdate): Don't update the element positions, this should
	now be handled by the Positions.

2005-07-29  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/BoxView.java: New class.
	* javax/swing/text/CompositeView.java: New class.
	* javax/swing/text/FlowView.java: New class.
	* javax/swing/text/GlyphView.java: New class.
	* javax/swing/text/IconView.java: New class.
	* javax/swing/text/ParagraphView.java: New class.
	* javax/swing/text/StyledEditorKit.java
	(UnderLineAction.constructor): Added TODO comment.
	(UnderLineAction.actionPerformed): Implemented this method. This
	toggles the underline attribute to a piece of content.
	(ItalicAction.constructor): Added TODO comment.
	(ItalicAction.actionPerformed): Implemented this method. This
	toggles the italic attribute to a piece of content.
	(BoldAction.constructor): Added TODO comment.
	(BoldAction.actionPerformed): Implemented this method. This
	toggles the bold attribute to a piece of content.
	(AlignmentAction.constructor): Implemented this constructor.
	(AlignmentAction.actionPerformed): Implemented this method. This
	sets the alignment attribute for a piece of content.
	(ForegroundAction.constructor): Implemented this constructor.
	(ForegroundAction.actionPerformed): Implemented this method. This
	sets the foreground attribute for a piece of content.
	(FontSizeAction.constructor): Implemented this constructor.
	(FontSizeAction.actionPerformed): Implemented this method. This
	sets the font size attribute for a piece of content.
	(FontFamilyAction.constructor): Implemented this constructor.
	(FontFamilyAction.actionPerformed): Implemented this method. This
	sets the font family attribute for a piece of content.
	(StyledTextAction.constructor): Removed TODO comment.
	(StyledTextAction.getEditor): Implemented this method.
	(StyledTextAction.getStyledDocument): Implemented this method.
	(StyledTextAction.getStyledEditorKit): Implemented this method.
	(StyledTextAction.setCharacterAttributes): Implemented this method.
	(StyledTextAction.setParagraphAttributes): Implemented this method.
	(StyledViewFactory.constructor): Removed. This is not necessary here.
	(StyledViewFactory.create): Implemented this method.
	(AttributeTracker): Removed this inner class.
	(CaretTracker): New inner class.
	(CaretTracker.caretUpdate):  Implemented this method. This meeps
	track of the caret in a text component and updates some fields
	of the StyledEditorKit.
	(constructor): Implemented this constructor.
	The inputAttributes are initialized here.
	(clone): Implemented this method.
	(getActions): Implemented this method.
	(getInputAttributes): Implemented this method.
	(getCharacterAttributeRun): Implemented this method.
	(createDefaultDocument): Implemented this method.
	(install): Implemented this method.
	(deinstall): Implemented this method.
	(getViewFactory): Implemented this method.
	(createInputAttributes): Implemented this method.
	* javax/swing/text/View.java
	(modelToView(int, Shape, Position.Bias)): Added new abstract method.
	(modelToView(int, Position.Bias, int, Position.Bias, Shape):
	New method.
	
2005-07-28  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JViewport.java:
	(scrollRectToVisible): Consider the x and y position of the viewport
	itself when scrolling down.  This fixes an off-by-1-pixel problem.
	* javax/swing/plaf/basic/BasicListUI.java:
	(KeyHandler.keyPressed): Implemented PAGEUP, SHIFT-PAGEUP, PAGEDOWN, 
	and SHIFT-PAGEDOWN key actions.

2005-07-28  Lillian Angel  <langel@redhat.com>
	
	* java/awt/GridBagLayout.java
	(distributeSizeAndWeight): added in check, because OutOfBounds exception
	was being raised.
	* javax/swing/JTable.java
	(setRowHeight): Added in, but not implemented. 
	* javax/swing/plaf/basic/BasicComboBoxEditor.java
	(setItem): added in check, because NullPointerException was being
	raised.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(getPathBounds): Took out unneeded call.
	(uninstallListeners): added in check, because NPE was being raised.
	(installUI): took out unneeded call.
	(paint): Likewise.
	(getPreferredSize): Should not assume root is an instance of Default
	MutableTreeNode. Changed to use TreeNode instead.
	(getCellBounds): Should never return null
	(getCellLocation): Took out unneeded call.

2005-07-28  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicListUI.java:
	(KeyHandler.keyPressed): Replaced calls to KeyEvent.isShiftDown() and
	isControlDown() with comparisons of KeyEvent.getModifiers() and 
	InputEvent.SHIFT_MASK and CTRL_MASK.
	(MouseInputHandler.mouseClicked): Reordered SHIFT and CTRL modifier
	actions to correspond to JDK.  Note the JDK simply ignores other 
	modifiers so isShiftDown() and isControlDown() are okay for mouse
	input.

2005-07-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * org/omg/DynamicAny/DynUnion.java,
        org/omg/DynamicAny/DynUnionOperations.java,
        org/omg/DynamicAny/NameDynAnyPair.java,
        org/omg/DynamicAny/NameValuePair.java,
        org/omg/DynamicAny/DynAny.java,
        org/omg/DynamicAny/DynAnyOperations.java,
        org/omg/DynamicAny/DynArray.java,
        org/omg/DynamicAny/DynArrayOperations.java,
        org/omg/DynamicAny/DynEnum.java,
        org/omg/DynamicAny/DynEnumOperations.java,
        org/omg/DynamicAny/DynFixed.java,
        org/omg/DynamicAny/DynFixedOperations.java,
        org/omg/DynamicAny/DynSequence.java,
        org/omg/DynamicAny/DynSequenceOperations.java,
        org/omg/DynamicAny/DynStructOperations.java,
        org/omg/DynamicAny/DynStruct.java: New files. 

2005-07-28  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JViewport.java:
	(scrollRectToVisible): New method, overrides JComponent method as 
	intended.

2005-07-28  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* native/jni/java-nio/java_nio_MappedByteBufferImpl.c 
	(get_raw_values): Add env to getObjectClass call for 64-bit case.

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

	* java/text/AttributedStringIterator.java: reformatted.
	
2005-07-27  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicListUI.java:
	(KeyHandler.keyPressed): Ensure the new lead selection index is visible
	after making a change.
	(MouseInputHandler.mouseClicked): Likewise.

2005-07-27  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/util/PacketProcessor.java: Implement 
	PrivilegedAction to allow privilaged operations.

2005-07-27  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/events/events.wml: Add old and upcomming events.

2005-07-27  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/util/Value.java: Class to read/write JDWP
	untagged values and tagged values.
	* gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java:
	use new api for Values and IVirtualMachine and fix message in
	exception.
	* gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java:
	use new api for Values and fix message in exception.

2005-07-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * org/omg/PortableServer/POAHelper.java (type, insert, extract, 
        id, read, write): New methods.

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

	* java/text/AttributedString.java: added/edited API docs.
	
2005-07-27  David Gilbert  <david.gilbert@object-refinery.com>

	* java/text/AttributedString.java: reformatted.
	
2005-07-27  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTextPane.java:
	Reformatted file to match our coding style.

2005-07-27  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTextPane.java
	(getCharacterAttributes): Return SimpleAttributeSet.EMPTY instead
	of null.

2005-07-27  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicPanelUI.java
	(installDefaults): Install background color on JPanel.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added background color for Panel.

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

	* java/text/AttributedCharacterIterator.java: API doc fixes.
	
2005-07-27  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/html/parser/DocumentParser.java: reverted API fix.

2005-07-27  Roman Kennke  <roman@kennke.org>

	* javax/swing/DefaultBoundedRangeModel.java:
	Fixed / added API comments for class description.
	* javax/swing/DefaultButtonModel.java: Likewise.
	* javax/swing/DefaultCellEditor.java: Likewise.
	* javax/swing/DefaultComboBoxModel.java: Likewise.
	* javax/swing/DefaultDesktopManager.java: Likewise.
	* javax/swing/DefaultButtonModel.java: Likewise.
	* javax/swing/DefaultFocusManager.java: Likewise.
	* javax/swing/DefaultListCellRenderer.java: Likewise.
	* javax/swing/DefaultListModel.java: Likewise.
	* javax/swing/DefaultListSelectionModel.java: Likewise.
	* javax/swing/DefaultSingleSelectionModel.java: Likewise.
	* javax/swing/FocusManager.java: Likewise.
	* javax/swing/GrayFilter.java: Likewise.
	* javax/swing/ImageIcon.java: Likewise.
	* javax/swing/InputMap.java: Likewise.
	* javax/swing/InputVerifier.java: Likewise.
	* javax/swing/InternalFrameFocusTraversalPolicy.java: Likewise.
	* javax/swing/JApplet.java: Likewise.
	* javax/swing/JCheckBox.java: Likewise.
	* javax/swing/JCheckBoxMenuItem.java: Likewise.
	* javax/swing/JColorChooser.java: Likewise.
	* javax/swing/JComboBox.java: Likewise.
	* javax/swing/JComponent.java: Likewise.

2005-07-27  Roman Kennke  <roman@kennke.org>

	* java/util/Properties.java
	(getPropertyInternal): Removed.
	(getProperty(String)): Search for property here instead of
	getProperty(String, String).
	(getProperty(String,String)): Call getProperty(String).

2005-07-27  Roman Kennke  <roman@kennke.org>

	* java/awt/MenuItem.java
	(AccessibleAWTMenuItem.setCurrentAccessibleValue): Removed
	duplicate code. Added this to make setEnabled unambiguous for
	javac 1.3 compiler.

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

	* javax/swing/text/html/parser/DocumentParser.java: API doc fixes,
	* javax/swing/text/html/parser/DTD.java: likewise,
	* javax/swing/text/html/parser/DTDConstants.java: likewise,
	* javax/swing/text/html/parser/Element.java: likewise,
	* javax/swing/text/html/parser/Parser.java: likewise,
	* javax/swing/text/html/parser/ParserDelegator.java: likewise.
	
2005-07-27  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): added menu-related defaults.
	
2005-07-26  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java:
	Implemented the ArrayReference CommandSet.

2005-07-26  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.java:
	Implemented the ThreadGroupReference CommandSet.

2005-07-26  Tom Tromey  <tromey@redhat.com>

	PR classpath/22989:
	* java/net/Inet4Address.java (isMCNodeLocal): Use super call.
	(isMCOrgLocal): Likewise.

2005-07-26  Tom Tromey  <tromey@redhat.com>

	* gnu/java/security/provider/PKIXCertPathValidatorImpl.java
	(engineValidate): Fix sense of test.  PR classpath/22991.

2005-07-26  Tom Tromey  <tromey@redhat.com>

	PR classpath/22992:
	* javax/security/sasl/Sasl.java (getSaslClientFactories): Fix
	sense of test.
	(getSaslServerFactories): Likewise.

2005-07-26  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (repaintTimer): Make
	daemon thread.

	* gnu/java/awt/peer/gtk/GdkGraphics.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c: Add
	static initializer.
	(initStaticState): New method.
	Add new global graphics reference state table and macros.
	* include/gnu_java_awt_peer_gtk_GdkGraphics.h: Regenerate.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c: Use new
	NSA_GET_G_PTR macro to retreive graphics objects.
	* native/jni/gtk-peer/gtkpeer.h: Add new graphics state table and
	macros.

2005-07-26  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicTableUI.java:
	(KeyHandler.keyPressed): Replaced calls to KeyEvent.isShiftDown() and
	isControlDown() with mask comparisons of KeyEvent.getModifiers() and
	InputEvent.SHIFT_MASK and CTRL_MASK.  This makes it easier to ignore
	invalid modifiers.

2005-07-26  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicTableUI.java:
	(KeyHandler.keyPressed): Implemented CTRL-SPACE key action.

2005-07-26  Tom Tromey  <tromey@redhat.com>

	* java/security/cert/X509CertSelector.java (match): Convert sigId
	to String before comparison.  PR classpath/22987.

2005-07-26  Tom Tromey  <tromey@redhat.com>

	* gnu/java/security/OID.java: Typo fix.

2005-07-26  Tom Tromey  <tromey@redhat.com>

	* javax/security/auth/x500/X500Principal.java (getName): Don't
	compare oid to String.  PR classpath/22988.

2005-07-26  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (repaint): Reuse
	repaint timer across repaint calls.

2005-07-26  Roman Kennke  <roman@kennke.org>

	* javax/swing/AbstractAction.java
	Fixed / Added API doc comments for the class description.
	* javax/swing/AbstractButton.java: Likewise.
	* javax/swing/AbstractCellEditor.java: Likewise.
	* javax/swing/AbstractListModel.java: Likewise.
	* javax/swing/AbstractSpinnerModel.java: Likewise.
	* javax/swing/ActionMap.java: Likewise.
	* javax/swing/BorderFactory.java: Likewise.
	* javax/swing/Box.java: Likewise.
	* javax/swing/BoxLayout.java: Likewise.
	* javax/swing/ButtonGroup.java: Likewise.
	* javax/swing/CellRendererPane.java: Likewise.
	* javax/swing/ComponentInputMap.java: Likewise.
	* javax/swing/DebugGraphics.java: Likewise.

2005-07-26  Mark Wielaard  <mark@klomp.org>

	* java/text/DateFormat.java (equals): Reimplement.

2005-07-26  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(paint): Only call paintFocus if the button is actually focused.
	(paintFocus): The default implementation in the BasicLookAndFeel
	does nothing. I removed the code here.

2005-07-26  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added new borders for MenuBar and MenuItem.

2005-07-26  Roman Kennke  <roman@kennke.org>

	* java/util/Properties.java
	(getPropertyInternal): New method. Avoids infinite recursion if
	getProperty() methods are overridden in subclasses.
	(getProperty(String)): Use getPropertyInternal to avoid recursion.
	(getProperty(String,String)): Likewise.

2005-07-26  Mark Wielaard  <mark@klomp.org>

	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(getPreferredSize): Removed.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(getPreferredSize): Removed.
	* javax/swing/plaf/basic/BasicToolBarUI.java
	(getPreferredSize): Removed.

2005-07-26  Roman Kennke  <roman@kennke.org>

	* gnu/java/awt/AWTUtilities.java:
	Fixed formatting of this file.

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

	* javax/swing/plaf/metal/MetalBorders.java:
	(MenuBarBorder): new inner class.

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

	* javax/swing/plaf/metal/MetalBorders.java:
	(MenuItemBorder): new inner class.
	
2005-07-26  Mark Wielaard  <mark@klomp.org>

	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c
	(Java_gnu_java_nio_channels_FileChannelImpl_init): Mark clazz as
	unused. Remove unused variables constructor and obj.
	(Java_gnu_java_nio_channels_FileChannelImpl_implCloseChannel): Retry
	when interrupted.
	(Java_gnu_java_nio_channels_FileChannelImpl_available): Likewise.

2005-07-26  Mark Wielaard  <mark@klomp.org>

	* gnu/java/nio/channels/FileChannelImpl.java (lockCheck): New method.
	(tryLock): Use lockCheck().
	(lock): Likewise.

2005-07-26  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* native/target/generic/target_generic_network.h
	(TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_TIMEOUT): Added 
	missing sys/time.h include.

2005-07-26  Mark Wielaard  <mark@klomp.org>

	* gnu/java/nio/channels/FileChannelImpl.java (description):
	New final field.
	(FileChannelImpl): Set description.
	(init): Likewise.
	(toString): New method.
	All methods add parameters when throwing IllegalArgumentException.
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c
	(open): Add filename to FileNotFoundException.

2005-07-26  Jeroen Frijters  <jeroen@frijters.net>

	* NEWS: Added comment about new VMProxy class.
	* gnu/classpath/Configuration.java.in
	(HAVE_NATIVE_GET_PROXY_CLASS): Removed.
	(HAVE_NATIVE_GET_PROXY_DATA): Removed.
	(HAVE_NATIVE_GENERATE_PROXY_CLASS): Removed.
	* java/lang/reflect/Proxy.java
	(getProxyClass): Changed to call VMProxy.
	(getProxyClass0): Removed.
	(getProxyData0): Removed.
	(generateProxyClass0): Removed.
	(ProxyData): Removed private modifier.
	(POOL): Removed (was unused).
	(INVOKESTATIC): Removed (was unused).
	* vm/reference/java/lang/reflect/VMProxy.java: New file.

2005-07-26  Jeroen Frijters  <jeroen@frijters.net>

	* NEWS: Added comment about new VM hook in VMClassLoader.

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

	* javax/swing/text/DateFormatter.java: API doc fixes,
	* javax/swing/text/InternationalFormatter.java: likewise,
	* javax/swing/text/JTextComponent.java: likewise.
	
2005-07-26  Mark Wielaard  <mark@klomp.org>

	* examples/Makefile.am (clean-local): Use rm -rf.

2005-07-26  Jeroen Frijters  <jeroen@frijters.net>

	* vm/reference/java/lang/VMClassLoader.java
	(USE_VM_CACHE): Removed final modifier.

2005-07-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (repaint): Implement
	timed repaint.
	(updateCursorImmediately): Implement.
	(RepaintTimerTask): New class.
	* gnu/java/awt/peer/gtk/GtkImageConsumer.java (imageComplete):
	Don't remove consumer if source is a MemoryImageSource.

2005-07-25  Archie Cobbs  <archie@dellroad.org>

	* native/jni/classpath/native_state.c: add assertion for object type

2005-07-25  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicTableUI.java:
	(KeyHandler.advanceSingleSelection): New method.  Helper method for 
	ENTER, SHIFT-ENTER, TAB, and SHIFT-TAB key events.
	(KeyHandler.advanceMultipleSelection): Likewise, used when the table
	has multiple selections at the time that ENTER or TAB was pressed.
	(KeyHandler.keyPressed): Implemented TAB, SHIFT-TAB, and SHIFT-ENTER
	and merged these with existing code for ENTER event, because of the
	similarites.

2005-07-25  Tom Tromey  <tromey@redhat.com>

	* java/text/CollationKey.java (equals): Use Arrays.equals.
	PR classpath/22986.

2005-07-25  Tom Tromey  <tromey@redhat.com>

	* java/util/Properties.java (load): Handle case where backslash
	appears at EOF when reading the key.  PR classpath/22994.

2005-07-25  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/plaf/basic/BasicTreeUI.java
	(paint): moved code to paintNode
	(getCellBounds): width increased, slightly short before
	(paintNode): changed to paint node depending if icons exist

2005-07-25  Guilhem Lavaux  <guilhem@kaffe.org>

        * native/jni/classpath/jcl.c,
        native/jni/classpath/jcl.h
        (JCL_NewRawDataObject): New function.
        (JCL_GetRawData): New function.

2005-07-25  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/Container.java:
	(setFocusTraversalKeys): Instantiate focusTraversalKeys to an array of
	size 4, not 3.  This must have been a typo.

2005-07-25  Jeroen Frijters  <jeroen@frijters.net>

	* java/rmi/server/RMIClassLoader.java
	(loadClass(String, String)): Use Class.forName() instead of
	directly calling ClassLoader.loadClass(), to handle array
	types correctly.

2005-07-25  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTable.java:
	(selectAll): Store the lead selection indices and restore them after
	selecting all cells.
	* javax/swing/plaf/basic/BasicTableUI.java:
	(KeyHandler.keyPressed): Changed the criteria for "only one selection"
	when the ENTER key is pressed to match the behavior of the JDK.  Also
	replaced direct code for CTRL-A with call to JTable.selectAll().

2005-07-25  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/ClassLoader.java
	(loadedClasses): Set based on VMClassLoader.VM_USE_CACHE.
	(defineClass): Modified to respect VMClassLoader.VM_USE_CACHE.
	* vm/reference/java/lang/VMClassLoader.java
	(VM_USE_CACHE): New field.

2005-07-25  Roman Kennke  <roman@kennke.org>

	* gnu/java/awt/AWTUtilities.java:
	Added methods from SwingUtilities so that AWT does not have to
	depend on Swing.
	* java/awt/Component.java:
	Reverted my DEFAULT_FONT patch from yesterday. This does not
	seem to work with the Gtk peers.
	* java/awt/Container.java
	(addImpl): Call addNotify() on the added child. Invalidate not
	only the container but also the added child. Repaint the container.
	(remove): Repaint the container.
	(invalidate): Also invalidate the LayoutManager.
	(invalidateTree): Call super.invalidate to invalidate the container
	itself. Also invalidate the LayoutManager.
	(setFont): Only set the font if the specified argument actually
	differs from the current font.
	(preferredSize): Optimized this method so the LayoutManager is only
	called if the layout is invalid. Otherwise we return the preferred
	size that has been stored during last validation/layout.
	(getAlignmentX): Despite common belief, this method does _not_
	call the LayoutManagers getAlignmentX in the JDK. So we also don't.
	(getAlignmentY): Despite common belief, this method does _not_
	call the LayoutManagers getAlignmentX in the JDK. So we also don't.
	(dispatchEventImpl): Let the dispatcher decide if it is enabled
	for the incoming event type.
	(eventTypeEnabled): Enables only container events for containers.
	(addNotifyContainerChildren): Coalesced two if statements into one.
	Enable events on the dispatcher for this container.
	(LightweightDispatcher): Made this class reentrant. Handle
	events enabling/disabling here.

2005-07-25  Roman Kennke  <roman@kennke.org>

	* gnu/java/nio/channels/FileChannelImpl.java
	(static initializer): Init out, err and in here.
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c
	(Java_gnu_java_nio_channels_FileChannelImpl_init): Moved init code
	for in, out and err to Java code.

2005-07-25  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/faq.wml: Expand contribution assign answer.

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

	* java/awt/image/ConvolveOp.java:
	(getKernel): return a clone of the kernel.

2005-07-25  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/ClassLoader.java
	(findLoadedClass): Call VMClassLoader.findLoadedClass.
	* vm/reference/java/lang/VMClassLoader.java
	(findLoadedClass): New method.

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

	* lib/standard.omit: Don't omit gnu/javax/swing/plaf/gtk files.
	* lib/Makefile.am (dist-hook): Don't remove standard.omit dirs.

	* gnu/javax/swing/plaf/gtk/GtkBorders.java: Removed.
	* gnu/javax/swing/plaf/gtk/GtkCheckBoxUI.java: Likewise.
	* gnu/javax/swing/plaf/gtk/GtkIconFactory.java: Likewise.
	* gnu/javax/swing/plaf/gtk/GtkLookAndFeel.java: Likewise.
	* gnu/javax/swing/plaf/gtk/GtkRadioButtonUI.java: Likewise.
	* gnu/javax/swing/plaf/gtk/GtkSliderUI.java: Likewise.
	* gnu/javax/swing/plaf/gtk/README: Likewise.
	* gnu/javax/swing/plaf/gtk/SliderTest.java: Likewise.

2003-07-23  Casey Marshall  <csm@gnu.org>

	* configure.ac (AC_CHECK_HEADERS): add 'sys/mman.h'.
	(AC_CHECK_FUNCS): add mmap and related functions.
	* include/java_nio_VMDirectByteBuffer.h: regenerated.
	* java/nio/DirectByteBufferImpl.java (put): new method.
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c
	(ALIGN_DOWN): new macro.
	(ALIGN_UP): new macro.
	(Java_gnu_java_nio_channels_FileChannelImpl_mapImpl): implemented.
	* native/jni/java-nio/java_nio_MappedByteBufferImpl.c: updated
	copyright years.
	(ALIGN_DOWN): new macro.
	(ALIGN_UP): new macro.
	(get_pagesize): new function.
	(get_raw_values): new function.
	(Java_java_nio_MappedByteBufferImpl_unmapImpl): implemented.
	(Java_java_nio_MappedByteBufferImpl_isLoadedImpl): implemented.
	(Java_java_nio_MappedByteBufferImpl_loadImpl): implemented.
	(Java_java_nio_MappedByteBufferImpl_forceImpl): implemented.
	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c
	(Java_java_nio_VMDirectByteBuffer_put): renamed to
	'Java_java_nio_VMDirectByteBuffer_put__Lgnu_classpath_RawData_2IB.'
	(Java_java_nio_VMDirectByteBuffer_get__Lgnu_classpath_RawData_2I_3BII):
	call 'ReleaseByteArrayElements' on the source byte array elements.
	(Java_java_nio_VMDirectByteBuffer_put__Lgnu_classpath_RawData_2I_3BII):
	new method.
	* vm/reference/java/nio/VMDirectByteBuffer.java (put): new method.

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

	* javax/swing/BoundedRangeModel.java: added/updated API doc comments.

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

	* javax/swing/Icon.java: added API doc comments.

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

	* java/text/AttributedString.java: API doc fixes,
	* java/text/ChoiceFormat.java: likewise,
	* java/text/CollationElementIterator.java: likewise,
	* java/text/CollationKey.java: likewise,
	* java/text/Collator.java: likewise,
	* java/text/DateFormat.java: likewise,
	* java/text/DateFormatSymbols.java: likewise,
	* java/text/DecimalFormatSymbols.java: likewise,
	* java/text/MessageFormat.java: likewise,
	* java/text/NumberFormat.java: likewise,
	* java/text/ParseException.java: likewise,
	* java/text/SimpleDateFormat.java: likewise,
	* java/text/StringCharacterIterator.java: likewise.

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

	* javax/swing/ImageIcon.java: API doc fixes,
	* javax/swing/JLayeredPane.java: likewise,
	* javax/swing/JSplitPane.java: likewise,
	* javax/swing/JTree.java: likewise,
	* javax/swing/JViewport.java: likewise,
	* javax/swing/RepaintManager.java: likewise,
	* javax/swing/SizeRequirements.java: likewise,
	* javax/swing/SortingFocusTraversalPolicy.java.
	
2005-07-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * org/omg/PortableServer/ServantLocatorOperations.java,
        org/omg/PortableServer/ServantActivatorOperations.java:
        Inherit from ServantManagerOperations.
        * org/omg/PortableServer/CurrentOperations.java:
        Inherit from org.omg.CORBA.CurrentOperations.
        org/omg/PortableServer/ForwardRequestHelper.java: New file.

2005-07-23  Sven de Marothy  <sven@physto.se>

	* java/awt/List.java (List): Initialize selected[] to an empty array.

2005-07-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * NEWS: Added entry about POA.

2005-07-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * org/omg/PortableServer/RequestProcessingPolicyOperations.java,
        org/omg/PortableServer/ServantRetentionPolicyOperations.java,
        org/omg/PortableServer/ThreadPolicyOperations.java,
        org/omg/PortableServer/IdAssignmentPolicyOperations.java,
        org/omg/PortableServer/IdUniquenessPolicyOperations.java,
        org/omg/PortableServer/ImplicitActivationPolicyOperations.java,
        org/omg/PortableServer/LifespanPolicyOperations.java:
        Inherit from PolicyOperations.

2005-07-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicTableUI.java:
	(KeyHandler.keyPressed): If row selection is not allowed in the table,
	then consider all rows of a particular column selected when you get an
	ENTER key event.  This matches JDK behaviour and fixes an out of 
	bounds error.  Also, wrapped lines at 80 chars.

2005-07-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicTableUI.java:
	(paint): Only highlight the border of a table cell if it is the most
	recently updated cell.

2005-07-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicListUI.java:
	(paintCell): Fixed misnamed variable.

2005-07-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org> 
        
        * gnu/CORBA/Poa/gnuPOA.java,
        gnu/CORBA/Poa/gnuPOAManager.java,
        gnu/CORBA/Poa/activeObjectMap.java,
        gnu/CORBA/Poa/gnuAdapterActivator.java,
        gnu/CORBA/Poa/gnuServantObject.java,
        gnu/CORBA/Poa/servantDelegate.java,
        gnu/CORBA/Poa/ORB_1_4.java,
        gnu/CORBA/Poa/policySets.java,
        gnu/CORBA/Poa/gnuPoaCurrent.java,
        gnu/CORBA/Poa/LocalDelegate.java,
        gnu/CORBA/Poa/dynImpHandler.java,
        gnu/CORBA/Poa/LocalServerRequest.java,
        gnu/CORBA/Poa/LocalRequest.java,
        gnu/CORBA/Poa/ForwardedServant.java,
        gnu/CORBA/Poa/gnuIdAssignmentPolicy.java,
        gnu/CORBA/Poa/gnuRequestProcessingPolicy.java,
        gnu/CORBA/Poa/gnuThreadPolicy.java,
        gnu/CORBA/Poa/gnuLifespanPolicy.java,
        gnu/CORBA/Poa/gnuIdUniquenessPolicy.java,
        gnu/CORBA/Poa/gnuServantRetentionPolicy.java,
        gnu/CORBA/Poa/gnuImplicitActivationPolicy.java,
        gnu/CORBA/Poa/gnuForwardRequest.java,
        gnu/CORBA/ForwardRequestHelper.java,
        gnu/CORBA/Poa/vPolicy.java,
        gnu/CORBA/Poa/ForwardRequestHolder.java,
        org/omg/PortableServer/POA.java,
        org/omg/PortableServer/POAManagerOperations.java,
        org/omg/PortableServer/POAOperations.java,        
        org/omg/PortableServer/Servant.java,
        org/omg/PortableServer/DynamicImplementation.java,
        org/omg/PortableServer/ServantActivator.java,        
        org/omg/PortableServer/ServantActivatorOperations.java,
        org/omg/PortableServer/ServantLocator.java,
        org/omg/PortableServer/ServantLocatorOperations.java,        
        org/omg/PortableServer/ServantManager.java,               
        org/omg/PortableServer/Current.java,
        org/omg/PortableServer/CurrentHelper.java,
        org/omg/PortableServer/CurrentOperations.java,
        org/omg/PortableServer/_ServantLocatorStub.java,
        org/omg/PortableServer/portable/Delegate.java,
        org/omg/PortableServer/ServantActivatorHelper.java,
        org/omg/PortableServer/_ServantActivatorStub.java,
        org/omg/PortableServer/ServantLocatorHelper.java,
        org/omg/PortableServer/ServantActivatorPOA.java,
        org/omg/PortableServer/ServantLocatorPOA.java,
        org/omg/PortableServer/AdapterActivatorOperations.java,
        org/omg/PortableServer/AdapterActivator.java,
        org/omg/PortableServer/POAHelper.java,
        org/omg/PortableServer/ServantManagerOperations.java,
        org/omg/PortableServer/POAManager.java,        
        org/omg/PortableServer/package.html: New files.
        * org/omg/CORBA/ORB.java: Documented POA features.
        gnu/CORBA/gnuRequest.java (_releaseReply, equals): Mind that
        the delegate can be null.
        * gnu/CORBA/IOR_Delegate.java,
        gnu/CORBA/Functional_ORB.java,
        org/omg/CORBA/portable/ObjectImpl.java,
        gnu/CORBA/Connected_objects.java: Rewritten.
        * gnu/CORBA/Simple_delegate.java (is_equivalent): This method 
        is rewritten.
        * gnu/CORBA/ServiceRequestAdapter.java: Added return value support.

2005-07-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicListUI.java:
	(paintCell): Set hasFocused to true if the cell is the lead selection
	index and if the list has focus.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	(initComponentDefaults): Added List.focusCellHighlightBorder default.

2005-07-22  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/ArrayTypeCommandSet.java:
	Implemented the ArrayType CommandSet.

2005-07-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added defaults for ToggleButton.

2005-07-22  Roman Kennke  <roman@kennke.org>

	* java/awt/Component.java
	(setForeground): Fire PropertyChangeEvent after the foreground
	has actually changed, instead of before.
	(setBackground): Fire PropertyChangeEvent after the foreground
	has actually changed, instead of before. Avoid one comparison
	at the beginning of method.
	(getBackground): If background is null and parent is null, return
	null, instead of SystemColor.window. This is what it's supposed
	to do.
	(getFont): Avoid NPE by creating a local reference. Return
	static final DEFAULT_FONT instead of creating a new font every time
	we and our parents have no font set.
	(setFont): Made check for font equality more precise.
	(paramString): Added parent in paramString.

2005-07-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/JToggleButton.java
	(ToggleButtonModel.setPressed): Fixed order in which events
	get fired.

2005-07-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/DefaultButtonModel.java
	(setPressed): Changed order in which the events get fired. The
	ActionEvent must be fired before the ChangeEvent gets fired.

2005-07-22  Roman Kennke  <roman@kennke.org>

	* java/awt/Component.java
	(show): Instead of invalidating the component, only invalidate
	the parent, if there is one. Also repaint this parent.
	Also, avoid NPEs by creating local references.
	(hide): Instead of invalidating the component, only invalidate
	the parent, if there is one. Also repaint this parent.
	Also, avoid NPEs by creating local references.

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

	* javax/swing/plaf/basic/BasicButtonUI.java: API doc fixes,
	* javax/swing/plaf/basic/BasicRadioButtonUI.java: likewise,
	* javax/swing/plaf/basic/BasicTreeUI.java: likewise.

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

	* javax/swing/plaf/metal/MetalCheckBoxIcon.java: API doc fixes,
	* javax/swing/plaf/metal/MetalIconFactory.java: likewise.
	
2005-07-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/html/HTMLEditorKit.java: API doc fixes.
	
2005-07-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/AbstractLayoutCache.java: API doc fixes,
	* javax/swing/tree/DefaultTreeCellRenderer.java: likewise,
	* javax/swing/tree/DefaultTreeModel.java: likewise,
	* javax/swing/tree/FixedHeightLayoutCache: likewise.
	
2005-07-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalToggleButtonUI.java
	(constructor): Initialize colors.
	(getFocusColor): Fetches the focus property from the UIDefaults.
	(getSelectColor): Fetches the select property from the UIDefaults.
	(getDisabledTextColor): Fetches the disabledText property from the
	UIDefaults.

2005-07-21  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicTableUI.java:
	(KeyHandler.updateSelection): Update the ListSelectionModels even if
	rowSelectionAllowed or columnSelectionAllowed is false.  This
	complies with the JDK.
	(KeyHandler.keyPressed): Implemented the ENTER key action.

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

	* javax/swing/plaf/BorderUIResource.java: API doc fixes,
	* javax/swing/plaf/FileChooserUI.java: likewise,
	* javax/swing/plaf/TextUI.java: likewise,
	* javax/swing/plaf/UIResource.java: likewise.
	
2005-07-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/EventListenerList.java: API doc fixes,
	* javax/swing/event/MenuKeyEvent.java: likewise,
	* javax/swing/event/TreeSelectionEvent.java: likewise.
	
2005-07-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/border/AbstractBorder.java: API doc fixes,
	* javax/swing/border/BevelBorder.java: likewise,
	* javax/swing/border/EtchedBorder.java: likewise,
	* javax/swing/border/LineBorder.java: likewise,
	* javax/swing/border/SoftBevelBorder.java: likewise,
	* javax/swing/border/TitledBorder.java: likewise.
	
2005-07-21  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalButtonUI.java
	(constructor): Initialize colors.
	(getFocusColor): Fetches the focus property from the UIDefaults.
	(getSelectColor): Fetches the select property from the UIDefaults.
	(getDisabledTextColor): Fetches the disabledText property from the
	UIDefaults.

2005-07-21  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/GapContent.java
	(replace): New method. Replaces a chunk of the buffer with
	another chunk.

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

	* javax/swing/AbstractListModel.java: API doc fixes,
	* javax/swing/BorderFactory.java: likewise,
	* javax/swing/BoundedRangeModel.java: likewise,
	* javax/swing/BoxLayout.java: likewise,
	* javax/swing/CellRendererPane.java: likewise,
	* javax/swing/ComponentInputMap.java: likewise,
	* javax/swing/DefaultBoundedRangeModel.java: likewise,
	* javax/swing/DefaultButtonModel.java: likewise,
	* javax/swing/DefaultCellEditor.java: likewise,
	* javax/swing/InputMap.java: likewise,
	* javax/swing/JButton.java: likewise,
	* javax/swing/JFrame.java: likewise,
	* javax/swing/JLabel.java: likewise,
	* javax/swing/JMenuBar.java: likewise,
	* javax/swing/JPopupMenu.java: likewise,
	* javax/swing/JScrollBar.java: likewise,
	* javax/swing/JScrollPane.java: likewise,
	* javax/swing/JSeparator.java: likewise,
	* javax/swing/JSlider.java: likewise,
	* javax/swing/JSpinner.java: likewise,
	* javax/swing/JTextArea.java: likewise,
	* javax/swing/JToggleButton.java: likewise,
	* javax/swing/SpinnerListModel.java: likewise,
	* javax/swing/Spring.java: likewise,
	* javax/swing/SpringLayout.java: likewise.
	
2005-07-21  Lillian Angel  <langel@redhat.com>
	* javax/swing/plaf/basic/BasicTreeUI.java
	(getPreferredSize): Changed to depend on visible nodes.
	(mouseClicked): Fixed to keep track of last cell clicked, so expand/collapse
	works properly by clicking 2 times on the same cell.

2005-07-21  Roman Kennke  <roman@kennke.org>

	* javax/swing/JComponent.java
	(putClientProperty): If value == null, remove the key from the
	Hashtable, otherwise we would get an NPE here.

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

	* javax/swing/plaf/basic/BasicSliderUI.java:
	(thumbHeight): removed,
	(thumbWidth): removed,
	(tickHeight): removed,
	(installDefaults): deleted initialisation of thumbHeight, thumbWidth 
	and thumbRect,
	(getPreferredHorizontalSize): changed source of thumb height and width,
	(getPreferredVerticalSize): likewise,
	(getMinimumHorizontalSize): reimplemented,
	(getMinimumVerticalSize): reimplemented,
	(getMinimumSize): reimplemented, 
	(getMaximumSize): reimplemented,
	(calculateThumbSize): use getThumbSize(),
        (calculateThumbLocation): use trackRect not contentRect,
	(calculateTrackBuffer): use half the thumbRect,
	(getThumbSize): use constant size,
	(calculateTrackRect): move track down to middle of contentRect,
	(getTickLength): return constant,
	(paintTrack): removed unused local variables,
	(paintTicks): apply a translation to g temporarily before calling 
	methods to draw ticks, add 0.5 to solve rounding problem,
	(paintMinorTickForHorizSlider): modified to account for translation 
	already applied to g,
	(paintMajorTickForHorizSlider): likewise,
	(paintMinorTickForVertSlider): likewise,
	(paintMajorTickForVertSlider): likewise,
	(xPositionForValue): subtract 1 from width,
	(yPositionForValue): likewise,
	*javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): add slider defaults,
	*javax/swing/plaf/metal/MetalSliderUI.java: implemented missing 
	methods,
	* examples/gnu/classpath/examples/swing/Demo.java
	(mkSliders): added minor ticks and labels.

2005-07-21  Roman Kennke  <roman@kennke.org>

	* javax/swing/AbstractButton.java
	(init): Only set icon if the supplied icon is not null. Otherwise
	we would override icons that are possibly set by the UI.
	* javax/swing/plaf/basic/BasicIconFactory.java
	(CheckBoxIcon): An new Icon implementation used for CheckBoxes
	in the Basic L&F.
	(RadioButtonIcon): An new Icon implementation used for
	RadioButtons in the Basic L&F.
	(getCheckBoxIcon): Now returns a (cached) instance of CheckBoxIcon
	instead of the (wrong) inner icon implementation.
	(getRadioButtonIcon): Now returns a (cached) instance of
	RadioButtonIcon	instead of the (wrong) inner icon implementation.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Registered new icons for CheckBox and
	RadioButton, using a LazyValue entry.
	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	Added API documentation all over.
	(installUI): Removed this method.
	(installDefaults): New method. Installs the default icons if there
	is no other icon set.
	(getPropertyPrefix): New method. Returns the prefix that is used
	to look up UIDefault entries.
	(getDefaultIcon): Use propertyPrefix instead of hardcoded property.
	(paint): New method. Override paint for customized painting
	of RadioButtons.
	* javax/swing/plaf/metal/MetalCheckBoxIcon.java
	(drawCheck): Respect the x and y parameter.
	* javax/swing/plaf/metal/MetalIconFactory.java
	(RadioButtonIcon): An Icon implementation for Metal RadioButtons.
	(getRadioButtonIcon): New method. Returns a shared instance of
	RadioButtonIcon.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Register new icons for CheckBox and
	RadioButton using a LazyValue entry.

2005-07-21  Roman Kennke  <roman@kennke.org>

	* javax/swing/JOptionPane.java
	(createInternalFrame): Look for a JDesktopPane first, then
	look for a JLayeredPane as fallback. Set this JOptionPane as
	contentPane for the found JDesktopPane. Make the InternalFrame
	visible and appropriatly sized here.
	(showInternalConfirmDialog): ALL VARIANTS OF THIS METHOD:
	Adjusted call to startModel to only take one parameter.
	(showInternalInputDialog): ALL VARIANTS OF THIS METHOD:
	Adjusted call to startModel to only take one parameter.
	(showInternalMessageDialog): ALL VARIANTS OF THIS METHOD:
	Adjusted call to startModel to only take one parameter.
	(showInternalOptionDialog): ALL VARIANTS OF THIS METHOD:
	Adjusted call to startModel to only take one parameter.
	(startModal): Now only takes one parameter. This method does no
	longer add the JOptionPane to the contentPane of the InternalFrame,
	set the size and make the InternalFrame visible. This is done in
	createInternalFrame.

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

	* javax/swing/DefaultListSelectionModel.java: API doc fixes.

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

	* javax/swing/AbstractButton.java: API doc fixes all over.

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

	* javax/swing/UIDefaults.java
	(getFont(Object, Locale)): matched argument name to API doc comment,
	(getColor(Object, Locale)): likewise,
	(getIcon(Object, Locale)): likewise,
	(getBorder(Object, Locale)): likewise,
	(getString(Object, Locale)): likewise,
	(getInt(Object, Locale)): likewise,
	(getBoolean(Object, Locale)): likewise,
	(getInsets(Object, Locale)): likewise,
	(getDimension(Object, Locale)): likewise.
	
2005-07-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java: API doc fixes all over.

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

	* java/net/URLClassLoader.java: reordered some API doc comments to 
	suppress Eclipse warnings, and fixed API doc link.
	
2005-07-20  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/BorderLayout.java:
	(layoutContainer): Removed addition of horizontal and vertical gaps
	when there is no corresponding adjacent component.

2005-07-20  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTable:
	(JTable): Set the lead selection index for each of the two lists
	associated with this table to 0 (instead of -1).  This complies with
	JDK.
	* javax/swing/plaf/basic/BasicTableUI.java:
	(KeyHandler.keyPressed):  Implemented the following key actions (with
	CTRL/SHIFT handling when appropriate): UP/DOWN/LEFT/RIGHT, HOME/END,
	CTRL-A, CTRL-\, CTRL-/.

2005-07-20  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicListUI.java:
	(KeyHandler.keyPressed): Restore the lead selection index after doing
	a "select all" operation.

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

	* javax/swing/plaf/basic/BasicTreeUI.java
	(keyPressed): Implemented some more VK_XXX and VK_KP_XXX events.

2005-07-20  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.java:
	Implemented the ClassObjectReference CommandSet.

2005-07-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added value for InternalFrame.icon.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installDefaults): Install icon from UIDefaults.

2005-07-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(createSeparator): Return null here.
	(installComponents): Don't add a separator in the OptionPane.

2005-07-20  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/plaf/basic/BasicTreeUI.java
	(paint): Changed to paint children of root as roots if the 
	root is not visible, but the root path is expanded.
	(getPathForRow): If the root is not visible, but expanded, 
	the first child should be considered row 0.
	(getRowCount): Likewise.
	(getPathBounds): Likewise.
	(getCellLocation): If root is not visible, but expanded, the
	level of each node is lowered by 1.
	(paintRecursive): If root is not visible, but expanded, there should
	be no indentation when the children are drawn. Also, there should be no
	line drawn connecting the children. This makes it look like there are 2
	independant trees (works same as JDK).

2005-07-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installUI): Moved titlePane.setOpaque() call into
	BasicInternalFrameTitlePane's constructor.
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(constructor): Moved titlePane.setOpaque() call from
	BasicInternalFrameUI.installUI into this constructor.

2005-07-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/JOptionPane.java
	(createInternalFrame): Look up the nearest JLayeredPane instead
	of JDesktopPane. This is in contrast to the specs but what the JDK
	does and what makes sense.

2005-07-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/SwingUtilities.java:
	Made class description more concise.

2005-07-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/JButton.java:
	Made class description more concise.

2005-07-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/JButton.java
	(AccessibleJButton): Added accessibility support for JButton.
	(getAccessibleContext): Implemented to return an AccessibleJButton.
	* javax/swing/JLabel.java
	(AccessibleJLabel): Added accessibility support for JLabel.
	(getAccessibleContext): Implemented to return an AccessibleJLabel.

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

	* javax/swing/JSlider.java
	(setMinimum): fire PropertyChangeEvent for new value,
	(setMaximum): likewise,
	(setSnapToTicks): fire PropertyChangeEvent, not ChangeEvent,
	(setPaintTrack): fire PropertyChangeEvent for new value,
	(setPaintLabels): initialise label table.

2005-07-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/JLayeredPane.java:
	Fixed and extended API documentation / class description.

2005-07-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/Action.java:
	Fixes the class description to be more concise.

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

	* java/text/AttributedCharacterIterator.java: fixed minor API doc
	problems and 80 column wrapping;
	* java/text/BreakIterator.java
	(getCharacterInstance(Locale)): matched argument name to API docs,
	(getLineInstance(Locale)): likewise,
	(getSentenceInstance(Locale)): likewise,
	(getWordInstance(Locale)): likewise,
	and fixed minor API doc problems all over;
	* java/text/CharacterIterator.java: fixed minor API doc problems.
	
2005-07-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * org/omg/PortableServer/ForwardRequest.java: New file.

2005-17-19  Lillian Angel <langel@redhat.com>

	* javax/swing/plaf/BasicTreeUI
	(setModel): changed to call JTree's setModel
	(setRootVisible): Likewise
	(isRootVisible): Likewise
	(getClosestPathForLocation): Implemented
	(paint): took out translate, no need to.
	(mouseClicked): clicking made smoother.
	
2005-17-19  Lillian Angel <langel@redhat.com>

	* javax/swing/plaf/BasicTreeUI:
	Moved several functions around for readability.
	Some formatting in various places.
	(paint): extended size of border drawn
	(mouseClicked): checked if path was null
	(getCellLocation): Now package-private.
	(paintNode): Implemented, there is no need to paint the leaf and non
	leaf separately. Works with custom icons.
	(paintRecursive): Now package-private. Changed to paint with paintNode.
	(paintControlIcons): Now package-private.
	(hasControlIcons): Now package-private.

2005-17-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSlider.java
	(createStandardLabels(int)): updated API docs,
	(createStandardLabels(int, int)): throw IllegalArgumentException for
	bad arguments.

2005-17-18  Lillian Angel <langel@redhat.com>

	* javax/swing/plaf/BasicTreeUI
	(getPathBounds): checked if path was null initially
	(paint): no need to check for control icons
	(paintLeaf): reseting of icon
	(paintNonLeaf): resetting of icon
	(paintControlIcons): cleaned up
	(hasControlIcons): cleaned up
	* javax/swing/tree/DefaultTreeCellRenderer
	(getTreeCellRendererComponent): fixed to follow API	

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

	* javax/swing/JSlider.java:
	(JSlider(int)): updated API docs,
	(JSlider(int, int, int)): likewise,
	(JSlider(BoundedRangeModel)): removed code that handles a null 
	argument, and updated API docs.

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

	* javax/swing/JSlider.java: initialise snapToTicks to false.
	
2005-07-18  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(paintMenuItem): Don't highlight background of a selected 
	JCheckboxMenuItem.
	(paintText): Don't highlight text of a selected JCheckBoxMenuItem.

2005-07-18  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JPopupMenu.java:
	(insert): Resize the container to its preferred size when an item is
	inserted.
	(remove): Resize the container to its preferred size when an item is
	removed.

2005-07-18  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicMenuUI.java:
	(getMaximumSize): Added check for this menu not being a top level menu.
	If that's the case, return the maximum size as if it were a regular
	JMenuItem.

2005-07-18  Tom Tromey  <tromey@redhat.com>

	* lib/Makefile.gcj (%.stamp): Added -MP.

2005-07-18  Tom Tromey  <tromey@redhat.com>

	* include/.cvsignore: Removed jni.h.

2005-07-18  Tom Tromey  <tromey@redhat.com>

	* native/jni/classpath/classpath_jawt.h: Updated copyright
	header.

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

	* javax/imageio/stream/ImageInputStream.java: added import to fix
	minor API doc problems.

2005-07-18  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(paint): Only paint border if using MetalL&F
	(mouseClicked): Check that control icons exist
	(paintNonLeaf): Changed to paint icon depending on height
	(hasControlIcons): Implemented to return true if control icons exist

2005-07-18  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(paint): Implemented painting of border around selected path
	(mouseClicked): Fixed clicking of icon

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

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): changed Slider.thumbWidth.
	* javax/swing/plaf/basic/BasicSliderUI.java
	(paintThumb): fixed thumb painting.

2005-07-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * org/omg/PortableServer/ThreadPolicyValue.java,
        org/omg/PortableServer/IdAssignmentPolicy.java,
        org/omg/PortableServer/IdUniquenessPolicyOperations.java,
        org/omg/PortableServer/IdAssignmentPolicyOperations.java,
        org/omg/PortableServer/IdUniquenessPolicy.java,
        org/omg/PortableServer/ImplicitActivationPolicyOperations.java,
        org/omg/PortableServer/LifespanPolicyOperations.java,
        org/omg/PortableServer/LifespanPolicy.java,
        org/omg/PortableServer/ImplicitActivationPolicy.java,
        org/omg/PortableServer/ServantRetentionPolicy.java,
        org/omg/PortableServer/RequestProcessingPolicy.java,
        org/omg/PortableServer/ServantRetentionPolicyOperations.java,
        org/omg/PortableServer/ThreadPolicyOperations.java,
        org/omg/PortableServer/RequestProcessingPolicyOperations.java,
        org/omg/PortableServer/ThreadPolicy.java: New files.

2005-07-15  Lillian Angel  <langel@redhat.com>
	* javax/swing/plaf/basic/BasicTreeUI.java
	(mouseClicked): Implemented clicking on control icons.

2005-07-15  Tom Tromey  <tromey@redhat.com>

	* native/jni/classpath/classpath_jawt.h: New file.

2005-07-15  Tom Tromey  <tromey@redhat.com>

	* lib/libgcj.omit: Removed.

2005-07-15  Lillian Angel  <langel@redhat.com>
	* javax/swing/plaf/basic/BasicTreeUI.java
	(mouseClicked): changed to use getPathBounds.
	(getPathBounds): Implemented

2005-07-15  Lillian Angel  <langel@redhat.com>
	* javax/swing/plaf/basic/BasicTreeUI.java
	(mouseClicked): check if user is clicking within the bounds of the cell.
	(getCellLocation): Implemented to return the location of the cell.

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

	* javax/swing/plaf/metal/MetalComboBoxIcon.java: new file.

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

	* javax/swing/tree/TreePath.java: added API docs all over,
	(TreePath(Object[])): throw IllegalArgumentException for null argument,
	(TreePath(TreePath, Object)): throw NullPointerException for null Object,
	(equals): test elements using equals(),
	(writeObject): removed,
	(readObject): removed,
	(getPath): return a clone of the path,
	(getPathComponent): throw IllegalArgumentException for invalid position,
	(isDescendant): reimplemented.

2005-07-15  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(ButtonAreaLayout): Made class static.
	(ButtonAreaLayout.setSyncAllWidths): Removed revalidate(). Never
	ever revalidate something within a LayoutManager!
	(ButtonAreaLayout.setPadding): Likewise.
	(ButtonAreaLayout.setCentersChildren): Likewise.
	(ButtonAreaLayout.layoutContainer): Don't refer to enclosing
	class's instance, this is not allowed in static inner classes.

2005-07-15  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalCheckBoxIcon.java:
	New class. An icon implementation for use in JCheckBoxes.
	* javax/swing/plaf/metal/MetalBorders.java
	Renamed MetalButtonBorder to ButtonBorder.

2005-07-15  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicTextUI.java:
	(RootView.removeUpdate): Properly update the caret position after text
	has been removed.

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

	* NEWS: Add 0.17 release date and new features.
	* configure.ac: Set version to 0.17.

2005-07-15  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/AbstractButton.java:
	(init): Do not change field text if argument text is null.

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

	* java/util/logging/Logger.java (getCallerStackFrame): 
	Make sure index < stackTrace.length and return null otherwise.
	(log): Check for caller == null.

2005-07-15  Roman Kennke  <roman@kennke.org>

	* javax/swing/AbstractButton.java
	(AbstractButton): Directly call init() and updateUI().
	(AbstractButton(String, Icon)): Removed. This is not necessary
	since we have init(String, Icon) for that purpose.
	(getActionCommand): Reverted to previous behaviour: If
	actionCommand is set, return this, otherwise return text, even
	if text is null.
	* javax/swing/JButton.java
	(JButton(String, Icon)): Call super() and init(String, Icon)
	instead of super(String, Icon).
	* javax/swing/JMenuItem.java
	(JMenuItem): Call super() instead of super(String, Icon).
	(JMenuItem(Icon)): Call this(String, Icon) instead of
	super(String, Icon).
	(JMenuItem(String)): Call this(String, Icon) instead of
	super(String, Icon).
	(JMenuItem(Action)): Call super() instead of
	super(String, Icon).
	(JMenuItem(String, Icon)): Call super() and init(String, Icon)
	instead of super(String, Icon).
	(JMenuItem(String, int)): Call this(String, Icon) instead of
	super(String, Icon).
	* javax/swing/JToggleButton.java
	(ToggleButtonModel.setPressed): Fire an ActionEvent if button
	is released. According to my Mauve tests, it seems that this
	is what the JDK does, so do we.
	(ToggleButtonModel.setSelected): Removed.
	(JToggleButton): Call super() and init(String, Icon) instead
	of super(String, Icon).

2005-07-15  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/tree/DefaultMutableTreeNode.java:
	(removeFromParent): Remove child node from parent now.
	(preorderEnumeration): Implemented.
	(postorderEnumeration): Implemented.
	(depthFirstEnumeration): Implemented.
	(breadthFirstEnumeration): Implemented.
	(nextLeaf): Added TODO doc.
	(previousLeaf): Added TODO doc.

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

	* lib/standard.omit: Only list gnu/javax/swing/plaf/gtk/.*java and
	README explicitly, not the icons.
	* examples/gnu/classpath/examples/swing/GNULookAndFeel.java
	(getDefaults): Add Tree closed, leaf and open icons.

2005-07-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* doc/vmintegration.texinfo:
	Updated 'Classpath Hooks' section.

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

	* hacking.texinfo: @setchapternewpage off.
	* vmintegration.texinfo: Likewise.
	* www.gnu.org/docs/Makefile: texi2info --ifinfo --ifhtml.

2005-07-14  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkChoicePeer.java (choicePostItemEvent):
	Rename to postChoiceItemEvent.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (realize): New method.
	(setNativeEventMask): Likewise.
	* gnu/java/awt/peer/gtk/GtkGenericPeer.java (printCurrentThread): New method.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java (realize): New method.
	* include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: Regenerate.
	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Likewise.
	* native/jni/gtk-peer/gtkpeer.h: Move widget-specific macro,
	variable and function declarations into the widget-specific file.
	Add cp_gtk_ namespace prefix to external symbols.
	(cp_gtk_graphics2d_init_jni): New function.
	(cp_gtk_graphics_init_jni): Likewise.
	(cp_gtk_button_init_jni): Likewise.
	(cp_gtk_checkbox_init_jni): Likewise.
	(cp_gtk_choice_init_jni): Likewise.
	(cp_gtk_component_init_jni): Likewise.
	(cp_gtk_list_init_jni): Likewise.
	(cp_gtk_menuitem_init_jni): Likewise.
	(cp_gtk_scrollbar_init_jni): Likewise.
	(cp_gtk_textcomponent_init_jni): Likewise.
	(cp_gtk_window_init_jni): Likewise.
	(cp_gtk_component_connect_expose_signals): Likewise.
	(cp_gtk_component_connect_focus_signals): Likewise.
	(cp_gtk_component_connect_mouse_signals): Likewise.
	(cp_gtk_component_connect_signals): Likewise.
	(cp_gtk_textcomponent_connect_signals): Likewise.
	(cp_gtk_print_current_thread): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c: Remove
	file.  Move widget-specific functions into the widget-specific
	files.  Break main event handler into multiple widget-specific
	callbacks.
	* native/jni/gtk-peer/Makefile.am (libgtkpeer_la_SOURCES): Remove
	gnu_java_awt_peer_gtk_GtkEvents.c.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c: Add
	cp_gtk_ namespace prefix to external symbols.  Add widget-specific
	macros, variables and function declarations from
	gnu_java_awt_peer_gtk_GtkEvents.c.  Add widget-specific callbacks
	to replace main event handling loop.
	* native/jni/classpath/native_state.c: Likewise.
	* native/jni/classpath/native_state.h: Likewise.
	* native/jni/gtk-peer/gdkfont.h: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c: Likewise.
	* native/jni/gtk-peer/gthread-jni.c: Likewise.
	* native/jni/gtk-peer/gthread-jni.h: Likewise.

2005-07-14 Lillian Angel <langel@redhat.com>
	* javax/swing/plaf/basic/BasicTreeUI.java
	(paintControlIcons): Changed so root does not have control icon.

2005-07-14 Lillian Angel <langel@redhat.com>
	* javax/swing/plaf/basic/BasicTreeUI.java
	(installUI): Expanded root initially
	(paint): call function to paint controls
	(paintRecursive): added to indentation when painting to increase space
	(paintControlIcons): Implemented to recursively paint the control icons.
	* javax/swing/tree/DefaultTreeCellRenderer.java
	(getTreeCellRendererComponent): reset the font properly

2005-07-14  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java:
	Implemented VirtualMachine Command Set.

2005-07-14  Roman Kennke  <roman@kennke.org>

	* javax/swing/AbstractButton.java
	(getActionCommand): If both the actionCommand and text fields
	are null, then return "".

2005-07-14  Guilhem Lavaux  <guilhem@kaffe.org>

	* java/util/logging/Logger.java
	(resetLogger): Remove all handlers from the handler list.

	* java/util/logging/LogManager.java
	(reset): Call resetLogger() too.
	(readConfiguration): Call reset().

2005-07-14  Mark Wielaard  <mark@klomp.org>

	* examples/gnu/classpath/examples/awt/Demo.java
	(TestWindow.parent): Make package private.
	* gnu/java/net/protocol/http/HTTPURLConnection.java
	(proxyHostname, proxyPort, agent, keepAlive, maxConnections):
	Likewise.
	* java/text/SimpleDateFormat.java (field, size): Likewise.
	* java/util/jar/JarFile.java (readSignatures): Likewise.
	* java/util/logging/FileHandler.java (written): Likewise.
	* javax/swing/plaf/basic/BasicFileChooserUI.java: Make shared
	fields package private.
	(closeDialog): Make package private.
	(filterEntries): Likewise.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java
	(mouseInputListener): Likewise.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(getNextVisibleNode, getPreviousVisibleNode, selectPath): Likewise.
	* javax/swing/text/JTextComponent.java (caret, editable): Likewise.
	
2005-07-14  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/AbstractButton.java: Minor doc fixes.
	(getActionCommand): Access field directly.
	(setActionCommand): Dito.
	(fireActionPerformed): Copy ActionEvent instance instead
	of reusing it.

2005-07-13  Roman Kennke  <roman@kennke.org>

	* javax/swing/BoundedRangeModel.java:
	Added/Fixed interface API documentation.
	* javax/swing/ButtonModel.java:
	Added/Fixed interface API documentation.
	* javax/swing/CellEditor.java:
	Added/Fixed interface API documentation.
	* javax/swing/ComboBoxEditor.java:
	Added/Fixed interface API documentation.
	* javax/swing/ComboBoxModel.java:
	Added/Fixed interface API documentation.
	* javax/swing/Icon.java:
	Added/Fixed interface API documentation.
	* javax/swing/JComboBox.java
	(KeySelectionManager): Added/Fixed interface API documentation.
	* javax/swing/ListCellRenderer.java:
	Added/Fixed interface API documentation.
	* javax/swing/ListModel.java:
	Added/Fixed interface API documentation.
	* javax/swing/ListSelectionModel.java:
	Added/Fixed interface API documentation.
	* javax/swing/MenuElement.java:
	Added/Fixed interface API documentation.
	* javax/swing/MutableComboBoxModel.java:
	Added/Fixed interface API documentation.
	* javax/swing/Renderer.java:
	Added/Fixed interface API documentation.
	* javax/swing/RootPaneContainer.java:
	Added/Fixed interface API documentation.
	* javax/swing/ScrollPaneConstants.java:
	Added/Fixed interface API documentation.
	* javax/swing/Scrollable.java:
	Added/Fixed interface API documentation.
	* javax/swing/SingleSelectionModel.java:
	Added/Fixed interface API documentation.
	* javax/swing/SpinnerModel.java:
	Added/Fixed interface API documentation.
	* javax/swing/SwingConstants.java:
	Added/Fixed interface API documentation.
	* javax/swing/UIDefaults.java
	(ActiveValue): interface API documentation.
	(LazyValue): interface API documentation.
	* javax/swing/WindowConstants.java:
	Added/Fixed interface API documentation.
	* javax/swing/package.html: Fixed package description to be more
	a little bit more concise.

2005-07-13 Lillian Angel <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java: Changed font to
	match jdk.
	* javax/swing/plaf/basic/BasicTreeUI.java: took out unneeded
	import statement
	* javax/swing/plaf/metal/MetalLookAndFeel.java: Changed 
	defaults to match jdk.

2005-07-13 Lillian Angel <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java: Changed rowHeight
	to the right height. This should be fixed later to something more
	reasonable, as opposed to a 'magic' number.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(paintLeaf): added in code to paint icons properly
	(paintNonLeaf): same as above
	* javax/swing/plaf/metal/MetalLookAndFeel.java: Changed default
	icons to MetalIconFactory icons
	* javax/swing/tree/DefaultTreeCellRenderer.java
	(getTreeCellRendererComponent): Changed to paint icons separately from
	Cell.

2005-07-13  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicListUI.java:
	(KeyHandler.keyPressed): Implemented actions for the following key
	presses: "ctrl \\", "END", "shift END", "HOME, "shift HOME", "ctrl /", 
	"ctrl A", "ctrl SPACE", "KP_UP", "KP_DOWN", "shift KP_UP",
	"shift KP_DOWN".

2005-07-13  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/DefaultButtonModel.java:
	(changeState): Removed this helper method.
	(setArmed): Replaced call to changeState by code specific to setArmed.
	(setEnabled): Likewise, for setEnabled.
	(setPressed): Likewise, for setPressed.
	(setRollover): Likewise, for setRollover.
	(setSelected): Likewise, for setSelected.
	* javax/swing/JToggleButton.java:
	(ToggleButtonModel.setPressed): Replaced call to super.setPressed with
	Toggle-specific code.
	(ToggleButtonModel.setSelected): New method.  Fire an ActionEvent in
	addition to calling super.setSelected.

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

	* javax/accessibility/AccessibleComponent.java: minor API doc fixes,
	* javax/accessibility/AccessibleRelation.java: likewise,
	* javax/accessibility/AccessibleRelationSet.java: likewise,
	* javax/accessibility/AccessibleResourceBundle.java: likewise,
	* javax/accessibility/AccessibleRole.java: likewise,
	* javax/accessibility/AccessibleState.java: likewise,
	* javax/accessibility/AccessibleStateSet.java: likewise,
	* javax/accessibility/AccessibleText.java: likewise.

2005-07-13  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/AWTEvent.java:
	(toString): Generalized string generation.

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

	* javax/swing/LookAndFeel.java: added API docs all over,
	* javax/swing/plaf/metal/DefaultMetalTheme.java: likewise,
	* javax/swing/plaf/metal/MetalLookAndFeel.java: likewise,
	* javax/swing/plaf/metal/MetalTheme.java: likewise.

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

	* javax/swing/table/TableColumn.java: updated API docs,
	* javax/swing/table/TableColumnModel.java: likewise.

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

	* java/util/zip/Inflater.java: minor API doc fixes.

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

	* javax/swing/tree/DefaultMutableTreeNode.java: minor API doc fixes,
	* javax/swing/tree/DefaultTreeSelectionModel.java
	(addSelectionPath): modified parameter name to match doc comment,
	(addSelectionPaths): likewise,
	(removeSelectionPath): likewise,
	(removeSelectionPaths): likewise,
	(isPathSelected): likewise,
	plus other minor API doc fixes all over.
	* javax/swing/tree/MutableTreeNode.java: minor API doc fixes.

2005-07-13  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/AbstractButton.java: Minimal documentation fixes.
	(getActionCommand): Returns button's label when
	actionCommand is null.
	* javax/swing/JButton.java,
	javax/swing/JToggleButton.java: Removed explicit call to
	setActionCommand in constructors.

2005-07-13  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/JToggleButton.java:
	(paramString): Returns value of same method in superclass now.
	* javax/swing/JRadioButton.java:
	(paramString): Dito.
	* javax/swing/JButton.java:
	(paramString): Returns value of same method in superclass now,
	more verbose information added.
	* javax/swing/JCheckBox.java:
	(paramString): Dito.

2005-07-12  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/FieldCommandSet.java:
	Implemented the Field CommandSet.
	* gnu/classpath/jdwp/processor/InterFaceTypeCommandSet.java:
	Implemented the InterfaceType CommandSet.

2005-07-12  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(paintMenuItem): Replaced incorrect hilighting criteria.
	(paintText): Likewise.

2005-07-12 Lillian Angel <langel@redhat.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(mkTree): no need to make root visible, it is by default
	(mkTreeWorld): no need to make root visible, it is by default	 

2005-07-12 Lillian Angel <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(paintLeaf): fixed size of selection background to depend on 
	if icon exists
	(paintNonLeaf): fixed size of selection background to depend on
	if icon exists

2005-07-12  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/DefaultButtonModel.java:
	(changeState): If the button is a JToggleButton fire action events
	when it changes between (selected/unselected) not when it changes
	from pressed to unpressed.  Fire action events after firing
	ItemStateChanged events.

2005-07-12  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/PacketProcessor.java (run): Send
	shutdown to Jdwp instead of JdwpConnection.

2005-07-12 Lillian Angel <langel@redhat.com>
	* javax/swing/JTree.java:
	Formatting copyright
	* javax/swing/tree/DefaultTreeCellRenderer.java:
	Formatting copyright
	* javax/swing/tree/DefaultTreeSelectionModel.java:
	Formatting copyright

2005-07-12  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalTreeUI.java
	(createUI): Return a different instance of MetalTreeUI for each
	JTree. The TreeUI is stateful, so a shared instance would not
	work.

2005-07-12  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTreeUI.java
	I accidentally introduced revalidate calls for repaint calls.
	Reverted.

2005-07-12  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTreeUI.java
	Fixed formatting of the copyright notice.

2005-07-12  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installDefaults): Create border based on defaults in current
	LookAndFeel.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Included border for InternalFrame as
	LazyValue.

2005-07-12 Lillian Angel <langel@redhat.com>
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Took out icon defaults.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(installUI): set root to visible
	(getCellBounds): took out addition to width since there may not be
	an icon.
	* javax/swing/plaf/metal/MetalLookAndFeel.java:
	Added in icon defaults
	* lib/Makefile.am:
	Fixed so icons are installed for the JTree

2005-07-12  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java:
	New file.

2005-07-12  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	Removed ad-hoc icons. Replaced them by
	BasicIconFactory.createEmptyFrameIcon just like in the JDK.
	(PropertyChangeHandler.propertyChange): Handle change events
	for closable, iconifiable and maximizable here.
	(createButtons): Recognize if the JInternalFrame is closable,
	iconifiable or maximizable.

2005-07-12  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Corrected color values for BasicL&F buttons.

2005-07-12  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JMenu.java:
	(isSelected): Call super.isSelected() instead of super.isArmed().
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(paintMenuItem): Replaced incorrect selection criteria with call to
	isSelected().
	(paintText): Likewise.

2005-07-12  Lillian Angel  <langel@redhat.com>
	* examples/gnu/classpath/examples/swing/Demo.java
	(mkTreeWorld): Implemented
	(mkTabbedPane): added in tab for TreeWorld
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	Changed default color of text non selection background.
	* javax/swing/plaf/basic/BasicTreeUI.java
	Removed irrelevant comment
	* javax/swing/tree/DefaultTreeCellRenderer.java
	(getTreeCellRendererComponent): changed to use background's non 
	selection default color instead

2005-07-12  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(TitlePaneLayout.layoutContainer): Do not change any state of
	the components here (visible/enableActions). This is not the purpose of
	a layout manager and can lead to loops. Also correct the layout
	to be closer to the layout of the reference implementation.
	(TitlePaneLayout.preferredLayoutSize): Return (22, 18)
	here. That is what the JDK returns for the title bar.
	(PaneButton): Don't set the border to null.
	(createButtons): The buttons are opaque.
	(createButtonIcons): Don't create icons in the Basic L&F.

2005-07-12  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JApplet.java,
	* javax/swing/JDialog.java,
	* javax/swing/JFrame.java,
	* javax/swing/JWindow.java:
	(addImpl): Add to the frame itself if we are in the init
	stage, otherwise add to the contentPane.

2005-07-12  Mark Wielaard  <mark@klomp.org>

	* java/awt/MediaTracker.java (checkAll): Set and check status of
	MediaEntry with checkImage() if prepareImage() returns false.
	(statusAll): Likewise.
	(checkID): Likewise.
	(statusID): Likewise.

2005-07-12  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/JTextComponent.java
	(CaretBlinkTimer.actionPerformed): Check that caret != null.
	(CaretBlinkTimer.update): Likewise.

2005-07-12  Mark Wielaard  <mark@klomp.org>

	Reported by Simon Kitching <skitching@apache.org>
	* java/lang/String.java (toCharArray): Return value.clone() when
	count == value.length.

2005-07-12  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/parser/ParserDelegator.java (gnuParser.getDTD):
	Added comment about 'super'.

2005-07-11  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:
	Replace occurrences of malloc with g_malloc and free with g_free.

	* gnu/java/awt/peer/gtk/GtkChoicePeer.java (connectSignals): New method.
	* include/gnu_java_awt_peer_gtk_GtkChoicePeer.h: Regenerate.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c: Move
	gdk_threads_enter calls to start of method bodies.  Move
	gdk_threads_leave calls to end of method definitions bodies.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c: Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c: Likewise.

2005-07-12  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/parser/ParserDelegator.java (gnuParser.getDTD):
	Added explicit field reference.

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

	* java/lang/IllegalAccessException.java: fixed minor API doc errors,
	* java/lang/String.java: likewise.
	
2005-07-11  David Gilbert  <david.gilbert@object-refinery.com>

	* java/io/DataOutput.java: fixed minor API doc errors,
	* java/io/LineNumberInputStream.java: likewise.

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

	* javax/swing/plaf/metal/MetalIconFactory.java
	(HorizontalSliderThumbIcon): new inner class,
	(VerticalSliderThumbIcon): new inner class,
	(getHorizontalSliderThumbIcon): implemented,
	(getVerticalSliderThumbIcon): implemented.

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

	* gnu/java/awt/peer/gtk/GtkImage.java:
	(setImage): Set error flag on bad width, height or pixels.
	(checkImage): Return error flag.

2005-07-11  Roman Kennke  <roman@kennke.org>

	* javax/swing/JInternalFrame.java
	(addImpl): Add to the frame itself if we are in the init
	stage, otherwise add to the contentPane.

2005-07-11  Lillian Angel  <langel@redhat.com>
	* examples/gnu/classpath/examples/swing/Demo.java
	(mkTree): fixed so the JTree appears properly.

2005-07-11  Lillian Angel  <langel@redhat.com>
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	Changed the default row height for the tree.

2005-07-11  Roman Kennke  <roman@kennke.org>

	* examples/gnu/classpath/examples/swing/Demo.java
	(mkDesktopWorld): Made InternalFrames visible.

2005-07-11  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JFileChooser.java (getSelectedFiles): Return an one
	element array containing selectedFile if selectedFiles is null.

2005-07-11  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(getPreviousVisibleNode): Implemented
	(selectPath): helper method, implemented.
	(keyPressed): handles up/down/left/right keys
	(mouseClicked): made more efficent and implemented double 
	clicking for folders.
	* javax/swing/JTree.java
	(clearSelection): Lead selection path is set to null when 
	nothing is currently selected.

2005-07-11  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicMenuUI.java:
	(MouseHandler.popupVisible): new method.
	(MouseHandler.mouseEntered): Removed check for menu being armed to
	comply with reference implementation.  Calls popupVisible to check
	for menus with their popup menu visible.

2005-07-11  Mark Wielaard  <mark@klomp.org>

	* java/net/DatagramSocket.java (getImpl): Record cause of Exception.

2005-07-11  Mark Wielaard  <mark@klomp.org>

	* native/jni/java-net/gnu_java_net_PlainDatagramSocketImpl.c:
	Whenever an ExceptionOccurred just return to throw it, don't mask.
	* native/jni/java-net/javanet.c (_javanet_get_netaddr): Check for
	NULL addr.
	(_javanet_create): Explicitly close socket on failure.
	(_javanet_close): Save error message and retry closing when
	interrupted before throwing exception.
	(_javanet_connect): Keep retrying connect after system call
	interrupted. First construct exception before cleanup.
	(_javanet_bind): Save error string for exception.
	(_javanet_accept): Explicitly close socket on failure.
	(_javanet_recvfrom): Throw SocketTimeoutException when timed out.
	(_javanet_sendto): Send all data even when interrupted.
	(_javanet_set_option): Don't ignore error when setting SO_TIMEOUT.
	* native/target/generic/target_generic_network.h
	(TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_TIMEOUT): Use timeval for
	setsockopt.
	(TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_TIMEOUT): Likewise for
	getsockopt.

2005-07-11  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicMenuUI.java:
	(MouseInputHandler.mouseEntered): Added check: if a different menu in
	the menubar was selected, we don't select this one unless the old one
	had its popup menu showing.  This complies with the reference
	implementation.

2005-07-11  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JMenu.java:
	(setSelectedHelper): new method.
	(setSelected): Code moved to setSelectedHelper. Calls
	setSelectedHelper(selected,true,false) which doesn't expand the popup
	menu and works whether the menu is enabled or not.
	(menuSelectionChanged): Changed call to setSelected(changed) to 
	setSelectedHelper(changed,isEnabled(),true) which does expand the
	popup menu, but only if the menu is enabled.

2005-07-10  Mark Wielaard  <mark@klomp.org>

	* gnu/java/nio/channels/FileChannelImpl.java (force): New native
	method.
	(force(boolean)): Call new native force method.
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c
	(Java_gnu_java_nio_channels_FileChannelImpl_read__):
	Test for result != TARGET_NATIVE_OK as stop condition.
	(Java_gnu_java_nio_channels_FileChannelImpl_read___3BII):
	Check overflow and underflow. Only increase bytes_read when
	we didn't get an error.
	(Java_gnu_java_nio_channels_FileChannelImpl_write__I):
	Return when we encounter an error.
	(Java_gnu_java_nio_channels_FileChannelImpl_write___3BII):
	Only increase bytes_written when we didn't get an error.
	(Java_gnu_java_nio_channels_FileChannelImpl_force): New function.
	* include/gnu_java_nio_channels_FileChannelImpl.h: Regenerated.

2005-07-11  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(getCellBounds): added width of icon, so selection fits over 
	the cell properly.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	added in icons for the tree.
	* lib/Makefile.am
	added in handling for the icons being used.

2005-07-10  Roman Kennke  <roman@kennke.org>

	* javax/swing/JInternalFrame.java
	(pack): Set the JInternalFrame's own size here instead of
	layouting its children (this is triggered by setSize anyway).
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installDefaults): Set the correct border for InternalFrames.
	Set InternalFrames to invisible by default.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Set correct color values for
	InternalFrames.

2005-07-10  Casey Marshall  <csm@gnu.org>

	* configure.ac (AC_CHECK_HEADERS): add 'fcntl.h'.
	(AC_CHECK_FUNCS): add 'fcntl'.
	* native/jni/java-nio/gnu_java_nio_channels_FileChannel.c:
	Include <fcntl.h> if HAVE_FCNTL_H.
	(Java_gnu_java_nio_channels_FileChannelImpl_lock,
	Java_gnu_java_nio_channels_FileChannelImpl_unlock): implemented
	if HAVE_FCNTL.

2005-07-10  Casey Marshall  <csm@gnu.org>

	* gnu/classpath/debug/Component.java: new file.
	* gnu/classpath/debug/PreciseFilter.java: new file.
	* gnu/classpath/debug/SystemLogger.java: new file.
	* gnu/java/security/x509/X509Certificate.java
	(DEBUG, debug, debug): removed.
	(logger): new constant; use 'logger' with 'Component.X509'
	for debug messages throughout.
	(parse): always read the next DER value after reading the
	version-specific values.

2005-07-10  Dalibor Topic  <robilad@kaffe.org>

	* java/io/ObjectOutputStream.java: Updated copyright 
	information for 2005.

2005-07-10  Dalibor Topic  <robilad@kaffe.org>

	* java/io/ObjectOutputStream.java
	(getObjectField): Clarified error checking code, and
	improved exception messages.

2005-07-10  Dalibor Topic  <robilad@kaffe.org>

	* java/io/ObjectOutputStream.java (DEBUG): New constant.
	(ObjectOutputStream, writeObject) Use internal debug switch.

2005-07-10  Dalibor Topic  <robilad@kaffe.org>

	* java/io/ObjectInputStream.java (DEBUG): 
	New private static field.
	(ObjectInputStream, resolveClass) Use DEBUG.

2005-07-10  Dalibor Topic  <robilad@kaffe.org>

	* java/awt/GridBagLayout.java:
	(addLayoutComponent) Improved error message.

2005-07-10  Dalibor Topic  <robilad@kaffe.org>

	* gnu/java/text/FormatCharacterIterator.java:
	Removed unnecessary import of gnu.classpath.Configuration.
	(DEBUG) New private static field.
	(debug, dumpTable) Use DEBUG.

2005-07-09  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/Bindings.java,
	gnu/xml/transform/CallTemplateNode.java,
	gnu/xml/transform/CopyOfNode.java,
	gnu/xml/transform/CurrentFunction.java,
	gnu/xml/transform/DocumentFunction.java,
	gnu/xml/transform/ElementAvailableFunction.java,
	gnu/xml/transform/ElementNode.java,
	gnu/xml/transform/ForEachNode.java,
	gnu/xml/transform/FormatNumberFunction.java,
	gnu/xml/transform/FunctionAvailableFunction.java,
	gnu/xml/transform/GenerateIdFunction.java,
	gnu/xml/transform/IfNode.java,
	gnu/xml/transform/KeyFunction.java,
	gnu/xml/transform/ParameterNode.java,
	gnu/xml/transform/SortKey.java,
	gnu/xml/transform/StreamSerializer.java,
	gnu/xml/transform/Stylesheet.java,
	gnu/xml/transform/SystemPropertyFunction.java,
	gnu/xml/transform/TemplateNode.java,
	gnu/xml/transform/TransformerImpl.java,
	gnu/xml/transform/UnparsedEntityUriFunction.java,
	gnu/xml/transform/ValueOfNode.java,
	gnu/xml/transform/WhenNode.java,
	gnu/xml/transform/WithParam.java,
	gnu/xml/xpath/AndExpr.java,
	gnu/xml/xpath/ArithmeticExpr.java,
	gnu/xml/xpath/BooleanFunction.java,
	gnu/xml/xpath/CeilingFunction.java,
	gnu/xml/xpath/ConcatFunction.java,
	gnu/xml/xpath/Constant.java,
	gnu/xml/xpath/ContainsFunction.java,
	gnu/xml/xpath/CountFunction.java,
	gnu/xml/xpath/EqualityExpr.java,
	gnu/xml/xpath/Expr.java,
	gnu/xml/xpath/FalseFunction.java,
	gnu/xml/xpath/FloorFunction.java,
	gnu/xml/xpath/FunctionCall.java,
	gnu/xml/xpath/IdFunction.java,
	gnu/xml/xpath/LangFunction.java,
	gnu/xml/xpath/LastFunction.java,
	gnu/xml/xpath/LocalNameFunction.java,
	gnu/xml/xpath/NameFunction.java,
	gnu/xml/xpath/NameTest.java,
	gnu/xml/xpath/NamespaceTest.java,
	gnu/xml/xpath/NamespaceUriFunction.java,
	gnu/xml/xpath/NegativeExpr.java,
	gnu/xml/xpath/NodeTypeTest.java,
	gnu/xml/xpath/NormalizeSpaceFunction.java,
	gnu/xml/xpath/NotFunction.java,
	gnu/xml/xpath/NumberFunction.java,
	gnu/xml/xpath/OrExpr.java,
	gnu/xml/xpath/ParenthesizedExpr.java,
	gnu/xml/xpath/Pattern.java,
	gnu/xml/xpath/PositionFunction.java,
	gnu/xml/xpath/Predicate.java,
	gnu/xml/xpath/RelationalExpr.java,
	gnu/xml/xpath/Root.java,
	gnu/xml/xpath/RoundFunction.java,
	gnu/xml/xpath/Selector.java,
	gnu/xml/xpath/StartsWithFunction.java,
	gnu/xml/xpath/Steps.java,
	gnu/xml/xpath/StringFunction.java,
	gnu/xml/xpath/StringLengthFunction.java,
	gnu/xml/xpath/SubstringAfterFunction.java,
	gnu/xml/xpath/SubstringBeforeFunction.java,
	gnu/xml/xpath/SubstringFunction.java,
	gnu/xml/xpath/SumFunction.java,
	gnu/xml/xpath/Test.java,
	gnu/xml/xpath/TranslateFunction.java,
	gnu/xml/xpath/TrueFunction.java,
	gnu/xml/xpath/UnionExpr.java,
	gnu/xml/xpath/VariableReference.java,
	gnu/xml/xpath/XPathParser.java,
	gnu/xml/xpath/XPathParser.y,
	javax/xml/namespace/QName.java: Corrections to handling of XSL
	variables and minor conformance updates.

2005-07-09  Archie Cobbs  <archie@dellroad.org>

	* java/net/URLClassLoader.java: disallow directories as resources

2005-07-09  Casey Marshall  <csm@gnu.org>

	* java/util/logging/FileHandler.java
	(written): new field.
	(logFiles): new field.
	(<init>): initialize the OutputStream last.
	(createFileStream): made non-static; append '.%g' to 'pattern'
	if not included; open existing files if 'append' is set; return
	byte-counting stream; use 'has', not 'String.indexOf'.
	(publish): rotate the file if we go beyond the byte limit; flush
	the stream after publishing each record.
	(rotate): new method.
	(has): new method.
	(ostr): new member class.

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

	* lib/split-for-gcj.sh: Make list file depend on source file.
	* lib/Makefile.gcj (%.stamp): Set target name to stamp file.

2005-07-08  Aaron Luchko  <aluchko@redhat.com>

	* doc/hacking.texinfo: Fixed broken links to GNU Coding
	Standards to point to http://www.gnu.org/prep/standards/

2005-07-08  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicFileChooserUI.java:
	(ApproveSelectionAction.actionPerformed): Allow directories to be
	selected unless selection mode is FILES_ONLY.

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

	* javax/swing/plaf/basic/BasicButtonUI.java: minor API doc fixes,
	* javax/swing/plaf/basic/BasicComboBoxEditor.java: likewise,
	* javax/swing/plaf/basic/BasicGraphicsUtils.java: likewise,
	* javax/swing/plaf/basic/BasicLabelUI.java: likewise,
	* javax/swing/plaf/basic/BasicListUI.java: likewise,
	* javax/swing/plaf/basic/BasicLookAndFeel.java: likewise,
	* javax/swing/plaf/basic/BasicMenuBarUI.java: likewise,
	* javax/swing/plaf/basic/BasicMenuUI.java: likewise,
	* javax/swing/plaf/basic/BasicPopupMenuUI.java: likewise,
	* javax/swing/plaf/basic/BasicScrollBarUI.java: likewise,
	* javax/swing/plaf/basic/BasicSpinnerUI.java: likewise,
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java: likewise,
	* javax/swing/plaf/basic/BasicToolTipUI.java: likewise.
	
2005-07-08  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/filechooser/FileSystemView.java:
	(getFiles): Added check for non-existent directory, in which case
	default to home directory.

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

	* javax/swing/plaf/metal/MetalIconFactory.java: new file, implements 
	core tree icons.
	
2005-07-08  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(getDefaults): Call theme.addCustomEntriesToTable() only once
	during initialization of the defaults table.

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

	* lib/Makefile.am (FOUND_GCJ): Add top_builddir to compile_classpath.
	(EXTRA_DIST): Add Makefile.gcj and split-for-gcj.sh
	(clean-local): Remove lists and Makefile.deps.

2005-07-08  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTableUI.java
	(installDefaults): Initialize cell borders.
	(paint): Set correct cell border before painting.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefault): Corrected color value for the
	Table.focusCellHighlightBorder UIResource.

2005-07-07  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/ObjectStreamClass.java
	(findAccessibleMethod): Added code to make method accessible.

2005-07-07  Robert Schuster <robertschuster@fsfe.org>

	* javax/swing/JMenu.java
	(setSelected): Added isEnabled() to expression.

2005-07-07  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/util/Signature.java
	(computeFieldSignature): New Method.

2005-07-07  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTable.java:
	(clearSelection): Added clearing of columns as well as rows.

2005-07-07  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicTableUI.java:
	(MouseInputHandler.mousePressed): Added check for control being pressed
	and mouse clicked on already selected cell.  In this case, deselect
	the cell.

2005-07-07  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java: New
	file.

2005-07-07  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/DefaultListSelectionModel.java:
	(addSelectionInterval): Added check for leadSelectionIndex being
	unselected (ie - after a remove operation).
	
2005-07-07  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(getRowCount): Implemented
	(getPreferredSize): Implemented
	(getMinimumSize): Implemented
	(getMaximumSize): Implemented
	(getCellBounds): checked if parameter is null
	(paintRecursive): added in a variable to keep track of the 
	length of vertical line to be drawn. Now paints tree nicely.

2005-07-07  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	Formatted code so else's are on new lines

2005-07-07  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	Formatted code to get rid of TABs        
	(getPathForRow): took out redundant code.
	(getNextVisibleNode): took out redundant code.

2005-07-07  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTextUI.java
	(DocumentHandler.insertUpdate): Update caret position when document
	changes.
	(DocumentHandler.removeUpdate): Update caret position when document
	changes.

2005-07-07  Roman Kennke  <roman@kennke.org>

	* gnu/java/awt/FocusManager.java: New class. Provides a concrete
	implementation of javax.swing.FocusManager so that we can support
	the old-style FocusManager in Swing and AWT.
	* gnu/classpath/SystemProperties.java: Add new system property
	gnu.java.awt.FocusManager that sets the class that should be used
	as the default FocusManager in AWT and Swing.
	* java/awt/KeyboardFocusManager.java
	(setCurrentKeyboardFocusManager): Use createFocusManager instead
	of creating the instance directly.
	(createFocusManager): New method. Instantiate a KeyboardFocusManager
	that is set by the system property gnu.java.awt.FocusManager.
	* javax/swing.FocusManager.java
	(constructor): Call super() here.
	(getCurrentManager): Return the current AWT KeyboardFocusManager
	here.
	(setCurrentManager): Set the current AWT KeyboardFocusManager
	here.
	(processKeyEvent): Removed method. This is no longer in the
	API.
	(focusNextComponent): Removed method. This is no longer in the
	API.
	(focusPreviousComponent): Removed method. This is no longer in the
	API.

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

	* javax/swing/JProgressBar.java
	(JProgressBar(int, int, int)): fix order of parameters,
	(JProgressBar()): reorder arguments in call to other constructor,
	(JProgressBar(int): likewise,
	(JProgressBar(int, int): likewise.
	
2005-07-07  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(MouseInputHandler.mouseClicked): Access static TreeSelectionModel
	fields via the class and not via an instance.

2005-07-07  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTreeUI.java:
	Reformatted source file to better match our coding standards.

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

	* lib/Makefile.gcj: New file.
	* lib/Makefile.am (JAVAC): Changed for new gcj build approach.
	* lib/gen-classlist.sh.in: Don't split list for gcj.
	* lib/split-for-gcj.sh: New file.

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

	* javax/swing/plaf/basic/BasicBorders.java: fixed API docs all over.
	
2005-07-06  Chris Burdess  <dog@gnu.org>

	* gnu/java/net/protocol/http/HTTPConnection.java,
	gnu/java/net/protocol/http/HTTPURLConnection.java:
	Fix bug with multiple threads and persistent connections.

2005-07-06  Chris Burdess  <dog@gnu.org>

	* gnu/xml/transform/StreamSerializer.java,
	gnu/xml/xpath/EqualityExpr.java: XSLT conformance fixes.

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

	* javax/swing/plaf/basic/BasicTreeUI.java
	(getPathForRow): took out redundant code.

2005-07-06  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/plaf/basic/BasicTreeUI.java
	(getNextVisibleNode): Implemented
	(getPathForRow): Fixed so the next node retrieved is visible.

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

	* javax/swing/JTree.java
	Initialized the Hashtable.
	(addSelectionPath): removed redundant code.
	(doExpandParents): added in line so that state is 
	changed for current path. Changed while loop to if 
	statement, an infinite loop was occurring.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(getPathForRow): Implemented to work with visibility.
	(isLeaf): Implemented
	(mouseClicked): add in check for expand/collapse. 
	Selection for DISCONTIGUOUS tree selection is 
	implemented.
	(treeExpanded): called repaint, so the tree updates 
	visually when something is expanded.
	(treeCollapse): Similar to treeExpanded.
	(paintLeaf): changed to paint leaf only when visible.
	(paintNonLeaf): paints only when visible.
	(paintRecursive): lines for tree are only painted when 
	needed. checked for visibility of current object and 
	parent.
	* javax/swing/tree/DefaultTreeCellRenderer.java
	(getTreeCellRendererComponent): setting icons when 
	expanded.
	* javax/swing/tree/DefaultTreeSelectionModel.java
	(clearSelection): set leadPath to null because selection
	should be completely reset.

2005-07-06  Roman Kennke  <roman@kennke.org>

	* javax/swing/AbstractButton.java
	(setContentAreaFilled): Set the opaque property here.

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

	* java/awt/AWTKeyStroke.java: fixed API doc links,
	* java/awt/BufferCapabilities.java: likewise,
	* java/awt/ColorPaintContext.java: likewise,
	* java/awt/Component.java: likewise,
	* java/awt/Container.java: likewise,
	* java/awt/EventQueue.java: likewise,
	* java/awt/GraphicsDevice.java: likewise,
	* java/awt/Image.java: likewise,
	* java/awt/KeyboardFocusManager.java: likewise,
	* java/awt/MediaTracker.java: likewise,
	* java/awt/PrintJob.java: likewise,
	* java/awt/Robot.java: likewise.
	
2005-07-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTable.java
	(setAutoCreateColumnsFromModel): when the flag changes from false to
	true, call createDefaultColumnsFromModel().
	
2005-07-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTable.java 
	(getColumnName): return name from column in data model. 
	
2005-07-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/DefaultKeyboardFocusManager.java (dispatchEvent): Check
	parent and target before casting target to Window.

2005-07-05  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/StringReferenceCommandSet.java:
	New file.

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

	* javax/swing/AbstractAction.java: updated API docs,
	* javax/swing/Action.java: likewise.
	
2005-07-05  David Gilbert  <david.gilbert@object-refinery.com>

	* java/applet/Applet.java: added import to fix API doc link.

2005-07-05  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/StyleContext.java
	(defaultStyle): New field.
	(constructor): Add defaultStyle to the styleTable.
	(DEFAULT_STYLE, getStyle, getStyleNames): Documented. 

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

	* javax/swing/JTable.java:
	(addColumn): retrieve correct column name,
	(convertColumnIndexToModel): remove check for > columnCount and let
	exception happen,
	(getColumnName): retrieve name from TableColumn,
	(isCellEditable): implemented,
	(createDefaultColumnsFromModel): implemented.
	* javax/swing/table/DefaultTableColumnModel.java:
	(addColumn): throw exception for null argument, set correct column 
	index in TableColumnModelEvent,
	(removeColumn): use correct column index,
	(moveColumn): move the column, don't swap it. Also added argument
	checks,
	(getColumnIndex): reimplemented.
	
2005-07-05  Sven de Marothy  <sven@physto.se>

	* javax/swing/JLabel.java:
	(JLabel): Revert previous change for JLabel(Icon) constructor.

2005-07-05  Roman Kennke  <roman@kennke.org>

	* javax/swing/JScrollPane.java:
	Added API documentation for class and constructors.

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

	* java/util/BitSet.java: fixed minor problems in API docs,
	* java/util/Calendar.java: likewise,
	* java/util/Collections.java: likewise,
	* java/util/Date.java: likewise,
	* java/util/Hashtable.java: likewise,
	* java/util/LinkedList.java: likewise,
	* java/util/Properties.java: likewise,
	* java/util/PropertyResourceBundle.java: likewise,
	* java/util/ResourceBundle.java: likewise,
	* java/util/SimpleTimeZone.java: likewise,
	* java/util/TreeMap.java: likewise.
	
2005-07-05  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/JTextComponent.java (read, write): New methods. 

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

	* javax/swing/JTable.java: fixed API doc links all over.

2005-07-05  Mark Wielaard  <mark@klomp.org>

	* include/Makefile.am (GTKPEER_H_FILES): Removed GtkTextComponentPeer.
	* include/gnu_java_awt_peer_gtk_GtkTextComponentPeer.h: Removed.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(classpath_gtk_component_connect_nonfocus_signals): Mark argument
	unused.
	(classpath_gtk_component_connect_signals): Likewise.

2005-07-04  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (postTextEvent): New
	method.
	* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java: Add
	TextComponentPeer method declarations.
	* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkTextComponentPeer.java: Remove file.
	* include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: Regenerate.
	* include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: Likewise.
	* native/jni/gtk-peer/Makefile.am (libgtkpeer_la_SOURCES): Remove
	gnu_java_awt_peer_gtk_GtkTextComponentPeer.c.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(classpath_gtk_component_connect_nonfocus_signals): New function.
	(classpath_gtk_component_connect_signals): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c: Add
	method implementations from
	gnu_java_awt_peer_gtk_GtkTextComponentPeer.c.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c:
	Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c:
	Remove file.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
	(gtkInit): Get postTextEventID from GtkComponentPeer, not
	GtkTextComponentPeer.
	* native/jni/gtk-peer/gtkpeer.h (classpath_gtk_textcomponent_init_jni): Declare.
	(classpath_gtk_component_connect_signals): Likewise.
	(classpath_gtk_component_connect_nonfocus_signals): Likewise.
	(classpath_gtk_textcomponent_connect_signals): Likewise.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c:
	Rename gnu_java_awt_peer_gtk_GtkScrollbarPeer.c.
	* native/jni/gtk-peer/Makefile.am (libgtkpeer_la_SOURCES): Rename
	gnu_java_awt_peer_gtk_GtkScrollBarPeer.c
	gnu_java_awt_peer_gtk_GtkScrollbarPeer.c.

	* gnu/java/awt/ClasspathToolkit.java (createEmbeddedWindow): New method.
	* gnu/java/awt/EmbeddedWindow.java (addNotify): Assume we're using
	ClasspathToolkit.
	* gnu/java/awt/EmbeddedWindowSupport.java: Remove file.
	* gnu/java/awt/peer/gtk/GtkToolkit.java: Remove references to
	EmbeddedWindowSupport.

2005-07-04  Sven de Marothy  <sven@physto.se>

	* javax/swing/JComponent.java:
	(setEnabled): Fix typo in event string.
	
2005-07-04  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTabbedPane.java
	(Page.setDisplayedMnemonicIndex): Added check for index being -1
	before calling title.charAt(index).  Eliminates StringIndexOutOfBounds
	error.

2005-07-04  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java (initialized):
	Remove unused field.
	(needsClose): New private field.
	(finish): Take needsClose boolean argument.
	(finalize): Call finish with needsClose.
	(produce): Set needsClose.
	* include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: Regenerated.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_finish): Only close
	when needed.
	
2005-07-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/ParameterModeHolder.java: New constructor. 

2005-07-04  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/processor/CommandSet.java: New file.
	* gnu/classpath/jdwp/processor/PacketProcessor.java: Use
	CommandSets to handle JdwpCommandPackets.
	* gnu/classpath/jdwp/transport/JdwpReplyPacket.java: New 
	Constructor.

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

	* javax/swing/JTree.java
	(addSelectionPath): if mouse click somewhere other than 
	a row, all selections are removed
	* javax/swing/plaf/basic/BasicTreeUI.java
	(mouseClicked): if mouse clicked on a row, all other 
	selections are cleared. DISCONTIGUOUS mode implemented.
	(getCellBounds): Implemented
	(paintLeaf): paints with cell bounds
	(paintNonLeaf): paints with cell bounds
	* javax/swing/tree/DefaultTreeCellRenderer.java:
	(DefaultTreeCellRendererComponent): changed color of 
	selected row
	(getFont): Implemented
	* javax/swing/tree/DefaultTreeSelectionModel.java:
	(addSelectionPaths): check if parameter is null
	(removeSelectionPaths): check if parameter is null

2005-07-04  Ziga Mahkovec  <ziga.mahkovec@klika.si>

	* configure.ac: Remove libart dependency.
	* scripts/classpath.spec.in: Likewise.
	* INSTALL: Remove references to libart.
	* doc/hacking.texinfo: Likewise.
	* doc/www.gnu.org/faq/faq.wml: Likewise.

2005-07-03  Daniel Bonniot  <bonniot@users.sf.net>

	* java/io/ObjectStreamClass.java (inSamePackage): New private method.
	(findAccessibleMethod): Likewise.
	(cacheMethods): Lookup readResolve and writeReplace using the new
	findAccessibleMethod().

2005-07-03  Archie Cobbs  <archie@dellroad.org>

	* m4/acinclude.m4: fix broken expr(1) syntax

2005-07-03  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* org/omg/PortableServer/ServantLocatorPackage/package.html,
	org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java:
	New files. 

2005-07-02  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* gnu/CORBA/_PolicyImplBase.java: Ihnerit from Policy.
	(ids): Made final non static, new constructor.
	(type, value, policyCode): New fields.
	(_invoke): Handle "value" operation.
	(getValue, getCode, destroy, toString, copy, equals, hashCode):
	New methods.
	* org/omg/CORBA/PolicyHelper.java (narrow): Removed check for
	repository for repository id.

2005-07-02  Audrius Meskauskas, <AudriusA@Bioinformatics.org> 

	* org/omg/PortableServer/IdAssignmentPolicyValue.java,
	org/omg/PortableServer/IdUniquenessPolicyValue.java,
	org/omg/PortableServer/ImplicitActivationPolicyValue.java,
	org/omg/PortableServer/LifespanPolicyValue.java,
	org/omg/PortableServer/ServantRetentionPolicyValue.java,
	org/omg/PortableServer/RequestProcessingPolicyValue.java: 
	Documentation update.

2005-07-02  Mark Wielaard  <mark@klomp.org>

	* all files: Update for new FSF address.

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

	* javax/swing/undo/UndoManager.java: fixed API doc links,
	* javax/swing/undo/UndoableEditSupport.java: likewise.
	
2005-07-01  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/RenderingHints.java: API doc updates.

2005-07-01  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/announce/20050630.wml: New file.
	* doc/www.gnu.org/newsitems.txt: Add announcement.
	* doc/www.gnu.org/downloads/downloads.wml: Add 0.16 download.

2005-07-01  Roman Kennke  <roman@kennke.org>

	* gnu/classpath/ObjectPool.java:
	Removed this class. Some simple benchmarks show that it
	brings not much gain and actually decreases performance
	speed-wise.

2005-07-01  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomNode.java,
	gnu/xml/dom/html2/DomHTMLCollection.java,
	gnu/xml/dom/html2/DomHTMLElement.java,
	gnu/xml/dom/html2/DomHTMLTableElement.java,
	gnu/xml/dom/html2/DomHTMLTableRowElement.java,
	gnu/xml/dom/html2/DomHTMLTableSectionElement.java,
	gnu/xml/transform/NodeNumberNode.java,
	gnu/xml/transform/Stylesheet.java,
	gnu/xml/transform/TemplateNode.java,
	gnu/xml/xpath/NameTest.java,
	gnu/xml/xpath/NamespaceTest.java: Corrections for cases where
	elements/attributes might have been created in non-namespace-aware
	mode.
	* gnu/xml/transform/StreamSerializer.java: Only apply HTML attribute
	reduction when attribute is defined as a boolean in the HTML DTD.
	* gnu/xml/transform/TransformerImpl.java: Add support for output
	indenting and cdata-section-elements output instruction.

2005-07-01  Roman Kennke  <roman@kennke.org>

	* gnu/classpath/ObjectPool.java:
	Introduced flag for turning on/off caching.
	(getInstance): Synchronized access to this method.
	(borrowObject): Synchronized access to the pool.
	Added some benchmarking statements.
	(returnObject): Synchronized access to the pool.
	Added some benchmarking statements.
	(createObject): Synchronized access to the pool.
	Added some benchmarking statements.
	(printStats): New method. Prints out some stats about the pool usage.

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

	* javax/swing/table/JTableHeader.java: added some API docs,
	* javax/swing/table/TableModel.java: fixed link in API docs,
	* javax/swing/table/package.html: added package description.
	
2005-07-01  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/ListUI.java 
	(locationToIndex): match parameter name to API docs.
	
2005-07-01  Roman Kennke  <roman@kennke.org>

	* gnu/classpath/ObjectPool.java:
	Made singleton instance static. Otherwise this class would not
	be of much use.
	(getInstance): Made this method static.

2005-07-01  Roman Kennke  <roman@kennke.org>

	* gnu/classpath/ObjectPool.java:
	New class. This can and should be used to cache throwaway objects
	like Rectangles, Points and Dimensions. Of course the use of
	this class is not limited to this cases.

2005-07-01  Roman Kennke  <roman@kennke.org>

	* javax/swing/JLayeredPane.java
	(getLayer): Also search through the components parents to find
	the one that is actually directly contained in the JLayeredPane.

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

	* java/awt/image/DataBuffer.java: fixed API doc typos;
	* java/awt/image/DataBufferByte.java: added description to API docs;
	* java/awt/image/DataBufferDouble.java: added description to API docs,
	(setElem(int, int)): removed unnecessary cast;
	(setElem(int, int, int)): likewise.
	* java/awt/image/DataBufferFloat.java: added description to API docs;
	(setElem(int, int)): removed unnecessary cast;
	(setElem(int, int, int)): likewise.
	* java/awt/image/DataBufferInt.java: added description to API docs;
	* java/awt/image/DataBufferShort.java: likewise;
	* java/awt/image/DataBufferUShort.java: likewise.
		
2005-06-30  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicMenuBarUI.java
	(installDefaults): Made JMenuBar opaque.
	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(installDefaults): Made JOptionPane opaque.
	* javax/swing/plaf/basic/BasicPanelUI.java
	(installUI): Also call installDefaults().
	(installDefaults): New method. Made JPanel opaque.
	* javax/swing/plaf/basic/BasicRootPaneUI.java
	(installDefaults): Made JRootPane opaque.
	* javax/swing/plaf/basic/BasicSeparatorUI.java
	(installDefaults): Made JSeparator opaque.
	* javax/swing/plaf/basic/BasicSpinnerUI.java
	(installDefaults): Made JSpinner opaque.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(installDefaults): Made JSplitPane opaque.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(installDefaults): Made JSplitPane opaque.

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

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(isNativeLookAndFeel): fixed return value,
	* javax/swing/plaf/metal/MetalTheme.java
	(getMenuDisabledForeground): fixed return value.
	
2005-07-01  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/TableModelEvent.java:
	(TableModelEvent(TableModel): set lastRowIndex to Integer.MAX_VALUE.
	
2005-06-30  Aaron Luchko  <aluchko@redhat.com>

	* gnu/classpath/jdwp/util/JdwpString.java: New file.

2005-06-30  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomDocument.java: Add support for adopting nodes from
	other implementations.
	* gnu/xml/dom/DomNamedNodeMap.java: Fix for nodes created outside a
	namespace context.
	* 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/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/NodeNumberNode.java,
	gnu/xml/transform/NumberNode.java,
	gnu/xml/transform/OtherwiseNode.java,
	gnu/xml/transform/ParameterNode.java,
	gnu/xml/transform/ProcessingInstructionNode.java,
	gnu/xml/transform/StreamSerializer.java,
	gnu/xml/transform/Stylesheet.java,
	gnu/xml/transform/Template.java,
	gnu/xml/transform/TemplateNode.java,
	gnu/xml/transform/TextNode.java,
	gnu/xml/transform/ValueOfNode.java,
	gnu/xml/transform/WhenNode.java: Parsing and serialisation design
	changes to minimise the number of virtual machine stack frames used.

2005-06-30  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTable.java:
	(initializeLocalVars): Set dragEnabled to true by default to comply
	with reference implementations.
	(getSelectionModel): Don't return null if row selection is disabled,
	still return selectionModel.  This complies with reference
	implemenations.
	(changeSelection): New method.
	* javax/swing/plaf/basic/BasicTableUI.java: Added a MouseMotionListener
	so that MouseDragged events register properly.
	(MouseInputHandler.updateSelection): Added boolean parameter for
	Control being pressed and added functionality for this (multiple
	selection).

2005-06-30  Roman Kennke  <roman@kennke.org>

	* javax/swing/JComponent.java:
	Removed all calls to repaint() and revalidate(). These are likely
	causing infinite loops with the RepaintManager.

2005-06-30  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicListUI.java
	(damageLayout): Removed call to revalidate(). This caused an
	infinite loop with the RepaintManager and is not necessary.

2005-06-30  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicScrollBarUI.java:
	Removed all calls to layoutContainer() in this file.
	(installDefaults): Set this as LayoutManager for the JScrollBar.
	This way the layoutContainer() method is called when it should be.

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

	* configure.ac: Set version to 0.16+cvs.

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

	* NEWS: Add 0.16 release date and new features.
	* configure.ac: Set version to 0.16.

2005-06-30  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/DefaultListSelectionModel.java:
	(addSelectionInterval): Don't clear the selection state if JList's
	selection mode is SINGLE_SELECTION_INTERVAL and index0 and index1
	correspond to an interval adjacent to an already selected interval.
	(removeSelectionInterval): Added check for a middle interval being
	removed when selection mode is SINGLE_SELECTION_INTERVAL.
	* javax/swing/plaf/basic/BasicListUI.java:
	(KeyHandler.keyPressed): Added check for scrolling past bottom of list.
	(MouseHandler.mouseClicked): Added check for shift key being
	pressed.

2005-06-30  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/transport/JdwpPacket.java (write): New method.
	(myWrite): New abstract method.
	(toBytes): Remove.
	(myToBytes): Remove.
	* gnu/classpath/jdwp/transport/JdwpReplyPacket.java (myWrite): New
	method.
	* gnu/classpath/jdwp/transport/JdwpCommandPacket.java (myWrite): New
	method.
	* gnu/classpath/jdwp/transport/JdwpConnection.java (sendPacket): Use
	JdwpPacket.write instead of JdwpPacket.toBytes.

2005-06-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/locale/LocaleHelper.java:
	Fixed to use new property files.

2005-06-30  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/transport/JdwpConnection.java (sendEvent): New
	method.
	(_bytes): New member.
	(_doStream): New member.
	(JdwpConnection): Initialize new members.

2005-06-30  Lillian Angel  <langel@redhat.com>
	* javax/swing/JTree.java:
        (valueChanged): repaint everytime something is selected in the 
        tree.
        (setSelectionModel): set TreeSelectionListeners
        (isRowSelected): isRowSelected uses isPathSelected
        * javax/swing/plaf/basic/BasicTreeUI.java
        (setSelectionModel): works with JTree to set the selection model
        (getPathForRow): took out unneeded lines
        (mouseClicked): switched if statements, should check if already 
        selected first.
        (paintLeaf): checked selection of Leaf and paint selected 
        differently than not selected cells
        (paintNonLeaf): checked selection of nonLeaf and paint selected 
        differently than not selected cells
        (paintRecursive): updated to work with other paint functions
        * javax/swing/tree/DefaultTreeSelectionModel.java:
        (addSelectionPath): fire change, so selection is registered to 
        listener
        (addSelectionPaths): fire change, so selection is registered to 
        listener
        (removeSelectionPath): fire change, so selection is registered 
        to listener
        (removeSelectionPaths): fire change, so selection is registered 
        to listener
        (isPathSelected): took out unneeded lines
        (getTreeSelectionListeners): made more logical to call 
        getListeners
        (fireValueChanged): fixed loop to be more logical

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

	* javax/swing/JEditorPane.java (getEditorKit): Call
	createDefaultEditorKit() and setEditorKit() when editorKit == null.
	* javax/swing/JTextPane.java: Call super for all methods where
	possible.

2005-06-29  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* INSTALL: Drop GTK requirement to 2.4.
	* NEWS: Likewise.
	* configure.ac: Likewise.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c:
	Re-add GTK 2.4 support.

2005-06-29  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* native/fdlibm/Makefile.am: Added s_finite.c
	* native/fdlibm/s_finite.c: Added

2005-06-29  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/DefaultListSelectionModel.java:
	(addSelectionInterval):
	(clearSelection):
	(removeSelectionInterval):
	(setLeadSelectionIndex):
	(setSelectionInterval): Check that the selection model actually
	changes before calling fireValueChanged.  

2005-06-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
        
        NEWS: Corrected note about CORBA status in 1.6 release.
	
2005-06-29  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicLabelUI.java
	(installDefaults): Do not set the border here.
	(uninstallDefaults): Do not unset the border here.

2005-06-29  Roman Kennke  <roman@kennke.org>

	* javax/swing/JComponent.java
	(getComponentGraphics): Do not replicate the Graphics at this
	point. This is moved into paintComponent.
	(paintComponent): Replicate the Graphics object before going into
	the tree. This makes sure that the state is preserved and is
	what is specified in the JDKs API docs.

2005-06-29  Lillian Angel  <langel@redhat.com>

        * javax/swing/plaf/basic/BasicTreeUI.java:
        (BasicTreeUI): Initalization of listeners and instances.
        (createUI): Implementation
        (getHashColor): Implementation
        (setLeftChildIndent): Implementation
        (getLeftChildIndent): Implementation
        (setRightChildIndent): Implementation
        (getRightChildIndent): Implementation
        (setExpandedIcon): Implementation
        (getExpandedIcon): Implementation
        (setCollapsedIcon): Implementation
        (getCollapsedIcon): Implementation
        (setLargeModel): Implementation
        (isLargeModel): Implementation
        (setRowHeight): Implementation
        (getRowHeight): Implementation
        (setCellRenderer): Implementation
        (getCellRenderer): Implementation
        (setModel): Implementation
        (getModel): Implementation
        (setRootVisible): Implementation
        (isRootVisible): Implementation
        (setShowsRootHandles): Implementation
        (getShowsRootHandles): Implementation
        (setCellEditor): Implementation
        (getCellEditor): Implementation
        (setEditable): Implementation
        (isEditable): Implementation
        (setSelectionModel): Implementation
        (getSelectionModel): Implementation
        (getPathForRow): Implementation
        (getRowForPath): Implementation
        (getRowCount): Implementation
        (getClosestPathForLocation): Implementation
        (createPropertyChangeListener): Implementation
        (createMouseListener): Implementation
        (createFocusListener): Implementation
        (createKeyListener): Implementation
        (createSelectionModelPropertyChangeListener): Implementation
        (createTreeSelectionListener): Implementation
        (createCellEditorListener): Implementation
        (createComponentListener): Implementation
        (createTreeExpansionListener): Implementation
        (createLayoutCache): Implementation
        (createCellRendererPane): Implementation
        (createDefaultCellEditor): Implementation
        (createDefaultCellRenderer): Implementation
        (createTreeModelListener): Implementation
        (uninstallListeners): Implementation
        (getLastChildPath): Implementation
        (configureLayoutCache): Implementation
        (installDefaults): Implementation
        (installListeners): Implementation
        (installUI): Implementation
        (uninstallDefaults): Implementation
        (uninstallUI): Implementation
        (paint): moderate changes, so painting works with new changes
        (MouseInputHandler.mouseClicked): Implementation
        (paintLeaf): made private
        (paintNonLeaf): made private
        (paintRecursive): made private
        Several variables, instances and methods were adding according 
        to the API. The methods that were added and not in the list 
        above, have not been implemented yet. All JavaDoc is updated, 
        as well as formatting.
        * javax/swing/JTree.java: 
	(createChildren): checked that children is not null.
	* javax/swing/tree/AbstractLayoutCache.java:
        (getNodeDimensions): slight modifications to return initialized 
        Rectangle when the bounds are null. Implementation not complete.
        * javax/swing/tree/DefaultTreeSelectionModel.java:
        (addSelectionPath): Implementation
        (addSelectionPaths): Implementation
        (removeSelectionPath): Implementation
        (removeSelectionPaths): Implementation
        (getSelectionPaths): returned the selection array
        (clearSelection): set the selection array to null
        * javax/swing/tree/FixedHeightLayoutCache.java:
        (setModel): removed this method because it is defined in the 
        abstract parent.
        (setRootVisible): removed this method because it is defined in 
        the abstract parent.
        (setRowHeight): removed this method because it is defined in 
        the abstract parent.
        Also, some formatting was updated.
        * javax/swing/tree/VariableHeightLayoutCache.java:
        (setRowHeight): removed this method because it is defined in 
        the abstract parent.
        * javax/swing/tree/DefaultTreeModel.java:
        (DefaultTreeModel): Needed to initialize root if it was passed 
        into the constructor as null.

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

	* javax/swing/event/TableModelEvent.java: updated API docs all over.
	
2005-06-29  Roman Kennke  <roman@kennke.org>

	* gnu/java/awt/AWTUtilities.java
	(VisibleComponentList): Added List implementation that iterates over
	the child components of a Container and only returns Components
	that are actually visible.
	(getVisibleChildren): Now returns a List instead of an array. This
	list is cached. This greatly decreases allocations in
	LayoutManagers.
	* javax/swing/BoxLayout.java:
	Updated to use the new AWTUtilities.getVisibleChildren() method.

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

	* javax/swing/package.html: added package description,
	* javax/swing/border/package.html: likewise,
	* javax/swing/colorchooser/package.html: likewise,
	* javax/swing/event/package.html: likewise,
	* javax/swing/filechooser/package.html: likewise,
	* javax/swing/plaf/package.html: likewise,
	* javax/swing/plaf/basic/package.html: likewise,
	* javax/swing/plaf/metal/package.html: likewise,
	* javax/swing/tree/package.html: likewise,
	* javax/swing/undo/package.html: likewise.

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

	* java/awt/Font.java: fixed API doc links.
	
2005-06-28  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/event/AWTEventListener.java: added imports to fix links 
	in API docs,
	* java/awt/event/AWTEventListenerProxy.java: likewise,
	* java/awt/event/InputMethodListener.java: likewise,
	* java/awt/event/ItemListener.java: likewise,
	* java/awt/event/MouseWheelEvent.java: likewise,
	* java/awt/event/TextEvent.java: likewise,
	* java/awt/event/WindowEvent.java: likewise,
	* java/awt/event/WindowListener.java: likewise.
	
2005-06-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CosNaming/BindingIterator.java: Inherit from 
	BindingIteratorOperations, added specnotes for 1.2 specific methods.
	* org/omg/CosNaming/NamingContext.java: Inherit from
	NamingContextOperations, added specnotes for 1.2 specific methods.
	* org/omg/IOP/Encoding.java,
	org/omg/IOP/TaggedComponent.java,
	org/omg/IOP/TaggedProfile.java: Inherit from Serializable, added
	SerialVersionUID.
	org/omg/CosNaming/BindingIteratorOperations.java,
	org/omg/Dynamic/Parameter.java: New files.

2005-06-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/gnuRequest.java (submit): If IOException is 
	thrown while opening a socket, rethrow MARSHAL.
	* gnu/CORBA/NamingService/NamingServiceTransient.java (main): 
	Fixed regression due that the service started on the wrong port. 

2005-06-28  Mark Wielaard  <mark@klomp.org>

	From Christian Thalinger
	* doc/www.gnu.org/stories.wml: Add CACAO description.

2005-06-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * org/omg/CORBA/_IDLTypeStub.java: Added SerialVersionUID.
        org/omg/CORBA/PolicyTypeHelper.java: New file.

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

	* javax/swing/table/AbstractTableModel.java: updated API docs,
	* javax/swing/table/DefaultTableModel.java: fixed API docs.
	
2005-06-28  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/nio/DatagramChannelImpl.java
	(getNativeFD): Removed.
	* gnu/java/nio/DatagramChannelSelectionKey.java
	(getNativeFD): Modified to extract the native fd via the
	PlainDatagramSocketImpl.
	* gnu/java/nio/ServerSocketChannelImpl.java
	(getNativeFD): Removed.
	* gnu/java/nio/ServerSocketChannelSelectionKey.java
	(getNativeFD): Modified to extract the native fd via the
	PlainSocketImpl.
	* gnu/java/nio/SocketChannelImpl.java
	(getNativeFD): Removed.
	* gnu/java/nio/SocketChannelSelectionKey.java
	(getNativeFD): Modified to extract the native fd via the
	PlainSocketImpl.

2005-06-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
        
        NEWS: Added note about CORBA status in 1.6 release.

2005-06-27  Ziga Mahkovec  <ziga.mahkovec@klika.si>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (constructors): Default to
	a transparent background instead of black.
	(drawImage): When drawing a raster, pass live data to avoid copying.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (createImage): Return
	a BufferedImage when using Graphics2D.
	* javax/swing/JComponent.java (getComponentGraphics): Avoid copying
	Graphics2D instances.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_copyState): Copy the pixel
	buffer and initialize a new cairo context in MODE_JAVA_ARRAY.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_drawPixels): Revert
	previous transformation patch.

2005-06-27  Ziga Mahkovec  <ziga.mahkovec@klika.si>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_copyState):
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState___3III):
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState__II):
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState__Lgnu_java_awt_peer_gtk_GtkComponentPeer_2):
	Remove gdk_cairo_create calls.
	Obtain dimension for the cairo surface.
	(init_graphics2d_as_renderable): Fix cairo_xlib_surface_create
	invocation by passing dimension.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_drawPixels): Fix translation
	matrix sign.
	Use cairo_set_source for applying patterns.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_gdkDrawDrawable): Fix
	cairo_set_source_surface invocation by passing position instead of
	dimension.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState___3III):
	(begin_drawing_operation):
	(end_drawing_operation): In MODE_JAVA_ARRAY mode, only initialize the
	cairo context once.  Use GetPrimitiveArrayCritical for pinning down
	pixel buffers and maintain a buffer copy if necessary.
	* native/jni/gtk-peer/gtkcairopeer.h (javabuf_copy): New field.

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

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
	(glog_func): New static function.
	(Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Install glog_func as
	default log handler.
	* native/jni/gtk-peer/Makefile.am (libgtkpeer_la_LIBADD): Add jcl.

2005-06-27  Roman Kennke  <roman@kennke.org>

	* javax/swing/JComponent.java
	(getPreferredSize): Don't let the UI replace a manually set preferred
	size.

2005-06-27  Roman Kennke  <roman@kennke.org>

	* javax/swing/Box.java
	(createGlue): Return Short.MAX_VALUE instead of Integer.MAX_VALUE as
	dimension in the Filler component.
	(createHorizontalGlue): Return a new Filler object with the correct
	value instead of relying on createGlue(). The object returned by
	createHorizontalGlue must not have a vertical dimension.

2005-06-27  Roman Kennke  <roman@kennke.org>

	* javax/swing/BoxLayout.java
	(Direction): New inner interface. This abstracts the layout algorithm
	from the layout direction.
	(Horizontal): Implementation for the above interface for the
	horizontal direction.
	(Vertical): Implementation for the above interface for the
	vertical direction.
	(SizeReq): An inner helper class that holds size requirements for
	Components that are laid out. This is similar but not equal to
	the SizeRequirements class in javax.swing.
	(layoutContainer): Removed the actual algorithm into a new method,
	using the Direction interface.
	(layoutAlgorithm): This is the new layout algorithm. This uses
	the Direction interface, so that the algorithm is not duplicated
	and can be expressed more readable.
	(distributeSpace): A new helper method that distributes excess
	space over a set of components. This is the actual 'worker' in
	BoxLayout.

2005-06-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        org/omg/DynamicAny/DynAnyPackage/InvalidValue.java, 
        org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java, 
        org/omg/DynamicAny/DynAnyPackage/TypeMismatch.java, 
        org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java, 
        org/omg/DynamicAny/DynAnyPackage/package.html, 
        org/omg/IOP/ComponentIdHelper.java: New files.

2005-06-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        * org/omg/PortableServer/POAPackage/ServantAlreadyActive.java, 
        org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java:
        New files.

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

	* java/lang/Integer.java:
	(valueOf(int)): Implemented.
	(bitCount(int)): Implemented.
	(rotateLeft(int,int)): Implemented.
	(rotateRight(int,int)): Implemented.
	(highestOneBit(int)): Implemented.
	(numberOfLeadingZeros(int)): Implemented.
	(lowestOneBit(int)): Implemented.
	(numberOfTrailingZeros(int)): Implemented.
	(signum(int)): Implmented.
	(reverseBytes(int)): Implemented.
	(reverse(int)): Implemented.
	
2005-06-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.java:
	New file.

2005-06-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/PortableServer/POAManagerPackage/AdapterInactive.java, 
	org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java, 
	org/omg/PortableServer/POAManagerPackage/State.java, 
	org/omg/PortableServer/POAManagerPackage/index.html: New files.

2005-06-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/ColorUIResource.java: documented 
	IllegalArgumentExceptions in constructors;
	
2005-06-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/AbstractTableModel.java:
	(getColumnName): eliminated temp index to fix very minor bug,
	(findColumn): throw NullPointerException for null argument,
	(fireTableDataChanged): set correct row indices.
	* javax/swing/table/DefaultTableModel.java:
	(setDataVector): replace null argument with empty vector then call
	setColumnIdentifiers() to set up column names,
	(setColumnCount): call fireTableStructureChanged() rather than 
	fireTableDataChanged(),
	(addColumn(Object, Object[])): call fireTableStructureChanged() rather 
	than fireTableDataChanged(),
	(addRow(Vector)): fixed row indices in TableModelEvent,
	(moveRow): fixed row indices in TableModelEvent,
	(getColumnName): for a column index beyond the number of columns in
	the model, pass control to the superclass.

2005-06-24  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/awt/Container.java:
	(LightweightDispatcher.acquireComponentForMouseEvent):
	Use temp variable to set lastComponentEntered to null _before_
	dispatching MOUSE_EXITED events to avoid infinite loop.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java:
	(MouseInputHandler.acquireComponentForMouseEvent):
	Use temp variable to set lastComponentEntered to null _before_
	dispatching MOUSE_EXITED events to avoid infinite loop.

2005-06-24  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JScrollPane.java
	(JScrollPane): Add Viewport at index 0 rather than after the
	JScrollBars.  This complies with reference implementations.
	
2005-05-14  Chris Burdess  <dog@gnu.org>

	* gnu/xml/aelfred2/XmlParser.java: ensure that charset parameter of
	external MIME entity is trimmed.
	* gnu/xml/dom/DomDocument.java: DomNsNodes retrieved via
	createElement/createAttribute should not have localNames.

2005-06-24  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	org/omg/PortableServer/POAPackage/AdapterAlreadyExists.java,
	org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java,
	org/omg/PortableServer/POAPackage/WrongPolicyHelper.java,
	org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java,
	org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java,
	org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java,
	org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java,
	org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java,
	org/omg/PortableServer/POAPackage/NoServantHelper.java,
	org/omg/PortableServer/POAPackage/WrongAdapterHelper.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/ServantNotActive.java,
	org/omg/PortableServer/POAPackage/WrongAdapter.java,
	org/omg/PortableServer/POAPackage/WrongPolicy.java,
	gnu/CORBA/Poa/InvalidPolicyHolder.java,
	org/omg/PortableServer/POAPackage/package.html: New files.

2005-06-24  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/IOP/CodecOperations.java,
	org/omg/IOP/Codec.java,
	org/omg/IOP/CodecFactory.java,
	org/omg/IOP/CodecFactoryHelper.java,
	org/omg/IOP/CodecFactoryOperations.java,
	gnu/CORBA/cdrEncapsCodec.java,
	gnu/CORBA/gnuCodecFactory.java: New files.
	* gnu/CORBA/Functional_ORB.java (constructor):
	Put "CodecFactory" into initial references.
	* gnu/CORBA/holderFactory.java (createHolder): 
	Removed debug statement.

2005-06-24  Anthony Balkissoon  <abalkiss@redhat.com>
	
	* javax/swing/plaf/basic/BasicInternalFrameUI.java:
	(GlassPaneDispatcher.acquireComponentForMouseEvent): Use
	temp variable to set lastComponentEntered to null _before_
	dispatching MOUSE_EXITED events, otherwise we get infinite
	loop.

2005-06-24  Roman Kennke  <roman@kennke.org>

	* gnu/java/awt/AWTUtilities.java:
	Added new utility class. This provides a method for fetching
	the visible children of a Container.
	* javax/swing/BoxLayout.java:
	Use AWTUtilities.getVisibleChildren() instead of
	Container.getComponents(). LayoutManagers must not layout invisible
	children.

2005-06-24  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTable.java
	(constructor): Call setModel() instead of setting the model directly.
	This makes sure that listeners and the columnModel are set up
	correctly.
	(initializeLocalVars): Set up tableHeader before the columnModel.
	This way we already have a tableHeader when setColumnModel is called
	and it can be updated accordingly.
	(tableChanged): Update the columnModel when the table structure
	changes.
	(setColumnModel): Also set the columnModel of the tableHeader here.
	This is specified in Sun's API documentation.
	* javax/swing/table/DefaultTableModel.java
	(setDataVector): Fire a structureChanged event, so that the
	columnModel and header columnModel are updated correctly.

2005-06-23  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GtkImage.java: Don't draw 0 size images.

2005-06-23  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GtkImage.java: Add case source size > size.

2005-06-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/LocalObject.java: New file.

2005-06-22  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
	(pumpBytes): Throws IOException.
	(pumpDone): New native method.
	(produce): Call pumpDone().
	* include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: Regenerated.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpDone): New method.
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes): Check for
	errors on gdk_pixbuf_loader_write.

2005-06-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/IOP/ProfileIdHelper.java,
	omg/IOP/MultipleComponentProfileHelper.java,
	omg/IOP/MultipleComponentProfileHolder.java: New files.

2005-06-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java:
	(InternalFramePropertyChangeListener.vetoableChange):
	Repaint the JDesktopPane when JInternalFrame is closed.
	Also veto the close request, because hiding is not
	closing.

2005-06-22  Anthony Balkissoon  <abalkiss@redhat.com>
	
	* javax/swing/SwingUtilities.java:
	(layoutCompoundLabel): Added check for multi-line text.

2005-06-22  Anthony Balkissoon  <abalkiss@redhat.com>
	
	* javax/swing/JDialog.java:
	(setDefaultCloseOperation): Removed validity check for 
	operation code.  Validity is handled in processWindowEvent.
	* javax/swing/JFrame.java:
	(setDefaultCloseOperation): Changed error message to be more
	descriptive and similar to reference implementation.
	* javax/swing/JInternalFrame.java:
	(setDefaultCloseOperation): Removed validity check for 
	operation code.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java:
	(InternalFramePropertyListener): Added implementation of
	VetoableChangeListener.
	(InternalFramePropertyListener.vetoableChange): New method.
	(InternalFramePropertyListener.propertyChange): Removed
	check for JInternalFrame.IS_CLOSED_PROPERTY.  This is now
	handled in vetoableChange.
	(getDesktopManager): Added a check for null pointer from 
	JInternalFrame.getDesktopPane().

2005-06-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicLabelUI.java
	(installDefaults): JLabels are not opaque by default.

2005-06-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/GrayFilter.java
	(constructor): Compute factor at initialization time.
	(createDisabledImage): Initialize GrayFilter with correct arguments.
	(filterRGB): Reworked filter method. This is now compliant with
	the JDK behaviour.

2005-06-22  Mark Wielaard  <mark@klomp.org>

	Fixes bug #13439
	* javax/swing/JScrollPane.java (JScrollPane(Component,int,int)):
	Set viewport, view and scrollLostener manually.

2005-06-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/IOP/ServiceContextListHolder.java,
	org/omg/IOP/ServiceContext.java
	org/omg/IOP/ServiceContextHelper.java
	org/omg/IOP/ServiceContextHolder.java
	org/omg/IOP/ServiceContextListHelper.java
	org/omg/IOP/ServiceIdHelper.java: New files.

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

	* java/util/logging/Logger.java
	(setParent): No lines after throwing an exception are executed 
	and there is no point to check if the parent is null, because a 
	NullPointerException would have been thrown earlier. Fixes Bug 
	#13460.

2005-06-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/IOP/Encoding.java,
	org/omg/IOP/IOR.java,
	org/omg/IOP/IORHelper.java,
	org/omg/IOP/IORHolder.java,
	org/omg/IOP/TaggedProfileHolder.java,
	org/omg/IOP/TaggedProfile.java,
	org/omg/IOP/TaggedProfileHelper.java,
	org/omg/IOP/TaggedComponentHolder.java,
	org/omg/IOP/TaggedComponent.java,
	org/omg/IOP/TaggedComponentHelper.java: New files.

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

	* gnu/xml/aelfred2/XmlParser
        (parseAttribute): if (type.equals("CDATA") || type == null) 
        this would always throw a NullPointerException if type is null.

2005-06-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Functional_ORB.java (Port): Documentation
	update. (setPort): Made static, documentation update.
	(getPort): Removed.
	* gnu/CORBA/generalTypeCode.java (UNSET): Changed value.
	* gnu/CORBA/NamingService/NamingServiceTransient.java (main):
	Removed call to init.

2005-06-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/CurrentHelper.java, 
	org/omg/CORBA/CurrentHolder.java: New files.

2005-06-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/Current.java, 
	org/omg/CORBA/CurrentOperations.java: Documentation update.
	
2005-06-20  Mark Wielaard  <mark@klomp.org>

	* javax/swing/DefaultDesktopManager.java (getBoundsForIconOf):
	Initialize desktopPane before use.

2005-06-20  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTML.java: Added public parameterless 
	constructor for Tag.

2005-06-20  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/PolicyListHolder.java,
	org/omg/CORBA/PolicyListHelper.java: New files.

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

	* javax/swing/DefaultDesktopManager.java
	(getBoundsForIconOf): No reason to check if desktopPane is null
	after dereferencing desktopPane in code. Fixes bug #13461.

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

	* javax/swing/JScrollPane.java
	(JScrollPane): Viewport was not being set when 
	the view was null. Whenever a view would be added to container
	it would not appear. This was changed to use setViewportView.

2005-06-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/AbstractButton.java:
	* javax/swing/AbstractCellEditor.java:
	* javax/swing/Action.java:
	* javax/swing/BorderFactory.java:
	* javax/swing/ButtonGroup.java:
	* javax/swing/CellRendererPane.java:
	* javax/swing/DebugGraphics.java:
	* javax/swing/DefaultBoundedRangeModel.java:
	* javax/swing/DefaultButtonModel.java:
	* javax/swing/DefaultCellEditor.java:
	* javax/swing/DefaultComboBoxModel.java:
	* javax/swing/DefaultDesktopManager.java:
	* javax/swing/DefaultFocusManager.java:
	* javax/swing/DefaultListCellRenderer.java:
	* javax/swing/DefaultListModel.java:
	* javax/swing/DefaultListSelectionModel.java:
	* javax/swing/FocusManager.java:
	* javax/swing/GrayFilter.java:
	* javax/swing/ImageIcon.java:
	* javax/swing/JButton.java:
	* javax/swing/JCheckBoxMenuItem.java:
	* javax/swing/JColorChooser.java:
	* javax/swing/JComboBox.java:
	* javax/swing/JComponent.java:
	* javax/swing/JDesktopPane.java:
	Reformatted these sourcefiles to better match our coding style.

2005-06-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/JComponent.java
	(getPreferredSize): Make sure that preferredSize is greater than
	minimumSize.
	(setMinimumSize): Removed hack to adjust preferredSize. This is moved
	into the method getPreferredSize().

2005-06-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/JComponent.java
	(setOpaque): Don't revalidate and repaint when the opaque property
	is changed (at least not here).

2005-06-20  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLEditorKit.java:
	Inherit from StyledEditorKit, Cloneable, Serializable and adding
	string constants. 
	(handleStartTag): Fixed typo in comment.

2005-06-20  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/PolicyHelper.java,
	org/omg/CORBA/PolicyHolder.java,
	org/omg/CORBA/_PolicyStub.java,
	gnu/CORBA/_PolicyImplBase.java: New files.

2005-06-19  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(gnu_java_awt_peer_gtk_GtkImage_getPixbuf,
	gnu_java_awt_peer_gtk_GtkImage_getPixmap,
	gnu_java_awt_peer_gtk_GtkImage_isOffScreen): Move declaration to ...
	* native/jni/gtk-peer/gtkpeer.h: here.

2005-06-18  Chris Burdess <dog@bluezoo.org>

	* java/util/logging/LogManager.java: Set default level of root
	logger to INFO.

2005-06-18  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/IOP/TransactionService.java, 
	org/omg/IOP/CodeSets.java: New files.

2005-06-17  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/ThreadLocal.java,
	java/util/TreeMap.java: Fixes to make compiling with Eclipse Java
	Compiler SVN HEAD possible.

2005-06-17  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.java, 
	org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.java, 
	org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.java, 
	org/omg/PortableServer/LIFESPAN_POLICY_ID.java, 
	org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.java, 
	org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.java, 
	org/omg/PortableServer/THREAD_POLICY_ID.java, 
	org/omg/IOP/ENCODING_CDR_ENCAPS.java, 
	org/omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS.java, 
	org/omg/IOP/TAG_CODE_SETS.java, 
	org/omg/IOP/TAG_INTERNET_IOP.java, 
	org/omg/IOP/TAG_JAVA_CODEBASE.java, 
	org/omg/IOP/TAG_MULTIPLE_COMPONENTS.java, 
	org/omg/IOP/TAG_ORB_TYPE.java, 
	org/omg/IOP/TAG_POLICIES.java, 
	org/omg/PortableInterceptor/LOCATION_FORWARD.java, 
	org/omg/PortableInterceptor/SUCCESSFUL.java, 
	org/omg/PortableInterceptor/SYSTEM_EXCEPTION.java, 
	org/omg/PortableInterceptor/TRANSPORT_RETRY.java, 
	org/omg/PortableInterceptor/USER_EXCEPTION.java: New files.

2005-06-17  Tom Tromey  <tromey@redhat.com>

	* lib/Makefile.am (JAVAC): Use JIKESENCODING.
	* m4/acinclude.m4 (CLASSPATH_CHECK_JIKES): Check for -encoding
	option to jikes.
	(JIKESENCODING): New subst.

2005-06-17  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/exception/VmDeadException.java: New file.
	* gnu/classpath/jdwp/exception/NotImplementedException.java: New file.
	* gnu/classpath/jdwp/exception/JdwpInternalErrorException.java: New
	file.
	* gnu/classpath/jdwp/exception/JdwpException.java: New file.
	* gnu/classpath/jdwp/exception/InvalidThreadGroupException.java: New
	file.
	* gnu/classpath/jdwp/exception/InvalidThreadException.java: New file.
	* gnu/classpath/jdwp/exception/InvalidStringException.java: New file
	* gnu/classpath/jdwp/exception/InvalidObjectException.java: New file.
	* gnu/classpath/jdwp/exception/InvalidEventTypeException.java: New
	file.
	* gnu/classpath/jdwp/exception/InvalidCountException.java: New file.
	* gnu/classpath/jdwp/exception/InvalidClassException.java: New file.

2005-06-17  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JApplet.java,
	javax/swing/JDialog.java,
	javax/swing/JFrame.java,
	javax/swing/JInternalFrame.java,
	javax/swing/JWindow.java: Added support for adding and setting
	layout managers directly for these top-level containers tocomply
	with J2SE 5.0.  Added private boolean initStageDone.
	Initialized rootPaneCheckingEnabled to false.
	(JDialog.dialogInit): Set initStageDone to true.
	(JApplet.JApplet): Set initStageDone to true.
	(JFrame.frameInit) : Set initStageDone to true.
	(JInternalFrame.JInternalFrame): Set initStageDone to true.
	(JWindow.windowInit): Set initStageDone to true.
	(addImpl): Added check for direct adds (J2SE 5.0) and directed
	them to getContentPane().add.
	(setLayout): Added check for direct calls to setLayout.
	(remove): Added check for direct calls to remove.

2005-06-17  Lillian Angel  <langel@redhat.com>

	* javax/swing/ToolTipManager.java
	(mousePressed): Check if currentComponent is null.
	If so, it should be equal to the current source.
	Fixes Bug #11538.

2005-06-17  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/DefaultListSelectionModel.java:
	(addSelectionInterval):	Added update to leadSelectionIndex
	and anchorSelectionIndex variables.
	(removeSelectionInterval): Same as above.
	(setSelectionInterval): Same as above.
	* javax/swing/JList.java:
	(getSelectedIndices): Increased for loop upper bound by 1.
	* javax/swing/plaf/basic/BasicListUI.java: 
	(KeyHandler): New class.
	(MouseInputHandler): Moved code from MousePressed to
	MouseClicked.
	(MouseInputHandler.MouseClicked): Added check for control
	key being down.

2005-06-17  Roman Kennke  <roman@kennke.org>

	* java/io/DataInputStream.java:
	Reverted my patch from 2005-06-15.

2005-06-16  Robert Schuster <thebohemian@gmx.net>

	* gnu/java/nio/charset/Windows1250.java,
	gnu/java/nio/charset/Windows1251.java,
	gnu/java/nio/charset/Windows1252.java,
	gnu/java/nio/charset/Windows1253.java,
	gnu/java/nio/charset/Windows1254.java,
	gnu/java/nio/charset/Windows1255.java,
	gnu/java/nio/charset/Windows1256.java,
	gnu/java/nio/charset/Windows1257.java,
	gnu/java/nio/charset/Windows1258.java: Fixed canonical NIO
	charset name.

2005-06-16  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* gnu/CORBA/CDR/uncObjectOutputStream.java,
	gnu/CORBA/CDR/uncObjectInputStream.java: Deleted.

2005-06-16  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/CosNaming/NamingContextPackage/CannotProceed.java,
	org/omg/CosNaming/NamingContextPackage/NotEmpty.java,
	org/omg/CosNaming/NamingContextPackage/NotFound.java: 
	Added 1.4 constructors.
	* org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.java:
	Added 1.4 constructors and serialVersionUID.

2005-06-16  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/ProtableServer/IdAssignmentPolicyValue.java,
	org/omg/ProtableServer/IdUniquenessPolicyValue.java,
	org/omg/ProtableServer/ImplicitActivationPolicyValue.java,
	org/omg/ProtableServer/LifespanPolicyValue.java,
	org/omg/ProtableServer/RequestProcessingPolicyValue.java,
	org/omg/ProtableServer/ServantRetentionPolicyValue.java: 
	New files.

2005-06-16  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.java, 
	org/omg/IOP/CodecFactoryPackage/UnknownEncoding.java, 
	org/omg/IOP/CodecPackage/FormatMismatch.java, 
	org/omg/IOP/CodecPackage/InvalidTypeForEncoding.java,
	org/omg/IOP/CodecPackage/TypeMismatch.java, 
	org/omg/IOP/CodecPackage/TypeMismatchHelper.java, 
	org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java, 
	org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java, 
	org/omg/PortableServer/CurrentPackage/NoContext.java: New exceptions.
	org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java, 
	org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java, 
	org/omg/IOP/CodecPackage/FormatMismatchHelper.java, 
	org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java, 
	org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java, 
	org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java, 
	org/omg/PortableServer/CurrentPackage/NoContextHelper.java: New helpers.
	* gnu/CORBA/ObjectCreator.java (readUserException): 
	Renamed misleading variable.
	* gnu/CORBA/DuplicateNameHolder.java, 
	gnu/CORBA/EmptyExceptionHolder.java: New holders. 

2005-06-15  Goffredo Baroncelli  <kreijack@inwind.it>

	* gnu/java/net/protocol/http/HTTPURLConnection.java
	(getHeaderFieldKey): Check index.

2005-06-15  Roman Kennke  <roman@kennke.org>

	* java/io/DataInputStream.java
	(readLine): Added checks for InputStream that support have a pos field
	for repositioning the stream.

2005-06-15  Mark Wielaard  <mark@klomp.org>

	* lib/gen-classlist.sh.in: Remove vm.omit, vm.add and tmp.omit files
	after use.

2005-06-15  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/Messaging/SyncScopeHelper.java (write): Made public.

2005-06-14  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/id/JdwpIdFactory.java: New file.
	* gnu/classpath/jdwp/processor/PacketProcessor.java: New file.

2005-06-14  Tom Tromey  <tromey@redhat.com>

	* lib/gen-classlist.sh.in (vm_dirlist): Prune non-existing
	directories.
	* lib/Makefile.am (genclasses): Pass top_srcdir to
	gen-classlist.sh.
	* m4/acinclude.m4: Quote default value of vm_classes.

2005-06-14  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JComponent.java (setMinimumSize): Only adjust
	prefferedSize or maximumSize when they are set.
	* javax/swing/JScrollPane.java (JScrollPane(Component,int,int)):
	Set viewport and view manually.

2005-06-14  Tom Tromey  <tromey@redhat.com>

	* m4/acinclude.m4 (--with-vm-classes): New option.
	* lib/gen-classlist.sh.in: Handle 'vm_classes' feature.
	* lib/Makefile.am (compile_classpath): Updated for new
	classpath-setting approach.
	(noinst_DATA): Now unconditional.

2005-06-14  Ziga Mahkovec  <ziga.mahkovec@klika.si>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (updateBufferedImage):
	Fixed pixelBuffer array index.

2005-06-14  Ziga Mahkovec  <ziga.mahkovec@klika.si>

	Classpath bug #13353:
	* gnu/java/net/protocol/jar/Handler.java (parseURL, toExternalForm):
	Append fragments (#ref) to URLs.

2005-06-14  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/InternationalFormatter.java (clone): Disabled.

2005-06-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/text/DecimalFormat.java
	(DecimalFormat(String, DecimalFormatSymbols)): store clone of symbols;
	(equals): add missing checks;
	(getDecimalFormatSymbols): return clone of symbols;
	(setDecimalFormatSymbols): store clone of symbols.
	
2005-06-14  Mark Wielaard  <mark@klomp.org>

	* lib/standard.omit: Add gnu/classpath/jdwp.
	
2005-06-13  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/id/ArrayId.java: New file.
	* gnu/classpath/jdwp/id/ArrayReferenceTypeId.java: New file.
	* gnu/classpath/jdwp/id/ClassLoaderId.java: New file.
	* gnu/classpath/jdwp/id/ClassObjectId.java: New file.
	* gnu/classpath/jdwp/id/ClassReferenceTypeId.java: New file.
	* gnu/classpath/jdwp/id/InterfaceReferenceTypeId.java: New file.
	* gnu/classpath/jdwp/id/JdwpId.java: New file.
	* gnu/classpath/jdwp/id/ObjectId.java: New file.
	* gnu/classpath/jdwp/id/ReferenceTypeId.java: New file.
	* gnu/classpath/jdwp/id/StringId.java: New file.
	* gnu/classpath/jdwp/id/ThreadGroupId.java: New file.
	* gnu/classpath/jdwp/id/ThreadId.java: New file.
	* gnu/classpath/jdwp/util/Signature.java: New file.
	* gnu/classpath/jdwp/transport/JdwpConnection.java: New file.
	* gnu/classpath/jdwp/transport/ITransport.java: New file.
	* gnu/classpath/jdwp/transport/SocketTransport.java: New file.
	* gnu/classpath/jdwp/transport/TransportFactory.java: New file.
	* gnu/classpath/jdwp/transport/TransportException.java: New file.
	* gnu/classpath/jdwp/transport/JdwpPacket.java: New file.
	* gnu/classpath/jdwp/transport/JdwpCommandPacket.java: New file.
	* gnu/classpath/jdwp/transport/JdwpReplyPacket.java: New file.

2005-06-13  Ziga Mahkovec  <ziga.mahkovec@klika.si>

	* java/awt/image/SampleModel.java (getPixels): Fixed array
	assignment.

2005-06-13  Keith Seitz  <keiths@redhat.com>

	* lib/Makefile.am (metafiles): Exclude directories and CVS files.

2005-06-13  Ziga Mahkovec  <ziga.mahkovec@klika.si>

	* java/text/AttributedStringIterator.java (getRunLimit): Fixed the
	range of the returned indexes.

2005-06-13  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalUtils.java:
	Added new package-private helper class.
	* javax/swing/plaf/metal/MetalSplitPaneDivider.java:
	Added new package-private class. This is the divider used
	by JSplitPane.
	* javax/swing/plaf/metal/MetalScrollBarUI.java
	(paintThumb): Use new MetalUtils class for drawing the typical
	Metal pattern on the thumb.
	* javax/swing/plaf/metal/MetalScrollBarUI.java
	(initComponentDefaults): Added color defaults for SplitPane.
	* javax/swing/plaf/metal/MetalSplitPaneUI.java:
	(createDefaultDivider): Implemented new method. This creates
	the Metal divider for JSplitPane.

2005-06-13  Roman Kennke  <roman@kennke.org>

	* javax/swing/JSpinner.java
	(StubEditor): Removed this inner class.
	(DefaultEditor): Implemented this class and its dummy methods.
	(DateEditor): Added and implemented this inner class.

2005-06-13  Roman Kennke  <roman@kennke.org>

	* javax/swing/JFormattedTextField.java
	(setValue): Creates an AbstractFormatter instance based on the type
	of the value beeing set.
	(createFormatter): New helper method.

2005-06-13  Audrius Meskauskas <AudriusA@Bioinformatics.org>

    * org/omg/SendingContext/Runtime.java: Deleted.
	* org/omg/SendingContext/RunTime.java: Added.

2005-06-13  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/DateFormatter.java:
	Implemented new class.
	* javax/swing/JFormattedTextField.java
	(setValue): Added conversion from value to text.

2005-06-12  Ziga Mahkovec  <ziga.mahkovec@klika.si>

	* java/text/MessageFormat.java (parse): When parsing strings, check
	for an empty pattern trailer.

2005-06-12  Ziga Mahkovec  <ziga.mahkovec@klika.si>

	PR libgcj/20435:
	* gnu/regexp/RESyntax.java (RE_POSSESSIVE_OPS): New field.
	(static): Add possessive matching to JAVA_1_4 syntax.
	* gnu/regexp/RETokenRepeated.java (possessive): New field.
	(makePossessive, isPossessive): New methods.
	(match): Don't back off during possessive matching.
	* gnu/regexp/RE.java (initalize): Accept possessive quantifier.
	* java/util/regex/Pattern.java (constructor): Switch syntax from PERL5
	to JAVA_1_4.

2005-06-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* doc/unicode/Blocks-4.0.0.txt:
	New block listings for Unicode 4.0.0.
	* java/lang/Character.java:
	Added new fields for 1.5, both in Character and UnicodeBlock.
	(UnicodeBlock.of(int)): Implemented.
	(UnicodeBlock.forName(String)): Implemented.
	* java/lang/annotation/ElementType.java:
	Corrected serial UID.
	* java/lang/annotation/RetentionPolicy.java:
	Likewise.
	* scripts/unicode-blocks.pl
	Updated to handle Unicode 4.0.0.
	
2005-06-11  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/ORB.java,
	org/omg/CORBA/CustomValue.java,
	org/omg/CORBA/VM_ABSTRACT.java,
	org/omg/CORBA/VM_CUSTOM.java,
	org/omg/CORBA/VM_NONE.java,
	org/omg/CORBA/VM_TRUNCATABLE.java,
	org/omg/CORBA/VM_TRUNCATABLE.java,
	org/omg/CORBA/portable/ValueBase.java,
	org/omg/CORBA_2_3/portable/package.html: Documentation update.
	* org/omg/CORBA_2_3/package.html: New file.

2005-06-11  Audrius Meskauskas <AudriusA@Bioinformatics.org>
	
	* org/omg/CORBA/portable/StreamableValue.java,
	org/omg/CORBA/portable/CustomValue.java,
	gnu/CORBA/CDR/Vio.java: New files.
	* org/omg/CORBA/ValueBaseHelper.java: Using	gnu.CORBA.Vio.
	* org/omg/CORBA_2_3/portable/OutputStream.java: Documentatin update. 
	(write_value): Using gnu.CORBA.Vio.
	* org/omg/CORBA_2_3/portable/InputStream.java Documentation update. 
	(read_value): Using gnu.CORBA.Vio.
	* gnu/CORBA/ObjectCreator.java (Idl2class, Idl2Object): New methods.
	(toIDL): Do not insert OMG prefix.
	* gnu/CORBA/Restricted_ORB.java (create_any): Set ORB for that Any.
	(register_value_factory, unregister_value_factory, lookup_value_factory): 
	New CORBA 2_3 methods.
	* gnu/CORBA/gnuAny.java (extract_Value): Use reflection if holder does
	not implement ValueBaseHolder.
	* gnu/CORBA/CDR/cdrInput.java: Implementing 2_3 stream and 
	DataInputStream, (read_Value, read_Abstract, read_char_array, 
	read_wchar_array, ensureArray, read_ulong_array, read_long_array, 
	read_float_array, read_double_array, read_short_array, read_ushort_array,
	read_octet_array, read_longlong_array, read_ulonglong_array, 
	read_boolean_array, read_any_array, _truncatable_ids): New methods.
	* gnu/CORBA/CDR/cdrOutput.java: Implementing 2_3 stream 
	and DataOutputStream, (write_any_array, _truncatable_ids, write_Abstract, 
	write_Value): New methods.
	* org/omg/CORBA/portable/ValueBase.java: Documentation update.

2005-06-10  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/InternationalFormatter.java:
	Implemented new class.

2005-06-10  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(BasicHorizontalLayoutManager.preferredLayoutSize): fixed return
	statement.
	(BasicVerticalLayoutManager.preferredLayoutSize): Likewise.
	
2005-06-10  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTextArea.java
	(getPreferredSize): Implemented new method. This is overridden
	in order to support custom set rows and columns.

2005-06-10  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/SendingContext/package.html,
	org/omg/CORBA/SendingContext/Runtime.java,
	org/omg/CORBA/SendingContext/RuntimeOperations.java: Removed.
	* org/omg/SendingContext/package.html,
	org/omg/SendingContext/Runtime.java,
	org/omg/SendingContext/RuntimeOperations.java: Added.

2005-06-10  Sven de Marothy  <sven@physto.se>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(gdkDrawDrawable): Check if cairo pattern is non-null before 
	setting its matrix.
	
2005-06-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Class.java:
	(internalGetClasses()): Use collections with type parameters.
	(internalGetFields()): Likewise.
	(internalGetMethods()): Likewise.
	(getSuperclass()): Changed to new return type.
	(asSubclass(Class<U>)): Documented.
	(getEnumConstants()): Calls VMClass.
	(getAnnotation(Class<?>)): Implemented.
	(getAnnotations()): Implemented.
	(getCanonicalName()): Implemented.
	(getDeclaredAnnotations()): Implemented.
	(getEnclosingClass()): Implemented.
	(getEnclosingConstructor()): Implemented.
	(getEnclosingMethod()): Implemented.
	(getGenericInterfaces()): Implemented.
	(getGenericSuperclass()): Implemented.
	(getTypeParameters()): Implemented.
	(isAnnotationPresent(Class<?>)): Implemented.
	(isAnonymousClass()): Implemented.
	(isLocalClass()): Implemented.
	(isMemberClass()): Implemented.
	* java/lang/Package.java:
	(getAnnotation(Class<?>)): Implemented.
	(getAnnotations()): Implemented.
	(getDeclaredAnnotations()): Implemented.
	(isAnnotationPresent(Class<?>)): Implemented.
	* java/lang/annotation/AnnotationTypeMismatchException.java:
	Added serial version UID.
	* java/lang/annotation/ElementType.java: Likewise.
	* java/lang/annotation/RetentionPolicy.java: Likewise.
	* java/lang/reflect/AnnotatedElement.java: Documented.
	* java/lang/reflect/Modifier.java:
	(toString(int)): Switched to using StringBuilder.
	(toString(int,StringBuilder)): Likewise.
	* vm/reference/java/lang/VMClass.java:
	(getSuperClass(Class<T>)): Updated return type.
	(getSimpleName(Class<?>)): Use VM methods directly.
	(getEnumConstants(Class<T>)): Implementation moved from Class.
	(getDeclaredAnnotations(Class<?>)): New native method.
	(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/VMPackage.java:
	New VM class corresponding to java.lang.Package.
	(getDeclaredAnnotations(Class<?>)): New native method.
	* vm/reference/java/lang/VMSystem.java:
	Removed unnecessary imports.
	* vm/reference/java/lang/reflect/Constructor.java:
	(toString()): Changed StringBuffer to StringBuilder.
	(getTypeParameters()): Changed to native method.
	* vm/reference/java/lang/reflect/Field.java:
	(toString()): Changed StringBuffer to StringBuilder.
	* vm/reference/java/lang/reflect/Method.java:
	(getReturnType()): Updated return type.
	(toString()): Changed StringBuffer to StringBuilder.
	(invoke(Object,...)): Updated arguments.
	
2005-06-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkPanelPeer.java,
	gnu_java_awt_peer_gtk_GtkPanelPeer.c (connectSignals): New method.
	* include/gnu_java_awt_peer_gtk_GtkPanelPeer.h: Regenerate.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(window_focus_in_cb, window_focus_out_cb): Remove FIXMEs.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(copyState): Check if cairo pattern is null before copying it.
	(drawPixels): Check if cairo pattern is null before retrieving it.

	* java/awt/MenuItem.java (label): Initialize to empty string.

2005-06-08  Bryce McKinlay  <mckinlay@redhat.com>

	* java/rmi/server/RMIClassLoader.java (getClassLoader): Make public.
	From Gary Benson.

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

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (cairoSetRGBColor,
	cairoSetAlpha): Combine ...
	(cairoSetRGBAColor): New method.
	* include/gnu_java_awt_peer_gtk_GdkGraphics2D.h: Regenerate.
	* include/gnu_java_awt_peer_gtk_GtkImage.h: Regenerate.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c: Use
	Cairo 0.5.0 APIs.
	* INSTALL: Document Cairo 0.5.0 requirement.
	* NEWS: Likewise.
	* configure.ac: Require Cairo 0.5.0.

2005-06-08  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BandedSampleModel.java
	(createBankArray): New method.
	(BandedSampleModel(int, int, int, int)): reimplemented.
	(BandedSampleModel(int, int, int, int, int[], int[]): 
	RasterFormatException nearer to start of constructor.
	(getPixel): Use band index, not zero.
	(getPixels): Fixed loop indices.
	(getSamples): Fixed loop indices.
	(setDataElements): Use band index, not zero.

2005-06-08 Audrius Meskauskas <AudriusA@Bioinformatics.org>.

	* org/omg/CORBA/CustomValue.java,
	org/omg/CORBA/CustomMarshal.java,
	org/omg/CORBA/DataOutputStream.java,
	org/omg/CORBA/DataInputStream.java: New classes.

2005-06-08  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/DefaultFormatter.java
	(FormatterDocumentFilter.remove): Added check for valid input.
	(FormatterDocumentFilter.insertString): Added check for valid input.
	Added support for overwriteMode property.
	(FormatterDocumentFilter.replace): Added check for valid input.
	(checkValidInput): New helper method to check for valid input
	and roll it back if necessary.

2005-06-08  Roman Kennke  <roman@kennke.org>

	* javax/swing/JFormattedTextField.java
	(getActions): Call super.getActions instead of throwing an exception.
	This is safe here.
	(processFocusEvent): Likewise.
	* javax/swing/plaf/basic/BasicTextUI.java
	(createKeymap): Construct new bindings array if UIDefaults does return
	a null object for this.

2005-06-08  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(installDefaults): Call resetLayoutManager() _after_ the divider
	is created to prevent NPE.
	(paint): Removed check for valid divider location. This is done
	in resetComponentAt(index).
	(resetLayoutManager): Call layout.updateComponents _after_ the
	layout has been installed. Otherwise it has no effect.

2005-06-08  Roman Kennke  <roman@kennke.org>

	* javax/swing/JComponent.java
	(setMinimumSize): Adjust preferredSize and maximumSize when
	minimumSize is greater than preferred or maximumSize.

2005-06-08  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/DefaultEditorKit.java:
	Added some API documentation.

2005-06-08  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/DefaultEditorKit.java
	(DefaultKeyTypedAction.actionPerformed): This action
	has to filter control characters here.
	(InsertBreakAction.actionPerformed): This action inserts
	a newline character here.

2005-06-08  Audrius Meskauskas <AudriusA@Bioinformatics.org>.

	* org/omg/CORBA/UnionMemberHelper.java,
	org/omg/CORBA/ValueMemberHelper.java,
	org/omg/CORBA/StructMemberHelper.java,
	org/omg/CORBA/IDLTypeHelper.java,
	org/omg/CORBA/_IDLTypeStub.java: New files.
	* gnu/CORBA/IOR.java (write_null, _read_no_endian),
	gnu/CORBA/CDR/cdrInput.java (read_Object),
	gnu/CORBA/CDR/cdrOutput.java (write_Object):
	Implemented sending of java null.

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

	* doc/www.gnu.org/home.wml: Added "omg.org"

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

	* gnu/CORBA/IOR_Delegate.java (release),
	gnu/CORBA/IOR_contructed_object.java (finalize):
	Close the associated socket if the finalizer is called.
	gnu/CORBA/gnuRequest.java (submit),
	gnu/CORBA/Functional_ORB.java (serveStep): Try to reuse the opened sockets.
	* gnu/CORBA/SocketRepository.java,
	gnu/CORBA/GIOP/CloseMessage.java: New files.

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

	* javax/swing/JLabel.java
	(JLabel): Horizontal justification changed to default to LEADING.

2005-06-06  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/DefaultFormatter.java:
	Implemented new class.

2005-06-06  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/CompletionStatusHelper.java (type): New method.
	* org/omg/CORBA/Current.java: Inherit from org.omg.portable.IDLEntity.

2005-06-06  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/StringValueHelper.java,
	org/omg/CORBA/WStringValueHelper.java: New helpers.
	* org/omg/CORBA/portable/BoxedValueHelper.java: Documentation update.

2005-06-06  Roman Kennke  <roman@kennke.org>

	* javax/swing/JFrame.java:
	Added the two missing constructors that take
	java.awt.GraphicsConfiguration objects as arguments.

2005-06-06  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTree.java
	(removeDescendantSelectedPaths): Implemented new method.

2005-06-06  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicButtonListener.java
	(focusLost): Don't unarm button on focus lost. This behaviour is
	not documented anywhere and disturbs correct event processing
	in buttons.

2005-06-06  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTextUI.java
	(getKeymapName): Removed debug statement.

2005-06-06  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTextUI.java
	(getKeymapName): Added API documentation comments.

2005-06-06  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTextUI.java
	(getKeymapName): Reimplemented to return the classname of
	itself. This way subclasses don't have to override this
	method.

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

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
	(gtkWidgetSetForeground): Avoid setting black-on-black selection color.

2005-06-05  Tom Tromey  <tromey@redhat.com>

	* java/lang/Class.java (resourcePath): Reindented.

2005-06-05  Tom Tromey  <tromey@redhat.com>

	* scripts/generate-locale-list.sh: Remove redundant 'cd'.

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

	* gnu/java/awt/peer/gtk/GtkImage.java
	(getSource, deliver): Added null checks.
	* java/awt/image/RGBImageFilter.java
	(filterRGBPixels): Reimplement.
	
2005-06-05  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/VisibilityHelper.java: New helper.

2005-06-05  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/stub/java/rmi/_Remote_Stub.java:
	Inheriting from Stub, Remote and Serializable.

2005-06-05  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org\omg\CORBA\portable\ValueFactory.java (read_value): Changed 
	parameter type to org.omg.CORBA_2_3.portable.InputStream.
	* org\omg\CosNaming\_BindingIteratorStub.java,
	* org\omg\CosNaming\_NamingContextStub.java: Fixed serialVersionUID.
	* org\omg\CORBA_2_3\portable\InputStream.java 
	(read_value(BoxedValueHelper)): Implemented.
	* org\omg\CORBA_2_3\portable\OutputStream.java 
	(write_abstract_interface): 
	Changed parameter type to java.lang.Object.
	* org\omg\CORBA\portable\BoxedValueHelper.java: 
	Moved wrongly placed bracket.
	* org\omg\CORBA\ParameterMode.java: Inherit from
	Serializable, IDLEntity and removing duplicated header.
	(_PARAM_IN, _PARAM_OUT, _PARAM_INOUT): Making final.
	* org\omg\Messaging\SyncScopeHelper.java (extract, id, insert, 
	read, type, write): Making public.
	
2005-06-05  Ka-Hing Cheung  <kahing@javabsp.org>

	* javax/swing/event/TreeSelectionEvent.java
	(getPaths): Return a cloned copy.
	(isAddedPath): Implemented.
	(cloneWithSource): Likewise.

2005-06-05  Ka-Hing Cheung  <kahing@javabsp.org>

	* javax/swing/event/TreeSelectionEvent.java:
	Reformatted.

2005-06-05  Ka-Hing Cheung  <kahing@javabsp.org>

	* javax/swing/tree/TreePath.java
	(toString): Implemented.

2005-06-05  Sven de Marothy  <sven@physto.se>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(getPixels): Handle pixbufs which don't have alpha.

2005-06-04  Tom Tromey  <tromey@redhat.com>

	* javax/swing/plaf/basic/BasicListUI.java (focusListener): Use
	correct type.
	(listDataListener, listSelectionListener, mouseInputListener,
	propertyChangeListener): Likewise.
	* javax/swing/plaf/basic/BasicMenuUI.java (ChangeHandler): Now
	public and deprecated.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(TabbedPaneLayout): Now public.
	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(ButtonActionListener): Now public.
	(PropertyChangeHandler): Likewise.
	(ButtonAreaLayout): Likewise.
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(TitlePaneLayout): Now public.
	(PropertyChangeHandler): Likewise.
	* javax/swing/plaf/basic/BasicCheckBoxUI.java
	(getPropertyPrefix): New method.
	* javax/swing/plaf/basic/BasicProgressBarUI.java (ChangeHandler):
	Now public.
	* javax/swing/plaf/basic/BasicSliderUI.java (ComponentHandler):
	Now public.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(BasicVerticalLayoutManager): Now public.
	(FocusHandler): Likewise.
	(BasicHorizontalLayoutManager): Likewise.
	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(AcceptAllFileFilter): New public constructor.
	(BasicFileView): Likewise.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(BorderListener.RESIZE_NONE): Now final.

2005-06-04  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/DefinitionKindHelper.java,
	org/omg/CORBA/FieldNameHelper.java,
	org/omg/CORBA/IdentifierHelper.java,
	org/omg/CORBA/ParameterMode.java,
	org/omg/CORBA/ParameterModeHelper.java,
	org/omg/CORBA/ParameterModeHolder.java,
	org/omg/CORBA/RepositoryIdHelper.java,
	org/omg/CORBA/SetOverrideTypeHelper.java,
	org/omg/CORBA/VersionSpecHelper.java,
	gnu/CORBA/SetOverrideTypeHolder.java,
	gnu/CORBA/DefinitionKindHolder.java: New files.

2005-06-04  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/stub/java/rmi/_Remote_Stub.java,
	org/omg/stub/java/rmi/package.html: New package.

2005-06-04  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/Messaging/SyncScopeHelper.java
	org/omg/Messaging/SYNC_WITH_TRANSPORT.java
	org/omg/Messaging/package.html: New package.

2005-06-04  Michael Koch  <konqueror@gmx.de>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(Java_gnu_java_awt_peer_gtk_GtkImage_loadPixbuf):
	Fixed method declaration format.
	(Java_gnu_java_awt_peer_gtk_GtkImage_drawPixelsScaled):
	Likewise.

2005-06-03  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* AUTHORS (Roman Kennke): New author.

2005-06-03  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/portable/BoxedValueHelper.java,
	org/omg/CORBA_2_3/portable/OutputStream.java,
	org/omg/CORBA_2_3/portable/Delegate.java,
	org/omg/CORBA_2_3/portable/ObjectImpl.java,
	org/omg/CORBA_2_3/portable/package.html: New files.

2005-06-03  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/CosNaming/NamingContextPackage/AlreadyBound.java,
	org/omg/CosNaming/NamingContextPackage/CannotProceed.java,
	org/omg/CosNaming/NamingContextPackage/InvalidName.java,
	org/omg/CosNaming/NamingContextPackage/NotEmpty.java,
	org/omg/CosNaming/NamingContextPackage/NotFound.java,
	org/omg/CosNaming/NamingContextPackage/NotFoundReason.java:
	Added SerialVersionUID.

2005-06-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

    * gnu/CORBA/GIOP/uncObjectInputStream.java,
	gnu/CORBA/GIOP/uncObjectInputStream/uncObjectOutputStream.java:
	Deleting files.
    * gnu/CORBA/CDR/uncObjectInputStream.java,
	gnu/CORBA/CDR/uncObjectInputStream/uncObjectOutputStream.java:
	Adding files.

2005-06-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Functional_ORB.java,
	gnu/CORBA/IOR_Delegate.java,
	gnu/CORBA/Simple_delegate.java,
	gnu/CORBA/universalHolder.java,
	gnu/CORBA/CDR/aligningInputStream.java,
	gnu/CORBA/CDR/aligningOutputStream.java,
	gnu/CORBA/CDR/cdrInput.java,
	gnu/CORBA/CDR/cdrOutput.java,
	gnu/CORBA/CDR/encapsulatedOutput.java,
	gnu/CORBA/GIOP/ErrorMessage.java,
	gnu/CORBA/GIOP/MessageHeader.java,
	gnu/CORBA/GIOP/cxCodeSet.java,
	gnu/CORBA/GIOP/v1_2/RequestHeader.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/NamingContextHelper.java:
	Initialise instances of org.omg.SystemException, thrown
	after catching the other exception, with InitCause.

2005-06-03  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicListUI.java
	(damageLayout): Check for list beeing null before revalidating
	it.

2005-06-03  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/PlainDocument.java
	(removeUpdate): Fixed indices in text buffer access.
	* javax/swing/text/PlainView.java
	(drawLine): Simplified element access.

2005-06-03  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTextArea.java
	(constructor): Set preferredSize to a sane default.

2005-06-03  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* gnu/CORBA/GIOP/uncObjectInputStream.java,
	gnu/CORBA/GIOP/uncObjectInputStream/uncObjectOutputStream.java: New streams.
	* org/omg/CORBA/ValueBaseHelper.java: Removing inner classes,
	using uncObjectInputStream, uncObjectOutputStream instead.
	* org/omg/CORBA_2_3/portable.InputStream.java (read_value): 
	Delegate call to ValueBaseHelper.

2005-06-03  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/SendingContext/Runtime.java,
	org/omg/CORBA/SendingContext/RunTimeOperations.java:
	Fixing the package statement.

2005-06-03  Roman Kennke  <roman@kennke.org>

	* javax/swing/SwingUtilites.java
	(replaceUIActionMap): Fixed loop again. Now correctly, I hope.
	* javax/swing/ActionMap.java
	(setParent): Make sure we don't build a loop.
	* javax/swing/plaf/basic/BasicTextUI.java
	(createActionMap): Create ActionMapUIResource instead of
	plain ActionMap.

2005-06-03  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GdkGraphics.java:
	Removed declarations for the previously removed native methods.

2005-06-03  Roman Kennke  <roman@kennke.org>

	* javax/swing/SwingUtilites.java
	(replaceUIActionMap): Fixed condition in while loop that caused
	infinite looping.

2005-06-03  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTableUI.java
	(uninstallDefault): Don't set properties to null, this corrupts
	component state.

2005-06-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* lib/Makefile.am:
	Fix permissions problem with creation of META-INF tree.

2005-06-02  Sven de Marothy  <sven@physto.se>

	* java/awt/Component.java
	(setBackgroundColor): Return if the color equals the existing bgcolor.

2005-06-02  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java:
	(drawImage): Remove reference to GtkOffScreenImage.
	* gnu/java/awt/peer/gtk/GtkImageConsumer.java:
	Add additional comments.

2005-06-02  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GdkGraphics.java:
	(GdkGraphics): New constructor.
	(drawImage): Reimplemented.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java:
	(checkImage,createImage): Reimplemented.
	(prepareImage): Just call the GdkToolkit method.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java:
	(setIconImage): Reimplemented.
	* gnu/java/awt/peer/gtk/GtkImage.java: Reimplemented.
	* gnu/java/awt/peer/gtk/GtkToolkit.java:
	(checkImage): Change handling of GtkImage.
	(createImage): Reimplemented for GtkImage.
	(getColorModel): Return the actual native color model.
	(prepareImage): Reimplemented.
	* include/Makefile.am,
	* native/jni/gtk-peer/Makefile.am: Removed old files, added new ones.
	* include/gnu_java_awt_peer_gtk_GdkGraphics.h,
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c:
	(initFromImage): New method.
	(copyPixmap, flip_pixbuf, copyAndScalePixmap): Removed.
	* include/gnu_java_awt_peer_gtk_GtkFramePeer.h,
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c:
	(nativeSetIconImage): New method.
	(nativeSetIconImageFromData,nativeSetIconImageFromDecoder): Removed.
	* gnu/java/awt/peer/gtk/GtkImageConsumer.java,
	* include/gnu_java_awt_peer_gtk_GtkImage.h,
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c: 
	New files.
	* gnu/java/awt/peer/gtk/GtkImagePainter.java,
	* gnu/java/awt/peer/gtk/GtkOffScreenImage.java,
	* include/gnu_java_awt_peer_gtk_GtkImagePainter.h,
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c:
	Removed files.

2005-06-01  Tom Tromey  <tromey@redhat.com>

	* java/io/ObjectInputStream.java (currentLoader): Fixed typo.

2005-06-01  Tom Tromey  <tromey@redhat.com>

	* org/omg/CosNaming/IstringHelper.java: Changed non-ascii
	characters.

2005-06-01  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/SendingContext/package.html,
	org/omg/SendingContext/RunTimeOperations.java,
	org/omg/SendingContext/Runtime.java: New package.
	
2005-06-01  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/DefaultStyledDocument.java
	(setLogicalStyle): Implemented this method.

2005-06-01  Sven de Marothy  <sven@physto.se>

	* java/util/GregorianCalendar.java
	(setTimeInMillis): Recompute time fields.

2005-06-01  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/CosNaming/BindingType.java,
	org/omg/CosNaming/NameComponent.java,
	org/omg/CosNaming/_BindingIteratorStub.java,
	org/omg/CosNaming/_NamingContextStub.java,
    org/omg/CosNaming/_NamingContextExtStub.java,	
	org/omg/CosNaming/_BindingIteratorImplBase.java,
	org/omg/CosNaming/_NamingContextImplBase.java: Added SerialVersionUID.

2005-06-01  Audrius Meskauskas <AudriusA@Bioinformatics.org>
	
	* org/omg/CosNaming/IstringHelper.java: New class.

2005-06-01  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* gnu/CORBA/CDR/cdrInput.java (read_wstring): Correcting
	check for native encoding.

2005-06-01  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(installComponents): Changed layout of main panel from GridBagLayout
	to BorderLayout (as is the case in Suns JDK). This fixes
	bug#13244.

2005-06-01  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Functional_ORB.java (serveStep),
	gnu/CORBA/gnuRequest.java (submit),
	gnu/CORBA/CDR/cdrInput.java (read_encapsulation): Correcting
	data read loop.

2005-06-01  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Functional_ORG.java (getFreePort): Remember
	the port number in the local variable.

2005-06-01  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/CORBA/SimpleCommunication/
	communication/ourUserExceptionHelper.java (extract): New method.
	* examples/gnu/classpath/examples/CORBA/SimpleCommunication/
	communication/RequestTest.java:Use helper extract method.

2005-06-01  Roman Kennke  <roman@kennke.org>

	* javax/swing/JPopupMenu.java
	(insert): Do not check for index == -1 at this point, this is done
	in java.awt.Container. Catching -1 indices here disturbes the
	Container.addImpl which leads to bug #13247 for example.

2005-06-01  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/PlainDocument.java
	(removeUpdate): Fixed indices in call to rootElement.replace().

2005-06-01  Roman Kennke  <roman@kennke.org>

	* javax/swing/JComponent.java
	(processKeyEvent): Call super.processKeyEvent() so that KeyEvents
	are delivered to registered KeyListeners.

2005-05-31  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg/CORBA_2_3/ORB.java,
	org/omg/CORBA_2_3/portable/InputStream.java,
	org/omg/CORBA/portable/ValueFactory.java: New classes.

2005-05-31  Audrius Meskauskas <AudriusA@Bioinformatics.org>

	* org/omg.CORBA/DynValue.java (declaration): Inherit from DynAny,
	org.omg.CORBA.Object. (set_members): Declare it may throw InvalidSeq.

2005-06-01  Sven de Marothy  <sven@physto.se>

	* java/util/TimeZone (getDefaultTimeZone): Reimplemented.
	(parseTime, getDateParams): New private methods.

2005-06-01  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/java/awt/GradientPaintContext.java: New file.
	* java/awt/GradientPaint.java: Implemented.
	* java/awt/image/IndexColorModel.java: Reimplemented.

2005-05-31 Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/CDR/BigEndianInputStream.java,
	gnu/CORBA/CDR/BigEndianOutputStream.java,
	gnu/CORBA/CDR/LittleEndianInputStream.java,
	gnu/CORBA/CDR/LittleEndianOutputStream.java: New streams.
	gnu/CORBA/CDR/abstractDataInputStream.java,
	gnu/CORBA/CDR/abstractDataOutputStream.java: New interfaces.
	* gnu/CORBA/IOR.java: Implemented parsing of the Little
	Endian encoded IOR references. 
	* gnu/CORBA/Functional_ORB.java, 
	gnu/CORBA/binaryReply.java, 
	gnu/CORBA/gnuRequest.java, 
	gnu/CORBA/CDR/cdrInput.java, 
	gnu/CORBA/CDR/cdrOutput.java, 
	gnu/CORBA/CDR/encapsulatedOutput.java, 
	gnu/CORBA/GIOP/MessageHeader.java: Implemented support
	for Big and Little Endian.
	* org/omg/CORBA/package.html: Documentation update.

2005-05-31  Jeroen Frijters  <jeroen@frijters.net>

	* java/net/ServerSocket.java
	(bound): Removed.
	(local): New field.
	(bind): Cache local socket address.
	(getInetAddress, getLocalPort, getLocalSocketAddress, isBound):
	Use cached local socket address.
	(close): bound field was removed.

2005-05-31  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/nio/channels/FileChannelImpl.java
	(FileChannelImpl()): Removed.
	(FileChannelImpl(File,int)): Made private.
	(create): New method.
	* java/io/FileInputStream.java,
	java/io/FileOutputStream.java,
	java/io/RandomAccessFile.java:
	Updated construction of FileChannelImpl instance.

2005-05-31  Sven de Marothy  <sven@physto.se>

	* java/awt/image/BufferedImage.java:
	(ImageProducer): Use Vector instead of HashMap.
	* java/awt/image/DirectColorModel.java:
	(getAlpha): Default to 255 (opaque).
	
2005-05-30  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTree.java
	(getNextMatch): Implemented new method.

2005-05-30  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalSplitPaneUI.java:
	(createUI): Do not share one instance of MetalSplitPaneUI
	between multiple JSplitPanes.

2005-05-30  Roman Kennke  <roman@kennke.org>

	* javax/swing/JComponent.java:
	Made JComponent.AccessibleJComponent implement
	AccessibleExtendedComponent.

2005-05-30  Roman Kennke  <roman@kennke.org>

	* javax/swing/JButton.java
	(constructor): Set initial actionCommand equal to the buttons label.

2005-05-30  Roman Kennke  <roman@kennke.org>

	* javax/swing/JList.java
	(getNextMatch): Implemented new method.
	(getCellBounds): Implemented new method.

2005-05-30  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Functional_ORB.java (serve, portServer, serveStep):
	Implemented support for the subsequent invocations reusing the same
	socket.
	* gnu/CORBA/GIOP/MessageHeader.java (read): throw
	NO_IMPLEMENT, not MARSHAL for Little Endian request.

2005-05-30  Roman Kennke  <roman@kennke.org>

	* javax/swing/JLayeredPane.java
	(putLayer): Implemented new method.

2005-05-30  Roman Kennke  <roman@kennke.org>

	* javax/swing/JFileChooser.java:
	Fixed values of some constant fields.

2005-05-30  Roman Kennke  <roman@kennke.org>

	* javax/swing/SwingUtilities.java:
	(getWindowAncestor): This method has to be static instead of
	non-static.

2005-05-29  Michael Koch  <konqueror@gmx.de>

	* java/util/LinkedHashMap.java (access): Set 'root.pred'.

2005-05-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CosNaming/_BindingIteratorImplBase.java ,
	org/omg/CosNaming/_NamingContextExtImplBase.java,
	org/omg/CosNaming/_NamingContextImplBase.java: Inherit from
	DynamicImplementation.
	* gnu/CORBA/ServiceRequestAdapter.java: New class.
	* gnu/CORBA/gnuNVList.java (add, add_item):
	Replacing null by constructed instance.

2005-05-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/Functional_ORB.java (serve, useProperties, init):
	Implementing the property-configurable time-outs. 

2005-05-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/gnuRequest.java (p_invoke): Wrap the received UserException into
	UnknownUserException.
	* gnu/CORBA/streamReadyHolder.java: New wrapper for UserException. 
	* org/omg/CORBA/UnknownUserException.java: New exception.

2005-05-27  Roman Kennke  <roman@kennke.org>

	* javax/swing/AbstractButton.java:
	Bumped up serialVersionUID(s) to JDK1.4 compatibility.
	* javax/swing/ImageIcon.java: Likewise.
	* javax/swing/JFileChooser.java: Likewise.
	* javax/swing/JInternalFrame.java: Likewise.
	* javax/swing/JMenu.java: Likewise.
	* javax/swing/JRadioButton.java: Likewise.
	* javax/swing/JScrollPane.java: Likewise.
	* javax/swing/JSpinner.java: Likewise.
	* javax/swing/JTabbedPane.java: Likewise.
	* javax/swing/ImageIcons.java: Likewise.
	* javax/swing/JToggleButton.java: Likewise.
	* javax/swing/JToolTip.java: Likewise.
	* javax/swing/JViewPort.java: Likewise.
	* javax/swing/LayoutFocusTraversalPolicy.java: Likewise.
	* javax/swing/SpinnerDateModel.java: Likewise.
	* javax/swing/TransferHandler.java: Likewise.

2005-05-27  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkContainerPeer.java (setFont): Handle
	lightweight peers specially.

2005-05-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* omg/org/CORBA/ORB.java (create_recursive_sequence_tc): New method.

2005-05-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* omg/org/CORBA/DynValue.java: New interface.

2005-05-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* omg/org/CORBA/package.html: Documentation update.

2005-05-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/ORB.java (create_basic_dyn_any): 
	Declare it may throw an InconsistentTypeCode.
	(create_dyn_any): Remove wrong exception declaration.
	(create_operation_list, create_abstract_interface_tc, 
	create_native_tc, get_service_information): Implementing these methods.
	* org/omg/CORBA/ServerRequest.java (result, except, params, op_name): 
	Marking deprecated.

2005-05-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/net/protocol/http/HTTPURLConnection.java:
	(connect()): Reverted the removal of the exception
	with 404s.

2005-05-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/net/URI.java:
	(getURIGroup(String)): Correctly handle the difference
	between null and undefined optional values.
	(relativize(java.net.URI)): Corrected documentation.
	
2005-05-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/xml/transform/StreamSerializer.java:
	(serialize(org.w3c.dom.Node,java.io.OutputStream,
	boolean)): Add missing 'DOCTYPE' keyword to
	DocumentType node output.
	
2005-05-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/net/protocol/http/HTTPURLConnection.java:
	(connect()): Fixed a null pointer exception with 304
	responses and an inappropriate exception with 404s.
	* gnu/java/net/protocol/http/Request.java:
	(readResponse(java.io.LineInputStream)): Fixed a
	fruitless attempt to read the non-existant body
	of a 304 response.

2005-05-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* examples/Makefile.am:
	Fix command-line options for ecj.
	* lib/Makefile.am:
	Added a META-INF directory structure to glibj.zip.
	* resource/META-INF/services/javax.xml.parsers.DocumentBuilderFactory,
	resource/META-INF/services/javax.xml.parsers.SAXParserFactory,
	resource/META-INF/services/javax.xml.parsers.TransformerFactory,
	resource/META-INF/services/org.xml.sax.driver:
	Properties for the XML facilities.

2005-05-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c
	(create): Prevent min == max scrollbars.
	(setValues): Likewise.

	* java/awt/Component.java (enableInputMethods): Implement.

2005-05-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/TRANSIENT.java (serialVersionUID): Added 1.4 SVUID.

2005-05-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/ValueBaseHelper.java,
	org/omg/CORBA/ValueBaseHolder.java,
	org/omg/CORBA/portable/ValueBase.java: New files.
	* gnu/CORBA/gnuAny.java (insert_Value, extract_Value): 
	Implemented methods. 

2005-05-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* NEWS: Add entry describing GTK scrollbar peer change.
	* INSTALL: Bump GTK requirement to 2.6.x.

2005-05-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/ORB.java (create_dyn_any, create_dyn_array,
	create_dyn_enum, create_dyn_sequence, create_dyn_struct, 
	create_dyn_union, create_policy): Declaring they may throw an
	exceptions.
	* org/omg/CORBA/DefinitionKind.java: Making fields final and inherit
	from IDLEntity, Serializable.
	* org/omg/CORBA/IRObject.java: Inherit from 
	org.omg.CORBA.Object, Serializable, IDLEntity.

2005-05-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Connected_objects.java (cObject, getKey, add, get,
	entrySet, remove),
	* gnu/CORBA/Functional_ORB.java (portServer, getFreePort, connect,
	startService, destroy, disconnect, object_to_string, run, shutdown, 
	find_connected_object, createIOR, finalize): Implemented 
	listening on different ports for different objects.

2005-05-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/AbstractButton.java:
	(constructor): Removed model creation.
	* javax/swing/JButton.java:
	(constructor): Added model creation.
	* javax/swing/JMenuItem.java:
	(init): Added model creation.

2005-05-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/JLayeredPane.java
	(static getLayer): Add cast to force a call to the instance method
	getLayer().
	(getLayeredPaneAbove): Added and implemented method.
	* javax/swing/JInternalFrame.java
	(getLayer): Add cast to force a call to the instance method
	getLayer() of JLayeredPane.

2005-05-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(paint): Added check to make sure the split pane divider has
	a valid location.

2005-05-25  Michael Koch  <konqueror@gmx.de>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c
	(connetJObject): Removed.

2005-05-25  Michael Koch  <konqueror@gmx.de>

	* java/util/Locale.java (getISOStrings):
	Re-implemented for locale properties files.

2005-05-24  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c
	(connectSignals): Connect to new change-value signal.
	(post_change_event): Remove signal handler.
	(slider_moved_cb): New signal handler.
	* configure.ac: Require gtk+-2.0 >= 2.6.

2005-05-24  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/portable/Delegate.java (equals): Compare parameters.

2005-05-24  Gary Benson  <gbenson@redhat.com>

	* java/text/MessageFormat.java (MessageFormatElement.setLocale):
	Handle DateFormat.DEFAULT case correctly.

2005-05-24  Mark Wielaard  <mark@klomp.org>

	* java/util/regex/Pattern.java (split): Assign value of variable
	matched outside while statement.
	* gnu/regexp/RE.java (getCharUnit): Assign value of unit.bk variable
	outside if statement.
	* gnu/CORBA/bufferedResponseHandler.java (createReply): Assign values
	from static class type constants.
	* gnu/CORBA/IOR.java (_write_no_endian): Likewise.
	* gnu/CORBA/Functional_ORB.java (respond_to_client): Likewise.
	(serve): Likewise.

2005-05-23  Mark Wielaard  <mark@klomp.org>

	* lib/Makefile.am (FOUND_JIKES): Add +Pno-switchcheck.

2005-05-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Asynchron.java: New file.
	* org/omg/CORBA/ORB.java (send_multiple_requests_oneway,
	send_multiple_requests_deferred, poll_next_response, 
	get_next_response, perform_work, work_pending): New methods.
	* gnu/CORBA/gnuRequest.java (send_deferred, send_oneway):
	Launch the submission process in a separate thread.
	* org/omg/CORBA/portable/ObjectImpl.java (hashCode): Removing
	redundant method.
	* gnu/CORBA/Functional_ORB.java (send_multiple_requests_oneway,
	send_multiple_requests_deferred, poll_next_response,
	get_next_response, perform_work, work_pending): New methods.
	* gnu/CORBA/Restricted_ORB.java (send_multiple_requests_oneway,
	send_multiple_requests_deferred, poll_next_response,
	get_next_response, perform_work, work_pending): New methods.	

2005-05-23  Tom Tromey  <tromey@redhat.com>

	* doc/hacking.texinfo (Source Code Style Guide): Document UTF-8
	use.
	* lib/Makefile.am (GCJF): New variable.
	(JAVAC): Use it.  Add -encoding option where needed.

2005-05-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/NameValuePair.java: Inherit from Serializable, IDLEntity.
	* org/omg/CORBA/SetOverrideType.java (constuctor): Making protected.
	* org/omg/CORBA/DynFixed.java (set_value): Declare it may throw an 
	InvalidValue.

2005-05-23  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/JTextComponent.java
	(getPreferredScrollableViewportSize): Implemented this method.
	(getScrollableUnitIncrement): Implemented this method.
	(getScrollableBlockIncrement): Implemented this method.

2005-05-23  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTextArea.java
	(getPreferredScrollableViewportSize): Added and implemented
	new method.
	(getScrollableUnitIncrement): Added and implemented new
	method.

2005-05-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/DefinitionKind.java,
	org/omg/CORBA/IRObject.java,
	org/omg/CORBA/IRObjectOperations.java,
	org/omg/CORBA/IDLTypeOperations.java: New files.
	* org/omg/CORBA/IDLType.java: Inherit from IDLTypeOperations.

2005-05-23  Roman Kennke  <roman@kennke.org>

	* javax/swing/JLayeredPane.java
	(getLayer): Added and implemented new (static) method.

2005-05-23  Roman Kennke  <roman@kennke.org>

	* javax/swing/JFileChooser.java
	(constructor(String, FileSystemView)): Added constructor.

2005-05-23  Roman Kennke  <roman@kennke.org>

	* javax/swing/JViewport.java
	(createLayoutManager): Added and implemented new method.
	(constructor): Set the LayoutManager that is created by
	createLayoutManager().
	* javax/swing/plaf/basic/BasicViewportUI.java
	(installUI): Removed setLayout(..). This is moved into
	the constructor of JViewport (as the API docs suggest).

2005-05-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/ORB.java (create_context_list, create_basic_dyn_any,
	create_dyn_any, create_dyn_array,  create_dyn_enum,
	create_dyn_sequence, create_dyn_struct, create_dyn_union,
	create_policy, get_current): New 
	methods. 

2005-05-23  Roman Kennke  <roman@kennke.org>

	* javax/swing/JViewport.java:
	(ViewListener): Added and implemented inner class.
	(createViewListener): Added and implemented new method.
	(setView): Add and remove ViewListener to/from the view component.

2005-05-23  Roman Kennke  <roman@kennke.org>

	* javax/swing/DefaultListSelectionModel.java
	(fireValueChanged(boolean)): Added and implemented this method.

2005-05-23  Roman Kennke  <roman@kennke.org>

	* javax/swing/SwingUtilities.java:
	(getWindowAncestor): Added and implemented this method.

2005-05-23  Roman Kennke  <roman@kennke.org>

	* javax/swing/JFileChooser.java:
	Fixed the values of several public constant fields.

2005-05-23  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* doc/www.gnu.org/tasks.wml: Improved text of the CORBA task.

2005-05-23  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Uncommented code that has accidentally
	been commented out.

2005-05-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/BoxLayout.java
	(maximumLayoutSize): Added checks for overflow. This is necessary
	because some components have maximumSize of Integer.MAX_VALUE,
	that would cause an overflow if summed up.

2005-05-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/tree/TreePath.java
	(getParentPath): Return null if this path only has no parent.

2005-05-22  Roman Kennke  <roman@kennke.org>

        * javax/swing/plaf/basic/BasicTextUI.java:
        (getMaximumSize): Fixed comment.

2005-05-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/tree/TreePath.java:
	Reformatted this file in order to match our coding style.

2005-05-22  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/ServerRequest.java,
	org/omg/CORBA/DynamicImplementation.java:
	New files.

2005-05-22  Dalibor Topic  <robilad@kaffe.org>

	* gnu/java/security/provider/SHA1PRNG.java
	(SEED_SIZE, DATA_SIZE): new constants.  Use them instead of
	magic numbers.
	(SHA1PRNG) Added documentation.

2005-05-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTextUI.java
	(getMaximumSize): Implemented this method.

2005-05-22  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* gnu/CORBA/cdrOutput.java (write_octet_array): Removing
	redundant loop.

2005-05-22  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/ServiceInformation.java,
	org/omg/CORBA/ServiceInformationHelper.java,
	org/omg/CORBA/ServiceInformationHolder: New files.

2005-05-22  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/ServiceDetail.java,
	org/omg/CORBA/ServiceDetailHelper.java,
	gnu/CORBA/ServiceDetailHolder.java: New files.

2005-05-21  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* gnu/CORBA/ObjectCreator.java: Use gnu/CORBA namespace.

2005-05-21  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* gnu/CORBA/universalHolder.java: New file.
	* gnu/CORBA/gnuAny.java (create_input_stream,
	read_value): Use the universalHolder.
	* gnu/CORBA/CDR/aligningInputStream.java
	(getBuffer): New method.

2005-05-21  Andreas Jaeger  <aj@suse.de>

	* java/lang/mprec.c (mult, lshift, b2d, d2b): Add parenthesis to
	avoid warnings.

2005-05-21  Archie Cobbs  <archie@dellroad.org>

	* NEWS: document VM interface changes.
	* java/lang/ClassLoader.java: (vmdata): add
	* vm/reference/java/lang/VMClass.java: (getModifiers()): add
	new parameter ignoreInnerClassesAttrib
	* vm/reference/java/lang/VMClassLoader.java: (defineClass()): remove
	deprecated version (getPrimitiveClass(String)): remove
	(getPrimitiveClass(char)): make native (loadClass()): make native
	* vm/reference/java/lang/VMThread.java: (vmdata): add
	(countStackFrames()): make native
	* vm/reference/java/lang/VMThrowable.java: (vmdata): add
	(fillInStackTrace()): make native
	(getStackTrace()): make native
	* vm/reference/java/lang/reflect/Constructor.java:
	(parameterTypes, exceptionTypes): remove
	(getParameterTypes(), getExceptionTypes()): make native

2005-05-21  Michael Koch  <konqueror@gmx.de>

	* resource/gnu/java/locale/LocaleInformation_as.properties,
	resource/gnu/java/locale/LocaleInformation_bg.properties,
	resource/gnu/java/locale/LocaleInformation_cs.properties,
	resource/gnu/java/locale/LocaleInformation_da.properties,
	resource/gnu/java/locale/LocaleInformation_de.properties,
	resource/gnu/java/locale/LocaleInformation_dz.properties,
	resource/gnu/java/locale/LocaleInformation_en.properties,
	resource/gnu/java/locale/LocaleInformation_en_GB.properties,
	resource/gnu/java/locale/LocaleInformation_en_IE.properties,
	resource/gnu/java/locale/LocaleInformation_en_SG.properties,
	resource/gnu/java/locale/LocaleInformation_es.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_fr.properties,
	resource/gnu/java/locale/LocaleInformation_ga.properties,
	resource/gnu/java/locale/LocaleInformation_hi.properties,
	resource/gnu/java/locale/LocaleInformation_it.properties,
	resource/gnu/java/locale/LocaleInformation_ja.properties,
	resource/gnu/java/locale/LocaleInformation_ko.properties,
	resource/gnu/java/locale/LocaleInformation_mr.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_ps.properties,
	resource/gnu/java/locale/LocaleInformation_pt.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_uz_AF.properties,
	resource/gnu/java/locale/LocaleInformation_zh.properties,
	resource/gnu/java/locale/LocaleInformation_zh_Hant.properties:
	Regenerated with newer gnu.localegen to fix newline bug.

2005-05-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/text/DateFormatSymbols.java:
	(getStringArray(java.util.ResourceBundle,String)):
	Fixed parsing of new property files.
	(getZoneStrings(java.util.ResourceBundle)):
	Likewise.
	
2005-05-21  Dalibor Topic  <robilad@kaffe.org>

        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
        (area_updated): Delete jpixels reference after use to avoid wasting references.

2005-05-20  Audrius Meskauskas, <AudriusA@Bioinformatics.org>
    * doc/www.gnu.org/tasks.wml: Adding CORBA task.

2005-05-20  Roman Kennke  <roman@kennke.org>

	* java/awt/DefaultKeyboardFocusManager.java:
	Documentation fixes.

2005-05-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/JTextComponent.java
	(CaretBlinkTimer): Added inner class to make caret blinking.
	(constructor): Create one instance of CaretBlinkTimer.
	(setEditable): Switch caret on and off depending on the editable
	property.
	(setCare): Register caret with the CaretBlinkTimer.
	* javax/swing/text/DefaultCaret.java:
	Set a good blink rate of 500ms.

2005-05-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/JEditorPane.java:
	(processComponentKeyEvent): Removed this method. This blocks
	key events from beeing delivered and is not in the API.
	(processKeyEvent): Removed this method. This blocks
	key events from beeing delivered and is not in the API.

2005-05-20  Roman Kennke  <roman@kennke.org>

	* java/awt/DefaultKeyboardFocusManager.java
	(processKeyEvent): Properly swallow KEY_TYPED events after
	a KEY_PRESSED event for a focusTraversalKey has been received.
	Otherwise the focusTraversalKey (e.g. a TAB) would end up
	beeing delivered to the focused component.

2005-05-20  Roman Kennke  <roman@kennke.org>

	* java/awt/Component.java
	(dispatchEventImpl): Let MouseEvents trigger a focus change
	on lightweight components.

2005-05-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTextField.java
	(constructor): Set default value for the horizontalAlignment
	property.

2005-05-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(setButtonIcons): Added checks for null references.

2005-05-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/JProgressBar.java
	(paintBorder): Check if border is null before trying to paint it.
	* javax/swing/plaf/basic/BasicProgressBarUI.java
	(paint): Don't paint the border here. This would lead to the border
	beeing painted twice.

2005-05-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/SwingUtilities.java
	(convertPoint): Check for visibility of source and destination
	before calling convertPointToScreen or convertPointFromScreen.

2005-05-20  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/SetOverrideType.java (_ADD_OVERRIDE, _SET_OVERRIDE),
	org/omg/CORBA/CompletionStatus.java
	(_COMPLETED_YES, _COMPLETED_NO, _COMPLETED_MAYBE): Making public.
	* org/omg/CORBA/ValueMember.java: Inherit from 
	org.omg.CORBA.portable.IDLEntity.

2005-05-20  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/portable/ApplicationException.java,
	org/omg/CORBA/portable/RemarshalException.java:
	Adding serialVersionUID.
	*org/omg/CORBA/portable/OutputStream.java(write_Context):
	Making concrete.
	org/omg/CORBA/portable/ServantObject.java (servant):
	Fixing typo in the field name.

2005-05-20  Michael Koch  <konqueror@gmx.de>

	* scripts/generate-locale-list.sh:
	Use the new locale properties files.

2005-05-20  Robert Schuster  <thebohemian@gmx.net>

	* javax/swing/SizeRequirements.java: Removed two non-UTF8 chars.

2005-05-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/net/URI.java:
	Added more documentation.
	(RFC2396_MARK): Removed.
	(RFC2396_UNRESERVED): Changed to RFC3986_UNRESERVED and updated.
	(RFC2396_REG_NAME): Changed to RFC3986_REG_NAME and updated.
	(RFC2396_PCHAR): Changed to RFC3986_PCHAR and updated.
	(RFC2396_SEGMENT): Changed to RFC3986_SEGMENT and updated.
	(RFC2396_PATH_SEGMENTS): Changed to RFC3986_PATH_SEGMENTS.
	(RFC3986_UNRESERVED): New field.
	(RFC3986_SSP): New field.
	(RFC3986_HOST): New field.
	(RFC3986_USERINFO): New field.
	(static): New initializer to initialize patterns with class.
	(parseURI()): Moved authority parsing to parseServerAuthority().
	(unquote(String)): Removed invalid exception for non-ASCII chars.
	(quote(String)): Implemented.
	(quoteAuthority(String)): Adapted to use new fields.
	(quote(String,String)): Moved escaping of characters to another
	method.
	(quoteHost(String)): Implemented.
	(quotePath(String)): Adapted to use new fields.
	(quoteUserInfo(String)): Implemented.
	(parseServerAuthority()): Implemented.
	(normalize()): Implemented.
	(normalizePath(String)): Implemented as part of normalize().
	(removeLastSegment(StringBuffer)): Likewise.
	(relativize(java.net.URI)): Implemented.
	(equals(Object)): Implemented.
	(hashCode()): Implemented.
	(compareTo(Object)): Implemented.
	(compareFragments(java.net.URI)): Implemented.
	(toString()): Use fields directly.
	(toASCIIString()): Implemented.
	(escapeCharacters(String)): Implemented to escape non-ASCII characters.

2005-05-19  Roman Kennke  <roman@kennke.org>

	* javax/swing/SizeRequirements.java
	(constructors): Implemented.
	(getTiledSizeRequirements): Implemented.
	(calculateTiledPositions): Implemented.

2005-05-19  Roman Kennke  <roman@kennke.org>

	* javax/swing/SizeRequirements.java:
	Added API documentation for this class.

2005-05-19  Roman Kennke  <roman@kennke.org>

	* javax/swing/SizeRequirements.java:
	Reformatted file to meet our coding standards.

2005-05-19  Roman Kennke  <roman@kennke.org>

	* javax/swing/SwingUtilities.java
	(getUIInputMap): Return the InputMap that has been set by
	the UI of the component, not the component's own InputMap.
	(getUIActionMap): Return the ActionMap that has been set by
	the UI of the component, not the component's own ActionMap.

2005-05-19  Roman Kennke  <roman@kennke.org>

	* javax/swing/FocusManager.java:
	Reformatted this file to match our coding standard.

2005-05-19  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/BasicFileChooserUI.java:
	(installComponents): Include parents ComboBox. This has been
	commented out because ComboBox was broken (see previous entry).

2005-05-19  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalComboBoxUI.java
	(createUI): Do not share instances of this UI class between
	different JComboBoxes.

2005-05-19  Kim Ho  <kho@luxsci.net>

	* javax/swing/DefaultComboBoxModel.java:
	(addElement): Set index to be the element of the added item.
	(removeAllElements): Clear before retrieving new size. Use
	correct size.
	* javax/swing/JFileChooser.java: Implemented.
	* javax/swing/filechooser/FileSystemView.java: Implemented.
	* javax/swing/filechooser/UnixFileSystemView.java: New file.
	Implemented.
	* javax/swing/plaf/basic/BasicComboBoxUI.java:
	(intervalAdded): Set initial index to start.
	* javax/swing/plaf/basic/BasicDirectoryModel.java: New file.
	Implemented.
	* javax/swing/plaf/basic/BasicFileChooserUI.java: New file.
	Implemented.
	* javax/swing/plaf/basic/BasicLookAndFeel.java: Add FileChooserUI.
	Commented out GIF properties for FileChooser stuff.

2005-05-19  Michael Koch  <konqueror@gmx.de>

	* lib/Makefile.am: Remove accidentally commited -nowarn option for
	jikes.

2005-05-19  Michael Koch  <konqueror@gmx.de>

	* java/text/DateFormatSymbols.java
	(getStringArray): New method.
	(getZoneStrings): Likewise.
	(DateFormatSymbols): Load symbols from properties files.
	* java/util/Locale.java
	(getDisplayLanguage): Handle new way to load language names.
	(getDisplayCountry): Handle new way to load territory names.
	(getDisplayVariant): Handle new way to load variant names.
	* lib/Makefile.am, lib/gen-classlist.sh.in:
	No need to special case classes from gnu.java.locale anymore.
	* scripts/generate-locale-list.sh:
	Generate list from the new properties files.
	* LICENSE: Added license of locale data properties files.

2005-05-19  Michael Koch  <konqueror@gmx.de>

	* resource/gnu/java/locale/LocaleInformation_aa_DJ.properties,
	resource/gnu/java/locale/LocaleInformation_aa_ER.properties,
	resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties,
	resource/gnu/java/locale/LocaleInformation_aa_ET.properties,
	resource/gnu/java/locale/LocaleInformation_aa.properties,
	resource/gnu/java/locale/LocaleInformation_af.properties,
	resource/gnu/java/locale/LocaleInformation_af_ZA.properties,
	resource/gnu/java/locale/LocaleInformation_am_ET.properties,
	resource/gnu/java/locale/LocaleInformation_am.properties,
	resource/gnu/java/locale/LocaleInformation_ar_DZ.properties,
	resource/gnu/java/locale/LocaleInformation_ar_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ar_IQ.properties,
	resource/gnu/java/locale/LocaleInformation_ar_JO.properties,
	resource/gnu/java/locale/LocaleInformation_ar_KW.properties,
	resource/gnu/java/locale/LocaleInformation_ar_LB.properties,
	resource/gnu/java/locale/LocaleInformation_ar_LY.properties,
	resource/gnu/java/locale/LocaleInformation_ar_MA.properties,
	resource/gnu/java/locale/LocaleInformation_ar.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_as.properties,
	resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties,
	resource/gnu/java/locale/LocaleInformation_be_BY.properties,
	resource/gnu/java/locale/LocaleInformation_be.properties,
	resource/gnu/java/locale/LocaleInformation_bg_BG.properties,
	resource/gnu/java/locale/LocaleInformation_bg.properties,
	resource/gnu/java/locale/LocaleInformation_bn_IN.properties,
	resource/gnu/java/locale/LocaleInformation_bn.properties,
	resource/gnu/java/locale/LocaleInformation_ca_ES.properties,
	resource/gnu/java/locale/LocaleInformation_ca.properties,
	resource/gnu/java/locale/LocaleInformation_cs_CZ.properties,
	resource/gnu/java/locale/LocaleInformation_cs.properties,
	resource/gnu/java/locale/LocaleInformation_cy_GB.properties,
	resource/gnu/java/locale/LocaleInformation_cy.properties,
	resource/gnu/java/locale/LocaleInformation_da_DK.properties,
	resource/gnu/java/locale/LocaleInformation_da.properties,
	resource/gnu/java/locale/LocaleInformation_de_AT.properties,
	resource/gnu/java/locale/LocaleInformation_de_BE.properties,
	resource/gnu/java/locale/LocaleInformation_de_CH.properties,
	resource/gnu/java/locale/LocaleInformation_de_DE.properties,
	resource/gnu/java/locale/LocaleInformation_de_LI.properties,
	resource/gnu/java/locale/LocaleInformation_de_LU.properties,
	resource/gnu/java/locale/LocaleInformation_de.properties,
	resource/gnu/java/locale/LocaleInformation_dv_MV.properties,
	resource/gnu/java/locale/LocaleInformation_dv.properties,
	resource/gnu/java/locale/LocaleInformation_dz_BT.properties,
	resource/gnu/java/locale/LocaleInformation_dz.properties,
	resource/gnu/java/locale/LocaleInformation_el_GR.properties,
	resource/gnu/java/locale/LocaleInformation_el.properties,
	resource/gnu/java/locale/LocaleInformation_en_AS.properties,
	resource/gnu/java/locale/LocaleInformation_en_AU.properties,
	resource/gnu/java/locale/LocaleInformation_en_BE.properties,
	resource/gnu/java/locale/LocaleInformation_en_BW.properties,
	resource/gnu/java/locale/LocaleInformation_en_BZ.properties,
	resource/gnu/java/locale/LocaleInformation_en_CA.properties,
	resource/gnu/java/locale/LocaleInformation_en_GB.properties,
	resource/gnu/java/locale/LocaleInformation_en_GU.properties,
	resource/gnu/java/locale/LocaleInformation_en_HK.properties,
	resource/gnu/java/locale/LocaleInformation_en_IE.properties,
	resource/gnu/java/locale/LocaleInformation_en_IN.properties,
	resource/gnu/java/locale/LocaleInformation_en_MH.properties,
	resource/gnu/java/locale/LocaleInformation_en_MP.properties,
	resource/gnu/java/locale/LocaleInformation_en_MT.properties,
	resource/gnu/java/locale/LocaleInformation_en_NZ.properties,
	resource/gnu/java/locale/LocaleInformation_en_PH.properties,
	resource/gnu/java/locale/LocaleInformation_en_PK.properties,
	resource/gnu/java/locale/LocaleInformation_en.properties,
	resource/gnu/java/locale/LocaleInformation_en_SG.properties,
	resource/gnu/java/locale/LocaleInformation_en_UM.properties,
	resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties,
	resource/gnu/java/locale/LocaleInformation_en_US.properties,
	resource/gnu/java/locale/LocaleInformation_en_VI.properties,
	resource/gnu/java/locale/LocaleInformation_en_ZA.properties,
	resource/gnu/java/locale/LocaleInformation_en_ZW.properties,
	resource/gnu/java/locale/LocaleInformation_eo.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.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_et_EE.properties,
	resource/gnu/java/locale/LocaleInformation_et.properties,
	resource/gnu/java/locale/LocaleInformation_eu_ES.properties,
	resource/gnu/java/locale/LocaleInformation_eu.properties,
	resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
	resource/gnu/java/locale/LocaleInformation_fa_IR.properties,
	resource/gnu/java/locale/LocaleInformation_fa.properties,
	resource/gnu/java/locale/LocaleInformation_fi_FI.properties,
	resource/gnu/java/locale/LocaleInformation_fi.properties,
	resource/gnu/java/locale/LocaleInformation_fo_FO.properties,
	resource/gnu/java/locale/LocaleInformation_fo.properties,
	resource/gnu/java/locale/LocaleInformation_fr_BE.properties,
	resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
	resource/gnu/java/locale/LocaleInformation_fr_CH.properties,
	resource/gnu/java/locale/LocaleInformation_fr_LU.properties,
	resource/gnu/java/locale/LocaleInformation_fr.properties,
	resource/gnu/java/locale/LocaleInformation_ga_IE.properties,
	resource/gnu/java/locale/LocaleInformation_ga.properties,
	resource/gnu/java/locale/LocaleInformation_gl_ES.properties,
	resource/gnu/java/locale/LocaleInformation_gl.properties,
	resource/gnu/java/locale/LocaleInformation_gu_IN.properties,
	resource/gnu/java/locale/LocaleInformation_gu.properties,
	resource/gnu/java/locale/LocaleInformation_gv_GB.properties,
	resource/gnu/java/locale/LocaleInformation_gv.properties,
	resource/gnu/java/locale/LocaleInformation_he_IL.properties,
	resource/gnu/java/locale/LocaleInformation_he.properties,
	resource/gnu/java/locale/LocaleInformation_hi_IN.properties,
	resource/gnu/java/locale/LocaleInformation_hi.properties,
	resource/gnu/java/locale/LocaleInformation_hr.properties,
	resource/gnu/java/locale/LocaleInformation_hu_HU.properties,
	resource/gnu/java/locale/LocaleInformation_hu.properties,
	resource/gnu/java/locale/LocaleInformation_hy_AM.properties,
	resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties,
	resource/gnu/java/locale/LocaleInformation_hy.properties,
	resource/gnu/java/locale/LocaleInformation_id_ID.properties,
	resource/gnu/java/locale/LocaleInformation_id.properties,
	resource/gnu/java/locale/LocaleInformation_is_IS.properties,
	resource/gnu/java/locale/LocaleInformation_is.properties,
	resource/gnu/java/locale/LocaleInformation_it_CH.properties,
	resource/gnu/java/locale/LocaleInformation_it_IT.properties,
	resource/gnu/java/locale/LocaleInformation_it.properties,
	resource/gnu/java/locale/LocaleInformation_iu.properties,
	resource/gnu/java/locale/LocaleInformation_ja_JP.properties,
	resource/gnu/java/locale/LocaleInformation_ja.properties,
	resource/gnu/java/locale/LocaleInformation_ka.properties,
	resource/gnu/java/locale/LocaleInformation_kk_KZ.properties,
	resource/gnu/java/locale/LocaleInformation_kk.properties,
	resource/gnu/java/locale/LocaleInformation_kl_GL.properties,
	resource/gnu/java/locale/LocaleInformation_kl.properties,
	resource/gnu/java/locale/LocaleInformation_km_KH.properties,
	resource/gnu/java/locale/LocaleInformation_km.properties,
	resource/gnu/java/locale/LocaleInformation_kn_IN.properties,
	resource/gnu/java/locale/LocaleInformation_kn.properties,
	resource/gnu/java/locale/LocaleInformation_ko_KR.properties,
	resource/gnu/java/locale/LocaleInformation_ko.properties,
	resource/gnu/java/locale/LocaleInformation_kw_GB.properties,
	resource/gnu/java/locale/LocaleInformation_kw.properties,
	resource/gnu/java/locale/LocaleInformation_ky.properties,
	resource/gnu/java/locale/LocaleInformation_lo_LA.properties,
	resource/gnu/java/locale/LocaleInformation_lo.properties,
	resource/gnu/java/locale/LocaleInformation_lt_LT.properties,
	resource/gnu/java/locale/LocaleInformation_lt.properties,
	resource/gnu/java/locale/LocaleInformation_lv_LV.properties,
	resource/gnu/java/locale/LocaleInformation_lv.properties,
	resource/gnu/java/locale/LocaleInformation_mk.properties,
	resource/gnu/java/locale/LocaleInformation_ml_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ml.properties,
	resource/gnu/java/locale/LocaleInformation_mn_MN.properties,
	resource/gnu/java/locale/LocaleInformation_mn.properties,
	resource/gnu/java/locale/LocaleInformation_mr_IN.properties,
	resource/gnu/java/locale/LocaleInformation_mr.properties,
	resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
	resource/gnu/java/locale/LocaleInformation_ms_MY.properties,
	resource/gnu/java/locale/LocaleInformation_ms.properties,
	resource/gnu/java/locale/LocaleInformation_mt_MT.properties,
	resource/gnu/java/locale/LocaleInformation_mt.properties,
	resource/gnu/java/locale/LocaleInformation_nb_NO.properties,
	resource/gnu/java/locale/LocaleInformation_nb.properties,
	resource/gnu/java/locale/LocaleInformation_nl_BE.properties,
	resource/gnu/java/locale/LocaleInformation_nl_NL.properties,
	resource/gnu/java/locale/LocaleInformation_nl.properties,
	resource/gnu/java/locale/LocaleInformation_nn_NO.properties,
	resource/gnu/java/locale/LocaleInformation_nn.properties,
	resource/gnu/java/locale/LocaleInformation_om_ET.properties,
	resource/gnu/java/locale/LocaleInformation_om_KE.properties,
	resource/gnu/java/locale/LocaleInformation_om.properties,
	resource/gnu/java/locale/LocaleInformation_or_IN.properties,
	resource/gnu/java/locale/LocaleInformation_or.properties,
	resource/gnu/java/locale/LocaleInformation_pa_IN.properties,
	resource/gnu/java/locale/LocaleInformation_pa.properties,
	resource/gnu/java/locale/LocaleInformation_pl_PL.properties,
	resource/gnu/java/locale/LocaleInformation_pl.properties,
	resource/gnu/java/locale/LocaleInformation.properties,
	resource/gnu/java/locale/LocaleInformation_ps_AF.properties,
	resource/gnu/java/locale/LocaleInformation_ps.properties,
	resource/gnu/java/locale/LocaleInformation_pt_BR.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_ro_RO.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_IN.properties,
	resource/gnu/java/locale/LocaleInformation_sa.properties,
	resource/gnu/java/locale/LocaleInformation_sk.properties,
	resource/gnu/java/locale/LocaleInformation_sk_SK.properties,
	resource/gnu/java/locale/LocaleInformation_sl.properties,
	resource/gnu/java/locale/LocaleInformation_so_DJ.properties,
	resource/gnu/java/locale/LocaleInformation_so_ET.properties,
	resource/gnu/java/locale/LocaleInformation_so_KE.properties,
	resource/gnu/java/locale/LocaleInformation_so.properties,
	resource/gnu/java/locale/LocaleInformation_so_SO.properties,
	resource/gnu/java/locale/LocaleInformation_sq_AL.properties,
	resource/gnu/java/locale/LocaleInformation_sq.properties,
	resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
	resource/gnu/java/locale/LocaleInformation_sr.properties,
	resource/gnu/java/locale/LocaleInformation_sv_FI.properties,
	resource/gnu/java/locale/LocaleInformation_sv.properties,
	resource/gnu/java/locale/LocaleInformation_sv_SE.properties,
	resource/gnu/java/locale/LocaleInformation_sw_KE.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_ta.properties,
	resource/gnu/java/locale/LocaleInformation_te_IN.properties,
	resource/gnu/java/locale/LocaleInformation_te.properties,
	resource/gnu/java/locale/LocaleInformation_th.properties,
	resource/gnu/java/locale/LocaleInformation_th_TH.properties,
	resource/gnu/java/locale/LocaleInformation_ti_ER.properties,
	resource/gnu/java/locale/LocaleInformation_ti_ET.properties,
	resource/gnu/java/locale/LocaleInformation_ti.properties,
	resource/gnu/java/locale/LocaleInformation_tr.properties,
	resource/gnu/java/locale/LocaleInformation_tr_TR.properties,
	resource/gnu/java/locale/LocaleInformation_tt.properties,
	resource/gnu/java/locale/LocaleInformation_tt_RU.properties,
	resource/gnu/java/locale/LocaleInformation_uk.properties,
	resource/gnu/java/locale/LocaleInformation_uk_UA.properties,
	resource/gnu/java/locale/LocaleInformation_ur.properties,
	resource/gnu/java/locale/LocaleInformation_uz_AF.properties,
	resource/gnu/java/locale/LocaleInformation_uz.properties,
	resource/gnu/java/locale/LocaleInformation_vi.properties,
	resource/gnu/java/locale/LocaleInformation_zh_CN_Hans.properties,
	resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
	resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties,
	resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties,
	resource/gnu/java/locale/LocaleInformation_zh.properties,
	resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties,
	resource/gnu/java/locale/LocaleInformation_zh_TW_Hant.properties:
	New files.
	* gnu/java/locale/LocaleInformation_aa_DJ.java,
	gnu/java/locale/LocaleInformation_aa_ER.java,
	gnu/java/locale/LocaleInformation_aa_ER_SAAHO.java,
	gnu/java/locale/LocaleInformation_aa_ET.java,
	gnu/java/locale/LocaleInformation_aa.java,
	gnu/java/locale/LocaleInformation_af.java,
	gnu/java/locale/LocaleInformation_af_ZA.java,
	gnu/java/locale/LocaleInformation_am_ET.java,
	gnu/java/locale/LocaleInformation_am.java,
	gnu/java/locale/LocaleInformation_ar_DZ.java,
	gnu/java/locale/LocaleInformation_ar_IN.java,
	gnu/java/locale/LocaleInformation_ar_IQ.java,
	gnu/java/locale/LocaleInformation_ar.java,
	gnu/java/locale/LocaleInformation_ar_JO.java,
	gnu/java/locale/LocaleInformation_ar_KW.java,
	gnu/java/locale/LocaleInformation_ar_LB.java,
	gnu/java/locale/LocaleInformation_ar_LY.java,
	gnu/java/locale/LocaleInformation_ar_MA.java,
	gnu/java/locale/LocaleInformation_ar_QA.java,
	gnu/java/locale/LocaleInformation_ar_SA.java,
	gnu/java/locale/LocaleInformation_ar_SY.java,
	gnu/java/locale/LocaleInformation_ar_TN.java,
	gnu/java/locale/LocaleInformation_ar_YE.java,
	gnu/java/locale/LocaleInformation_as_IN.java,
	gnu/java/locale/LocaleInformation_as.java,
	gnu/java/locale/LocaleInformation_az_Cyrl.java,
	gnu/java/locale/LocaleInformation_az.java,
	gnu/java/locale/LocaleInformation_be_BY.java,
	gnu/java/locale/LocaleInformation_be.java,
	gnu/java/locale/LocaleInformation_bg_BG.java,
	gnu/java/locale/LocaleInformation_bg.java,
	gnu/java/locale/LocaleInformation_bn_IN.java,
	gnu/java/locale/LocaleInformation_bn.java,
	gnu/java/locale/LocaleInformation_br_FR.java,
	gnu/java/locale/LocaleInformation_bs_BA.java,
	gnu/java/locale/LocaleInformation_byn_ER.java,
	gnu/java/locale/LocaleInformation_byn.java,
	gnu/java/locale/LocaleInformation_ca_ES.java,
	gnu/java/locale/LocaleInformation_ca.java,
	gnu/java/locale/LocaleInformation_cs_CZ.java,
	gnu/java/locale/LocaleInformation_cs.java,
	gnu/java/locale/LocaleInformation_cy_GB.java,
	gnu/java/locale/LocaleInformation_cy.java,
	gnu/java/locale/LocaleInformation_da_DK.java,
	gnu/java/locale/LocaleInformation_da.java,
	gnu/java/locale/LocaleInformation_de_AT.java,
	gnu/java/locale/LocaleInformation_de_BE.java,
	gnu/java/locale/LocaleInformation_de_CH.java,
	gnu/java/locale/LocaleInformation_de_DE.java,
	gnu/java/locale/LocaleInformation_de.java,
	gnu/java/locale/LocaleInformation_de_LI.java,
	gnu/java/locale/LocaleInformation_de_LU.java,
	gnu/java/locale/LocaleInformation_dv.java,
	gnu/java/locale/LocaleInformation_dv_MV.java,
	gnu/java/locale/LocaleInformation_dz_BT.java,
	gnu/java/locale/LocaleInformation_dz.java,
	gnu/java/locale/LocaleInformation_el_GR.java,
	gnu/java/locale/LocaleInformation_el.java,
	gnu/java/locale/LocaleInformation_en_AS.java,
	gnu/java/locale/LocaleInformation_en_AU.java,
	gnu/java/locale/LocaleInformation_en_BE.java,
	gnu/java/locale/LocaleInformation_en_BW.java,
	gnu/java/locale/LocaleInformation_en_BZ.java,
	gnu/java/locale/LocaleInformation_en_CA.java,
	gnu/java/locale/LocaleInformation_en_DK.java,
	gnu/java/locale/LocaleInformation_en_GB.java,
	gnu/java/locale/LocaleInformation_en_GU.java,
	gnu/java/locale/LocaleInformation_en_HK.java,
	gnu/java/locale/LocaleInformation_en_IE.java,
	gnu/java/locale/LocaleInformation_en_IN.java,
	gnu/java/locale/LocaleInformation_en.java,
	gnu/java/locale/LocaleInformation_en_MH.java,
	gnu/java/locale/LocaleInformation_en_MP.java,
	gnu/java/locale/LocaleInformation_en_MT.java,
	gnu/java/locale/LocaleInformation_en_NZ.java,
	gnu/java/locale/LocaleInformation_en_PH.java,
	gnu/java/locale/LocaleInformation_en_PK.java,
	gnu/java/locale/LocaleInformation_en_SG.java,
	gnu/java/locale/LocaleInformation_en_UM.java,
	gnu/java/locale/LocaleInformation_en_US.java,
	gnu/java/locale/LocaleInformation_en_US_POSIX.java,
	gnu/java/locale/LocaleInformation_en_VI.java,
	gnu/java/locale/LocaleInformation_en_ZA.java,
	gnu/java/locale/LocaleInformation_en_ZW.java,
	gnu/java/locale/LocaleInformation_eo.java,
	gnu/java/locale/LocaleInformation_es_AR.java,
	gnu/java/locale/LocaleInformation_es_BO.java,
	gnu/java/locale/LocaleInformation_es_CL.java,
	gnu/java/locale/LocaleInformation_es_CO.java,
	gnu/java/locale/LocaleInformation_es_CR.java,
	gnu/java/locale/LocaleInformation_es_DO.java,
	gnu/java/locale/LocaleInformation_es_EC.java,
	gnu/java/locale/LocaleInformation_es_ES.java,
	gnu/java/locale/LocaleInformation_es_GT.java,
	gnu/java/locale/LocaleInformation_es_HN.java,
	gnu/java/locale/LocaleInformation_es.java,
	gnu/java/locale/LocaleInformation_es_MX.java,
	gnu/java/locale/LocaleInformation_es_NI.java,
	gnu/java/locale/LocaleInformation_es_PA.java,
	gnu/java/locale/LocaleInformation_es_PE.java,
	gnu/java/locale/LocaleInformation_es_PR.java,
	gnu/java/locale/LocaleInformation_es_PY.java,
	gnu/java/locale/LocaleInformation_es_SV.java,
	gnu/java/locale/LocaleInformation_es_US.java,
	gnu/java/locale/LocaleInformation_es_UY.java,
	gnu/java/locale/LocaleInformation_es_VE.java,
	gnu/java/locale/LocaleInformation_et_EE.java,
	gnu/java/locale/LocaleInformation_et.java,
	gnu/java/locale/LocaleInformation_eu_ES.java,
	gnu/java/locale/LocaleInformation_eu.java,
	gnu/java/locale/LocaleInformation_fa_AF.java,
	gnu/java/locale/LocaleInformation_fa_IR.java,
	gnu/java/locale/LocaleInformation_fa.java,
	gnu/java/locale/LocaleInformation_fi_FI.java,
	gnu/java/locale/LocaleInformation_fi.java,
	gnu/java/locale/LocaleInformation_fo_FO.java,
	gnu/java/locale/LocaleInformation_fo.java,
	gnu/java/locale/LocaleInformation_fr_BE.java,
	gnu/java/locale/LocaleInformation_fr_CA.java,
	gnu/java/locale/LocaleInformation_fr_CH.java,
	gnu/java/locale/LocaleInformation_fr.java,
	gnu/java/locale/LocaleInformation_fr_LU.java,
	gnu/java/locale/LocaleInformation_ga_IE.java,
	gnu/java/locale/LocaleInformation_ga.java,
	gnu/java/locale/LocaleInformation_gez_ER.java,
	gnu/java/locale/LocaleInformation_gez_ET.java,
	gnu/java/locale/LocaleInformation_gez.java,
	gnu/java/locale/LocaleInformation_gl_ES.java,
	gnu/java/locale/LocaleInformation_gl.java,
	gnu/java/locale/LocaleInformation_gu_IN.java,
	gnu/java/locale/LocaleInformation_gu.java,
	gnu/java/locale/LocaleInformation_gv_GB.java,
	gnu/java/locale/LocaleInformation_gv.java,
	gnu/java/locale/LocaleInformation_haw.java,
	gnu/java/locale/LocaleInformation_haw_US.java,
	gnu/java/locale/LocaleInformation_he_IL.java,
	gnu/java/locale/LocaleInformation_he.java,
	gnu/java/locale/LocaleInformation_hi_IN.java,
	gnu/java/locale/LocaleInformation_hi.java,
	gnu/java/locale/LocaleInformation_hr.java,
	gnu/java/locale/LocaleInformation_hu_HU.java,
	gnu/java/locale/LocaleInformation_hu.java,
	gnu/java/locale/LocaleInformation_hy_AM.java,
	gnu/java/locale/LocaleInformation_hy_AM_REVISED.java,
	gnu/java/locale/LocaleInformation_hy.java,
	gnu/java/locale/LocaleInformation_id_ID.java,
	gnu/java/locale/LocaleInformation_id.java,
	gnu/java/locale/LocaleInformation_is_IS.java,
	gnu/java/locale/LocaleInformation_is.java,
	gnu/java/locale/LocaleInformation_it_CH.java,
	gnu/java/locale/LocaleInformation_it_IT.java,
	gnu/java/locale/LocaleInformation_it.java,
	gnu/java/locale/LocaleInformation_iu.java,
	gnu/java/locale/LocaleInformation_iw_IL.java,
	gnu/java/locale/LocaleInformation_ja.java,
	gnu/java/locale/LocaleInformation_ja_JP.java,
	gnu/java/locale/LocaleInformation.java,
	gnu/java/locale/LocaleInformation_ka.java,
	gnu/java/locale/LocaleInformation_kk.java,
	gnu/java/locale/LocaleInformation_kk_KZ.java,
	gnu/java/locale/LocaleInformation_kl_GL.java,
	gnu/java/locale/LocaleInformation_kl.java,
	gnu/java/locale/LocaleInformation_km.java,
	gnu/java/locale/LocaleInformation_km_KH.java,
	gnu/java/locale/LocaleInformation_kn_IN.java,
	gnu/java/locale/LocaleInformation_kn.java,
	gnu/java/locale/LocaleInformation_ko.java,
	gnu/java/locale/LocaleInformation_kok_IN.java,
	gnu/java/locale/LocaleInformation_kok.java,
	gnu/java/locale/LocaleInformation_ko_KR.java,
	gnu/java/locale/LocaleInformation_kw_GB.java,
	gnu/java/locale/LocaleInformation_kw.java,
	gnu/java/locale/LocaleInformation_ky.java,
	gnu/java/locale/LocaleInformation_lo.java,
	gnu/java/locale/LocaleInformation_lo_LA.java,
	gnu/java/locale/LocaleInformation_lt.java,
	gnu/java/locale/LocaleInformation_lt_LT.java,
	gnu/java/locale/LocaleInformation_lv.java,
	gnu/java/locale/LocaleInformation_lv_LV.java,
	gnu/java/locale/LocaleInformation_mk.java,
	gnu/java/locale/LocaleInformation_ml_IN.java,
	gnu/java/locale/LocaleInformation_ml.java,
	gnu/java/locale/LocaleInformation_mn.java,
	gnu/java/locale/LocaleInformation_mn_MN.java,
	gnu/java/locale/LocaleInformation_mr_IN.java,
	gnu/java/locale/LocaleInformation_mr.java,
	gnu/java/locale/LocaleInformation_ms_BN.java,
	gnu/java/locale/LocaleInformation_ms.java,
	gnu/java/locale/LocaleInformation_ms_MY.java,
	gnu/java/locale/LocaleInformation_mt.java,
	gnu/java/locale/LocaleInformation_mt_MT.java,
	gnu/java/locale/LocaleInformation_nb.java,
	gnu/java/locale/LocaleInformation_nb_NO.java,
	gnu/java/locale/LocaleInformation_nl_BE.java,
	gnu/java/locale/LocaleInformation_nl.java,
	gnu/java/locale/LocaleInformation_nl_NL.java,
	gnu/java/locale/LocaleInformation_nn.java,
	gnu/java/locale/LocaleInformation_nn_NO.java,
	gnu/java/locale/LocaleInformation_no_NO.java,
	gnu/java/locale/LocaleInformation_oc_FR.java,
	gnu/java/locale/LocaleInformation_om_ET.java,
	gnu/java/locale/LocaleInformation_om.java,
	gnu/java/locale/LocaleInformation_om_KE.java,
	gnu/java/locale/LocaleInformation_or_IN.java,
	gnu/java/locale/LocaleInformation_or.java,
	gnu/java/locale/LocaleInformation_pa_IN.java,
	gnu/java/locale/LocaleInformation_pa.java,
	gnu/java/locale/LocaleInformation_pl.java,
	gnu/java/locale/LocaleInformation_pl_PL.java,
	gnu/java/locale/LocaleInformation_ps_AF.java,
	gnu/java/locale/LocaleInformation_ps.java,
	gnu/java/locale/LocaleInformation_pt_BR.java,
	gnu/java/locale/LocaleInformation_pt.java,
	gnu/java/locale/LocaleInformation_pt_PT.java,
	gnu/java/locale/LocaleInformation_ro.java,
	gnu/java/locale/LocaleInformation_ro_RO.java,
	gnu/java/locale/LocaleInformation_ru.java,
	gnu/java/locale/LocaleInformation_ru_RU.java,
	gnu/java/locale/LocaleInformation_ru_UA.java,
	gnu/java/locale/LocaleInformation_sa_IN.java,
	gnu/java/locale/LocaleInformation_sa.java,
	gnu/java/locale/LocaleInformation_se_NO.java,
	gnu/java/locale/LocaleInformation_sid_ET.java,
	gnu/java/locale/LocaleInformation_sid.java,
	gnu/java/locale/LocaleInformation_sk.java,
	gnu/java/locale/LocaleInformation_sk_SK.java,
	gnu/java/locale/LocaleInformation_sl.java,
	gnu/java/locale/LocaleInformation_so_DJ.java,
	gnu/java/locale/LocaleInformation_so_ET.java,
	gnu/java/locale/LocaleInformation_so.java,
	gnu/java/locale/LocaleInformation_so_KE.java,
	gnu/java/locale/LocaleInformation_so_SO.java,
	gnu/java/locale/LocaleInformation_sq_AL.java,
	gnu/java/locale/LocaleInformation_sq.java,
	gnu/java/locale/LocaleInformation_sr.java,
	gnu/java/locale/LocaleInformation_sr_Latn.java,
	gnu/java/locale/LocaleInformation_sv_FI.java,
	gnu/java/locale/LocaleInformation_sv.java,
	gnu/java/locale/LocaleInformation_sv_SE.java,
	gnu/java/locale/LocaleInformation_sw.java,
	gnu/java/locale/LocaleInformation_sw_KE.java,
	gnu/java/locale/LocaleInformation_sw_TZ.java,
	gnu/java/locale/LocaleInformation_syr.java,
	gnu/java/locale/LocaleInformation_syr_SY.java,
	gnu/java/locale/LocaleInformation_ta_IN.java,
	gnu/java/locale/LocaleInformation_ta.java,
	gnu/java/locale/LocaleInformation_te_IN.java,
	gnu/java/locale/LocaleInformation_te.java,
	gnu/java/locale/LocaleInformation_tg_TJ.java,
	gnu/java/locale/LocaleInformation_th.java,
	gnu/java/locale/LocaleInformation_th_TH.java,
	gnu/java/locale/LocaleInformation_ti_ER.java,
	gnu/java/locale/LocaleInformation_ti_ET.java,
	gnu/java/locale/LocaleInformation_tig_ER.java,
	gnu/java/locale/LocaleInformation_tig.java,
	gnu/java/locale/LocaleInformation_ti.java,
	gnu/java/locale/LocaleInformation_tr.java,
	gnu/java/locale/LocaleInformation_tr_TR.java,
	gnu/java/locale/LocaleInformation_tt.java,
	gnu/java/locale/LocaleInformation_tt_RU.java,
	gnu/java/locale/LocaleInformation_uk.java,
	gnu/java/locale/LocaleInformation_uk_UA.java,
	gnu/java/locale/LocaleInformation_ur.java,
	gnu/java/locale/LocaleInformation_uz_AF.java,
	gnu/java/locale/LocaleInformation_uz.java,
	gnu/java/locale/LocaleInformation_vi.java,
	gnu/java/locale/LocaleInformation_wal_ET.java,
	gnu/java/locale/LocaleInformation_wal.java,
	gnu/java/locale/LocaleInformation_zh_CN_Hans.java,
	gnu/java/locale/LocaleInformation_zh_Hant.java,
	gnu/java/locale/LocaleInformation_zh_HK_Hant.java,
	gnu/java/locale/LocaleInformation_zh.java,
	gnu/java/locale/LocaleInformation_zh_MO_Hant.java,
	gnu/java/locale/LocaleInformation_zh_SG_Hans.java,
	gnu/java/locale/LocaleInformation_zh_TW_Hant.java:
	Removed.

2005-05-18  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Window.java (createBufferStrategy): Remove unnecessary
	try-catch blocks.
	* java/awt/Canvas.java (createBufferStrategy): Likewise.

	* gnu/java/awt/peer/gtk/GtkVolatileImage.java: Fix imports.

	* gnu/java/security/provider/DSASignature.java: Import updates
	from GNU Crypto.

2005-05-18  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/MenuSelectionManager.java
	(processMouseEvent): Clear selected path if the mouse was released
	over non-menu component.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java
	(Constructor): Removed initialization of mouseInputListener.
	(installListeners): Do not add mouseInputListener to this popup
	menu. Instead it will be added to the root container of the popup
	menu.
	(uninstallListeners): Remove code that removed mouseInputListener
	from popupMenu.
	(popupMenuWillBecomeInvisible): If this popup menu is the last
	menu on the screen, then stop interrupting mouse events through
	the glass pane.
	(popupMenuWillBecomeVisible): Add mouseInputListener to glass pane
	if it was not added before and make glass pane visible in order to
	interrupt mouse evevents.
	(MouseInputHandler): Close menu hierarchy if the mouse was clicked
	on non menu component.

2005-05-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/JEditorPane.java
	(isManagingFocus): According to Suns API documentation this
	method is not implemented in this class. Also the
	implementation did not add any value. Removed.

2005-05-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/JSeparator.java
	(isFocusTraversable): According to Suns API documentation this
	method is not implemented in this class. Also the
	implementation did not add any value. Removed.

2005-05-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/AbstractButton.java
	(isFocusTraversable): According to Suns API documentation this
	method is not implemented in this class. Also the
	implementation did not add any value. Removed.

2005-05-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/ImageIcon.java
	(AccessibleImageIcon): Added inner class for Accessibility support
	in ImageIcon.
	(getAccessibleContext): Added method for accessibility support
	in ImageIcon.

2005-05-18  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java
	(createCompatibleVolatileImage(int,int)): Implement.
	(createCompatibleVolatileImage(int,int,ImageCapabilities)):
	Likewise.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (backBuffer, caps):
	New fields.
	(createVolatileImage): Implement.
	(createBuffers): Likewise.
	(getBackBuffer): Likewise.
	(flip): Likewise.
	(destroyBuffers): Likewise.
	* gnu/java/awt/peer/gtk/GtkVolatileImage.java: New file.
	* java/awt/Canvas.java (CanvasBltBufferStrategy): New class.
	(CanvasFlipBufferStrategy): Likewise.
	(createBufferStrategy(int)): New method.
	(createBufferStrategy(int,BufferCapabilities)): Likewise.
	* java/awt/Component.java (BltBufferStrategy): Implement and
	document class.
	(FlipBufferStrategy): Likewise.
	* java/awt/Window.java (WindowBltBufferStrategy): New class.
	(WindowFlipBufferStrategy): Likewise.
	(createBufferStrategy(int)): New method.
	(createBufferStrategy(int,BufferCapabilities)): Likewise.
	(getBufferStrategy): Likewise.
	* java/awt/BufferCapabilities.java (BufferCapabilities): Rename
	front to frontCaps and back to backCaps.

2005-05-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTable.java:
	(BooleanCellRenderer): Added default renderer for Boolean cell values.
	(DateCellRenderer): Added default renderer for Date cell values.
	(DoubleCellRenderer): Added default renderer for Double cell values.
	(FloatCellRenderer): Added default renderer for Float cell values.
	(NumberCellRenderer): Added default renderer for Number cell values.
	(IconCellRenderer): Added default renderer for Icon cell values.
	(createDefaultRenderers): Include new default renderers.
	(distributeSpill): Fix algorithm to do a nice layout, if still not
	beeing 100% perfect.
	(doLayout): Correctly calculate the spill variable.

2005-05-18  Roman Kennke  <roman@kennke.org>

	* java/awt/Window.java
	(isShowing): A Window can be showing even if its parent is not
	showing.

2005-05-18  Roman Kennke  <roman@kennke.org>

	* java/util/prefs/AbstractPreferences.java
	(flushNode): Changed toArray() call to toArray(new String[0]) call
	to avoid casting errors.

2005-05-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/JTextComponent.java
	(constructor): Make text components editable by default.

2005-05-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/UIManager.java
	(toString): Added method.

2005-05-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/SwingUtilities.java
	(getUIInputMap): Added method.
	(getUIActionMap): Added method.

2005-05-18  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/DynAny.java,
	org/omg/CORBA/DynArray.java,
	org/omg/CORBA/DynSequence.java,
	org/omg/CORBA/DynEnum.java,
	org/omg/CORBA/DynFixed.java,
	org/omg/CORBA/DynStruct.java,
	org/omg/CORBA/DynUnion.java: New interfaces.
	* org/omg/CORBA/NameValuePair.java,
	org/omg/CORBA/NameValuePairHelper.java,
	gnu/CORBA/DynAn/NameValuePairHolder.java:
	New classes.

2005-05-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/JComponent.java
	(constructor): Make component requestFocusEnabled by default.
	(requestFocusInWindow): Added method.

2005-05-18  Sven de Marothy <sven@physto.se>

	* java/text/SimpleDateFormat.java
	(computeOffset): Allow timezone to be first in the parsed String.

2005-05-18  Sven de Marothy <sven@physto.se>

	* javax/swing/table/DefaultTableCellRenderer.java
	(getTableCellRendererComponent): Allow table parameter to be null.
	
2005-05-17  Jan Roehrich  <jan@roehrich.info>

	* javax/swing/JTree.java
	(getExpandedDescendants): Added method.

2005-05-17  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTree.java
	(TreeModelHandler): Added inner class.
	(TreeSelectionRedirector): Added inner class.
	(EmptySelectionModel): Added inner class.
	(DynamicUtilTreeNode.getChildAt): Added method.
	(constructor(model)): Sets up a model and a selection model.
	(setModel): Set up the JTree treeModelListener on newly set
	models.
	(createModelListener): Added method.
	(getDefaultTreeModel): Added method.
	(convertValueToText): Added method.
	(paramString): Added method.

2005-05-16  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/CurrentOperations.java,
	org/omg/CORBA/Current.java,
	org/omg/CORBA/PolicyError.java,
	org/omg/CORBA/NO_RESOURCES.java: New files.

2005-05-16  Audrius Meskauskas, <AudriusA@Bioinformatics.org>
	
	* org/omg/CORBA/ValueMember: Inherit from Serializable and IDLEntity.
	* org/omg/CORBA/IDLType: Inherit from org.omg.CORBA.Object.

2005-05-16  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/PRIVATE_MEMBER.java,
	org/omg/CORBA/PUBLIC_MEMBER.java
	(value): Changing the type from int to short.

2005-05-16  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/portable/OutputStream.java
	(read): Declaring and commenting the IOException.

2005-05-16  Audrius Meskauskas, <AudriusA@Bioinformatics.org>

	* org/omg/CosNaming/BindingIterator.java: Inherit from
	Serializable, IDLEntity and org.omg.CORBA.Object.

2005-05-16  Tom Tromey  <tromey@redhat.com>

	* java/nio/charset/Charset.java (encode, decode): Synchronize on
	'this', not the class.

2005-05-16  Tom Tromey  <tromey@redhat.com>

	* gnu/java/net/protocol/http/Headers.java (parse): Include final
	character of line.

2005-05-16  Tom Tromey  <tromey@redhat.com>

	* java/net/URI.java (unquote): Handle lower-case letters as well.

2005-05-16  Ziga Mahkovec  <ziga.mahkovec@klika.si>

	PR libgcj/20504
	gnu/regexp/RE.java: Add support for quoting constructs.

2005-05-15  Tom Tromey  <tromey@redhat.com>

	* java/lang/String.java (startsWith): Fixed javadoc.

2005-05-15  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JComponent.java: Removed invalid char from comment.

2005-05-15  Audrius Meskauskas, Lithuania  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/TestContextList.java,
	gnu/CORBA/CDR/testBinaryIO.java: Removing tests from the core.

2005-05-15  Audrius Meskauskas, Lithuania  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Version.java,
	gnu/CORBA/IOR.java,
	gnu/CORBA/IOR_contructed_object.java,
	gnu/CORBA/Restricted_ORB.java,
	gnu/CORBA/Functional_ORB.java,
	gnu/CORBA/gnuAny.java,
	gnu/CORBA/gnuContext.java,
	gnu/CORBA/gnuContextList.java,
	gnu/CORBA/gnuEnvironment.java,
	gnu/CORBA/gnuExceptionList.java,
	gnu/CORBA/gnuRequest.java,
	gnu/CORBA/gnuNVList.java,
	gnu/CORBA/gnuNamedValue.java,
	gnu/CORBA/Simple_delegate.java,
	gnu/CORBA/BigDecimalHelper.java,
	gnu/CORBA/Unexpected.java,
	gnu/CORBA/OctetHolder.java,
	gnu/CORBA/TypeCodeHelper.java,
	gnu/CORBA/corbaArrayList.java,
	gnu/CORBA/WCharHolder.java,
	gnu/CORBA/WStringHolder.java,
	gnu/CORBA/IOR_Delegate.java,
	gnu/CORBA/fixedTypeCode.java,
	gnu/CORBA/generalTypeCode.java,
	gnu/CORBA/holderFactory.java,
	gnu/CORBA/recordTypeCode.java,
	gnu/CORBA/recursiveTypeCode.java,
	gnu/CORBA/stringTypeCode.java,
	gnu/CORBA/Connected_objects.java,
	gnu/CORBA/ByteArrayComparator.java,
	gnu/CORBA/binaryReply.java,
	gnu/CORBA/typeNamer.java,
	gnu/CORBA/streamRequest.java,
	gnu/CORBA/stubFinder.java,
	gnu/CORBA/bufferedResponseHandler.java,
	gnu/CORBA/ExceptionCreator.java,
	gnu/CORBA/ObjectCreator.java,
	gnu/CORBA/aliasTypeCode.java: New files.
	* org/omg/CORBA/TestContextList.java,
	gnu/CORBA/CDR/testBinaryIO.java: New tests.
	* gnu/CORBA/NamingService/snConverter.java,
	gnu/CORBA/NamingService/Ext.java,
	gnu/CORBA/NamingService/cmpNameComponent.java,
	gnu/CORBA/NamingService/TransientContext.java,
	gnu/CORBA/NamingService/NamingMap.java,
	gnu/CORBA/NamingService/Binding_iterator_impl.java,
	gnu/CORBA/NamingService/NamingServiceTransient.java,
	gnu/CORBA/NamingService/NameValidator.java: New files.
	* gnu/CORBA/CDR/aligningInputStream.java,
	gnu/CORBA/CDR/aligningOutputStream.java,
	gnu/CORBA/CDR/cdrOutput.java,
	gnu/CORBA/CDR/cdrInput.java,
	gnu/CORBA/CDR/cdrBufOutput.java,
	gnu/CORBA/CDR/encapsulatedOutput.java,
	gnu/CORBA/CDR/cdrBufInput.java,
	gnu/CORBA/CDR/testBinaryIO.java: New files.
	* org/omg/CORBA/StringHolder.java,
	* org/omg/CORBA/StringSeqHelper.java,
	* org/omg/CORBA/StringSeqHolder.java: Read and write string,
	not wstring and use stringTypeCode.
	* org/omg/CORBA/Any.java: Adding serialVersionUID.
	* org/omg/CORBA/FixedHolder: Use fixedTypeCode.
	* org/omg/CORBA/UNKNOWN.java: Making constructors public.
	* org/omg/CORBA/UserException.java: Inherit 
	from org.omg.CORBA.portable.IDLEntity.
	* org/omg/CORBA/ORB.java,
	org/omg/CORBA/Object.java: Replacing empty class 
	declarations with implementation.
	* gnu/CORBA/primitiveTypeCode.java: Exception fixes.
	* gnu/CORBA/primitiveArrayTypeCode.java: Adding extra
	parameter in constructor.
	* gnu/CORBA/GIOP/CancelHeader.java,
	gnu/CORBA/GIOP/ErrorMessage.java,
	gnu/CORBA/GIOP/MessageHeader.java,
	gnu/CORBA/GIOP/ReplyHeader.java,
	gnu/CORBA/GIOP/RequestHeader.java,
	gnu/CORBA/GIOP/ServiceContext.java,
	gnu/CORBA/GIOP/cxCodeSet.java,
	gnu/CORBA/GIOP/CharSets_OSF.java,
	gnu/CORBA/GIOP/v1_0/CancelHeader.java,
	gnu/CORBA/GIOP/v1_0/RequestHeader.java,
	gnu/CORBA/GIOP/v1_0/ReplyHeader.java,
	gnu/CORBA/GIOP/v1_2/RequestHeader.java,
	gnu/CORBA/GIOP/v1_2/ReplyHeader.java: New files.
	org/omg/CosNaming/_NamingContextStub.java,
	org/omg/CosNaming/_NamingContextImplBase.java,
	org/omg/CosNaming/BindingHelper.java,
	org/omg/CosNaming/BindingListHelper.java,
	org/omg/CosNaming/NameComponentHelper.java,
	org/omg/CosNaming/NameHelper.java,
	org/omg/CosNaming/BindingTypeHelper.java,
	org/omg/CosNaming/NamingContextHelper.java,
	org/omg/CosNaming/BindingIteratorHelper.java,
	org/omg/CosNaming/_NamingContextExtStub.java,
	org/omg/CosNaming/NamingContextExt.java,
	org/omg/CosNaming/NamingContextExtHelper.java,
	org/omg/CosNaming/NamingContextExtHolder.java,
	org/omg/CosNaming/NamingContextExtOperations.java,
	org/omg/CosNaming/_NamingContextExtImplBase.java,
	org/omg/CosNaming/NamingContextOperations.java,
	org/omg/CosNaming/NamingContext.java,
	org/omg/CosNaming/NameComponent.java,
	org/omg/CosNaming/BindingIterator.java,
	org/omg/CosNaming/_BindingIteratorStub.java,
	org/omg/CosNaming/Binding.java,
	org/omg/CosNaming/BindingType.java,
	org/omg/CosNaming/BindingIteratorHolder.java,
	org/omg/CosNaming/BindingListHolder.java,
	org/omg/CosNaming/BindingHolder.java,
	org/omg/CosNaming/BindingTypeHolder.java,
	org/omg/CosNaming/NameComponentHolder.java,
	org/omg/CosNaming/NameHolder.java,
	org/omg/CosNaming/NamingContextHolder.java,
	org/omg/CosNaming/_BindingIteratorImplBase.java,
	org/omg/CosNaming/package.html,
	org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.java,
	org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.java,
	org/omg/CosNaming/NamingContextExtPackage/package.html,
	org/omg/CosNaming/NamingContextExtPackage/AddressHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.java,
	org/omg/CosNaming/NamingContextPackage/NotEmpty.java,
	org/omg/CosNaming/NamingContextPackage/NotFound.java,
	org/omg/CosNaming/NamingContextPackage/NotFoundReason.java,
	org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java,
	org/omg/CosNaming/NamingContextPackage/NotFoundHolder.java,
	org/omg/CosNaming/NamingContextPackage/NotEmptyHolder.java,
	org/omg/CosNaming/NamingContextPackage/AlreadyBoundHolder.java,
	org/omg/CosNaming/NamingContextPackage/CannotProceedHolder.java,
	org/omg/CosNaming/NamingContextPackage/InvalidNameHolder.java,
	org/omg/CosNaming/NamingContextPackage/CannotProceed.java,
	org/omg/CosNaming/NamingContextPackage/InvalidName.java,
	org/omg/CosNaming/NamingContextPackage/AlreadyBound.java,
	org/omg/CosNaming/NamingContextPackage/NotFoundHelper.java,
	org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java,
	org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.java,
	org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java,
	org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java,
	org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.java,
	org/omg/CosNaming/NamingContextPackage/package.html: New files.
	* examples/gnu/classpath/examples/CORBA/NamingService/Demo.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/Demo.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/comServer.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/passThisHelper.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/passThisHolder.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/returnThis.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/passThis.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/returnThisHelper.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/returnThisHolder.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DirectTest.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/RequestTest.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/comServant.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/ourUserException.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/node.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/nodeHelper.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/nodeHolder.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_comTesterStub.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/ourUserExceptionHelper.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_comTesterImplBase.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/comTester.java: 
	New IIOP (CORBA) examples.

2005-05-14  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomDocumentBuilder.java,
	  gnu/xml/dom/transform/XSLUriResolver.java: Handle unqualified
        relative URLs.
	* gnu/xml/dom/ls/SAXEventSink.java: Ignore XML entities in start/
	end entity callbacks.

2005-05-13  Roman Kennke  <roman@kennke.org>

	* javax/swing/JDialog.java
	(setDefaultCloseOperation): Don't throw an IllegalArgumentException
	but instead accept illegal values as DO_NOTHING_ON_CLOSE.

2005-05-13  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(createMessageArea): Enabled input components to be used
	in OptionPanes.

2005-05-13  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicProgressBarUI.java
	(getPreferredSize): Changed implementation so that getGraphics()
	is not used (this triggers a NPE).

2005-05-13  Roman Kennke  <roman@kennke.org>

	* javax/swing/ScrollPaneLayout.java
	(getViewportBorderBounds): Documented methods.

2005-05-13  Roman Kennke  <roman@kennke.org>

	* javax/swing/RepaintManager.java:
	(getVolatileOffscreenBuffer): Added methods.

2005-05-13  Roman Kennke  <roman@kennke.org>

	* javax/swing/DefaultButtonModel.java:
	Removed superfluous semicolon.

2005-05-13  Roman Kennke  <roman@kennke.org>

	* javax/swing/AbstractButton.java
	(ButtonChangeListener): Added this inner class.

2005-05-13  Roman Kennke  <roman@kennke.org>

	* javax/swing/JComponent.java
	(requestFocus): Added method.
	(requestFocus(boolean)): Added method.
	(requestFocusInWindow): Added method.
	(addNotify): Added method.
	(removeNotify): Added method.
	(contains): Added method.
	(disable): Added method.
	(enable): Added method.
	(getGraphics): Added method.
	(getX): Added method.
	(getY): Added method.
	(getHeight): Added method.
	(getWidth): Added method.
	(getPropertyChangeListener): Added method.
	(print): Added method.
	(printAll): Added method.
	(printComponent): Added method.
	(printChildren): Added method.
	(printBorder): Added method.
	(processMouseMotionEvent): Added method.
	(reshape): Added method.

2005-05-12  Roman Kennke  <roman@kennke.org>

	* examples/gnu/classpath/examples/swing/Demo.java:
	Added a JTable example.

2005-05-12  Roman Kennke  <roman@kennke.org>

	* examples/gnu/classpath/examples/swing/Demo.java:
	Added Examples menu to menu bar.
	Slightly changed the layout of the main panel so that an overlenghty
	button panel at the bottom is displayed in a useful way.

2005-05-12  Roman Kennke  <roman@kennke.org>

	* examples/gnu/classpath/examples/swing/Demo.java:
	Added examples for JEditorPane and JTree.

2005-05-11  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/DefaultMenuLayout.java:
	Added this class.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java
	(installUI): Use the new DefaultMenuLayout instead of GridBagLayout.

2005-05-11  Roman Kennke  <roman@kennke.org>

	* javax/swing/AbstractCellEditor.java
	(constructor): Implemented.
	(isCellEditable): Implemented.
	(shouldSelectCell): Implemented.
	(stopCellEditing): Implemented.
	(cancelCellEditing): Implemented.

2005-05-11  Roman Kennke  <roman@kennke.org>

	* javax/swing/AbstractCellEditor.java:
	Documented this class.

2005-05-11  Roman Kennke  <roman@kennke.org>

	* javax/swing/AbstractCellEditor.java:
	Reformatted this file to our coding style.

2005-05-11  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(createSeparator): Implemented. Returns a vertical separator with
	a height of 17 pixels as recommended in the book Java Look & Feel
	Design Guidelines.
	(installComponents): Added an empty border around the dialog.

2005-05-11  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/View.java
	(insertUpdate) Removed a debug println statement.

2005-05-11  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.insertUpdate): Added. Forwards the update to the real
	root view.
	(RootView.removeUpdate): Added. Forwards the update to the real
	root view.
	(RootView.changedUpdate): Added. Forwards the update to the real
	root view.
	(DocumentHandler): Added. Receives DocumentEvents and forwards
	them to the corresponding View methods.
	(installDocumentListeners): Installs Document listeners on the
	text component's document model.
	* javax/swing/plaf/text/FieldView.java
	(adjustAllocation): Added. Adjusts the view area so that the
	input line is centered vertically and correctly aligned horizontally.
	(modelToView): Call adjustAllocation before call to
	super.modelToView(..).
	(paint): Call adjustAllocation before call to super.paint(..).
	(insertUpdate): Added. Calls adjustAllocation before call to
	super.insertUpdate(..).
	(removeUpdate): Added. Calls adjustAllocation before call to
	super.removeUpdate(..).
	(changedUpdate): Added. Calls adjustAllocation before call to
	super.changedUpdate(..).
	* javax/swing/text/JTextComponent.java:
	Removed RepaintListener. This is no longer needed and should
	instead be handled by the text component's View.
	* javax/swing/plaf/text/View.java
	(paint): If parent is null, we still need to make sure the
	text component is updated through calling revalidate().
	(insertUpdate): Added. Receive notification about changes in the
	text document model.
	(removeUpdate): Added. Receive notification about changes in the
	text document model.
	(changedUpdate): Added. Receive notification about changes in the
	text document model.
	(updateChildren): Added. Updates the list of child Views after
	text has been modified.
	(forwardUpdate): Added. Forwards the update notification to the
	child Views.
	(forwardUpdateToView): Added. Actually performs the forwarding of
	update events.
	(updateLayout): Added. Makes sure that the display is in sync with
	the model.

2005-05-11  Roman Kennke  <roman@kennke.org>

	* javax/swing/JTextField.java
	(createDefaultModel): Create and return a subclass of PlainDocument
	to allow newlines to be swallowed.

2005-05-11  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/faq/faq.wml: Update looking at proprietary source
	code entry.

2005-05-10  David Daney  <ddaney@avtrex.com>

	* java/util/BitSet.java (get(int, int)): Fix breakage when
	requested set doesn't start on a multiple of 64.

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

	* configure.ac (CLASSPATH_INCLUDES): Remove quotes in checking
	messages.

2005-05-10  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/ClassLoader.java
	(defaultGetSystemClassLoader): Refactored in three new methods.
	(createExtClassLoader, createSystemClassLoader,
	createAuxiliarySystemClassLoader): New methods.

2005-05-06  Robert Schuster  <thebohemian@gmx.net>

	* java/awt/Frame.java:
	(setUndecorated): Toggled boolean expression.

2005-05-06  Mark Wielaard  <mark@klomp.org>

	Reported by Kalle Olavi Niemitalo <kon@iki.fi>.
	Workaround for gcj bug #21418
	* lib/gen-classlist.sh.in: Set LC_ALL and LANG to C. Sort result of
	find.

2005-05-06  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/PlainView.java
	(getPreferredSpan): Corrected the calculation of the span of
	the view.

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-05-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* include/java_lang_VMProcess.h:
	Regenerated.
	* native/jni/java-lang/java_lang_VMProcess.c:
	Added missing #include statement.
	
2005-05-05  Chris Burdess  <dog@gnu.org>

	* gnu/xml/transform/StreamSerializer.java: Produce compact,
	human-readable XML for non-UTF/ASCII encodings using NIO.

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.
	* java/lang/ProcessBuilder.java: New file.

2005-05-04  Mark Wielaard  <mark@klomp.org>

	* java/awt/BufferCapabilities.java (BufferCapabilities): Make
	documentation of arguments match code.

2005-05-04  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/image/BufferStrategy.java: Document.

	* java/awt/BufferCapabilities.java: Document.

2005-05-04  Tom Tromey  <tromey@redhat.com>

	* java/nio/channels/FileLock.java (toString): Entirely avoid
	String "+".

2005-05-04  Andrew Overholt  <overholt@redhat.com>

	* java/nio/channels/FileLock.java (toString): Re-implement using
	StringBuffer.

2005-05-04  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/ImageCapabilities.java: Document.

	* java/awt/image/VolatileImage.java: Unindent copyright header.

2005-05-04  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/PlainView.java
	(drawUnselectedText): Call Utilities.drawTabbedText() with correct
	offset parameter.
	* javax/swing/text/Utilities.java
	(drawTabbedText): Initilialize local variable pos correctly.

2005-05-04  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/AbstractDocument.java
	(LeafElement): Made start and end package private fields for
	effective reindexing.
	* javax/swing/text/PlainDocument.java
	(constructor): The field rootElement is always BranchElement,
	so we handle it	as such.
	(removeUpdate): Rewritten reindexing for removeUpdate so that
	the actual removal is taken into account.

2005-05-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/image/VolatileImage.java: Document.

2005-05-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
	(init_glib_threads): Check if threading system is already
	initialized.

2005-05-03  Andrew Overholt  <overholt@redhat.com>

	* gnu/java/nio/channels/FileChannelImpl.java: Return null if lock
	could not be acquired.
	* java/nio/channels/FileLock.java (toString): Re-implement to be
	in line with other implementations.

2005-05-03  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/GapContent.java:
	Removed debugging output stuff, which I accidentally left in.

2005-05-03  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/GapContent.java:
	Implemented a real GapContent. Only the public methods have
	been implemented so far and still no UndoableEdit support.

2005-05-02  David Gilbert  <david.gilbert@object-refinery.com>

	* java/text/DecimalFormat.java
	(hashCode): Reimplemented and added API docs.

2005-05-02  Michael Koch  <konqueror@gmx.de>

	* lib/Makefile.am: Delete CVS directories and .cvsignore files
	for resources we copy into the release tarball.

2005-05-01  Tom Tromey  <tromey@redhat.com>

	* .classpath: Updated.
	* .project: Added new builders.
	* .externalToolBuilders/Autogen.launch: New file.
	* .externalToolBuilders/Configure.launch: New file.
	* .settings/org.eclipse.jdt.core.prefs: New file.
	* .settings/org.eclipse.jdt.ui.prefs: New file.

2005-05-01  Andreas Tobler  <toa@pop.agri.ch>

	* autogen.sh: Use glibtoolize on Darwin.

2005-05-01  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Set version to 0.15+cvs.

	* doc/www.gnu.org/announce/20050429.wml: New file.
	* doc/www.gnu.org/newsitems.txt: Add announcement.
	* doc/www.gnu.org/downloads/downloads.wml: Add 0.15 download.

2005-05-01  Mark Wielaard  <mark@klomp.org>

	* NEWS: Add 0.15 release date and new features.
	* configure.ac: Set version to 0.15.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
	(window_delete_cb): Don't use C++ style comments.

	* doc/api/Makefile.am (clean): Renamed.
	(clean-local): Renamed from clean.

2005-04-30  Mark Wielaard  <mark@klomp.org>

	* java/io/ObjectInputStream.java
	(currentLoader): Don't create SecurityManager, directly call
	VMObjectInputStream.currentClassLoader().
	(resolveProxyClass): Use currentLoader().
	* vm/reference/java/io/VMObjectInputStream.java
	(currentClassLoader(SecurityManager)): Removed.
	(currentClassLoader): New method.
	* native/jni/java-io/java_io_VMObjectInputStream.c
	(Java_java_io_VMObjectInputStream_currentClassLoader): Removed.
	* include/java_io_VMObjectInputStream.h: Regenerated.

	* NEWS: Document new interface and reference implementation.

2005-04-30  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkToolkit.java (prepareImage): Only prepare
	GtkImages.

2005-04-30  Robert Schuster  <thebohemian@gmx.net>

    * doc/hacking.texinfo: Added section about dealing with
    unrealistic code paths.

2005-04-30  Robert Schuster  <thebohemian@gmx.net>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c: Fixed
	copyright header.

2005-04-30  Robert Schuster  <thebohemian@gmx.net>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
	(window_delete_cb): Made the function return TRUE.

2005-04-30  Robert Schuster  <thebohemian@gmx.net>

	* NEWS: Documented aadition of
	"gnu.classpath.boot.library.path".

2005-04-29  Dalibor Topic  <robilad@kaffe.org>

	* java/nio/channels/FileChannelImpl.java
	(FileChannelImpl(Sting, int)): Removed.
	(FileChannelImpl(File, int)) Added. Check if opened file is a
	directory.

	* java/io/FileInputStream.java(FileInputStream): Fixed javadocs.
	Call FileChannelImpl(File, int).

	* java/io/FileOutputStream.java	(FileInputStream): Call
	FileChannelImpl(File, int).

	* java/io/RandomAccessFile.java (RandomAccessFile):
	Call FileChannelImpl(File, int). Switched constructors around.

2005-04-29  Audrius Meskauskas  <AudriusA@bluewin.ch>

	* org/omg/CORBA/WStringSeqHelper.java,
	org/omg/CORBA/AnySeqHelper.java,
	org/omg/CORBA/BooleanSeqHelper.java,
	org/omg/CORBA/CharSeqHelper.java,
	org/omg/CORBA/DoubleSeqHelper.java,
	org/omg/CORBA/FloatSeqHelper.java,
	org/omg/CORBA/LongLongSeqHelper.java,
	org/omg/CORBA/LongSeqHelper.java,
	org/omg/CORBA/OctetSeqHelper.java,
	org/omg/CORBA/ShortSeqHelper.java,
	org/omg/CORBA/StringSeqHelper.java,
	org/omg/CORBA/ULongLongSeqHelper.java,
	org/omg/CORBA/ULongSeqHelper.java,
	org/omg/CORBA/UShortSeqHelper.java,
	org/omg/CORBA/WCharSeqHelper.java:
	Removing redundant object instantiation. 

2005-04-29  Sven de Marothy  <sven@physto.se>
	    Mark Wielaard  <mark@klomp.org>

	* java/nio/charset/Charset.java (defaultCharset): Use
	SystemProperties.
	(provider): Check gnu.classpath.nio.charset.provider.iconv system
	property and return the IconvProvider when set.

	* NEWS: Document new character encoder framework.

2005-04-29  Michael Koch  <konqueror@gmx.de>

	* java/nio/charset/Charset.java
	(defaultCharset): Reformatted.

2005-04-29  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/protocol/http/HTTPConnection.java:
	(userAgent): Initialize from system properties.
	(initUserAgent): Removed.

2005-04-29  Michael Koch  <konqueror@gmx.de>

	* java/lang/ClassLoader.java:
	Fixed formatting.

2005-04-29  Michael Koch  <konqueror@gmx.de>

	* java/net/InetAddress.java
	(aton): Fixed javadoc.

2005-04-28  Robert Schuster  <thebohemian@gmx.net>

	* NEWS: Documented the Java Beans API fixes.

2005-04-28  Robert Schuster  <thebohemian@gmx.net>

	* java/beans/FeatureDescriptor.java:
	(getShortDescription): Implemented fallback mechanism and fixed
	documentation (fixes bug #12637).
	(getDisplayName): Dito.

2005-04-28  Robert Schuster  <thebohemian@gmx.net>

	* java/beans/Introspector: Fixed bug #12624, BeanDescriptors
	will now be set correctly.
	(flushCaches): Now flushes all cached intermediate data.

2005-04-28  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTextArea.java
	(replaceRange): Removed error throwing.

2005-04-28  Michael Koch  <konqueror@gmx.de>

	* java/security/AccessControlContext.java:
	Reformatted.

2005-04-28  Andreas Tobler  <a.tobler@schweiz.ch>

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

2005-04-28  Michael Koch  <konqueror@gmx.de>

	* java/nio/charset/Charset.java
	(providers2): Renamed from 'providers'.

2005-04-27  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicScrollBarUI
	(getThumbBounds): Do not make thumb smaller than
	minimumThumbSize.
	* javax/swing/plaf/metal/MetalLookAndFeel
	(initComponentDefaults): Added color defaults for ScrollBar.
	* javax/swing/plaf/metal/MetalScrollBarUI
	(paintThumb): Added.
	(getMinimumThumbSize): Added.

2005-04-27  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/net/URL.java: Remove org.metastatic.jessie from default
	protocol search path.

2005-04-27  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalLookAndFeel
	(initComponentDefaults): Added some default colors.

2005-04-27  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(configureScrollBarColors: Changed key 'ScrollBar.thumbLightShadow'
	to 'ScrollBar.thumbShadow'. The formes does not exist.
	(paintThumb): Use BasicGraphicsUtils for painting the thumb.

2005-04-27  Chris Burdess  <dog@gnu.org>

	* java/net/protocol/http/HTTPURLConnection.java (connect): Accept
	absolute and relative paths in Location header.

2005-04-27  Roman Kennke  <roman@kennke.org>

	* java/awt/MediaTracker.java: Added 2005 to copyright statement.
	* javax/swing/BoxLayout.java: Likewise.
	* javax/swing/UIManager.java: Likewise.
	* javax/swing/plaf/basic/BasicButtonListener.java: Likewise.
	* javax/swing/plaf/basic/BasicGraphicsUtils.java: Likewise.
	* javax/swing/plaf/basic/BasicLookAndFeel.java: Likewise.
	* javax/swing/plaf/basic/BasicMenuItemUI.java: Likewise.
	* javax/swing/plaf/basic/BasicScrollPaneUI.java: Likewise.
	* javax/swing/plaf/metal/MetalLookAndFeel.java: Likewise.
	* javax/swing/text/Document.java: Likewise.
	* javax/swing/text/GapContent.java: Likewise.
	* javax/swing/text/SimpleAttributeSet.java: Likewise.
	* javax/swing/tree/DefaultTreeSelectionModel.java: Likewise.

2005-04-26  Tom Tromey  <tromey@redhat.com>

	* autogen.sh: Use '-I m4'.
	* m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: New files.
	* m4/pkg.m4, m4/accross.m4, m4/iconv.m4, m4/acinclude.m4: Moved
	from...
	* pkg.m4, accross.m4, iconv.m4, acinclude.m4: ... here.  Removed.

2005-04-26  Luca Barbieri  <luca.barbieri@gmail.com>

	* gnu/java/nio/channels/FileChannelImpl.java (tryLock): Pass
	'false' to native lock().
	(lock): Pass 'true' to native lock().

2005-04-26  Tom Tromey  <tromey@redhat.com>

	* gnu/java/nio/charset/iconv/IconvCharset.java (name):
	Removed unused field.
	(IconvCharset): Updated.

2005-04-26  Chris Burdess  <dog@gnu.org>

	* gnu/java/net/protocol/http/HTTPURLConnection.java: Throw
	FileNotFoundException and implement getErrorStream on 404.

2005-04-26  Tom Tromey  <tromey@redhat.com>

	* javax/swing/text/html/parser/ParserDelegator.java (callBack,
	gnu): Now package-private.
	* javax/swing/text/html/parser/DocumentParser.java (parser,
	callBack, gnu): Now package-private.
	* javax/swing/text/StringContent.java (content, setOffset,
	checkLocation): Now package-private.
	* javax/swing/text/JTextComponent.java (doc): Now
	package-private.
	* javax/swing/plaf/basic/BasicToolBarUI.java (owner,
	lastGoodOrientation, origParent, borders, cachedBounds,
	cachedOrientation, DragWindow): Now package-private.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java (incrButton,
	decrButton, viewport, panel, currentScrollLocation, layoutManager,
	tabAreaRect, contentRect, createIncreaseButton,
	createDecreaseButton, findPointForIndex): Now package-private.
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java
	(currentDividerLocation, moveDividerTo): Now package-private.
	* javax/swing/plaf/basic/BasicSliderUI.java (findClosestTick): Now
	package-private.
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(calculatePreferredSize, valueForYPosition, valueForXPosition):
	Now package-private.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java
	(topWindowListener): Now package-private.
	* javax/swing/plaf/basic/BasicOptionPaneUI.java (iconSize,
	OK_STRING, YES_STRING, NO_STRING, CANCEL_STRING): Now constants.
	(messageAreaContainer, buttonContainer, resetSelectedValue): Now
	package-private.
	* javax/swing/plaf/basic/BasicListUI.java (damageLayout): Now
	package-private.
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java (title):
	Now package-private.
	* javax/swing/plaf/basic/BasicDesktopIconUI.java (button): Now
	package-private.
	* javax/swing/plaf/basic/BasicComboBoxUI.java (largestItemSize,
	borderInsets): Now package-private.
	(arrowButtonWidth): Likewise.  Now a constant.
	* javax/swing/plaf/basic/BasicColorChooserUI.java (chooser, pane,
	makeTabs, updatePreviewPanel): Now package-private.
	* javax/swing/plaf/basic/BasicArrowButton.java (shadow,
	darkShadow, highlight): Now package-private.
	* javax/swing/colorchooser/DefaultSwatchChooserPanel.java
	(addColorToQueue): Now package-private.
	* javax/swing/colorchooser/DefaultRGBChooserPanel.java
	(spinnerChange, sliderChange, updateChange, R, G, B, RSpinner,
	GSpinner, BSpinner): Now package-private.
	* javax/swing/colorchooser/DefaultHSBChooserPanel.java
	(gradientImage, trackImage, slider, hRadio, sRadio, bRadio,
	hSpinner, sSpinner, bSpinner, gradientPoint, internalChange,
	spinnerTrigger, locked, handlingMouse, updateImage, updateSlider,
	updateTrack): Now package-private.
	* javax/swing/TransferHandler.java (clipboard): Now
	package-private.
	* javax/swing/ToolTipManager.java (showTip, hideTip): Now
	package-private.
	* javax/swing/Timer.java (drainEvents, queueEvent): Now
	package-private.
	* javax/swing/RepaintManager.java (globalManager): Now
	package-private.
	* javax/swing/JFormattedTextField.java (editValid): Now
	package-private.
	* javax/swing/JColorChooser.java (makeModal): Now
	package-private.
	* java/awt/geom/GeneralPath.java (rule, types, xpoints, ypoints,
	index, path): Now package-private.
	* java/awt/geom/Area.java (solids, holes, cubicCubicIntersect,
	lineQuadIntersect, lineCubicIntersect, linesIntersect,
	pointEquals): Now package-private.
	* java/awt/geom/Arc2D.java (type): Now package-private.
	* java/awt/Window.java (windowFocusOwner): Now package-private.
	* java/awt/TextComponent.java (editable, selectionStart,
	selectionEnd, text, getIndexAtPoint, getCharacterBounds): Now
	package-private.
	* java/awt/MenuItem.java (actionCommand, enabled, label): Now
	package-private.
	* java/awt/MenuComponent.java (focusListener): Now
	package-private.
	* java/awt/Frame.java (state): Now package-private.
	* java/awt/Choice.java (pItems): Now package-private.
	* java/awt/Checkbox.java (state): Now package-private.
	* java/awt/Button.java (actionCommand, label): Now
	package-private.
	* gnu/javax/swing/text/html/parser/support/Parser.java
	(attributes, _handleEndTag_remaining, _handleStartTag): Now
	package-private.
	* gnu/java/beans/decoder/PersistenceParser.java (javaHandler): Now
	package-private.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (paint, stroke, fg, bg,
	clip, transform, font, comp): Now package-private.

2005-04-26  Tom Tromey  <tromey@redhat.com>

	* java/awt/Robot.java (waitForIdle): Call invokeAndWait in a
	static way.

2005-04-26  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicToggleButtonUI.java:
	(getPropertyPrefix): Added.

2005-04-26  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(getPropertyPrefix): Added.
	(installDefaults): Use getPropertyPrefix instead of hard-coded
	prefix.

2005-04-26  Roman Kennke  <roman@kennke.org>

	* javax/swing/JToggleButton.java
	(JToggleButton): Removed horizontalAlignment setting, this
	was wrong. Added setting of an actionCommand, ToggleButtons
	have "" as default actionCommand.

2005-04-26  David Daney  <ddaney@avtrex.com>

	* java/net/InetAddress.java (InetAddress): Make a private copy of
	the address.
	* java/net/Inet4Address.java (getAddress): Return a copy of the
	address.
	* java/net/Inet6Address.java (Inet6Address): Use private copy of
	the address
	(getAddress): Return a copy of the address.
	(equals): Rewrote.

2005-04-26  Michael Koch  <konqueror@gmx.de>

	* javax/swing/ImageIcon.java: 
	Merged copyright with GCJ.

2005-04-25  Tom Tromey  <tromey@redhat.com>

	* java/awt/AWTKeyStroke.java (vktable): Now package-private.

2005-04-25  Mark Wielaard  <mark@klomp.org>

	* iconv.m4: New file.
	* configure.ac: Use AM_ICONV.
	* native/jni/java-nio/Makefile.am (libjavanio_la_LIBADD):
	Add LTLIBICONV.
	* native/jni/java-nio/gnu_java_nio_charset_iconv_IconvDecoder.c:
	Include config.h and jcl.h, use if defined(HAVE_ICONV), add new
	static variables infid and outfid, add char_union.
	(Java_gnu_java_nio_charset_iconv_IconvDecoder_openIconv):
	Guard with if defined(HAVE_ICONV), use JCL_jstring_to_cstring,
	JCL_free_cstring and JCL_ThrowException, cache inremaining and
	outremaining fieldIDs.
	(Java_gnu_java_nio_charset_iconv_IconvDecoder_decode):
	Guard with if defined(HAVE_ICONV), use ICONV_CONST for iconv
	argument, used cached fieldIDs, use char_union.
	(Java_gnu_java_nio_charset_iconv_IconvDecoder_closeIconv):
	Guard with if defined(HAVE_ICONV).
	* native/jni/java-nio/gnu_java_nio_charset_iconv_IconvEncoder.c:
	Include config.h and jcl.h, use if defined(HAVE_ICONV), add new
	static variables infid and outfid, add char_union.
	(Java_gnu_java_nio_charset_iconv_IconvEncoder_openIconv):
	Guard with if defined(HAVE_ICONV), use JCL_jstring_to_cstring,
	JCL_free_cstring and JCL_ThrowException, cache inremaining and
	outremaining fieldIDs.
	(Java_gnu_java_nio_charset_iconv_IconvEncoder_encode):
	Guard with if defined(HAVE_ICONV), use ICONV_CONST for iconv
	argument, used cached fieldIDs, use char_union.
	(Java_gnu_java_nio_charset_iconv_IconvEncoder_closeIconv):
	Guard with if defined(HAVE_ICONV).
	* gnu/java/nio/charset/iconv/IconvDecoder.java (dispose): Renamed.
	(finalize): Renamed from dispose.
	* gnu/java/nio/charset/iconv/IconvEncoder.java (dispose): Renamed.
	(finalize): Renamed from dispose.
	
2005-04-25  Sven de Marothy  <sven@physto.se>

	* java/io/InputStreamReader.java:
	(InputStreamReader): Always replace invalid chars.
	(read): Return -1 if zero bytes are read.
	* native/jni/java-nio/gnu_java_nio_charset_iconv_IconvDecoder.c,
	* native/jni/java-nio/gnu_java_nio_charset_iconv_IconvEncoder.c:
	Correct C pointer arithmetic.

2005-04-25  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Transparency.java
	(getTransparency): fixed API docs.

2005-04-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(initDefaults): Initialize thumb*Color fields correctly.

2005-04-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/GapContent.java:
	Added API comments.

2005-04-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalBorders.java:
	Added inner class ScrollPaneBorder.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added default for "ScrollPane.border"
	to use the new ScrollPaneBorder.

2005-04-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/AbstractDocument.java:
	Added FIXME comments. This class still has to be
	implemented thread-safe.

2005-04-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/tree/DefaultTreeSelectionModel.java
	(DefaultTreeSelectionModel): Initialize listenerList here.

2005-04-25  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalTextFieldUI.java
	(createUI): Return one instance per Component instead of a
	shared instance.

2005-04-24  Tom Tromey  <tromey@redhat.com>

	* native/jni/Makefile.am (JNIDIRS): New macro.
	(SUBDIRS): Use it.
	* configure.ac (--enable-core-jni): New option.
	* NEWS: Document new option.

2005-04-24  Tom Tromey  <tromey@redhat.com>

	* include/jni_md-x86-linux-gnu.h (JNIIMPORT): New define.
	(jsize): New typedef.
	* include/jni.h: Re-merged with libgcj.
	* doc/vmintegration.texinfo (JNI Implementation): New node.
	* NEWS: Document the change.

2005-04-24  Tom Tromey  <tromey@redhat.com>

	* gnu/classpath/Configuration.java.in (default_awt_peer_toolkit):
	Now set by configure.
	* configure.ac (--enable-default-toolkit): New option.
	* NEWS: Document new option.

2005-04-24  Tom Tromey  <tromey@redhat.com>

	* configure.ac: Formatting fixes.

2005-03-22  Mike Stump  <mrs@apple.com>

	* native/fdlibm/ieeefp.h: ppc64 is also __IEEE_BIG_ENDIAN.

2005-04-23  Tom Tromey  <tromey@redhat.com>

	* javax/swing/text/StyleConstants.java (StyleConstants): Now
	package-private.

2005-04-23  Mark Wielaard  <mark@klomp.org>

	* java/net/URL.java (URL(URL,String,URLStreamHandler)): Add spec
	to MalformedURLException.

2005-04-23  Michael Koch  <konqueror@gmx.de>

	* java/net/ServerSocket.java
	(getChannel): Improved javadoc comment.

2005-04-23  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/Document.java:
	Added API documentation comments.

2005-04-23  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/AbstractDocument.java
	(getDocumentProperties): Implemented.
	(setDocumentProperties): Implemented.
	(getProperty): Implemented.
	(putProperty): Implemented.

2005-04-22  Tom Tromey  <tromey@redhat.com>

	* accross.m4: New file, from gcc.
	* configure.ac: Only call AC_C_BIGENDIAN once.  Use a single
	AC_CHECK_HEADERS call for most headers.  Likewise for
	AC_CHECK_FUNCS.  Use AC_COMPILE_CHECK_SIZEOF.  Don't look for
	function named 'sizeof'.

2005-04-22  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(connectSignals): Realize the window widget after connecting
	signals.

2005-04-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/BoxLayout
	(preferredLayoutSize): Fixed computation so that it correctly
	adds the top and bottom insets of the container.

2005-04-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(paintText): Make use of the 'selectionForeground' UI default
	for text painting.

2005-04-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initSystemColorDefaults): Modified colors to match the
	BasicLookAndFeel in the reference implementation.
	(initComponentDefaults): Likewise.

2005-04-22  Tom Tromey  <tromey@redhat.com>

	* doc/vmintegration.texinfo (Introduction): Typo fix.
	(Initialization): Removed redundant 'current'.

2005-04-22  Michael Koch  <konqueror@gmx.de>

	* gnu/classpath/SystemProperties.java:
	Reformatted.

2005-04-21  Casey Marshall <csm@gnu.org>

	* gnu/java/security/der/DERValue.java
	(getValueAs): new method.
	* gnu/java/security/x509/ext/PrivateKeyUsagePeriod.java
	(<init>): read both dates with 'DERValue.getValueAs', with
	'GENERALIZED_TIME' as the argument.

2005-04-21  Michael Koch  <konqueror@gmx.de>

	* include/gnu_java_nio_charset_iconv_IconvDecoder.h,
	include/gnu_java_nio_charset_iconv_IconvEncoder.h:
	Regenerated with gcjh from gcc 4.0 branch.

2005-04-20  Tom Tromey  <tromey@redhat.com>

	* .classpath: Updated.

2005-04-20  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.

2005-04-20  Tom Tromey  <tromey@redhat.com>

	* java/lang/reflect/MalformedParameterizedTypeException.java: New
	file.

2005-04-20  Tom Tromey  <tromey@redhat.com>

	* java/util/PriorityQueue.java (PriorityQueue): Implements
	Serializable.
	(serialVersionUID): New field.
	* java/util/EnumMap.java (serialVersionUID): New field.
	* java/util/EnumSet.java (serialVersionUID): New field.

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-20  Tom Tromey  <tromey@redhat.com>

	* java/util/zip/Inflater.java (getTotalIn): Deprecated.
	(getBytesRead): New method
	(getTotalOut): Deprecated.
	(getBytesWritten): New method.
	(totalIn, totalOut): Now 'long'.
	* java/util/zip/DeflaterEngine.java (totalIn): Now 'long'.
	(getTotalIn): Return 'long'.
	* java/util/zip/Deflater.java (totalOut): Now 'long'.
	(getTotalOut): Deprecated.
	(getBytesWritten): New method.
	(getTotalIn): Deprecated.
	(getBytesRead): New method.

2005-04-20  Tom Tromey  <tromey@redhat.com>

	* java/nio/charset/Charset.java (compareTo): Changed argument
	type.
	* java/nio/ShortBuffer.java (compareTo): Changed argument type.
	* java/nio/LongBuffer.java (compareTo): Changed argument type.
	* java/nio/IntBuffer.java (compareTo): Changed argument type.
	* java/nio/FloatBuffer.java (compareTo): Changed argument type.
	* java/nio/DoubleBuffer.java (compareTo): Changed argument type.
	* java/nio/ByteBuffer.java (compareTo): Changed argument type.
	* java/nio/CharBuffer.java (CharBuffer): Implements Readable,
	Appendable.
	(append): New methods.
	(compareTo): Changed argument type.
	(read): New method.

2005-04-20  Tom Tromey  <tromey@redhat.com>

	* java/io/PrintStream.java (append): Don't throw IOException.
	* java/io/StringWriter.java (append): New overloads.
	* java/io/PrintWriter.java (append): New overloads.
	(PrintWriter): New constructors.
	* java/io/CharArrayWriter.java (append): New overloads.
	* java/io/RandomAccessFile.java (RandomAccessFile): Implements
	Closeable.
	* java/io/Reader.java (Reader): Implements Readable.
	(read): New method.

2005-04-20  Tom Tromey  <tromey@redhat.com>

	* java/math/BigInteger.java (TEN): New constant.
	* java/math/BigDecimal.java (ZERO, ONE): Now public.
	(TEN): New constant.

2005-04-20  Tom Tromey  <tromey@redhat.com>

	* java/lang/Short.java (reverseBytes): Argument is 'short'.

2005-04-20  Tom Tromey  <tromey@redhat.com>

	* java/lang/ThreadLocal.java (remove): New method.

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/InputMismatchException.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.

2005-04-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Changed Button.border to be
	BasicBorders.getButtonBorder as it should be.

2005-04-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java:
	(getMaximumSize): Return (Short.MAX_VALUE, Short.MAX_VALUE) as it
	should according to a mauve testcase, instead of the preferred
	size.

2005-04-20  Sven de Marothy  <sven@physto.se>

	* java/io/OutputStreamWriter.java:
	(close): Do nothing on multiple closes.

2005-04-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/JMenu.java
	(add): add(Component) now calls PopupMenu.insert(..) instead of
	PopupMenu.add(..). add(..) is not implemented for Component,
	so JComponent.add(..) is called instead, adding the component
	in the wrong place.

2005-04-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicButtonListener.java
	(mousePressed): replaced query to getModifiersEx with getModifiers.
	This method relied on faulty behaviour in getModifierEx.
	(mouseReleased): replaced query to getModifiersEx with getModifiers.
	This method relied on faulty behaviour in getModifierEx.

2005-04-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(getDefaults): Call addCustomEntriesToTable on the theme.

2005-04-20  Roman Kennke  <roman@kennke.org>

	* javax/swing/tree/DefaultTreeSelectionModel.java
	(constructor): Added implementation.
	(getRowMapper): Added implementation.
	(setSelectionMode): Added implementation.
	(getSelectionMode): Added implementation.
	(getSelectionPath): Added implementation.
	(getSelectionPaths): Added implementation.
	(getSelectionCount): Added implementation.
	(isSelectionEmpty): Added implementation.
	(getSelectionRows): Added implementation.
	(getMinSelectionRow): Added implementation.
	(getMaxSelectionRow): Added implementation.
	(getLeadSelectionRow): Added implementation.
	(getLeadSelectionPath): Added implementation.

2005-04-20  Sven de Marothy  <sven@physto.se>

	* java/nio/charset/Charset.java:
	(defaultCharset()): New method.
	Status updated to 1.5

2005-04-20  Sven de Marothy  <sven@physto.se>
	
	* gnu/java/io/EncodingManager.java: Removed charset alias properties.
	* gnu/java/io/decode/Decoder.java,
	* gnu/java/io/decode/Decoder8859_1.java,
	* gnu/java/io/decode/Decoder8859_13.java,
	* gnu/java/io/decode/Decoder8859_15.java,
	* gnu/java/io/decode/Decoder8859_2.java,
	* gnu/java/io/decode/Decoder8859_3.java,
	* gnu/java/io/decode/Decoder8859_4.java,
	* gnu/java/io/decode/Decoder8859_5.java,
	* gnu/java/io/decode/Decoder8859_6.java,
	* gnu/java/io/decode/Decoder8859_7.java,
	* gnu/java/io/decode/Decoder8859_8.java,
	* gnu/java/io/decode/Decoder8859_9.java,
	* gnu/java/io/decode/DecoderASCII.java,
	* gnu/java/io/decode/DecoderCp1047.java,
	* gnu/java/io/decode/DecoderEBCDIC_XML_US.java,
	* gnu/java/io/decode/DecoderEightBitLookup.java,
	* gnu/java/io/decode/DecoderUTF16BE.java,
	* gnu/java/io/decode/DecoderUTF16LE.java,
	* gnu/java/io/decode/DecoderUTF32BE.java,
	* gnu/java/io/decode/DecoderUTF32LE.java,
	* gnu/java/io/decode/DecoderUTF8.java,
	* gnu/java/io/decode/DecoderUnicodeBig.java,
	* gnu/java/io/decode/DecoderUnicodeLittle.java,
	* gnu/java/io/decode/DecoderWindows1250.java,
	* gnu/java/io/decode/DecoderWindows1252.java,
	* gnu/java/io/decode/package.html
	* gnu/java/io/encode/Encoder.java,
	* gnu/java/io/encode/Encoder8859_1.java,
	* gnu/java/io/encode/Encoder8859_13.java,
	* gnu/java/io/encode/Encoder8859_15.java,
	* gnu/java/io/encode/Encoder8859_2.java,
	* gnu/java/io/encode/Encoder8859_3.java,
	* gnu/java/io/encode/Encoder8859_4.java,
	* gnu/java/io/encode/Encoder8859_5.java,
	* gnu/java/io/encode/Encoder8859_6.java,
	* gnu/java/io/encode/Encoder8859_7.java,
	* gnu/java/io/encode/Encoder8859_8.java,
	* gnu/java/io/encode/Encoder8859_9.java,
	* gnu/java/io/encode/EncoderASCII.java,
	* gnu/java/io/encode/EncoderCp1047.java,
	* gnu/java/io/encode/EncoderEBCDIC_XML_US.java,
	* gnu/java/io/encode/EncoderEightBitLookup.java,
	* gnu/java/io/encode/EncoderUTF16BE.java,
	* gnu/java/io/encode/EncoderUTF16LE.java,
	* gnu/java/io/encode/EncoderUTF32BE.java,
	* gnu/java/io/encode/EncoderUTF32LE.java,
	* gnu/java/io/encode/EncoderUTF8.java,
	* gnu/java/io/encode/EncoderUnicodeBig.java,
	* gnu/java/io/encode/EncoderUnicodeLittle.java,
	* gnu/java/io/encode/EncoderWindows1250.java,
	* gnu/java/io/encode/EncoderWindows1252.java,
	* gnu/java/io/encode/package.html:
	Removed
	
2005-04-19  Sven de Marothy  <sven@physto.se>

	* java/util/Calendar.java:
	(compareTo(java.util.Calendar)): Handle instability
	in obtaining the milliseconds value.
	
2005-04-19  Michael Koch  <konqueror@gmx.de>

	* java/awt/geom/QuadCurve2D.java:
	Fixed Brian Gough's name for real.

2005-04-19  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(paint): This should not care about margin and insets
	at the same time, as insets already include the margin
	through the border.
	* javax/swing/plaf/basic/BasicGraphicsUtils.java
	(getPreferredButtonSize): Likewise.
	* javax/swing/plaf/metal/MetalBorders.java
	(getBorderInsets): Likewise.

2005-04-19  Roman Kennke  <roman@kennke.org>

	* examples/gnu/classpath/examples/swing/Demo.java:
	Pulled out GNULookAndFeel so that it can be accessed.
	On startup, if the property swing.defaultlaf is not set,
	display a message on how to set the L&F for the demo.
	Changed font for bottom buttons to normal.
	* examples/gnu/classpath/examples/swing/GNULookAndFeel.java:
	Pulled out of Demo.java.

2005-04-19  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(createMessageArea): The JPanel that holds the message area
	doesn't need to override getPreferredSize. This prevents some
	message components from rendering nicely.

2005-04-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/net/URL.java:
	(toURI()): Implemented.

2005-04-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalInternalFrameUI.java
	(createUI): Do not share instances between components.
	* javax/swing/plaf/metal/MetalSliderUI.java
	(createUI): Do not share instances between components.

2005-04-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalBorders:
	(PopupMenuBorder): Added.
	* javax/swing/plaf/metal/MetalLookAndFeel
	(initComponentDefaults): Added PopupMenuBorder.

2005-04-18  Sven de Marothy  <sven@physto.se>
	
	* java/io/InputStreamReader.java:
	(read): Fix several bugs leading to incorrect length being returned.

2005-04-18  Sven de Marothy  <sven@physto.se>

	* java/nio/ByteBufferImpl.java:
	(putChar): Inlined for speed.
	(put, get): Bulk methods can use arraycopy.
	* java/nio/CharBufferImpl.java:
	(put, get): Bulk methods can use arraycopy.
	
2005-04-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/tree/DefaultTreeSelectionModel.java:
	Added API documentation all over the class.

2005-04-18  Sven de Marothy  <sven@physto.se>
	
	* include/Makefile.am,
	* native/jni/java-nio/Makefile.am: Added new files.
	* gnu/java/nio/charset/iconv/IconvCharset.java,
	* gnu/java/nio/charset/iconv/IconvDecoder.java,
	* gnu/java/nio/charset/iconv/IconvEncoder.java,
	* gnu/java/nio/charset/iconv/IconvMetaData.java, 
	* gnu/java/nio/charset/iconv/IconvProvider.java,
	* native/jni/java-nio/gnu_java_nio_charset_iconv_IconvDecoder.c,
	* native/jni/java-nio/gnu_java_nio_charset_iconv_IconvEncoder.c,
	* include/gnu_java_nio_charset_iconv_IconvDecoder.h,
	* include/gnu_java_nio_charset_iconv_IconvEncoder.h,
	New files.

2005-04-18  Roman Kennke  <roman@kennke.org>

	* java/lang/String.java:
	Make value, offset and count fields package private instead
	of private.

2005-04-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(installDefaults): Link managed JScrollPane in instance field.
	(uninstallDefaults): Unlink managed JScrollPane in instance field.

2005-04-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(PropertyChangeHandler.propertyChange): Add default
	to switch statement to avoid errors with unusual values
	for orientation.
	(installComponents): Likewise.

2005-04-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalScrollBarUI.java:
	(createUI): Instances cannot be shared among JScrollPanes.

2005-04-18  Sven de Marothy  <sven@physto.se>

	* java/lang/String.java: Value, offset and count should be private.

2005-04-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added defaults for Menu, MenuBar
	MenuEntry fonts.

2005-04-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(installUI): Install listeners after everything all, otherwise
	we get strange NPEs in some situations, especially with
	custom L&Fs.
	(createIncreaseButton): Orientation is expected to be
	SwingConstants.NORTH, ..SOUTH, ..WEST or ..EAST and not
	HORIZONTAL or VERTICAL.
	(createDecreaseButton): Orientation is expected to be
	SwingConstants.NORTH, ..SOUTH, ..WEST or ..EAST and not
	HORIZONTAL or VERTICAL.
	(installComponents): Orientation for buttons is expected to be
	SwingConstants.NORTH, ..SOUTH, ..WEST or ..EAST and not
	HORIZONTAL or VERTICAL.

2005-04-18  Jeroen Frijters  <jeroen@frijters.net>

	* java/nio/ByteBufferImpl.java (get(), put(byte)): Inlined checks
	and field updates.
	* java/nio/CharBufferImpl.java
	(CharBufferImpl(CharBufferImpl)): Copy array_offset field.
	(get(), put(char)): Inlined checks and field updates. Fixed to
	take array_offset into account.
	(get(int), put(int, char)): Fixed to take array_offset into account.

2005-04-18  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/Class.java (getModifiers, newInstance): Changed
	call to VMClass.getModifiers().
	* vm/reference/java/lang/VMClass.java
	(getModifiers(Class, boolean)): New method.

2005-04-18  Jeroen Frijters  <jeroen@frijters.net>

	* java/awt/GraphicsEnvironment.java
	(localGraphicsEnvironment): New field.
	(getLocalGraphicsEnvironment): Added support for java.awt.graphicsenv
	property.
	(isHeadless): Added support for java.awt.headless property.
	(isHeadlessInstance): Call headless().

2005-04-18  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/beans/IntrospectionIncubator.java
	(addToPropertyHash, addToListenerHash): Don't confuse get(),
	set(), is(), add() and remove() with properties or events.

2005-04-18  Roman Kennke  <roman@kennke.org>

	* javax/swing/JToolBar.java
	(addImpl): Adjust added AbstractButtons to look and feel like
	toolbar buttons.
	* javax/swing/plaf/metal/MetalBorders.java:
	Adjusted insets of ButtonBorder.
	(RolloverMarginBorder): Added class for toolbar buttons.
	(getButtonBorder): Adjusted factory method to return a shared
	instance of button border.
	(getToolbarButtonBorder): Added factory method to return a shared
	instance of toolbar button border.
	(getMarginBorder): Added factory method to return a shared
	instance of margin border.
	* javax/swing/plaf/metal/MetalButtonUI.java
	(installDefauls): If button is child of a JToolBar then set
	special border on this button.

2005-04-17  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/SimpleAttributeSet.java
	(addAttribute): Removed null pointer check.
	* javax/swing/text/StyleContext.java
	(NamedStyle.setResolveParent): Added null pointer check.

2005-04-17  Roman Kennke  <roman@kennke.org>

	* examples/gnu/classpath/exammples/swing/Demo.java:
	Print a short summary for available values for the property
	swing.defaultlaf.
	Set MetalLookAndFeel as default.
	Pulled out GNULookAndFeel so that it is accessible.
	* examples/gnu/classpath/exammples/swing/GNULookAndFeel.java:
	Pulled out this class from Demo.java.

2005-04-17  Roman Kennke  <roman@kennke.org>

	* javax/swing/UIManager.java:
	Make the UIManager respect the swing.defaultlaf system
	property.

2005-04-17  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/SimpleAttributeSet.java
	(addAttribute): Removed null pointer check.
	* javax/swing/text/StyleContext.java
	(NamedStyle.setResolveParent): Added null pointer check.

2005-04-17  Roman Kennke  <roman@kennke.org>

	* examples/gnu/classpath/exammples/swing/Demo.java:
	Print a short summary for available values for the property
	swing.defaultlaf.
	Set MetalLookAndFeel as default.
	Pulled out GNULookAndFeel so that it is accessible.
	* examples/gnu/classpath/exammples/swing/GNULookAndFeel.java:
	Pulled out this class from Demo.java.

2005-04-17  Roman Kennke  <roman@kennke.org>

	* javax/swing/UIManager.java:
	Make the UIManager respect the swing.defaultlaf system
	property.

2005-04-17  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/SimpleAttributeSet.java
	(addAttribute): Check for null and remove key in that case.
	This fixes http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21064 .

2005-04-16  Ewout Prangsma  <ewout@prangsma.net>
	
	* java/util/PriorityQueue.java:
	(PriorityQueue(Collection<? extends E>)): Added explicit cast
	for comparators.
	(PriorityQueue(PriorityQueue<? extends E>)): Likewise.
	(PriorityQueue(SortedSet<? extends E>)): Likewise.
	* java/util/TreeSet.java:
	(TreeSet(SortedSet<? extends T>)): Likewise.
		
2005-04-16  Roman Kennke  <roman@kennke.org>

	* java/awt/BorderLayout.java
	(calcSize): Check for overflow when component sizes are added.

2005-04-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/rmi/Naming.java:
	Added class documentation.
	(lookup(String)): Call parseURL and getName.
	(bind(String,java.rmi.Remote)): Likewise.
	(unbind(String)): Likewise.
	(rebind(String, java.rmi.Remote)): Likewise.
	(list(String)): Call parseURL.
	(parseURL(String)): New method to handle parsing and defaults.
	(getName(java.net.URL)): New method to handle finding the service name.
	
2005-04-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/net/URI.java:
	Added class documentation.
	(parseURI(String)): Only handle scheme-specific parts
	if URI is not opaque.  Allow for parts that can't be null.
	(toString()): Output the scheme-specific part whole, rather
	than as its possibly non-existent components.
	
2005-04-16  Michael Koch  <konqueror@gmx.de>

	* java/rmi/server/RemoteObject.java:
	Removed unused import statement.

2005-04-16  Michael Koch  <konqueror@gmx.de>

	* include/Makefile.am: Removed java_io_ObjectInputStream.h
	and added java_io_VMObjectInputStream.h.
	* include/java_io_ObjectInputStream.h: Removed.
	* include/java_io_VMObjectInputStream.h: New file.
	* java/io/ObjectInputStream.java
	(currentClassLoader): Removed.
	(allocateObject): Likewise.
	* native/jni/java-io/Makefile.am: Removed java_io_ObjectInputStream.c
	and added java_io_VMObjectInputStream.c.
	* native/jni/java-io/java_io_ObjectInputStream.c: Removed.
	* native/jni/java-io/java_io_VMObjectInputStream.c: New file.
	* vm/reference/java/io/VMObjectInputStream.java: Likewise.

2005-04-16  Michael Koch  <konqueror@gmx.de>

	* include/java_lang_Double.h,
	include/java_lang_Object.h,
	native/jni/java-lang/java_lang_Double.c,
	native/jni/java-lang/java_lang_Object.c: Removed.
	* include/java_lang_VMDouble.h: Regenerated.
	* java/lang/Double.java
	(static): Removed.
	(toString): Call native method from VMDouble.
	(parseDouble): Make non-native and call native method from VMDouble.
	(toString): Removed.
	* java/lang/Float.java
	(toString): Call native method from VMDouble.
	* java/lang/Object.java
	(getClass): Refactored to call the native in java.lang.VMObject.
	* include/Makefile.am: Don't generate java_lang_Double.h and
	java_lang_Object.h.
	* native/jni/java-lang/Makefile.am: Removed java_lang_Double.c and
	java_lang_Object.c.
	* native/jni/java-lang/java_lang_VMDouble.c
	(initIDs): New method.
	(toString): Likewise.
	(parseDouble): Likewise.
	* vm/reference/java/lang/VMDouble.java
	(initIDs): Likewise.
	(toString): Likewise.
	(parseDouble): Likewise.
	* vm/reference/java/lang/VMObject.java
	(getClass): Likewise.

2005-04-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/text/DecimalFormatSymbols.java:
	Added retrieval of "XXX" instance in place of null.
	* java/util/Currency.java,
	(Currency(String)): New constructor for the XXX special case.
	(getInstance(String)): Allow special case of "XXX".

2005-04-15  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added Label.font.
	(initSystemColorDefaults): Added this method and adjusted the
	general control color.

2005-04-15  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalTabbedPaneUI.java:
	Added newline between import blocks. Changed Map to
	HashMap in field declarations.

2005-04-15  Sven de Marothy  <sven@physto.se>

	* gnu/java/nio/charset/EncodingHelper.java: Added method
	* java/io/InputStreamReader.java,
	* java/io/OutputStreamWriter.java,
	* java/lang/String.java: Move to NIO charsets.
	* java/io/PrintStream.java: Inline conversion using String.

2005-04-15  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalBorders.java:
	Added.
	* javax/swing/plaf/metal/MetalButtonUI.java:
	(installDefaults): Install button font.
	* javax/swing/plaf/metal/MetalLookAndFeel.java:
	(initComponentDefaults): Added button border, font and margin.
	Changed components background color to the Metal current themes
	standard color.

2005-04-15  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(createUI): Create one MetalTabbedPaneUI per Component instead
	of sharing one instance.

2005-04-15  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added to set Metal specific component
	defaults.

2005-04-14  Chris Burdess  <dog@gnu.org>

	* java/io/DataOutputStream.java (writeUTF): Use block write for
	output.

2005-04-14  Mark Wielaard  <mark@klomp.org>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initClassDefaults): Call super.initClassDefaults().

2005-04-14  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initClassDefaults): Added to include the *UI classes.

2005-04-14  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalComboBoxUI.java:
	Added.
	* javax/swing/plaf/metal/MetalDesktopIconUI.java:
	Added.
	* javax/swing/plaf/metal/MetalInternalFrameUI.java:
	Added.
	* javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.java:
	Added.
	* javax/swing/plaf/metal/MetalProgressBarUI.java:
	Added.
	* javax/swing/plaf/metal/MetalRootPaneUI.java:
	Added.
	* javax/swing/plaf/metal/MetalScrollBarUI.java:
	Added.
	* javax/swing/plaf/metal/MetalSeparatorUI.java:
	Added.
	* javax/swing/plaf/metal/MetalSliderUI.java:
	Added.
	* javax/swing/plaf/metal/MetalSplitPaneUI.java:
	Added.
	* javax/swing/plaf/metal/MetalTextFieldUI.java:
	Added.
	* javax/swing/plaf/metal/MetalToggleButtonUI.java:

2005-04-14  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalButtonUI.java:
	Fixed year in copyright notice.
	* javax/swing/plaf/metal/MetalCheckBoxUI.java:
	Fixed year in copyright notice.
	* javax/swing/plaf/metal/MetalLabelUI.java:
	Fixed year in copyright notice.
	* javax/swing/plaf/metal/MetalRadioButtonUI.java:
	Fixed year in copyright notice.
	* javax/swing/plaf/metal/MetalScrollPaneUI.java:
	Fixed year in copyright notice.
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java:
	Fixed year in copyright notice.

2005-04-13  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalButtonUI.java:
	Added skeleton class.
	* javax/swing/plaf/metal/MetalCheckBoxUI.java:
	Added skeleton class.
	* javax/swing/plaf/metal/MetalLabelUI.java:
	Added skeleton class.
	* javax/swing/plaf/metal/MetalRadioButtonUI.java:
	Added skeleton class.
	* javax/swing/plaf/metal/MetalScrollPaneUI.java:
	Added skeleton class.
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java:
	Added skeleton class.

2005-04-13  Sven de Marothy  <sven@physto.se>

	* java/nio/charset/Charset.java: Cached encoders shouldn't be static.
	
2005-04-13  Roman Kennke  <roman@kennke.org>

	* java/awt/MediaTracker.java:
	Reindented tabs to spaces.

2005-04-13  Roman Kennke  <roman@kennke.org>

	* java/awt/MediaTracker.java
	(MediaEntry.imageUpdate): Removed check for SOMEBITS, this
	confused the media tracker and lead to lockups. The LOADING
	bit is handled on other places.
	(addImage): Removed the 'start image tracking' stuff. This
	is not necessary and could confuse the media tracker.
	(checkAll): Improved the check for image status so that
	images that already complete images are detected. Also now
	are really all images checked and if necessary loaded. Before
	the method bailed out after the first incomplete image.
	(statusAll): Detect images that are complete after the
	call to Component.prepareImage(..).
	(checkID): The same as in checkAll.
	(statusID): The same as in statusAll.

2005-04-12  Roman Kennke  <roman@kennke.org>

	* java/util/.cvsignore:
	Added file and included LocaleDate.java.
	* lib/.cvsignore:
	Added classes.locale.
	* scripts/.cvsignore:
	Added classpath.spec.

2005-04-12  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicMenuUI.java
	(getMaximumSize): Now returns preferredSize because JMenu should
	never be bigger than that.
	* javax/swing/JRootPane
	(RootLayout.layoutContainer): Make JMenuBars take the whole width.

2005-04-12  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicMenuBarUI.java:
	Fixed tabs to spaces.

2005-04-12  Roman Kennke  <roman@kennke.org>

	* javax/swing/JRootPane.java:
	Fixed various tabs to be spaces.
	(RootLayout.layoutContainer): Made menubar left aligned.

2005-04-12  Roman Kennke  <roman@kennke.org>

	* javax/swing/JComponent.java:
	Modified alignmentX and alignmentY to be 0.5 instead of 0.0.
	Untabified the file.

2005-04-12  Roman Kennke  <roman@kennke.org>

	* javax/swing/BoxLayout.java:
	(layoutContainer): Made this layout manager respect the
	minimum, maximum and preferred size more correctly.

2005-04-12  Roman Kennke  <roman@kennke.org>

	* java/awt/MediaTracker.java
	(addImage): Synchronized list access.
	(waitForAll): Fixed comparison of time (changed < to >).
	(waitForID): Fixed comparison of time (changed < to >).
	(removeImage): Synchronized list access.

2005-04-12  Michael Koch  <konqueror@gmx.de>

	* java/io/FilePermission.java
	(serialVersionUID): Made private.
	(ALL_FILES): New constant.
	(implies): Handle '<<ALL FILES>>' case.

2005-04-12  Audrius Meskauskas, Lithuania  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLDocument.java: New file.

2005-04-12  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/html/HTMLFrameHyperlinkEvent.java:
	Reformatted.
	* javax/swing/text/html/parser/AttributeList.java:
	Fixed order of modifiers.
	(AttributeList): Made final.
	* javax/swing/text/html/parser/ContentModel.java:
	Fixed html characters in javadocs.
	* javax/swing/text/html/parser/DTD.java
	(DTD): Don't implement java.io.Serializable directly.
	(getElement): Simplified.
	* javax/swing/text/html/parser/DTDConstants.java:
	Reformatted file.
	* javax/swing/text/html/parser/Element.java:
	Fixed order of modifiers.
	* javax/swing/text/html/parser/Parser.java:
	Reformatted. Don't use fully-qualified class names.
	* javax/swing/text/html/parser/ParserDelegator.java:
	Fixed order of modifiers.
	* javax/swing/text/rtf/RTFParser.java:
	Re-ordered import statements.
	* javax/swing/text/rtf/RTFScanner.java:
	Removed unused import statement.

2005-04-12  Michael Koch  <konqueror@gmx.de>

	* java/awt/image/RasterOp.java:
	Fixed wrong formatting.

2005-04-12  Michael Koch  <konqueror@gmx.de>

	* java/awt/print/PrinterJob.java
	(pageDialog): New method.
	(printDialog): Implemented.

2005-04-12  Michael Koch  <konqueror@gmx.de>

	* java/awt/FontMetrics.java: Reformatted.
	(getFontRenderContext): Handle case when java.awt.Graphics context is
	given.

2005-04-12  Michael Koch  <konqueror@gmx.de>

	* java/awt/FontMetrics.java
	(getStringBounds): New methods.

2005-04-12  Michael Koch  <konqueror@gmx.de>

	* java/net/NetworkInterface.java
	(NetworkInterface): Made constructor package private.
	Introduced another constructor for more addresses on one
	interface.

2005-04-12  Michael Koch  <konqueror@gmx.de>

	* native/jni/java-net/Makefile.am
	Compile new files java_net_VMInetAddress.c and
	java_net_VMNetworkInterface.

2005-04-12  Sven de Marothy  <sven@physto.se>

	* gnu/java/nio/charset/Provider.java: Add UnicodeLittle.
	* gnu/java/nio/charset/UnicodeLittle.java: New file.
	* gnu/java/nio/charset/UTF_16.java: UnicodeBig is an alias.
	* gnu/java/nio/charset/UTF_16BE.java,
	* gnu/java/nio/charset/UTF_16LE.java: No byte-order mark.
	* gnu/java/nio/charset/UTF_16Encoder.java (encodeLoop): Fixed bug.
	
2005-04-11  Michael Koch  <konqueror@gmx.de>

	* java/net/InetAddress.java
	(static): Removed.
	(getLocalHostname): Likewise.
	(lookupInaddrAny): Likewise.
	(getHostByAddr): Likewise.
	(getHostByName): Likewise.
	* java/net/NetworkInterface.java
	(static): Likewise.
	(getRealNetworkInterfaces): Likewise.
	* native/jni/java-net/java_net_InetAddress.c: Renamed to...
	* native/jni/java-net/java_net_VMInetAddress.c: New file.
	Renamed from java_net_InetAddress.c. All native methods moved to class
	VMInetAddress.
	* native/jni/java-net/java_net_NetworkInterface.c: Renamed to...
	Renamed from java_net_NetworkInterface.c. All native methods moved to
	class VMNetworkInterface.
	* native/jni/java-net/java_net_VMNetworkInterface.c: New file.
	* vm/reference/java/net/VMInetAddress.java,
	vm/reference/java/net/VMNetworkInterface.java: New files.
	* include/java_net_InetAddress.h,
	include/java_net_NetworkInterface.h: Removed.
	* include/java_net_VMInetAddress.h,
	include/java_net_VMNetworkInterface.h: New files.
	* include/Makefile.am: Build new header files.

2005-04-11  Roman Kennke  <roman@kennke.org>

	* javax/swing/ImageIcon.java
	Added API documentation.

2005-04-11  Roman Kennke  <roman@kennke.org>

	* java/awt/MediaTracker.java
	Added API documentation.

2005-04-11  Michael Koch  <konqueror@gmx.de>

	* javax/imageio/ImageIO.java (ReaderFormatFilter.filter):
	Fixed wrong casting.

2005-04-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* org/omg/CORBA/Request.java:
	(send_deferred): Added missing 'abstract' keyword.
	
2005-04-10  Sven de Marothy  <sven@physto.se>

	* java/text/SimpleDateFormat.java:
	(formatWithAttribute): Pad year before truncating digits.

2005-04-10  Audrius Meskauskas  <audriusa@bluewin.ch>	
	* org/omg/CORBA/PRIVATE_MEMBER.java,
	org/omg/CORBA/PUBLIC_MEMBER.java,
	org/omg/CORBA/Request.java,
	org/omg/CORBA/StructMember.java,
	org/omg/CORBA/UnionMember.java,
	org/omg/CORBA/UNSUPPORTED_POLICY.java,
	org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java,
	org/omg/CORBA/ValueMember.java,
	org/omg/CORBA/VM_ABSTRACT.java,
	org/omg/CORBA/VM_CUSTOM.java,
	org/omg/CORBA/VM_NONE.java,
	org/omg/CORBA/VM_TRUNCATABLE.java,
	org/omg/CORBA/WrongTransaction.java,
	org/omg/CORBA/BAD_POLICY.java,
	org/omg/CORBA/BAD_POLICY_TYPE.java,
	org/omg/CORBA/BAD_POLICY_VALUE.java,
	org/omg/CORBA/Environment.java,
	org/omg/CORBA/IDLType.java,
	org/omg/CORBA/OMGVMCID.java: new files.
	
2005-04-09  Mark Wielaard  <mark@klomp.org>

	* native/jni/java-lang/java_lang_Double.c: Reindent.
	* native/jni/java-lang/java_lang_Math.c: Likewise.
	* native/jni/java-lang/java_lang_Object.c: Likewise.
	* native/jni/java-lang/java_lang_VMDouble.c: Likewise.
	* native/jni/java-lang/java_lang_VMFloat.c: Likewise.
	* native/jni/java-lang/java_lang_VMSystem.c: Likewise.
	* native/jni/java-lang/java_lang_reflect_Array.c: Likewise.
	* native/jni/java-nio/java_nio.c
	(Java_gnu_java_nio_FileChannelImpl_nio_1mmap_1file): Removed.
	(Java_gnu_java_nio_FileChannelImpl_nio_1unmmap_1file): Likewise.
	(Java_gnu_java_nio_SocketChannelImpl_SocketCreate): Likewise.
	(Java_gnu_java_nio_SocketChannelImpl_SocketConnect): Likewise.
	(Java_gnu_java_nio_SocketChannelImpl_SocketBind): Likewise.
	(Java_gnu_java_nio_SocketChannelImpl_SocketListen): Likewise.
	(Java_gnu_java_nio_SocketChannelImpl_SocketAvailable): Likewise.
	(Java_gnu_java_nio_SocketChannelImpl_SocketClose): Likewise.
	(Java_gnu_java_nio_SocketChannelImpl_SocketRead): Likewise.
	(Java_gnu_java_nio_SocketChannelImpl_SocketWrite): Likewise.
	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c: Reindent.

2005-04-09  Audrius Meskauskas  <audriusa@bluewin.ch>	
	* org/omg/CORBA/DynAnyPackage/Invalid.java,
	org/omg/CORBA/DynAnyPackage/InvalidSeq.java,
	org/omg/CORBA/DynAnyPackage/InvalidValue.java,
	org/omg/CORBA/DynAnyPackage/TypeMismatch.java,
	org/omg/CORBA/DynAnyPackage/package.html: New files.
	
2005-04-08  Sven de Marothy  <sven@physto.se>

	* gnu/java/nio/charset/UTF_8.java
	(Decoder): Previous fix was incorrect. Sorry.
	* java/nio/charset/Charset.java: Reset cached de/encoders.
	* java/nio/charset/CharsetDecoder.java,
	java/nio/charset/CharsetEncoder.java:
	Resize encoding/decoding result buffers.
	
2005-04-08  Sven de Marothy  <sven@physto.se>

	* gnu/java/nio/charset/Provider.java: Add new charsets.
	* gnu/java/nio/charset/UTF_16.java: Default to using BOM.
	* gnu/java/nio/charset/UTF_16Decoder.java: Minor fixes.
	* gnu/java/nio/charset/UTF_16Encoder.java,
	Use NIO's built-in byte-ordering instead.
	* gnu/java/nio/charset/UTF_8.java,
	(Decoder): Correct values of maximum chars per byte.
	(decodeLoop): Handle 4-byte surrogates.
	* gnu/java/nio/charset/ByteCharset.java,
	gnu/java/nio/charset/Cp424.java,
	gnu/java/nio/charset/Cp437.java,
	gnu/java/nio/charset/Cp737.java,
	gnu/java/nio/charset/Cp775.java,
	gnu/java/nio/charset/Cp850.java,
	gnu/java/nio/charset/Cp852.java,
	gnu/java/nio/charset/Cp855.java,
	gnu/java/nio/charset/Cp857.java,
	gnu/java/nio/charset/Cp860.java,
	gnu/java/nio/charset/Cp861.java,
	gnu/java/nio/charset/Cp862.java,
	gnu/java/nio/charset/Cp863.java,
	gnu/java/nio/charset/Cp864.java,
	gnu/java/nio/charset/Cp865.java,
	gnu/java/nio/charset/Cp866.java,
	gnu/java/nio/charset/Cp869.java,
	gnu/java/nio/charset/Cp874.java,
	gnu/java/nio/charset/EncodingHelper.java,
	gnu/java/nio/charset/ISO_8859_13.java,
	gnu/java/nio/charset/ISO_8859_15.java,
	gnu/java/nio/charset/ISO_8859_2.java,
	gnu/java/nio/charset/ISO_8859_3.java,
	gnu/java/nio/charset/ISO_8859_4.java,
	gnu/java/nio/charset/ISO_8859_5.java,
	gnu/java/nio/charset/ISO_8859_6.java,
	gnu/java/nio/charset/ISO_8859_7.java,
	gnu/java/nio/charset/ISO_8859_8.java,
	gnu/java/nio/charset/ISO_8859_9.java,
	gnu/java/nio/charset/KOI_8.java,
	gnu/java/nio/charset/MS874.java,
	gnu/java/nio/charset/MacCentralEurope.java,
	gnu/java/nio/charset/MacCroatian.java,
	gnu/java/nio/charset/MacCyrillic.java,
	gnu/java/nio/charset/MacDingbat.java,
	gnu/java/nio/charset/MacGreek.java,
	gnu/java/nio/charset/MacIceland.java,
	gnu/java/nio/charset/MacRoman.java,
	gnu/java/nio/charset/MacRomania.java,
	gnu/java/nio/charset/MacSymbol.java,
	gnu/java/nio/charset/MacThai.java,
	gnu/java/nio/charset/MacTurkish.java,
	gnu/java/nio/charset/Windows1250.java,
	gnu/java/nio/charset/Windows1251.java,
	gnu/java/nio/charset/Windows1252.java,
	gnu/java/nio/charset/Windows1253.java,
	gnu/java/nio/charset/Windows1254.java,
	gnu/java/nio/charset/Windows1255.java,
	gnu/java/nio/charset/Windows1256.java,
	gnu/java/nio/charset/Windows1257.java,
	gnu/java/nio/charset/Windows1258.java:
	New files.
	
2005-04-08  Roman Kennke  <roman@kennke.org>

	* java/awt/MediaTracker.java
	(MediaEntry.imageUpdate): Fixed flags. The different flags
	must not be ORed together.
	(checkAll): Modified to handle different meaning of the flags.
	(waitForAll): Fixed so that it waits maximum the
	specified amount of milliseconds.
	(statusAll): Modified to handle different meaning of the flags.
	(waitForID): Fixed so that it waits maximum the
	specified amount of milliseconds.

2005-04-08  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/ImageIcon.java
	(ImageIcon): Use setImage instead of direct assignment.
	(setImage): Call loadImage to make sure that the image is loaded.
	(loadImage): Waits for the image to complete loading.
	(getImageLoadStatus): Added. Returns the load status of the
	image.

2005-04-08  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/jni/classpath/jcl.h,
	native/jni/java-io/java_io_ObjectInputStream.c,
	native/jni/java-io/java_io_VMFile.c,
	native/jni/java-io/java_io_VMObjectStreamClass.c,
	native/jni/java-io/javaio.c,
	native/jni/java-lang/java_lang_Double.c,
	native/jni/java-lang/java_lang_Math.c,
	native/jni/java-lang/java_lang_Object.c,
	native/jni/java-lang/java_lang_VMDouble.c,
	native/jni/java-lang/java_lang_VMFloat.c,
	native/jni/java-lang/java_lang_VMProcess.c,
	native/jni/java-lang/java_lang_VMSystem.c,
	native/jni/java-lang/java_lang_reflect_Array.c,
	native/jni/java-net/gnu_java_net_PlainDatagramSocketImpl.c,
	native/jni/java-net/gnu_java_net_PlainSocketImpl.c,
	native/jni/java-net/java_net_InetAddress.c,
	native/jni/java-net/java_net_NetworkInterface.c,
	native/jni/java-net/javanet.c,
	native/jni/java-nio/gnu_java_nio_VMPipe.c,
	native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c,
	native/jni/java-nio/java_nio.c,
	native/jni/java-nio/java_nio_MappedByteBufferImpl.c,
	native/jni/java-nio/java_nio_VMDirectByteBuffer.c,
	native/jni/java-util/java_util_VMTimeZone.c: Reindented using 
	GNU indent (GNU style).

2005-04-08  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/JTextComponent.java
	(JTextComponent): Added repaintListener which issues repaint
	requests when the underlying document changes.
	(setDocument): Adds repaintListener to document when the
	document is changed.
	* javax/swing/text/DefaultEditorKit.java:
	Removed repaint calls on JTextComponent. This is now handled
	through a DocumentListener in JTextComponent that repaints
	the component when needed.

2005-04-07  Chris Burdess  <dog@gnu.org>

	* gnu/java/net/CRLFInputStream.java: Rewrite to return
	CRLF-delimited chunks.

2005-04-07  Roman Kennke  <roman@kennke.org>

	* javax/swing/UIDefaults.java:
	Added API documentation for all methods.

2005-04-06  Roman Kennke  <roman@kennke.org>

	* javax/swing/UIDefaults.java
	(put): Now uses new checkAndPut method instead of checking
	directly.
	(putDefaults): Fixed so that it accepts null-values and
	treats them like remove(key).
	(checkAndPut): Added. This checks for null-values and calls
	put or remove.

2005-04-06   Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/CTX_RESTRICT_SCOPE.java,
	org/omg/CORBA/ExceptionList.java,
	org/omg/CORBA/NVList.java,
	PrincipalHolder.java: New classes.
	* org/omg/CORBA/Context.java: Completing
	part, dependent from classes above,
	org/omg/CORBA/MARSHAL.java: accessibility fixes.

2005-04-05  Roman Kennke  <roman@kennke.org>

	* gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
	(getDisplayMode): Added. Returns the current display mode.
	(isFullScreenSupported): Added.
	* java/awt/GraphicsDevice.java
	(setFullScreenWindow): Implemented a primitive fullscreen mode.
	This resizes and relocates the fullscreen window so that it uses
	the whole screen. This is not a fully accelerated fullscreen
	exclusive mode.

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

	* java/lang/Class.java:
	(newInstance): Returns an instance of T instead of Object.
	(isEnum()): Now calls VMClass for a proper implementation.
	(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.
	* vm/reference/java/lang/reflect/Constructor.java:
	(newInstance(Object...)): Changed input parameter to a vararg.

2005-04-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/System.java:
	(getenv()): Use Collections.unmodifiableMap to wrap an
	EnvironmentMap.
	(EnvironmentCollection): Reduced to just String check changes.
	(EnvironmentSet): Likewise.
	(EnvironmentMap): Likewise.
	(EnvironmentIterator): Removed.
	
2005-04-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/StringBuilder.java:
	Change references to System.arraycopy to
	VMSystem.arraycopy.

2005-04-03  Guilhem Lavaux  <guilhem@kaffe.org>
	Rei Odaira <ray@is.s.u-tokyo.ac.jp>

	* native/jni/java-nio/gnu_java_nio_VMSelector.c
	(helper_select): Return the error number.
	(Java_gnu_java_nio_VMSelector_select0): If the result is negative
	consider it as the error code. This prevents conflicts between EINTR
	and the number of filedescriptor particularly.

2005-04-03  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/jni/java-nio/gnu_java_nio_VMSelector.c: Reindented.
	
2005-04-01  Tom Tromey  <tromey@redhat.com>

	* java/lang/AssertionError.java: Typo fix.

2005-04-01  Michael Koch  <konqueror@gmx.de>

	* java/io/PipedInputStream.java
	(read): Make sure a positive byte value is returned. Revised javadoc.
	Thanks to Olafur Bragason for reporting these bugs.

2005-04-01  Guilhem Lavaux  <guilhem@kaffe.org>

	* java/awt/image/IndexColorModel.java
	(getRGB): Check if pixel is negative.

2005-03-31  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/swing/text/JTextComponent.java (viewToModel): New method.

2005-03-31  Audrius Meskauskas  <audriusa@bluewin.ch>
	* org/omg/CORBA/ORBPackage/InconsistentTypeCode.java,
	org/omg/CORBA/ORBPackage/InvalidName.java,
	org/omg/CORBA/ORBPackage/package.html: New files.

2005-03-31  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(getClipBounds): Handle clip being null.
	(setClip): Likewise.
	* java/beans/beancontext/BeanContextSupport.java
	(add): Implemented.
	(addAll): Likewise.
	(clear): Likewise.
	(removeAll): Likewise.
	(retainAll): Likewise.

2005-03-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GdkGraphics.java:
	(drawImage): Don't notify the image observer for offscreen images.
	* gnu/java/awt/peer/gtk/GtkImagePainter.java:
	(setPixels): Don't notify the image observer.

2005-03-30  Michael Koch  <konqueror@gmx.de>

	* java/beans/beancontext/BeanContextServicesSupport.java
	(BeanContextServicesSupport): Reimplemented.
	(addBeanContextServicesListener): Implemented.
	(initialize): Likewise.
	(removeBeanContextServicesListener): Likewise.
	* java/beans/beancontext/BeanContextSupport.java
	(add): Likewise.
	(addBeanContextMembershipListener): Likewise.
	(getLocale): Likewise.
	(initialize): Likewise.
	(iterator): Likewise.
	(remove): Likewise.
	(toArray): Likewise.

2005-03-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/image/ConvolveOp.java:
	Removed comment added by eclipse.

2005-03-30  Michael Koch  <konqueror@gmx.de>

	* gnu/xml/aelfred2/XmlParser.java:
	Revert my typo fix.

2005-03-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/geom/CubicCurve2D.java,
	java/awt/geom/QuadCurve2D.java:
	Fixed typo in name of Brian Cough.

2005-03-29  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/jni/java-nio/gnu_java_nio_VMSelector.c
	(Java_gnu_java_nio_VMSelector_select): Use GetStaticMethodID
	for Thread.interrupted().
		
2005-03-29  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/classpath/SystemProperties.java (static): Converted encoding
	aliases	to lower case and removed redudant aliases.
	* gnu/java/io/EncodingManager.java
	(findEncoderConstructor, findDecoderConstructor): Call new method
	resolveAlias().
	(resolveAlias): New method.
	* java/lang/System.java (getProperties): Removed uppercase aliases
	from comments.

2005-03-28  Tom Tromey  <tromey@redhat.com>

	* java/net/URL.java (DEFAULT_SEARCH_PATH): Added
	org.metastatic.jessie.

2005-03-28  Tom Tromey  <tromey@redhat.com>

	* java/lang/ClassLoader.java (loadClass): Resolve class even if
	it was already found.

2005-03-28  Sven de Marothy  <sven@physto.se>

	* gnu/java/io/decode/DecoderUnicodeBig.java,
	* gnu/java/io/decode/DecoderUnicodeLittle.java,
	* gnu/java/io/encode/EncoderUnicodeBig.java,
	* gnu/java/io/encode/EncoderUnicodeLittle.java:
	New files.

2005-03-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* doc/hacking.texinfo:
	Added note on reserved word usage.
	
2005-03-26  Dalibor Topic  <robilad@kaffe.org>

	* native/jni/java-nio/gnu_java_nio_VMSelector.c:
	Moved include statement for config.h to the top to
	fix the build on Darwin6.

	Reported by:  Riccardo Mottola <zuse@libero.it>

2005-03-26  Dalibor Topic  <robilad@kaffe.org>

	* native/jni/java-nio/gnu_java_nio_VMSelector.c:
	Include <sys/types.h> to fix build on OS X.

	Reported by: Michael Franz <mvfranz@gmail.com>

2005-03-26  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* java/text/DecimalFormat.java (parse):
	Check whether the positive suffix matches the pattern.

2005-03-26  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomNode.java (notifyNode): grow listener array as
	required.

2005-03-26  Jeroen Frijters  <jeroen@frijters.net>

	* javax/imageio/spi/IIORegistry.java (IIORegistry):
	Don't assume that awt Toolkit is always ClasspathToolkit.

2005-03-26  Jeroen Frijters  <jeroen@frijters.net>

	* java/awt/image/PixelGrabber.java (setPixels(int,int,int,int,
	ColorModel,byte[],int,int): Fixed byte to int conversion.

2005-03-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/xml/dom/html2/DomHTMLParser.java:
	Changed 'enum' references to become 'enumeration'.

2005-03-22  Archie Cobbs  <archie@dellroad.org>

	* configure.ac: Generate scripts/classpath.spec.
	* scripts/classpath.spec.in: New file.

2005-03-21  Audrius Meskauskas  <audriusa@bluewin.ch>
	
	* gnu/xml/dom/html2/DomHTMLParser.java: New file.
	* gnu/classpath/examples/html/Demo.java: New example.

2005-03-21  Sven de Marothy  <sven@physto.se>

	* gnu/classpath/SystemProperties.java:
	Add missing aliases for "UnicodeBigUnmarked" and
	UnicodeLittleUnmarked".
	
2005-03-21  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/events/escape_fosdem05.wml: Add link to kaffe
	presentation.

2005-03-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Class.java:
	Implements java.lang.reflect.Type
	* java/lang/ClassLoader.java:
	(getResources(String)): No longer final.
	* java/lang/Enum.java:
	Added serialization UID.
	* java/lang/Thread.java:
	(destroy()): Deprecated.
	(Thread.State): Added serialization UID.
	
2005-03-19  Archie Cobbs  <archie@dellroad.org>

	* vm/reference/java/lang/VMClassLoader.java: handle ZIP files
	on the boot loader class path in getResources()

2005-03-19  Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/AnySeqHolder.java,
	org/omg/CORBA/AnySeqHelper.java,
	org/omg/CORBA/CompletionStatusHelper.java:
	New files.

2005-03-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/IllegalArgumentException:
	(IllegalArgumentException(String, Throwable)):
	Implemented.
	(IllegalArgumentException(Throwable)): Likewise.
	(IllegalStateException(String, Throwable)):
	Implemented.
	(IllegalStateException(Throwable)): Likewise.
	(SecurityException(String, Throwable)):
	Implemented.
	(SecurityException(Throwable)): Likewise.
	(UnsupportedOperationException(String, Throwable)):
	Implemented.
	(UnsupportedOperationException(Throwable)): Likewise.

2005-03-18  Mark Wielaard  <mark@klomp.org>

	* doc/www/downloads/downloads.wml: Add 0.14.
	* doc/www/announce/20050226.wml: New file.

2005-03-18  Sven de Marothy  <sven@physto.se>

	* java/util/zip/GZIPInputStream.java:
	(GZIPInputStream): Read header in constructor.
	
2005-03-18  Audrius Meskauskas  <audriusa@bluewin.ch>

	* ChangeLog.usermap: New file (replacing).

2005-03-18  Audrius Meskauskas  <audriusa@bluewin.ch>

	* javax/swing/text/html/parser/Entity.java (getType): New method.
	* javax/swing/text/html/parser/DocumentParser.java:
	Inherit from javax.swing.text.html.parser.Parser.
	
2005-03-18  Robert Schuster  <thebohemian@gmx>

	* native/jni/java-nio/gnu_java_nio_VMSelector.c: Added important
	return statement after throwing exception.

2005-03-18  Robert Schuster  <thebohemian@gmx>

	* native/jni/java-nio/gnu_java_nio_VMSelector.c: Implemented
	Java_gnu_java_nio_VMSelector_select.
	* configure.ac: Added check for sys/select.h and strerro_r().

2005-03-17  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/newsitems.txt: Add 0.14 release announcement
	and link for the dead of the gui branch.

2005-03-17  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/html2/DomHTMLDocument.java: Fixed element creation and
	check for HTML/XHTML namespace.

2005-03-16  Tom Tromey  <tromey@redhat.com>

	* gnu/java/lang/MainThread.java (MainThread): Load main class
	using system class loader.

2005-03-16  Archie Cobbs  <archie@dellroad.org>

	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c: use
	global native reference to wrap persistent jclass variable.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c:
	use DeleteLocalRef() to avoid exhausting local native references.

2005-03-16  Mark Wielaard  <mark@klomp.org>

	* doc/vmintegration.texinfo: Change input start to \input.

2005-03-16  Robert Schuster  <thebohemian@gmx.net>

	* doc/vmintegration.texinfo: Added explanation
	of gnu.classpath.boot.library.path property.

2005-03-16  Robert Schuster  <thebohemian@gmx.net>

	* java/lang/Runtime.java: Added support for
	gnu.classpath.boot.library.path system property.

2005-03-14  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomImpl.java,
	gnu/xml/dom/html2/DomHTMLAnchorElement.java,
	gnu/xml/dom/html2/DomHTMLDocument.java,
	gnu/xml/dom/html2/DomHTMLElement.java,
	gnu/xml/dom/html2/DomHTMLFormElement.java,
	gnu/xml/dom/html2/DomHTMLFrameElement.java,
	gnu/xml/dom/html2/DomHTMLIFrameElement.java,
	gnu/xml/dom/html2/DomHTMLImpl.java,
	gnu/xml/dom/html2/DomHTMLInputElement.java,
	gnu/xml/dom/html2/DomHTMLObjectElement.java,
	gnu/xml/dom/html2/DomHTMLOptionElement.java,
	gnu/xml/dom/html2/DomHTMLSelectElement.java,
	gnu/xml/dom/html2/DomHTMLTableCellElement.java,
	gnu/xml/dom/html2/DomHTMLTableElement.java,
	gnu/xml/dom/html2/DomHTMLTableRowElement.java,
	gnu/xml/dom/html2/DomHTMLTableSectionElement.java,
	gnu/xml/dom/html2/DomHTMLTextAreaElement.java: JAXP integration,
	UI events, and tree utility functions.

2005-03-14  Patrik Reali  <reali@acm.org>

	* doc/www.gnu.org/newsitems.txt: news on gui branch and calientra
	* doc/www.gnu.org/docs/docs.wml: link to the wiki added
	* doc/www.gnu.org/faq/faq.wml: entry on tainted developers

2005-03-14  Audrius Meskauskas  <audriusa@bluewin.ch>

	* javax/swing/text/html/parser/Parser.java,
	javax/swing/text/html/parser/Entity.java:
	Inheriting from DTDConstants.
	* javax/swing/text/html/parser/AttributeList.java
	(getValues): Changed return type.
	* javax/swing/text/html/parser/DocumentParser
	(parse): Adding the callback parameter that receives
	the parsing events.

2005-03-13  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Set version to 0.14+cvs.

2005-03-13  Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/BAD_CONTEXT.java,
	org/omg/CORBA/BAD_INV_ORDER.java,
	org/omg/CORBA/BAD_OPERATION.java,
	org/omg/CORBA/BAD_TYPECODE.java,
	org/omg/CORBA/COMM_FAILURE.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_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/NO_IMPLEMENT.java,
	org/omg/CORBA/NO_MEMORY.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/PERSIST_STORE.java,
	org/omg/CORBA/TRANSACTION_REQUIRED.java,
	org/omg/CORBA/TRANSACTION_ROLLEDBACK.java,
	org/omg/CORBA/TRANSIENT.java: making constructors
	public.

2005-03-13  Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/StringSeqHolder.java,
	org/omg/CORBA/WStringSeqHolder.java:
	replacing replacing CR CR LF by CR LF.
	* org/omg/CORBA/BAD_PARAM.java: making constructors
	public.

2005-03-13  Michael Koch  <konqueror@gmx.de>

	* org/omg/CORBA/ARG_IN.java: Removed redundant modifiers.
	* org/omg/CORBA/ARG_INOUT.java: Likewise.
	* org/omg/CORBA/ARG_OUT.java: Likewise.
	* org/omg/CORBA/Any.java: Fixed HTML tags.
	* org/omg/CORBA/Principal.java: Likewise.
	* org/omg/CORBA/BAD_PARAM.java: Reordered modifiers.
	* org/omg/CORBA/FixedHolder.java: Reworked imports.
	* org/omg/CORBA/StringSeqHolder.java: Likewise.
	* org/omg/CORBA/TypeCode.java: Likewise.
	* org/omg/CORBA/TypeCodePackage/BadKind.java: Likewise.
	* org/omg/CORBA/TypeCodePackage/Bounds.java: Likewise.
	* org/omg/CORBA/WStringSeqHolder.java: Likewise.
	* org/omg/CORBA/portable/OutputStream.java: Likewise.

2005-03-13  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/protocol/https/Handler.java:
	Reworked import statements.

2005-03-13  Michael Koch  <konqueror@gmx.de>

	* gnu/javax/swing/text/html/parser/HTML_401F.java,
	gnu/javax/swing/text/html/parser/gnuDTD.java,
	gnu/javax/swing/text/html/parser/models/node.java:
	Reworked import statements.

2005-03-13  Michael Koch  <konqueror@gmx.de>

	* gnu/xml/aelfred2/XmlParser.java: Fixed typo.

2005-03-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/javax/swing/text/html/parser/htmlAttributeSet.java:
	(getAttributeNames()): Replaced 'enum' with 'enumeration'.
	* gnu/javax/swing/text/html/parser/htmlValidator.java:
	(validateParameters(TagElement,htmlAttributeSet)):
	Replaced 'enum' with 'enumeration'.
	(validateAttribute(TagElement,htmlAttributeSet,
	                   Enumeration,Enumeration)):
	Likewise.

2005-03-12  Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/StringSeqHelper.java,
	org/omg/CORBA/WStringSeqHelper.java: New files.

2005-03-12  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/events/escape_fosdem05.wml: Add links to
	presentations.

2005-03-11  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/html2/DomHTMLButtonElement.java,
	gnu/xml/dom/html2/DomHTMLCollection.java,
	gnu/xml/dom/html2/DomHTMLDocument.java,
	gnu/xml/dom/html2/DomHTMLElement.java: Extensions for new element
	types.
	* gnu/xml/dom/html2/DomHTMLDListElement.java,
	gnu/xml/dom/html2/DomHTMLDirectoryElement.java,
	gnu/xml/dom/html2/DomHTMLDivElement.java,
	gnu/xml/dom/html2/DomHTMLFieldSetElement.java,
	gnu/xml/dom/html2/DomHTMLFontElement.java,
	gnu/xml/dom/html2/DomHTMLFormElement.java,
	gnu/xml/dom/html2/DomHTMLFrameElement.java,
	gnu/xml/dom/html2/DomHTMLFrameSetElement.java,
	gnu/xml/dom/html2/DomHTMLHRElement.java,
	gnu/xml/dom/html2/DomHTMLHeadElement.java,
	gnu/xml/dom/html2/DomHTMLHeadingElement.java,
	gnu/xml/dom/html2/DomHTMLHtmlElement.java,
	gnu/xml/dom/html2/DomHTMLIFrameElement.java,
	gnu/xml/dom/html2/DomHTMLImageElement.java,
	gnu/xml/dom/html2/DomHTMLInputElement.java,
	gnu/xml/dom/html2/DomHTMLIsIndexElement.java,
	gnu/xml/dom/html2/DomHTMLLIElement.java,
	gnu/xml/dom/html2/DomHTMLLabelElement.java,
	gnu/xml/dom/html2/DomHTMLLegendElement.java,
	gnu/xml/dom/html2/DomHTMLLinkElement.java,
	gnu/xml/dom/html2/DomHTMLMapElement.java,
	gnu/xml/dom/html2/DomHTMLMenuElement.java,
	gnu/xml/dom/html2/DomHTMLMetaElement.java,
	gnu/xml/dom/html2/DomHTMLModElement.java,
	gnu/xml/dom/html2/DomHTMLOListElement.java,
	gnu/xml/dom/html2/DomHTMLObjectElement.java,
	gnu/xml/dom/html2/DomHTMLOptGroupElement.java,
	gnu/xml/dom/html2/DomHTMLOptionElement.java,
	gnu/xml/dom/html2/DomHTMLParagraphElement.java,
	gnu/xml/dom/html2/DomHTMLParamElement.java,
	gnu/xml/dom/html2/DomHTMLPreElement.java,
	gnu/xml/dom/html2/DomHTMLQuoteElement.java,
	gnu/xml/dom/html2/DomHTMLScriptElement.java,
	gnu/xml/dom/html2/DomHTMLSelectElement.java,
	gnu/xml/dom/html2/DomHTMLStyleElement.java,
	gnu/xml/dom/html2/DomHTMLTableCaptionElement.java,
	gnu/xml/dom/html2/DomHTMLTableCellElement.java,
	gnu/xml/dom/html2/DomHTMLTableColElement.java,
	gnu/xml/dom/html2/DomHTMLTableElement.java,
	gnu/xml/dom/html2/DomHTMLTableRowElement.java,
	gnu/xml/dom/html2/DomHTMLTableSectionElement.java,
	gnu/xml/dom/html2/DomHTMLTextAreaElement.java,
	gnu/xml/dom/html2/DomHTMLTitleElement.java,
	gnu/xml/dom/html2/DomHTMLUListElement.java: New files.

2005-03-11  Chris Burdess  <dog@gnu.org>

	* gnu/xml/aelfred2/SAXDriver.java: Corrected bug handling URI
	warnings.

2005-03-11  Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/portable/InputStream.java (read_Context):
	following API, this must be concrete and unimplemented.

2005-03-11  Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/BooleanSeqHelper.java,
	org/omg/CORBA/CharSeqHelper.java,
	org/omg/CORBA/DoubleSeqHelper.java,
	org/omg/CORBA/FloatSeqHelper.java,
	org/omg/CORBA/LongLongSeqHelper.java,
	org/omg/CORBA/LongSeqHelper.java,
	org/omg/CORBA/OctetSeqHelper.java,
	org/omg/CORBA/ShortSeqHelper.java,
	org/omg/CORBA/ULongLongSeqHelper.java,
	org/omg/CORBA/ULongSeqHelper.java,
	org/omg/CORBA/UShortSeqHelper.java,
	org/omg/CORBA/WCharSeqHelper.java,
	org/omg/CORBA/StringSeqHelper.java,
	org/omg/CORBA/WStringSeqHelper.java:
	New sequence holders.
	* org/omg/CORBA/StringSeqHelper.java,
	org/omg/CORBA/WStringSeqHelper.java: New helpers.

2005-03-11  Archie Cobbs  <archie@dellroad.org>

	* native/jni/java-lang/java_lang_VMProcess.c: Fix segfault
	in the case that a zero length command array is passed.

2005-03-11  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/fdlibm/ieeefp.h: Merge m32r bits from libgcj to keep the diff
	minimal.

2005-03-11  Roman Kennke  <roman@kennke.org>

	* java/awt/Compmonent.java
	(setComponentOrientation): The variable oldOrientation is initialized
	too early. This is fixed.

2005-03-11  Roman Kennke  <roman@kennke.org>

	* java/awt/Compmonent.java
	(setComponentOrientation): Made this property firing a
	PropertyChangeEvent.

2005-03-11  Robert Schuster  <thebohemian@gmx.net>

	* java/beans/EventHandler.java: Reworked documentation.
	(invoke): Fixed behavior to match spec. 

2005-03-11  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/Class.java (newInstance): Fixed previous patch.

2005-03-11  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/Class.java (newInstance): Fix bug related to package
	private classes.

2005-03-10  Andrew Haley  <aph@redhat.com>

	* gnu/java/nio/channels/FileChannelImpl.java (smallTransferFrom):
	New.
	(smallTransferTo): New.
	(transferFrom): Loop around smallTransferFrom, copying pageSize
	bytes each time.
	(transferTo): Likewise.

2005-03-10  Tom Tromey  <tromey@redhat.com>

	* java/io/InputStreamReader.java: Indentation fixlets.  Added
	'@since' markers.

2005-03-10  Chris Burdess  <dog@bluezoo.org>

	* gnu/xml/dom/ls/SAXEventSink.java: Ignore element declarations if
	not currently parsing the DTD.

2005-03-10  Audrius Meskauskas  <audriusa@bluewin.ch>

	* testsuite/javax.swing.text.html.parser/
	AllParserTests.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/HTML_Test.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/AttributeList_test.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/DTD_test.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/Element_Test.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/Entity_Test.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/HTML_parsing.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/HTML_randomTable.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/parameterDefaulter_Test.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/Parser_Test.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/ParserEntityResolverTest.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/ParserTest.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/supplementaryNotifications.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/TagElement_Test.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/TestCase.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/Text.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/textPreProcessor_Test.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/Token_locations.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/low/Buffer_Test.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/low/Constants_Test.java,
	testsuite/javax.swing.text.html.parser/
	test/gnu/javax/swing/text/html/parser/low/ReaderTokenizer_Test.java:
	New Classpath specific tests for the parser classes in gnu namespace.

2005-03-10  Audrius Meskauskas  <audriusa@bluewin.ch>

	* javax/swing/text/ChangedCharSetException.java,
	javax/swing/text/html/HTMLEditorKit.java,
	javax/swing/text/html/HTMLFrameHyperlinkEvent.java,
	javax/swing/text/html/parser/AttributeList.java,
	javax/swing/text/html/parser/ContentModel.java,
	javax/swing/text/html/parser/DocumentParser.java,
	javax/swing/text/html/parser/DTD.java,
	javax/swing/text/html/parser/DTDConstants.java,
	javax/swing/text/html/parser/Element.java,
	javax/swing/text/html/parser/Entity.java,
	javax/swing/text/html/parser/Parser.java,
	javax/swing/text/html/parser/TagElement.java,
	gnu/javax/swing/text/html/package.html,
	gnu/javax/swing/text/html/parser/gnuDTD.java,
	gnu/javax/swing/text/html/parser/HTML_401F.java,
	gnu/javax/swing/text/html/parser/htmlAttributeSet.java,
	gnu/javax/swing/text/html/parser/htmlValidator.java,
	gnu/javax/swing/text/html/parser/package.html,
	gnu/javax/swing/text/html/parser/models/list.java,
	gnu/javax/swing/text/html/parser/models/node.java,
	gnu/javax/swing/text/html/parser/models/noTagModel.java,
	gnu/javax/swing/text/html/parser/models/package.html,
	gnu/javax/swing/text/html/parser/models/PCDATAonly_model.java,
	gnu/javax/swing/text/html/parser/models/TableRowContentModel.java,
	gnu/javax/swing/text/html/parser/models/transformer.java,
	gnu/javax/swing/text/html/parser/support/gnuStringIntMapper.java,
	gnu/javax/swing/text/html/parser/support/package.html,
	gnu/javax/swing/text/html/parser/support/parameterDefaulter.java,
	gnu/javax/swing/text/html/parser/support/Parser.java,
	gnu/javax/swing/text/html/parser/support/textPreProcessor.java,
	gnu/javax/swing/text/html/parser/support/low/Buffer.java,
	gnu/javax/swing/text/html/parser/support/low/Constants.java,
	gnu/javax/swing/text/html/parser/support/low/Location.java,
	gnu/javax/swing/text/html/parser/support/low/node.java,
	gnu/javax/swing/text/html/parser/support/low/package.html,
	gnu/javax/swing/text/html/parser/support/low/ParseException.java,
	gnu/javax/swing/text/html/parser/support/low/pattern.java,
	gnu/javax/swing/text/html/parser/support/low/Queue.java,
	gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java:
	New files.
	* javax/swing/text/html/HTML.java,
	javax/swing/text/html/parser/ParserDelegator.java:
	New files (replacing).
	* javax/swing/text/html/package.html,
	javax/swing/text/html/parser/package.html: Documenting the
	packages.

2005-03-09  Sven de Marothy  <sven@physto.se>

	* java/util/Calendar.java
	(set): Use starting day of week when one is needed if none is given.
	* java/text/SimpleDateFormat.java
	(parse): Handle 1-12 and 1-24 timestamps correctly.
	* java/util/GregorianCalendar
	(computeTime, computeFields): HOUR should be in 0-11 format.
	(nonLeniencyCheck): Adjust leniency checking to that fact.

2005-03-09  Sven de Marothy  <sven@physto.se>

	* gnu/java/locale/Calendar.java,
	gnu/java/locale/Calendar_nl.java,
	gnu/java/locale/Calendar_de.java,
	gnu/java/locale/Calendar_en.java:
	Removed.

2005-03-09  Sven de Marothy  <sven@physto.se>

	* java/util/Calendar.java:
	Updated to use gnu.java.locale.LocaleInformation for locale info.
	* java/util/GregorianCalendar.java:
	Made gregorianCutover a hard-coded constant. It is not localized.

2005-03-09  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/html2/DomHTMLAnchorElement.java,
	gnu/xml/dom/html2/DomHTMLAppletElement.java,
	gnu/xml/dom/html2/DomHTMLAreaElement.java,
	gnu/xml/dom/html2/DomHTMLBaseElement.java,
	gnu/xml/dom/html2/DomHTMLBaseFontElement.java,
	gnu/xml/dom/html2/DomHTMLBodyElement.java,
	gnu/xml/dom/html2/DomHTMLBRElement.java,
	gnu/xml/dom/html2/DomHTMLButtonElement.java,
	gnu/xml/dom/html2/DomHTMLCollection.java,
	gnu/xml/dom/html2/DomHTMLDocument.java,
	gnu/xml/dom/html2/DomHTMLElement.java: New files.

2005-03-09  Michael Koch  <konqueror@gmx.de>

	* gnu/java/locale/LocaleInformation.java,
	gnu/java/locale/LocaleInformation_aa.java,
	gnu/java/locale/LocaleInformation_aa_DJ.java,
	gnu/java/locale/LocaleInformation_aa_ER.java,
	gnu/java/locale/LocaleInformation_aa_ER_SAAHO.java,
	gnu/java/locale/LocaleInformation_aa_ET.java,
	gnu/java/locale/LocaleInformation_af.java,
	gnu/java/locale/LocaleInformation_af_ZA.java,
	gnu/java/locale/LocaleInformation_am.java,
	gnu/java/locale/LocaleInformation_am_ET.java,
	gnu/java/locale/LocaleInformation_ar.java,
	gnu/java/locale/LocaleInformation_ar_DZ.java,
	gnu/java/locale/LocaleInformation_ar_IN.java,
	gnu/java/locale/LocaleInformation_ar_IQ.java,
	gnu/java/locale/LocaleInformation_ar_JO.java,
	gnu/java/locale/LocaleInformation_ar_KW.java,
	gnu/java/locale/LocaleInformation_ar_LB.java,
	gnu/java/locale/LocaleInformation_ar_LY.java,
	gnu/java/locale/LocaleInformation_ar_MA.java,
	gnu/java/locale/LocaleInformation_ar_QA.java,
	gnu/java/locale/LocaleInformation_ar_SA.java,
	gnu/java/locale/LocaleInformation_ar_SY.java,
	gnu/java/locale/LocaleInformation_ar_TN.java,
	gnu/java/locale/LocaleInformation_ar_YE.java,
	gnu/java/locale/LocaleInformation_as.java,
	gnu/java/locale/LocaleInformation_as_IN.java,
	gnu/java/locale/LocaleInformation_az_Cyrl.java,
	gnu/java/locale/LocaleInformation_be.java,
	gnu/java/locale/LocaleInformation_be_BY.java,
	gnu/java/locale/LocaleInformation_bg.java,
	gnu/java/locale/LocaleInformation_bg_BG.java,
	gnu/java/locale/LocaleInformation_bn.java,
	gnu/java/locale/LocaleInformation_bn_IN.java,
	gnu/java/locale/LocaleInformation_ca.java,
	gnu/java/locale/LocaleInformation_ca_ES.java,
	gnu/java/locale/LocaleInformation_cs.java,
	gnu/java/locale/LocaleInformation_cs_CZ.java,
	gnu/java/locale/LocaleInformation_cy.java,
	gnu/java/locale/LocaleInformation_cy_GB.java,
	gnu/java/locale/LocaleInformation_da.java,
	gnu/java/locale/LocaleInformation_da_DK.java,
	gnu/java/locale/LocaleInformation_de.java,
	gnu/java/locale/LocaleInformation_de_AT.java,
	gnu/java/locale/LocaleInformation_de_BE.java,
	gnu/java/locale/LocaleInformation_de_CH.java,
	gnu/java/locale/LocaleInformation_de_DE.java,
	gnu/java/locale/LocaleInformation_de_LI.java,
	gnu/java/locale/LocaleInformation_de_LU.java,
	gnu/java/locale/LocaleInformation_dv.java,
	gnu/java/locale/LocaleInformation_dv_MV.java,
	gnu/java/locale/LocaleInformation_dz.java,
	gnu/java/locale/LocaleInformation_dz_BT.java,
	gnu/java/locale/LocaleInformation_el.java,
	gnu/java/locale/LocaleInformation_el_GR.java,
	gnu/java/locale/LocaleInformation_en.java,
	gnu/java/locale/LocaleInformation_en_AS.java,
	gnu/java/locale/LocaleInformation_en_AU.java,
	gnu/java/locale/LocaleInformation_en_BE.java,
	gnu/java/locale/LocaleInformation_en_BW.java,
	gnu/java/locale/LocaleInformation_en_BZ.java,
	gnu/java/locale/LocaleInformation_en_CA.java,
	gnu/java/locale/LocaleInformation_en_GB.java,
	gnu/java/locale/LocaleInformation_en_GU.java,
	gnu/java/locale/LocaleInformation_en_HK.java,
	gnu/java/locale/LocaleInformation_en_IE.java,
	gnu/java/locale/LocaleInformation_en_IN.java,
	gnu/java/locale/LocaleInformation_en_MH.java,
	gnu/java/locale/LocaleInformation_en_MP.java,
	gnu/java/locale/LocaleInformation_en_MT.java,
	gnu/java/locale/LocaleInformation_en_NZ.java,
	gnu/java/locale/LocaleInformation_en_PH.java,
	gnu/java/locale/LocaleInformation_en_PK.java,
	gnu/java/locale/LocaleInformation_en_SG.java,
	gnu/java/locale/LocaleInformation_en_UM.java,
	gnu/java/locale/LocaleInformation_en_US.java,
	gnu/java/locale/LocaleInformation_en_US_POSIX.java,
	gnu/java/locale/LocaleInformation_en_VI.java,
	gnu/java/locale/LocaleInformation_en_ZA.java,
	gnu/java/locale/LocaleInformation_en_ZW.java,
	gnu/java/locale/LocaleInformation_eo.java,
	gnu/java/locale/LocaleInformation_es.java,
	gnu/java/locale/LocaleInformation_es_AR.java,
	gnu/java/locale/LocaleInformation_es_BO.java,
	gnu/java/locale/LocaleInformation_es_CL.java,
	gnu/java/locale/LocaleInformation_es_CO.java,
	gnu/java/locale/LocaleInformation_es_CR.java,
	gnu/java/locale/LocaleInformation_es_DO.java,
	gnu/java/locale/LocaleInformation_es_EC.java,
	gnu/java/locale/LocaleInformation_es_ES.java,
	gnu/java/locale/LocaleInformation_es_GT.java,
	gnu/java/locale/LocaleInformation_es_HN.java,
	gnu/java/locale/LocaleInformation_es_MX.java,
	gnu/java/locale/LocaleInformation_es_NI.java,
	gnu/java/locale/LocaleInformation_es_PA.java,
	gnu/java/locale/LocaleInformation_es_PE.java,
	gnu/java/locale/LocaleInformation_es_PR.java,
	gnu/java/locale/LocaleInformation_es_PY.java,
	gnu/java/locale/LocaleInformation_es_SV.java,
	gnu/java/locale/LocaleInformation_es_US.java,
	gnu/java/locale/LocaleInformation_es_UY.java,
	gnu/java/locale/LocaleInformation_es_VE.java,
	gnu/java/locale/LocaleInformation_et.java,
	gnu/java/locale/LocaleInformation_et_EE.java,
	gnu/java/locale/LocaleInformation_eu.java,
	gnu/java/locale/LocaleInformation_eu_ES.java,
	gnu/java/locale/LocaleInformation_fa.java,
	gnu/java/locale/LocaleInformation_fa_AF.java,
	gnu/java/locale/LocaleInformation_fa_IR.java,
	gnu/java/locale/LocaleInformation_fi.java,
	gnu/java/locale/LocaleInformation_fi_FI.java,
	gnu/java/locale/LocaleInformation_fo.java,
	gnu/java/locale/LocaleInformation_fo_FO.java,
	gnu/java/locale/LocaleInformation_fr.java,
	gnu/java/locale/LocaleInformation_fr_BE.java,
	gnu/java/locale/LocaleInformation_fr_CA.java,
	gnu/java/locale/LocaleInformation_fr_CH.java,
	gnu/java/locale/LocaleInformation_fr_LU.java,
	gnu/java/locale/LocaleInformation_ga.java,
	gnu/java/locale/LocaleInformation_ga_IE.java,
	gnu/java/locale/LocaleInformation_gl.java,
	gnu/java/locale/LocaleInformation_gl_ES.java,
	gnu/java/locale/LocaleInformation_gu.java,
	gnu/java/locale/LocaleInformation_gu_IN.java,
	gnu/java/locale/LocaleInformation_gv.java,
	gnu/java/locale/LocaleInformation_gv_GB.java,
	gnujava/locale/LocaleInformation_he.java,
	gnu/java/locale/LocaleInformation_he_IL.java,
	gnu/java/locale/LocaleInformation_hi.java,
	gnu/java/locale/LocaleInformation_hi_IN.java,
	gnu/java/locale/LocaleInformation_hr.java,
	gnu/java/locale/LocaleInformation_hu.java,
	gnu/java/locale/LocaleInformation_hu_HU.java,
	gnu/java/locale/LocaleInformation_hy.java,
	gnu/java/locale/LocaleInformation_hy_AM.java,
	gnu/java/locale/LocaleInformation_hy_AM_REVISED.java,
	gnu/java/locale/LocaleInformation_id.java,
	gnu/java/locale/LocaleInformation_id_ID.java,
	gnu/java/locale/LocaleInformation_is.java,
	gnu/java/locale/LocaleInformation_is_IS.java,
	gnu/java/locale/LocaleInformation_it.java,
	gnu/java/locale/LocaleInformation_it_CH.java,
	gnu/java/locale/LocaleInformation_it_IT.java,
	gnu/java/locale/LocaleInformation_iu.java,
	gnu/java/locale/LocaleInformation_ja.java,
	gnu/java/locale/LocaleInformation_ja_JP.java,
	gnu/java/locale/LocaleInformation_ka.java,
	gnu/java/locale/LocaleInformation_kk.java,
	gnu/java/locale/LocaleInformation_kk_KZ.java,
	gnu/java/locale/LocaleInformation_kl.java,
	gnu/java/locale/LocaleInformation_kl_GL.java,
	gnu/java/locale/LocaleInformation_km.java,
	gnu/java/locale/LocaleInformation_km_KH.java,
	gnu/java/locale/LocaleInformation_kn.java,
	gnu/java/locale/LocaleInformation_kn_IN.java,
	gnu/java/locale/LocaleInformation_ko.java,
	gnu/java/locale/LocaleInformation_ko_KR.java,
	gnu/java/locale/LocaleInformation_kw.java,
	gnu/java/locale/LocaleInformation_kw_GB.java,
	gnu/java/locale/LocaleInformation_ky.java,
	gnu/java/locale/LocaleInformation_lo.java,
	gnu/java/locale/LocaleInformation_lo_LA.java,
	gnu/java/locale/LocaleInformation_lt.java,
	gnu/java/locale/LocaleInformation_lt_LT.java,
	gnu/java/locale/LocaleInformation_lv.java,
	gnu/java/locale/LocaleInformation_lv_LV.java,
	gnu/java/locale/LocaleInformation_mk.java,
	gnu/java/locale/LocaleInformation_ml.java,
	gnu/java/locale/LocaleInformation_ml_IN.java,
	gnu/java/locale/LocaleInformation_mn.java,
	gnu/java/locale/LocaleInformation_mn_MN.java,
	gnu/java/locale/LocaleInformation_mr.java,
	gnu/java/locale/LocaleInformation_mr_IN.java,
	gnu/java/locale/LocaleInformation_ms.java,
	gnu/java/locale/LocaleInformation_ms_BN.java,
	gnu/java/locale/LocaleInformation_ms_MY.java,
	gnu/java/locale/LocaleInformation_mt.java,
	gnu/java/locale/LocaleInformation_mt_MT.java,
	gnu/java/locale/LocaleInformation_nb.java,
	gnu/java/locale/LocaleInformation_nb_NO.java,
	gnu/java/locale/LocaleInformation_nl.java,
	gnu/java/locale/LocaleInformation_nl_BE.java,
	gnu/java/locale/LocaleInformation_nl_NL.java,
	gnu/java/locale/LocaleInformation_nn.java,
	gnu/java/locale/LocaleInformation_nn_NO.java,
	gnu/java/locale/LocaleInformation_om.java,
	gnu/java/locale/LocaleInformation_om_ET.java,
	gnu/java/locale/LocaleInformation_om_KE.java,
	gnu/java/locale/LocaleInformation_or.java,
	gnu/java/locale/LocaleInformation_or_IN.java,
	gnu/java/locale/LocaleInformation_pa.java,
	gnu/java/locale/LocaleInformation_pa_IN.java,
	gnu/java/locale/LocaleInformation_pl.java,
	gnu/java/locale/LocaleInformation_pl_PL.java,
	gnu/java/locale/LocaleInformation_ps.java,
	gnu/java/locale/LocaleInformation_ps_AF.java,
	gnu/java/locale/LocaleInformation_pt.java,
	gnu/java/locale/LocaleInformation_pt_BR.java,
	gnu/java/locale/LocaleInformation_pt_PT.java,
	gnu/java/locale/LocaleInformation_ro.java,
	gnu/java/locale/LocaleInformation_ro_RO.java,
	gnu/java/locale/LocaleInformation_ru.java,
	gnu/java/locale/LocaleInformation_ru_RU.java,
	gnu/java/locale/LocaleInformation_ru_UA.java,
	gnu/java/locale/LocaleInformation_sa.java,
	gnu/java/locale/LocaleInformation_sa_IN.java,
	gnu/java/locale/LocaleInformation_sk.java,
	gnu/java/locale/LocaleInformation_sk_SK.java,
	gnu/java/locale/LocaleInformation_sl.java,
	gnu/java/locale/LocaleInformation_so.java,
	gnu/java/locale/LocaleInformation_so_DJ.java,
	gnu/java/locale/LocaleInformation_so_ET.java,
	gnu/java/locale/LocaleInformation_so_KE.java,
	gnu/java/locale/LocaleInformation_so_SO.java,
	gnu/java/locale/LocaleInformation_sq.java,
	gnu/java/locale/LocaleInformation_sq_AL.java,
	gnu/java/locale/LocaleInformation_sr.java,
	gnu/java/locale/LocaleInformation_sr_Latn.java,
	gnu/java/locale/LocaleInformation_sv.java,
	gnu/java/locale/LocaleInformation_sv_FI.java,
	gnu/java/locale/LocaleInformation_sv_SE.java,
	gnu/java/locale/LocaleInformation_sw.java,
	gnu/java/locale/LocaleInformation_sw_KE.java,
	gnu/java/locale/LocaleInformation_sw_TZ.java,
	gnu/java/locale/LocaleInformation_ta.java,
	gnu/java/locale/LocaleInformation_ta_IN.java,
	gnu/java/locale/LocaleInformation_te.java,
	gnu/java/locale/LocaleInformation_te_IN.java,
	gnu/java/locale/LocaleInformation_th.java,
	gnu/java/locale/LocaleInformation_th_TH.java,
	gnu/java/locale/LocaleInformation_ti.java,
	gnu/java/locale/LocaleInformation_ti_ER.java,
	gnu/java/locale/LocaleInformation_ti_ET.java,
	gnu/java/locale/LocaleInformation_tr.java,
	gnu/java/locale/LocaleInformation_tr_TR.java,
	gnu/java/locale/LocaleInformation_tt.java,
	gnu/java/locale/LocaleInformation_tt_RU.java,
	gnu/java/locale/LocaleInformation_uk.java,
	gnu/java/locale/LocaleInformation_uk_UA.java,
	gnu/java/locale/LocaleInformation_ur.java,
	gnu/java/locale/LocaleInformation_uz.java,
	gnu/java/locale/LocaleInformation_uz_AF.java,
	gnu/java/locale/LocaleInformation_vi.java,
	gnu/java/locale/LocaleInformation_zh.java,
	gnu/java/locale/LocaleInformation_zh_CN_Hans.java,
	gnu/java/locale/LocaleInformation_zh_HK_Hant.java,
	gnu/java/locale/LocaleInformation_zh_Hant.java,
	gnu/java/locale/LocaleInformation_zh_MO_Hant.java,
	gnu/java/locale/LocaleInformation_zh_SG_Hans.java,
	gnu/java/locale/LocaleInformation_zh_TW_Hant.java:
	Regenerated with current gnu.localegen.

2005-03-09  Tom Tromey  <tromey@redhat.com>

	* java/net/URLClassLoader.java (addURLImpl): Reset 'thisString'.
	(toString): Synchronize.

2005-03-09  Michael Koch  <konqueror@gmx.de>

	* org/omg/CORBA/ARG_IN.java,
	org/omg/CORBA/ARG_INOUT.java,
	org/omg/CORBA/ARG_OUT.java,
	org/omg/CORBA/Any.java,
	org/omg/CORBA/AnyHolder.java,
	org/omg/CORBA/BAD_CONTEXT.java,
	org/omg/CORBA/BAD_INV_ORDER.java,
	org/omg/CORBA/BAD_OPERATION.java,
	org/omg/CORBA/BAD_PARAM.java,
	org/omg/CORBA/BAD_TYPECODE.java,
	org/omg/CORBA/BooleanHolder.java,
	org/omg/CORBA/BooleanSeqHolder.java,
	org/omg/CORBA/Bounds.java,
	org/omg/CORBA/ByteHolder.java,
	org/omg/CORBA/COMM_FAILURE.java,
	org/omg/CORBA/CharHolder.java,
	org/omg/CORBA/CharSeqHolder.java,
	org/omg/CORBA/CompletionStatus.java,
	org/omg/CORBA/Context.java,
	org/omg/CORBA/ContextList.java,
	org/omg/CORBA/DATA_CONVERSION.java,
	org/omg/CORBA/DoubleHolder.java,
	org/omg/CORBA/DoubleSeqHolder.java,
	org/omg/CORBA/FREE_MEM.java,
	org/omg/CORBA/FixedHolder.java,
	org/omg/CORBA/FloatHolder.java,
	org/omg/CORBA/FloatSeqHolder.java,
	org/omg/CORBA/IDLEntity.java,
	org/omg/CORBA/IMP_LIMIT.java,
	org/omg/CORBA/INITIALIZE.java,
	org/omg/CORBA/INTERNAL.java,
	org/omg/CORBA/INTF_REPOS.java,
	org/omg/CORBA/INVALID_TRANSACTION.java,
	org/omg/CORBA/INV_FLAG.java,
	org/omg/CORBA/INV_IDENT.java,
	org/omg/CORBA/INV_OBJREF.java,
	org/omg/CORBA/INV_POLICY.java,
	org/omg/CORBA/IntHolder.java,
	org/omg/CORBA/LongHolder.java,
	org/omg/CORBA/LongLongSeqHolder.java,
	org/omg/CORBA/LongSeqHolder.java,
	org/omg/CORBA/MARSHAL.java,
	org/omg/CORBA/NO_IMPLEMENT.java,
	org/omg/CORBA/NO_MEMORY.java,
	org/omg/CORBA/NO_PERMISSION.java,
	org/omg/CORBA/NO_RESPONSE.java,
	org/omg/CORBA/NamedValue.java,
	org/omg/CORBA/OBJECT_NOT_EXIST.java,
	org/omg/CORBA/OBJ_ADAPTER.java,
	org/omg/CORBA/ORB.java,
	org/omg/CORBA/Object.java,
	org/omg/CORBA/OctetSeqHolder.java,
	org/omg/CORBA/PERSIST_STORE.java,
	org/omg/CORBA/Principal.java,
	org/omg/CORBA/ShortHolder.java,
	org/omg/CORBA/ShortSeqHolder.java,
	org/omg/CORBA/StringHolder.java,
	org/omg/CORBA/SystemException.java,
	org/omg/CORBA/TCKind.java,
	org/omg/CORBA/TRANSACTION_REQUIRED.java,
	org/omg/CORBA/TRANSACTION_ROLLEDBACK.java,
	org/omg/CORBA/TRANSIENT.java,
	org/omg/CORBA/TypeCode.java,
	org/omg/CORBA/TypeCodeHolder.java,
	org/omg/CORBA/TypeCodePackage/BadKind.java,
	org/omg/CORBA/TypeCodePackage/Bounds.java,
	org/omg/CORBA/ULongLongSeqHolder.java,
	org/omg/CORBA/ULongSeqHolder.java,
	org/omg/CORBA/UNKNOWN.java,
	org/omg/CORBA/UShortSeqHolder.java,
	org/omg/CORBA/UserException.java,
	org/omg/CORBA/WCharSeqHolder.java,
	org/omg/CORBA/portable/IDLEntity.java,
	org/omg/CORBA/portable/InputStream.java,
	org/omg/CORBA/portable/OutputStream.java,
	org/omg/CORBA/portable/Streamable.java:
	Use our standard copyright header.

2005-03-09  Michael Koch  <konqueror@gmx.de>

	* org/omg/CORBA/AnyHolder.java: Added missing import.

2005-03-09  Robert Schuster <thebohemian@gmx.net>

	* java/awt/AWTEvent.java (toString): Added case
	for source not being an AWT component.
	
2005-03-08  Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/BooleanHolder.java,
	org/omg/CORBA/ByteHolder.java,
	org/omg/CORBA/CharHolder.java,
	org/omg/CORBA/DoubleHolder.java,
	org/omg/CORBA/FixedHolder.java,
	org/omg/CORBA/FloatHolder.java,
	org/omg/CORBA/IntHolder.java,
	org/omg/CORBA/LongHolder.java,
	org/omg/CORBA/ShortHolder.java,
	org/omg/CORBA/StringHolder.java,
	org/omg/CORBA/TypeCodeHolder.java:  
	Fixing the _read method.

2005-03-08  Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/NamedValue.java,
	org/omg/CORBA/ARG_IN.java,
	org/omg/CORBA/ARG_OUT.java,
	org/omg/CORBA/ARG_INOUT.java:
	New files.

2005-03-08  Audrius Meskauskas  <audriusa@bluewin.ch>
	* org/omg/CORBA/AnyHolder.java: New file.

2005-03-08 David Gilbert <david.gilbert@object-refinery.com>

	* java/awt/Font.java (decode): Handle null argument and allow
	space as delimiter.

2005-03-07  Chris Burdess  <dog@gnu.org>

	* gnu/java/net/protocol/https/Handler.java: New file.

2005-03-07  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/DataInputStream.java (ignoreInitialNewline): Removed
	(readLine): Changed newline handling.

2005-03-07  Jeroen Frijters  <jeroen@frijters.net>

	* java/net/URI.java (AUTHORITY_REGEXP): Corrected regexp.
	(AUTHORITY_USERINFO_GROUP,AUTHORITY_HOST_GROUP,AUTHORITY_PORT_GROUP):
	Adjusted to match new regexp.

2005-03-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/CORBA/primitiveArrayTypeCode.java:
	Moved from org.omg.CORBA.
	* gnu/CORBA/primitiveTypeCode.java: Likewise.
	* org/omg/CORBA/BooleanHolder.java,
	org/omg/CORBA/ByteHolder.java,
	org/omg/CORBA/CharHolder.java,
	org/omg/CORBA/DoubleHolder.java,
	org/omg/CORBA/FixedHolder.java,
	org/omg/CORBA/FloatHolder.java,
	org/omg/CORBA/IntHolder.java,
	org/omg/CORBA/LongHolder.java,
	org/omg/CORBA/ShortHolder.java,
	org/omg/CORBA/StringHolder.java,
	org/omg/CORBA/TypeCodeHolder.java:
	Added necessary imports.
	* org/omg/CORBA/BooleanSeqHolder.java,
	org/omg/CORBA/CharSeqHolder.java,
	org/omg/CORBA/DoubleSeqHolder.java,
	org/omg/CORBA/FloatSeqHolder.java,
	org/omg/CORBA/LongLongSeqHolder.java,
	org/omg/CORBA/LongSeqHolder.java,
	org/omg/CORBA/OctetSeqHolder.java,
	org/omg/CORBA/ShortSeqHolder.java,
	org/omg/CORBA/ULongLongSeqHolder.java,
	org/omg/CORBA/ULongSeqHolder.java,
	org/omg/CORBA/UShortSeqHolder.java,
	org/omg/CORBA/WCharSeqHolder.java:
	Likewise and changed direct value
	assignments to setValue calls.
	
2005-03-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* org/omg/CORBA/CompletionStatus.java,
	org/omg/CORBA/TypeCode.java,
	org/omg/CORBA/primitiveTypeCode.java:
	Fix references to Bounds and add implementations
	of IDLEntity.
	
2005-03-06  Audrius Meskauskas  <audriusa@bluewin.ch>
	* org/omg/CORBA/TypeCodePackage/BadKind.java,
	org/omg/CORBA/SystemException.java,
	org/omg/CORBA/TypeCode.java,
	org/omg/CORBA/UserException.java,
	org/omg/CORBA/CompletionStatus.java:
	Documenting that serialVersionUID is from v1.4.
	
2005-03-06  Audrius Meskauskas  <audriusa@bluewin.ch>
	* org/omg/CORBA/Context.java,
	org/omg/CORBA/ContextList.java: New files.

2005-03-06  Audrius Meskauskas  <audriusa@bluewin.ch>
	* org/omg/CORBA/TCKind.java: Making fields final.

2005-03-06  Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/Any.java,
	org/omg/CORBA/Principal.java,
	org/omg/CORBA/TypeCodePackage/Bounds.java,
	org/omg/CORBA/TypeCodePackage/package.html: New files.

2005-03-06 Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/ULongSeqHolder.java,
	org/omg/CORBA/UShortSeqHolder.java,
	org/omg/CORBA/WCharSeqHolder.java,
	org/omg/CORBA/BooleanSeqHolder.java,
	org/omg/CORBA/CharSeqHolder.java,
	org/omg/CORBA/DoubleSeqHolder.java,
	org/omg/CORBA/FloatSeqHolder.java,
	org/omg/CORBA/LongLongSeqHolder.java,
	org/omg/CORBA/LongSeqHolder.java,
	org/omg/CORBA/OctetSeqHolder.java,
	org/omg/CORBA/ShortSeqHolder.java,
	org/omg/CORBA/ULongLongSeqHolder.java: New files.

2005-03-06  Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/IntHolder.java,
	org/omg/CORBA/LongHolder.java,
	org/omg/CORBA/ShortHolder.java,
	org/omg/CORBA/StringHolder.java,
	org/omg/CORBA/TypeCodeHolder.java,
	org/omg/CORBA/BooleanHolder.java,
	org/omg/CORBA/ByteHolder.java,
	org/omg/CORBA/CharHolder.java,
	org/omg/CORBA/DoubleHolder.java,
	org/omg/CORBA/FixedHolder.java,
	org/omg/CORBA/FloatHolder.java,
	org/omg/CORBA/primitiveTypeCode.java,
	org/omg/CORBA/primitiveArrayTypeCode.java: New files.
 
2005-03-06  Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/portable/InputStream.java,
	org/omg/CORBA/portable/OutputStream.java,
	org/omg/CORBA/portable/IDLEntity.java,
	org/omg/CORBA/portable/Streamable.java: New files.
	* org/omg/CORBA/Object.java,
	org/omg/CORBA/ORB.java: New files (just to keep code compilable).
 
2005-03-06  Audrius Meskauskas  <audriusa@bluewin.ch>
	* org/omg/CORBA/TypeCodePackage/BadKind.java,
	org/omg/CORBA/SystemException.java,
	org/omg/CORBA/TypeCode.java,
	org/omg/CORBA/UserException.java,
	org/omg/CORBA/CompletionStatus.java: 
	Replacing serialVersionUID v1.2 into v1.4.
	
2005-03-06  Audrius Meskauskas  <audriusa@bluewin.ch>
	* org/omg/CORBA/TypeCodePackage/BadKind.java,
	org/omg/CORBA/SystemException.java,
	org/omg/CORBA/TypeCode.java,
	org/omg/CORBA/UserException.java,
	org/omg/CORBA/CompletionStatus.java: Adding serialVersionUID.
	
2005-03-05  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/fdlibm/dtoa.c (_dtoa_r): Initialize variables ilim, ilim1
	and spec_case. Initialize pointer mlo.
	* native/fdlibm/strtod.c (_strtod_r): Initialize pointers bb, bd,
	ds and delta.
	* native/fdlibm/e_asin.c (__ieee754_asin): Initialize variable t.
	* native/fdlibm/e_exp.c (__ieee754_exp): Initialize variables hi,
	lo and k.
	* native/fdlibm/e_rem_pio2.c (__ieee754_rem_pio2): Initialize
	uninitialized variable z.

2005-03-05  Audrius Meskauskas  <audriusa@bluewin.ch>
	* org/omg/CORBA/BAD_OPERATION.java: Formatting change
	(replacing CR CR LF by CR LF).
	
2005-03-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* org/omg/CORBA/Bounds.java: New file.
	* org/omg/CORBA/TypeCode.java: Commented
	out Any to fix build.
	From Audrius Meskauskas:
	* org/omg/CORBA/BAD_OPERATION.java: New file.	

2005-03-05  Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/INV_POLICY.java,
	org/omg/CORBA/NO_PERMISSION.java,
	org/omg/CORBA/BAD_INV_ORDER.java,
	org/omg/CORBA/INTF_REPOS.java,
	org/omg/CORBA/INV_IDENT.java,
	org/omg/CORBA/NO_IMPLEMENT.java,
	org/omg/CORBA/UNKNOWN.java,
	org/omg/CORBA/INV_FLAG.java,
	org/omg/CORBA/BAD_TYPECODE.java,
	org/omg/CORBA/NO_MEMORY.java,
	org/omg/CORBA/INVALID_TRANSACTION.java,
	org/omg/CORBA/INTERNAL.java,
	org/omg/CORBA/COMM_FAILURE.java,
	org/omg/CORBA/PERSIST_STORE.java,
	org/omg/CORBA/BAD_CONTEXT.java,
	org/omg/CORBA/INV_OBJREF.java,
	org/omg/CORBA/TRANSACTION_REQUIRED.java,
	org/omg/CORBA/TRANSACTION_ROLLEDBACK.java,
	org/omg/CORBA/FREE_MEM.java,
	org/omg/CORBA/OBJECT_NOT_EXIST.java,
	org/omg/CORBA/TRANSIENT.java,
	org/omg/CORBA/OBJ_ADAPTER.java,
	org/omg/CORBA/IMP_LIMIT.java,
	org/omg/CORBA/INITIALIZE.java,
	org/omg/CORBA/NO_RESPONSE.java,
	org/omg/CORBA/DATA_CONVERSION.java,
	org/omg/CORBA/MARSHAL.java: New files.

2005-03-04  Roman Kennke  <roman@ontographics.com>

	* javax/swing/text/rtf/ControlWordToken.java: New file.
	* javax/swing/text/rtf/RTFEditorKit.java: New file.
	* javax/swing/text/rtf/RTFParseException.java: New file.
	* javax/swing/text/rtf/RTFParser.java: New file.
	* javax/swing/text/rtf/RTFScanner.java: New file.
	* javax/swing/text/rtf/TextToken.java: New file.
	* javax/swing/text/rtf/Token.java: New file.
	
2005-03-02  Audrius Meskauskas  <audriusa@bluewin.ch>

        * org/omg/CORBA/TypeCode.java,
        org/omg/CORBA/UserException.java,
        org/omg/CORBA/TypeCodePackage/BadKind.java: New files. 
	
2005-03-02  Audrius Meskauskas  <audriusa@bluewin.ch>

	* org/omg/CORBA/TCKind.java,
	org/omg/CORBA/BAD_PARAM.java,
	org/omg/CORBA/CompletionStatus.java,
	org/omg/CORBA/IDLEntity.java,
	org/omg/CORBA/SystemException.java: New files.

2005-03-03  Roman Kennke  <roman@ontographics.com>

	* javax/swing/BoxLayout.java:
	(preferredLayoutSize,minimumLayoutSize,maximumLayoutSize,
	layoutContainer): Make these methods and thereby the
	BoxLayout respect the insets (like borders) of the
	component that is laid out.

2005-03-03  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/InheritableThreadLocal.java
	(threadMap): Removed.
	(InheritableThreadLocal): Removed code.
	(newChildThread): Changed to use locals map in Thread.
	* java/lang/Thread.java
	(locals): New field.
	(die): Clear locals field.
	(getThreadLocals): New method.
	* java/lang/ThreadLocal.java
	(value): Removed.
	(valueMap): Removed.
	(get,set): Changed to use locals map in Thread.

2005-03-03  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/FileInputStream.java (FileInputStream(File)),
	java/io/FileOutputStream.java (FileOutputStream(File)):
	Removed unnecessary File.isDirectory() check.

2005-03-02  Michael Koch  <konqueror@gmx.de>

	* doc/hacking.texinfo: Improved explanation of our coding style
	regarding import statements.

2005-03-02  Michael Koch  <konqueror@gmx.de>

	* gnu/java/security/OID.java,
	gnu/java/security/der/DERReader.java,
	gnu/java/security/provider/CollectionCertStoreImpl.java,
	gnu/java/security/provider/DSAParameterGenerator.java,
	gnu/java/security/provider/DefaultPolicy.java,
	gnu/java/security/provider/EncodedKeyFactory.java,
	gnu/java/security/provider/GnuDHPublicKey.java,
	gnu/java/security/provider/GnuDSAPrivateKey.java,
	gnu/java/security/provider/GnuDSAPublicKey.java,
	gnu/java/security/provider/GnuRSAPrivateKey.java,
	gnu/java/security/provider/GnuRSAPublicKey.java,
	gnu/java/security/provider/PKIXCertPathValidatorImpl.java,
	gnu/java/security/provider/RSA.java,
	gnu/java/security/provider/SHA1PRNG.java,
	gnu/java/security/provider/SHA1withRSA.java,
	gnu/java/security/provider/X509CertificateFactory.java,
	gnu/java/security/x509/GnuPKIExtension.java,
	gnu/java/security/x509/X500DistinguishedName.java,
	gnu/java/security/x509/X509CRL.java,
	gnu/java/security/x509/X509CRLEntry.java,
	gnu/java/security/x509/X509CertPath.java,
	gnu/java/security/x509/X509CertSelectorImpl.java,
	gnu/java/security/x509/X509Certificate.java,
	gnu/java/security/x509/ext/AuthorityKeyIdentifier.java,
	gnu/java/security/x509/ext/BasicConstraints.java,
	gnu/java/security/x509/ext/CRLNumber.java,
	gnu/java/security/x509/ext/CertificatePolicies.java,
	gnu/java/security/x509/ext/ExtendedKeyUsage.java,
	gnu/java/security/x509/ext/Extension.java,
	gnu/java/security/x509/ext/GeneralNames.java,
	gnu/java/security/x509/ext/IssuerAlternativeNames.java,
	gnu/java/security/x509/ext/KeyUsage.java,
	gnu/java/security/x509/ext/PolicyConstraint.java,
	gnu/java/security/x509/ext/PolicyMappings.java,
	gnu/java/security/x509/ext/PrivateKeyUsagePeriod.java,
	gnu/java/security/x509/ext/ReasonCode.java,
	gnu/java/security/x509/ext/SubjectAlternativeNames.java,
	gnu/java/security/x509/ext/SubjectKeyIdentifier.java:
	Reworked import statments to match our style.

2005-03-02  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/Buffers.java,
	gnu/java/awt/ComponentDataBlitOp.java,
	gnu/java/awt/EmbeddedWindowSupport.java,
	gnu/java/awt/image/ImageDecoder.java,
	gnu/java/awt/image/XBMDecoder.java,
	gnu/java/awt/peer/ClasspathFontPeer.java,
	gnu/java/beans/IntrospectionIncubator.java,
	gnu/java/io/EncodingManager.java,
	gnu/java/io/decode/DecoderUTF8.java,
	gnu/java/io/encode/EncoderEightBitLookup.java,
	gnu/java/io/encode/EncoderUTF8.java,
	gnu/java/lang/ClassHelper.java,
	gnu/java/lang/MainThread.java,
	gnu/java/lang/reflect/TypeSignature.java,
	gnu/java/locale/LocaleHelper.java,
	gnu/java/net/CRLFInputStream.java,
	gnu/java/net/EmptyX509TrustManager.java,
	gnu/java/net/HeaderFieldHelper.java,
	gnu/java/net/LineInputStream.java,
	gnu/java/net/PlainSocketImpl.java,
	gnu/java/net/URLParseError.java,
	gnu/java/net/protocol/file/Connection.java,
	gnu/java/net/protocol/file/Handler.java,
	gnu/java/net/protocol/ftp/ActiveModeDTP.java,
	gnu/java/net/protocol/ftp/BlockInputStream.java,
	gnu/java/net/protocol/ftp/CompressedInputStream.java,
	gnu/java/net/protocol/ftp/DTP.java,
	gnu/java/net/protocol/ftp/DTPInputStream.java,
	gnu/java/net/protocol/ftp/FTPConnection.java,
	gnu/java/net/protocol/ftp/FTPURLConnection.java,
	gnu/java/net/protocol/ftp/PassiveModeDTP.java,
	gnu/java/net/protocol/ftp/StreamInputStream.java,
	gnu/java/net/protocol/http/ChunkedInputStream.java,
	gnu/java/net/protocol/http/HTTPConnection.java,
	gnu/java/net/protocol/http/HTTPURLConnection.java,
	gnu/java/net/protocol/http/Headers.java,
	gnu/java/net/protocol/http/Request.java,
	gnu/java/net/protocol/jar/Connection.java,
	gnu/java/net/protocol/jar/Handler.java,
	gnu/java/nio/ChannelInputStream.java,
	gnu/java/nio/ChannelOutputStream.java,
	gnu/java/nio/InputStreamChannel.java,
	gnu/java/nio/OutputStreamChannel.java,
	gnu/java/nio/SelectorProviderImpl.java,
	gnu/java/rmi/RMIMarshalledObjectInputStream.java,
	gnu/java/rmi/RMIMarshalledObjectOutputStream.java,
	gnu/java/rmi/dgc/DGCImpl.java,
	gnu/java/rmi/registry/RegistryImpl.java,
	gnu/java/rmi/server/ProtocolConstants.java,
	gnu/java/rmi/server/RMIDefaultSocketFactory.java,
	gnu/java/rmi/server/RMIIncomingThread.java,
	gnu/java/rmi/server/RMIObjectInputStream.java,
	gnu/java/rmi/server/RMIObjectOutputStream.java,
	gnu/java/rmi/server/RMIVoidValue.java,
	gnu/java/rmi/server/UnicastConnectionManager.java,
	gnu/java/rmi/server/UnicastRef.java,
	gnu/java/rmi/server/UnicastRemoteCall.java,
	gnu/java/rmi/server/UnicastRemoteStub.java,
	gnu/java/rmi/server/UnicastServerRef.java:
	Reorganized import statments and fixed some @author tags and html
	usage in javadocs.

2005-03-02  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/color/package.html,
	gnu/java/awt/image/package.html,
	gnu/java/awt/package.html,
	gnu/java/awt/peer/package.html,
	gnu/java/beans/decoder/package.html,
	gnu/java/beans/editors/package.html,
	gnu/java/beans/package.html,
	gnu/java/io/decode/package.html,
	gnu/java/io/encode/package.html,
	gnu/java/io/package.html,
	gnu/java/lang/package.html,
	gnu/java/lang/reflect/package.html,
	gnu/java/locale/package.html,
	gnu/java/math/package.html,
	gnu/java/net/package.html,
	gnu/java/net/protocol/file/package.html,
	gnu/java/net/protocol/http/event/package.html,
	gnu/java/net/protocol/jar/package.html,
	gnu/java/nio/channels/package.html,
	gnu/java/nio/charset/package.html,
	gnu/java/nio/package.html,
	gnu/java/rmi/dgc/package.html,
	gnu/java/rmi/package.html,
	gnu/java/rmi/registry/package.html,
	gnu/java/rmi/server/package.html,
	gnu/java/security/action/package.html,
	gnu/java/security/ber/package.html,
	gnu/java/security/der/package.html,
	gnu/java/security/package.html,
	gnu/java/security/pkcs/package.html,
	gnu/java/security/provider/package.html,
	gnu/java/security/util/package.html,
	gnu/java/security/x509/ext/package.html,
	gnu/java/security/x509/package.html,
	gnu/java/text/package.html,
	gnu/java/util/package.html,
	gnu/java/util/prefs/package.html,
	java/lang/annotation/package.html:
	New files.

2005-03-02  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/color/CieXyzConverter.java,
	gnu/java/awt/color/ClutProfileConverter.java,
	gnu/java/awt/color/ColorLookUpTable.java,
	gnu/java/awt/color/ColorSpaceConverter.java,
	gnu/java/awt/color/GrayProfileConverter.java,
	gnu/java/awt/color/GrayScaleConverter.java,
	gnu/java/awt/color/LinearRGBConverter.java,
	gnu/java/awt/color/ProfileHeader.java,
	gnu/java/awt/color/PyccConverter.java,
	gnu/java/awt/color/RgbProfileConverter.java,
	gnu/java/awt/color/SrgbConverter.java,
	gnu/java/awt/color/TagEntry.java,
	gnu/java/awt/color/ToneReproductionCurve.java:
	Use standard copyright header.

2005-03-02  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/cp-tools/cp-tools.wml: Fix createlink to
	texidoclet.html.

2005-03-02  Michael Koch  <konqueror@gmx.de>

	* doc/api/Makefile.am: Remove gjdoc_rawcomment.cache if neccesary.

2005-02-28  Roman Kennke  <roman@ontographics.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(mkListPanel,mkButtonBar): Changed JList example so that
	the newly added support for JList.HORIZONTAL_WRAP and
	JList.VERTICAL_WRAP is shown.

2005-02-27  Roman Kennke  <roman@ontographics.com>

	* javax/swing/JList.java
	(getPreferredScrollableViewportSize):
	The previous implementation was merely guessing the size,
	now it respects layoutOrientation, visibleRowCount
	and preferredSize.
	(getScrollableTracksViewportHeight):
	Reimplemented so that layoutOrientation, visibleRowCount
	and preferred size are respected.
	(getScrollableTracksViewportWidth):
	Reimplemented so that layoutOrientation, visibleRowCount
	and preferred size are respected.
	* javax/swing/plaf/basic/BasicListUI.java
	(getPreferredSize):
	Improved calculation of preferredSize when JList is
	set to HORIZONTAL_WRAP or VERTICAL_WRAP.
	(getCellBounds):
	The previous implementation assumed a layoutOrientation of
	JList.VERTICAL, now also ok with JList.HORIZONTAL_WRAP and
	JList.VERTICAL_WRAP.

2005-02-27  Roman Kennke  <roman@ontographics.com>

	* javax/swing/CellRendererPane.java:
	implemented all methods of this class.
	reformatted all wrong formatted code.
	* javax/swing/plaf/basic/BasicListUI.java
	(paintCell): use CellRendererPane for painting the cells.

2005-02-27  Audrius Meskauskas  <audriusa@bluewin.ch>

	* javax/swing/JComboBox.java (constructors): selecting the 
	first item if the box was constructed from the provided
	non - empty array or vector.

2005-02-27  Roman Kennke  <roman@ontographics.com>

	* javax/swing/plaf/basic/BasicListUI:
	fixed modifiers of several fields, methods and inner
	classes to match the 'spec'.
	(getMaximumSize): removed. It's not in the spec and the
	implementations was superfluous.

2005-02-27  Chris Burdess  <dog@gnu.org>

	* gnu/java/net/protocol/file/Connection.java: Return correct content
	length for directory listing.
	* java/net/URLClassLoader.java: Correction for URLClassLoader, bug
	#11285: return valid URLs for directories.

2005-02-27  Chris Burdess  <dog@gnu.org>

	* gnu/xml/aelfred2/JAXPFactory.java,
	gnu/xml/aelfred2/SAXDriver.java,
	gnu/xml/aelfred2/XmlParser.java,
	gnu/xml/aelfred2/XmlReader.java: Applied GNU Classpath source code
	formatting conventions. Replaced arrays of Object with struct-like
	classes for easier maintainability. Made SAXDriver.stringInterning
	package private to allow access from XmlParser inside the loop without
	a method call overhead.

2005-02-27  Roman Kennke  <roman@ontographics.com>

	* javax/swing/plaf/basic/BasicListUI:
	make BasicListUI capable of wrapping lists
	(layoutOrientation property of javax.swing.JList)

2005-02-26  Audrius Meskauskas  <audriusa@bluewin.ch>

	* javax/swing/Timer.java: documenting and some
	formatting.	

2005-02-26  Audrius Meskauskas  <audriusa@bluewin.ch>

	* javax/swing/JTextArea.java (replaceRange): 
	Fixing doc.remove(start, length) misinterpretation.
	
2005-02-26  Roman Kennke  <roman@ontographics.com>

	* javax/swing/plaf/basic/BasicListUI
	(updateLayoutState,paint): make BasicListUI aware of the
	width of the rendered JList

2005-02-25  Mark Wielaard  <mark@klomp.org>

	* NEWS: Add 0.14 release date.
	* configure.ac: Set version to 0.14.

2005-02-25  Sven de Marothy  <sven@physto.se>

	* java/net/InetAddress.java
	(toString): Don't print empty hostnames.
	Fixes bug #11956

2005-02-24  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/Makefile (SUBDIRS): Add cp-tools.
	* doc/www.gnu.org/cp-tools/Makefile: New file.
	* doc/www.gnu.org/cp-tools/cp-tools.wml: Likewise.
	* doc/www.gnu.org/cp-tools/texidoclet.html: Likewise.

2005-02-24  Audrius Meskauskas  <audriusa@bluewin.ch>

	* javax/swing/Timer.java (constructor): assigning initialDelay

2005-02-24  Audrius Meskauskas  <audriusa@bluewin.ch>
   
	* javax/swing/Timer.java (Waker.run): firing the first action
	event.

2005-02-24  Chris Burdess  <dog@gnu.org>

	* BASE64.java: Truncate encoded byte array.

2005-02-24  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/font/TextAttribute.java: changed names to lower case;
	(readResolve): implemented.
	Added doc comments all over.

2005-02-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/text/SimpleDateFormat.java:
	Substitute StringBuilder for the original
	StringBuffer.

2005-02-22  Michael Koch  <konqueror@gmx.de>

	* gnu/java/security/PolicyFile.java,
	gnu/java/security/pkcs/PKCS7SignedData.java,
	gnu/java/security/pkcs/SignerInfo.java:
	Fixed copyright header.

2005-02-22  Roman Kennke <roman@ontographics.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Fixed Button left and right margin

2005-02-22  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gthread-jni.c (throw):
	Call g_snprintf instead of snprintf.

2005-02-22  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(button_to_awt_mods): Return BUTTON masks, not BUTTON_DOWN masks.

2005-02-22  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkWindowPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(getWidth): New method.
	(getHeight): Likewise.
	(create): Remove width, height and insets parameters.  Move size
	setup ...
	(realize_cb): ... here.  New function.
	(connectSignals): Connect realize_cb.
	(request_frame_extents): Remove FIXME.  Move
	postInsetsChangedEvent lookup ...
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c (gtkInit):
	... here.  Look up GtkWindowPeer getWidth and getHeight methods.
	* jni/gtk-peer/gtkpeer.h (postInsetsChangedEventID): Declare
	jmethodID.
	(windowGetWidthID): Likewise.
	(windowGetHeightID): Likewise.

2005-02-22  Michael Koch  <konqueror@gmx.de>

	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h:
	Regenerated.

2005-02-22  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Robot.java (waitForIdle): Call invokeAndWait on an
	empty Runnable.

2005-02-21  Bryce McKinlay  <mckinlay@redhat.com>

	* java/io/ObjectInputStream.java (readClassDescriptor): Cache result
	of currentLoader() in callersClassLoader field. Check for primitive
	type Class names if resolveClass throws a ClassNotFoundException.
	(resolveClass): Call currentLoader() only if callersClassLoader is
	not set. Cache result of currentLoader(). Don't check for primitive
	type Class names here.
	(callersClassLoader): New field.
	* java/io/ObjectOutputStream.java (writeObject, callWriteMethod):
	Whitespace fixes.

2005-02-22  Robert Schuster  <thebohemian@gmx.net>

	* java/io/InputStreamReader.java: Fixed compilation
	problem.

2005-02-21  Michael Koch  <konqueror@gmx.de>

	* java/awt/Checkbox.java
	(next_checkbox_number): New static variable.
	(generateName): New method.
	(getUniqueLong): Likewise.
	* java/awt/Window.java
	(next_window_number): New static variable.
	(generateName): New method.
	(getUniqueLong): Likewise.

2005-02-21  Mark Wielaard  <mark@klomp.org>

	* java/util/jar/JarFile.java (verifyHashes): Check whether ZipEntry
	exists.
	
2005-02-21  Robert Schuster  <thebohemian@gmx.net>
	
	* gnu/java/nio/ChannelReader: Fixed comments.

2005-02-21  Robert Schuster  <thebohemian@gmx.net>

	* java/nio/channels/Channels: Added FIXMEs about
	stub method implementation.
	(newReader): Implemented.
	* java/io/InputStreamReader:
	(InputStreamReader(InputStream, Charset)): Implemented.
	(InputStreamReader(InputStream, CharsetDecoder)): Implemented.
	* gnu/java/nio/ChannelReader: New class.

2005-02-21  Michael Koch  <konqueror@gmx.de>

	* include/gnu_java_nio_channels_FileChannelImpl.h:
	Regenerated.

2005-02-21  Michael Koch  <konqueror@gmx.de>

	* java/lang/Class.java,
	java/lang/SecurityManager.java,
	java/net/URL.java:
	Formatting cleanups.

2005-02-21  Michael Koch  <konqueror@gmx.de>

	* java/awt/Button.java,
	java/awt/Container.java,
	java/awt/Font.java,
	java/awt/Frame.java,
	java/text/CollationElementIterator.java,
	java/text/RuleBasedCollator.java,
	java/util/PropertyPermission.java:
	Fixed formatting issues all over.

2005-02-21  Anthony Green  <green@redhat.com>

	* gnu/java/rmi/registry/RegistryImpl.java:
	Change year for '--version' to 2005.

2005-02-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/io/Closeable.java: Documented.
	* java/io/Flushable.java: Documented.
	* java/lang/Appendable.java: Corrected line overrun.
	* java/lang/Readable.java: Corrected indentation.
	* java/lang/TypeNotPresentException.java: Documented.
	* java/lang/annotation/AnnotationFormatError.java: Likewise.
	* java/lang/annotation/AnnotationTypeMismatchException.java: Likewise.
	* java/lang/reflect/GenericArrayType.java: Likewise.
	* java/lang/reflect/GenericSignatureFormatError.java: Likewise.
	* java/lang/reflect/ParameterizedType.java: Likewise.
	* java/lang/reflect/Type.java: Likewise.
	* java/lang/reflect/WildcardType.java: Likewise.	

2005-02-20  Mark Wielaard  <mark@klomp.org>

	* java/util/SimpleTimeZone.java (getOffset): Calculate beforeEnd by
	taking dstSavings into account.

2005-02-20  Sven de Marothy <sven@physto.se>

	* java/text/SimpleDateFormat.java,
	(parse): Set DST_OFFSET to the correct value.

2005-02-20  Rutger Ovidius  <ovidr@users.sourceforge.net>

	* gnu/java/security/provider/Gnu.java (Gnu): Add SHA-160 alias.

2005-02-20  Mark Wielaard  <mark@klomp.org>

	* java/text/SimpleDateFormat.java
	(SimpleDateFormat(String, DateFormatSymbols)): Throw
	NullPointerException when formatData is null.

2005-02-19  Michael Koch  <konqueror@gmx.de>

	* gnu/java/locale/LocaleInformation_af.java,
	gnu/java/locale/LocaleInformation_am.java,
	gnu/java/locale/LocaleInformation_ca.java,
	gnu/java/locale/LocaleInformation_cs.java,
	gnu/java/locale/LocaleInformation_cy.java,
	gnu/java/locale/LocaleInformation_da.java,
	gnu/java/locale/LocaleInformation_de.java,
	gnu/java/locale/LocaleInformation_el.java,
	gnu/java/locale/LocaleInformation_en.java,
	gnu/java/locale/LocaleInformation_eo.java,
	gnu/java/locale/LocaleInformation_es.java,
	gnu/java/locale/LocaleInformation_et.java,
	gnu/java/locale/LocaleInformation_eu.java,
	gnu/java/locale/LocaleInformation_fa.java,
	gnu/java/locale/LocaleInformation_fi.java,
	gnu/java/locale/LocaleInformation_fr.java,
	gnu/java/locale/LocaleInformation_ga.java,
	gnu/java/locale/LocaleInformation_hr.java,
	gnu/java/locale/LocaleInformation_hu.java,
	gnu/java/locale/LocaleInformation_hy.java,
	gnu/java/locale/LocaleInformation_id.java,
	gnu/java/locale/LocaleInformation_is.java,
	gnu/java/locale/LocaleInformation_it.java,
	gnu/java/locale/LocaleInformation_ja.java,
	gnu/java/locale/LocaleInformation_ka.java,
	gnu/java/locale/LocaleInformation_ko.java,
	gnu/java/locale/LocaleInformation_lo.java,
	gnu/java/locale/LocaleInformation_lt.java,
	gnu/java/locale/LocaleInformation_lv.java,
	gnu/java/locale/LocaleInformation_mk.java,
	gnu/java/locale/LocaleInformation_mn.java,
	gnu/java/locale/LocaleInformation_ms.java,
	gnu/java/locale/LocaleInformation_mt.java,
	gnu/java/locale/LocaleInformation_nb.java,
	gnu/java/locale/LocaleInformation_nl.java,
	gnu/java/locale/LocaleInformation_nn.java,
	gnu/java/locale/LocaleInformation_pl.java,
	gnu/java/locale/LocaleInformation_pt.java,
	gnu/java/locale/LocaleInformation_ro.java,
	gnu/java/locale/LocaleInformation_ru.java,
	gnu/java/locale/LocaleInformation_sk.java,
	gnu/java/locale/LocaleInformation_sl.java,
	gnu/java/locale/LocaleInformation_sq.java,
	gnu/java/locale/LocaleInformation_sv.java,
	gnu/java/locale/LocaleInformation_th.java,
	gnu/java/locale/LocaleInformation_tr.java,
	gnu/java/locale/LocaleInformation_vi.java,
	gnu/java/locale/LocaleInformation_zh.java,
	gnu/java/locale/LocaleInformation_zh_Hant.java: Updated.
	* gnu/java/locale/LocaleInformation_az_Cyrl.java: New file.

2005-02-19  Archie Cobbs  <archie@dellroad.org>

	* java/lang/Throwable.java: simplify initializing cause in constructor

2005-02-19  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JToggleButton.java: Removed empty line.

2005-02-18  Bryce McKinlay  <mckinlay@redhat.com>

	* java/util/LinkedHashMap (addEntry): Call remove() with key argument, 
	not the HashEntry. Reported by Jean-Marie White.

2005-02-18  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/events/escape_fosdem05.wml: New event.
	* doc/www.gnu.org/newsitems.txt: Add Escape the Java Trap.
	* doc/www.gnu.org/events/events.wml: Likewise.
2005-02-20  Mark Wielaard  <mark@klomp.org>

	* java/util/SimpleTimeZone.java (getOffset): Calculate beforeEnd by
	taking dstSavings into account.

2005-02-20  Sven de Marothy <sven@physto.se>

	* java/text/SimpleDateFormat.java,
	(parse): Set DST_OFFSET to the correct value.

2005-02-20  Rutger Ovidius  <ovidr@users.sourceforge.net>

	* gnu/java/security/provider/Gnu.java (Gnu): Add SHA-160 alias.

2005-02-20  Mark Wielaard  <mark@klomp.org>

	* java/text/SimpleDateFormat.java
	(SimpleDateFormat(String, DateFormatSymbols)): Throw
	NullPointerException when formatData is null.

2005-02-19  Michael Koch  <konqueror@gmx.de>

	* gnu/java/locale/LocaleInformation_af.java,
	gnu/java/locale/LocaleInformation_am.java,
	gnu/java/locale/LocaleInformation_ca.java,
	gnu/java/locale/LocaleInformation_cs.java,
	gnu/java/locale/LocaleInformation_cy.java,
	gnu/java/locale/LocaleInformation_da.java,
	gnu/java/locale/LocaleInformation_de.java,
	gnu/java/locale/LocaleInformation_el.java,
	gnu/java/locale/LocaleInformation_en.java,
	gnu/java/locale/LocaleInformation_eo.java,
	gnu/java/locale/LocaleInformation_es.java,
	gnu/java/locale/LocaleInformation_et.java,
	gnu/java/locale/LocaleInformation_eu.java,
	gnu/java/locale/LocaleInformation_fa.java,
	gnu/java/locale/LocaleInformation_fi.java,
	gnu/java/locale/LocaleInformation_fr.java,
	gnu/java/locale/LocaleInformation_ga.java,
	gnu/java/locale/LocaleInformation_hr.java,
	gnu/java/locale/LocaleInformation_hu.java,
	gnu/java/locale/LocaleInformation_hy.java,
	gnu/java/locale/LocaleInformation_id.java,
	gnu/java/locale/LocaleInformation_is.java,
	gnu/java/locale/LocaleInformation_it.java,
	gnu/java/locale/LocaleInformation_ja.java,
	gnu/java/locale/LocaleInformation_ka.java,
	gnu/java/locale/LocaleInformation_ko.java,
	gnu/java/locale/LocaleInformation_lo.java,
	gnu/java/locale/LocaleInformation_lt.java,
	gnu/java/locale/LocaleInformation_lv.java,
	gnu/java/locale/LocaleInformation_mk.java,
	gnu/java/locale/LocaleInformation_mn.java,
	gnu/java/locale/LocaleInformation_ms.java,
	gnu/java/locale/LocaleInformation_mt.java,
	gnu/java/locale/LocaleInformation_nb.java,
	gnu/java/locale/LocaleInformation_nl.java,
	gnu/java/locale/LocaleInformation_nn.java,
	gnu/java/locale/LocaleInformation_pl.java,
	gnu/java/locale/LocaleInformation_pt.java,
	gnu/java/locale/LocaleInformation_ro.java,
	gnu/java/locale/LocaleInformation_ru.java,
	gnu/java/locale/LocaleInformation_sk.java,
	gnu/java/locale/LocaleInformation_sl.java,
	gnu/java/locale/LocaleInformation_sq.java,
	gnu/java/locale/LocaleInformation_sv.java,
	gnu/java/locale/LocaleInformation_th.java,
	gnu/java/locale/LocaleInformation_tr.java,
	gnu/java/locale/LocaleInformation_vi.java,
	gnu/java/locale/LocaleInformation_zh.java,
	gnu/java/locale/LocaleInformation_zh_Hant.java: Updated.
	* gnu/java/locale/LocaleInformation_az_Cyrl.java: New file.

2005-02-19  Archie Cobbs  <archie@dellroad.org>

	* java/lang/Throwable.java: simplify initializing cause in constructor

2005-02-19  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JToggleButton.java: Removed empty line.

2005-02-18  Bryce McKinlay  <mckinlay@redhat.com>

	* java/util/LinkedHashMap (addEntry): Call remove() with key argument, 
	not the HashEntry. Reported by Jean-Marie White.

2005-02-18  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/events/escape_fosdem05.wml: New event.
	* doc/www.gnu.org/newsitems.txt: Add Escape the Java Trap.
	* doc/www.gnu.org/events/events.wml: Likewise.

2005-02-18  Sven de Marothy <sven@physto.se>

	* java/util/TimeZone.java,
	(getDefaultDisplayName): Fix previous fix.

2005-02-18  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/font/TransformAttribute.java,
	(TransformAttribute(AffineTransform)): throw 
	IllegalArgumentException for null transform.
	(getTransform): return a copy of transform.
	Added doc comments to all.

2005-02-18  Sven de Marothy <sven@physto.se>

	* java/util/TimeZone.java,
	(getDefaultDisplayName): Don't print zero offsets.

2005-02-18  Robert Schuster <thebohemian@gmx.net>

	* java/nio/charset/Charset.java (forName): Throws
	IllegalArgumentException when argument is null
	and added documentation.

2005-02-17  Mark Wielaard  <mark@klomp.org>

	* java/util/SimpleTimeZone.java (checkRule): Throw
	IllegalArgumentException when month out of range.

2005-02-17  Sven de Marothy  <sven@physto.se>

	* java/util/GregorianCalendar.java,
	(add): Don't set fields directly anymore. Use set()

2005-02-17  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/java/nio/channels/FileChannelImpl.java (write(ByteBuffer)):
	Move the position of the source buffer forward.

2005-02-16  Andrew Haley  <aph@redhat.com>

	* javax/security/auth/Subject.java (doAsPrivileged): If acc is
	null, create a new AccessControlContext.
	* java/security/SecureClassLoader.java (protectionDomainCache):
	new field.
	(defineClass): Create a new protection domain and add it to our
	cache.

	* java/rmi/server/UnicastRemoteObject.java (exportObject): Call
	addStub() to keep track of the stub we've exported.
	(unexportObject): Call deleteStub().
	* java/rmi/server/RemoteObject.java (stubs): New field.
	(addStub): New method.
	(deleteStub): New method.
	(toStub): Rewrite.
	
	* java/security/Permissions.java (PermissionsHash.implies):
	Iterate over the collection and invoke implies() on each
	element.

2005-02-16  Julian Scheid  <julian@sektor37.de>

	* gnu/java/nio/charset/UTF_8.java (decodeLoop): Set inPos to
	in.position().
	(encodeLoop): Likewise.

2005-02-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Locale.java
	Added two new String[] arrays for caching.
	(getLocale(String)): Documentation.
	(getLocale(String, String)): Documentation.
	(getLocale(String, String, String)): Documentation.
	(getISOCountries()): Now calls getISOStrings() and caches result.
	(getISOLanguages()): Now calls getISOStrings() and caches result.
	(getISOStrings(String)): Pulls all two-letter keys from the specified
	hashtable in our locale information.
	
2005-02-16  Sven de Marothy  <sven@physto.se>

	* java/util/logging/LogManager.java: Reformatted.
	(readConfiguration): If a logger for a key is not found, create one.

2005-02-16  Michael Koch  <konqueror@gmx.de>

	* scripts/checkstyle-config.xml: Activate JavadocStyle and
	IllegalInstantiation tests.
	* scripts/checkstyle-suppressions.xml: Suppress some more errors.

2005-02-16  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java,
	gnu/java/awt/peer/gtk/GdkFontPeer.java,
	gnu/java/awt/peer/gtk/GdkGlyphVector.java,
	gnu/java/awt/peer/gtk/GdkGraphics.java,
	gnu/java/awt/peer/gtk/GdkGraphics2D.java,
	gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java,
	gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
	gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
	gnu/java/awt/peer/gtk/GdkRobotPeer.java,
	gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java,
	gnu/java/awt/peer/gtk/GdkTextLayout.java,
	gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java,
	gnu/java/awt/peer/gtk/GtkChoicePeer.java,
	gnu/java/awt/peer/gtk/GtkClipboard.java,
	gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
	gnu/java/awt/peer/gtk/GtkFontPeer.java,
	gnu/java/awt/peer/gtk/GtkLabelPeer.java,
	gnu/java/awt/peer/gtk/GtkMenuBarPeer.java,
	gnu/java/awt/peer/gtk/GtkMenuItemPeer.java,
	gnu/java/awt/peer/gtk/GtkMenuPeer.java,
	gnu/java/awt/peer/gtk/GtkScrollPanePeer.java,
	gnu/java/awt/peer/gtk/GtkScrollbarPeer.java,
	gnu/java/awt/peer/gtk/GtkToolkit.java,
	gnu/java/awt/peer/gtk/GtkWindowPeer.java:
	Made checkstyle clean.
	* gnu/java/awt/peer/gtk/package.html:
	New file.

2005-02-16  Michael Koch  <konqueror@gmx.de>

	* java/awt/geom/Ellipse2D.java,
	java/beans/PropertyDescriptor.java,
	java/net/NetworkInterface.java,
	java/nio/ByteBufferImpl.java,
	java/nio/DoubleBufferImpl.java,
	java/nio/FloatBufferImpl.java,
	java/nio/IntBufferImpl.java,
	java/nio/LongBufferImpl.java,
	java/nio/ShortBufferImpl.java,
	java/nio/channels/Channel.java,
	java/util/Calendar.java,
	java/util/Comparator.java,
	java/util/Date.java,
	java/util/SimpleTimeZone.java,
	java/util/logging/FileHandler.java,
	java/util/prefs/InvalidPreferencesFormatException.java,
	java/util/prefs/Preferences.java,
	javax/security/auth/callback/ConfirmationCallback.java,
	javax/security/sasl/Sasl.java,
	javax/security/sasl/SaslServerFactory.java,
	javax/swing/JComponent.java,
	javax/swing/JList.java,
	javax/swing/JProgressBar.java,
	javax/swing/JTree.java,
	javax/swing/text/JTextComponent.java:
	Fixed javadocs to contain valid (X)HTML.

2005-02-16  Michael Koch  <konqueror@gmx.de>

	* javax/xml/XMLConstants.java,
	javax/xml/datatype/DatatypeConfigurationException.java,
	javax/xml/datatype/DatatypeConstants.java,
	javax/xml/datatype/DatatypeFactory.java,
	javax/xml/datatype/Duration.java,
	javax/xml/datatype/XMLGregorianCalendar.java,
	javax/xml/namespace/NamespaceContext.java,
	javax/xml/namespace/QName.java,
	javax/xml/parsers/DocumentBuilder.java,
	javax/xml/parsers/DocumentBuilderFactory.java,
	javax/xml/parsers/FactoryConfigurationError.java,
	javax/xml/parsers/ParserConfigurationException.java,
	javax/xml/parsers/SAXParser.java,
	javax/xml/parsers/SAXParserFactory.java,
	javax/xml/transform/ErrorListener.java,
	javax/xml/transform/OutputKeys.java,
	javax/xml/transform/Result.java,
	javax/xml/transform/Source.java,
	javax/xml/transform/SourceLocator.java,
	javax/xml/transform/Templates.java,
	javax/xml/transform/Transformer.java,
	javax/xml/transform/TransformerConfigurationException.java,
	javax/xml/transform/TransformerException.java,
	javax/xml/transform/TransformerFactory.java,
	javax/xml/transform/TransformerFactoryConfigurationError.java,
	javax/xml/transform/URIResolver.java,
	javax/xml/transform/dom/DOMLocator.java,
	javax/xml/transform/dom/DOMResult.java,
	javax/xml/transform/dom/DOMSource.java,
	javax/xml/transform/sax/SAXResult.java,
	javax/xml/transform/sax/SAXSource.java,
	javax/xml/transform/sax/SAXTransformerFactory.java,
	javax/xml/transform/sax/TemplatesHandler.java,
	javax/xml/transform/sax/TransformerHandler.java,
	javax/xml/transform/stream/StreamResult.java,
	javax/xml/transform/stream/StreamSource.java,
	javax/xml/validation/Schema.java,
	javax/xml/validation/SchemaFactory.java,
	javax/xml/validation/TypeInfoProvider.java,
	javax/xml/validation/Validator.java,
	javax/xml/validation/ValidatorHandler.java,
	javax/xml/xpath/XPathConstants.java,
	javax/xml/xpath/XPathException.java,
	javax/xml/xpath/XPathExpression.java,
	javax/xml/xpath/XPathExpressionException.java,
	javax/xml/xpath/XPathFactory.java,
	javax/xml/xpath/XPathFactoryConfigurationException.java,
	javax/xml/xpath/XPathFunction.java,
	javax/xml/xpath/XPathFunctionException.java,
	javax/xml/xpath/XPathFunctionResolver.java:
	Fixed usage of @author tag.

2005-02-16  Michael Koch  <konqueror@gmx.de>

	* javax/XMLConstants.java,
	javax/datatype/DatatypeConfigurationException.java,
	javax/datatype/DatatypeConstants.java,
	javax/datatype/DatatypeFactory.java,
	javax/datatype/Duration.java,
	javax/datatype/XMLGregorianCalendar.java,
	javax/namespace/NamespaceContext.java,
	javax/namespace/QName.java,
	javax/parsers/DocumentBuilder.java,
	javax/parsers/DocumentBuilderFactory.java,
	javax/parsers/FactoryConfigurationError.java,
	javax/parsers/ParserConfigurationException.java,
	javax/parsers/SAXParser.java,
	javax/parsers/SAXParserFactory.java,
	javax/transform/ErrorListener.java,
	javax/transform/OutputKeys.java,
	javax/transform/Result.java,
	javax/transform/Source.java,
	javax/transform/SourceLocator.java,
	javax/transform/Templates.java,
	javax/transform/Transformer.java,
	javax/transform/TransformerConfigurationException.java,
	javax/transform/TransformerException.java,
	javax/transform/TransformerFactory.java,
	javax/transform/TransformerFactoryConfigurationError.java,
	javax/transform/URIResolver.java,
	javax/transform/dom/DOMLocator.java,
	javax/transform/dom/DOMResult.java,
	javax/transform/dom/DOMSource.java,
	javax/transform/sax/SAXResult.java,
	javax/transform/sax/SAXSource.java,
	javax/transform/sax/SAXTransformerFactory.java,
	javax/transform/sax/TemplatesHandler.java,
	javax/transform/sax/TransformerHandler.java,
	javax/transform/stream/StreamResult.java,
	javax/transform/stream/StreamSource.java,
	javax/validation/Schema.java,
	javax/validation/SchemaFactory.java,
	javax/validation/TypeInfoProvider.java,
	javax/validation/Validator.java,
	javax/validation/ValidatorHandler.java,
	javax/xpath/XPathConstants.java,
	javax/xpath/XPathException.java,
	javax/xpath/XPathExpression.java,
	javax/xpath/XPathExpressionException.java,
	javax/xpath/XPathFactory.java,
	javax/xpath/XPathFactoryConfigurationException.java,
	javax/xpath/XPathFunction.java,
	javax/xpath/XPathFunctionException.java,
	javax/xpath/XPathFunctionResolver.java:
	Fixed usage of @author tag.

2005-02-16  Michael Koch  <konqueror@gmx.de>

	* javax/accessibility/Accessible.java,
	javax/accessibility/AccessibleAction.java,
	javax/accessibility/AccessibleBundle.java,
	javax/accessibility/AccessibleComponent.java,
	javax/accessibility/AccessibleContext.java,
	javax/accessibility/AccessibleEditableText.java,
	javax/accessibility/AccessibleExtendedComponent.java,
	javax/accessibility/AccessibleExtendedTable.java,
	javax/accessibility/AccessibleHyperlink.java,
	javax/accessibility/AccessibleHypertext.java,
	javax/accessibility/AccessibleIcon.java,
	javax/accessibility/AccessibleKeyBinding.java,
	javax/accessibility/AccessibleRelation.java,
	javax/accessibility/AccessibleRelationSet.java,
	javax/accessibility/AccessibleResourceBundle.java,
	javax/accessibility/AccessibleRole.java,
	javax/accessibility/AccessibleSelection.java,
	javax/accessibility/AccessibleState.java,
	javax/accessibility/AccessibleStateSet.java,
	javax/accessibility/AccessibleTable.java,
	javax/accessibility/AccessibleTableModelChange.java,
	javax/accessibility/AccessibleText.java,
	javax/accessibility/AccessibleValue.java,
	javax/imageio/IIOException.java,
	javax/imageio/spi/IIOServiceProvider.java,
	javax/imageio/spi/ImageInputStreamSpi.java,
	javax/imageio/spi/ImageOutputStreamSpi.java,
	javax/imageio/spi/ImageReaderWriterSpi.java,
	javax/imageio/spi/ImageTranscoderSpi.java,
	javax/imageio/spi/RegisterableService.java,
	javax/imageio/spi/ServiceRegistry.java,
	javax/imageio/stream/IIOByteBuffer.java,
	javax/imageio/stream/ImageInputStream.java,
	javax/imageio/stream/ImageOutputStream.java,
	javax/naming/Binding.java,
	javax/naming/CannotProceedException.java,
	javax/naming/CompositeName.java,
	javax/naming/CompoundName.java,
	javax/naming/LinkException.java,
	javax/naming/LinkRef.java,
	javax/naming/NameClassPair.java,
	javax/naming/Reference.java,
	javax/naming/ReferralException.java,
	javax/naming/directory/Attribute.java,
	javax/naming/directory/AttributeModificationException.java,
	javax/naming/directory/Attributes.java,
	javax/naming/directory/DirContext.java,
	javax/naming/directory/ModificationItem.java,
	javax/naming/directory/SearchControls.java,
	javax/naming/directory/SearchResult.java,
	javax/naming/event/EventContext.java,
	javax/naming/event/EventDirContext.java,
	javax/naming/event/NamespaceChangeListener.java,
	javax/naming/event/NamingExceptionEvent.java,
	javax/naming/event/NamingListener.java,
	javax/naming/event/ObjectChangeListener.java,
	javax/naming/ldap/Control.java,
	javax/naming/ldap/ExtendedResponse.java,
	javax/naming/ldap/HasControls.java,
	javax/naming/ldap/LdapContext.java,
	javax/naming/ldap/UnsolicitedNotification.java,
	javax/naming/ldap/UnsolicitedNotificationEvent.java,
	javax/naming/ldap/UnsolicitedNotificationListener.java,
	javax/naming/spi/DirectoryManager.java,
	javax/naming/spi/ResolveResult.java,
	javax/naming/spi/Resolver.java,
	javax/swing/DefaultBoundedRangeModel.java,
	javax/swing/JRadioButton.java,
	javax/swing/JTextArea.java,
	javax/swing/JToggleButton.java,
	javax/swing/SpinnerListModel.java,
	javax/swing/event/EventListenerList.java,
	javax/swing/text/Utilities.java,
	javax/swing/undo/UndoManager.java,
	javax/swing/undo/UndoableEditSupport.java,
	javax/transaction/HeuristicCommitException.java,
	javax/transaction/HeuristicMixedException.java,
	javax/transaction/HeuristicRollbackException.java,
	javax/transaction/InvalidTransactionException.java,
	javax/transaction/NotSupportedException.java,
	javax/transaction/RollbackException.java,
	javax/transaction/Status.java,
	javax/transaction/Synchronization.java,
	javax/transaction/SystemException.java,
	javax/transaction/Transaction.java,
	javax/transaction/TransactionManager.java,
	javax/transaction/TransactionRequiredException.java,
	javax/transaction/TransactionRolledbackException.java,
	javax/transaction/UserTransaction.java,
	javax/transaction/xa/XAException.java,
	javax/transaction/xa/XAResource.java,
	javax/transaction/xa/Xid.java:
	Fixed usage of @author tag all over.

2005-02-16  Michael Koch  <konqueror@gmx.de>

	* java/applet/Applet.java,
	java/beans/AppletInitializer.java,
	java/beans/ExceptionListener.java,
	java/beans/PropertyChangeEvent.java,
	java/beans/PropertyChangeListenerProxy.java,
	java/beans/PropertyChangeSupport.java,
	java/beans/PropertyDescriptor.java,
	java/beans/VetoableChangeListenerProxy.java,
	java/beans/VetoableChangeSupport.java,
	java/io/BufferedInputStream.java,
	java/io/BufferedReader.java,
	java/io/ByteArrayInputStream.java,
	java/io/ByteArrayOutputStream.java,
	java/io/CharArrayReader.java,
	java/io/CharArrayWriter.java,
	java/io/CharConversionException.java,
	java/io/DataInput.java,
	java/io/DataInputStream.java,
	java/io/DataOutput.java,
	java/io/DataOutputStream.java,
	java/io/EOFException.java,
	java/io/FileInputStream.java,
	java/io/FileNotFoundException.java,
	java/io/FileOutputStream.java,
	java/io/FilenameFilter.java,
	java/io/FilterInputStream.java,
	java/io/FilterOutputStream.java,
	java/io/FilterReader.java,
	java/io/FilterWriter.java,
	java/io/IOException.java,
	java/io/InputStream.java,
	java/io/InputStreamReader.java,
	java/io/InterruptedIOException.java,
	java/io/LineNumberInputStream.java,
	java/io/LineNumberReader.java,
	java/io/ObjectStreamException.java,
	java/io/OptionalDataException.java,
	java/io/OutputStream.java,
	java/io/OutputStreamWriter.java,
	java/io/PrintStream.java,
	java/io/PrintWriter.java,
	java/io/PushbackInputStream.java,
	java/io/PushbackReader.java,
	java/io/RandomAccessFile.java,
	java/io/Reader.java,
	java/io/SequenceInputStream.java,
	java/io/Serializable.java,
	java/io/StreamCorruptedException.java,
	java/io/StreamTokenizer.java,
	java/io/StringBufferInputStream.java,
	java/io/StringWriter.java,
	java/io/SyncFailedException.java,
	java/io/UTFDataFormatException.java,
	java/io/UnsupportedEncodingException.java,
	java/io/WriteAbortedException.java,
	java/io/Writer.java,
	java/lang/AbstractMethodError.java,
	java/lang/ArithmeticException.java,
	java/lang/ArrayIndexOutOfBoundsException.java,
	java/lang/ArrayStoreException.java,
	java/lang/AssertionError.java,
	java/lang/Boolean.java,
	java/lang/Byte.java,
	java/lang/ClassCastException.java,
	java/lang/ClassCircularityError.java,
	java/lang/ClassLoader.java,
	java/lang/ClassNotFoundException.java,
	java/lang/CloneNotSupportedException.java,
	java/lang/Cloneable.java,
	java/lang/Comparable.java,
	java/lang/Compiler.java,
	java/lang/Double.java,
	java/lang/Error.java,
	java/lang/Exception.java,
	java/lang/ExceptionInInitializerError.java,
	java/lang/Float.java,
	java/lang/IllegalAccessError.java,
	java/lang/IllegalAccessException.java,
	java/lang/IllegalArgumentException.java,
	java/lang/IllegalMonitorStateException.java,
	java/lang/IllegalStateException.java,
	java/lang/IllegalThreadStateException.java,
	java/lang/IncompatibleClassChangeError.java,
	java/lang/IndexOutOfBoundsException.java,
	java/lang/InheritableThreadLocal.java,
	java/lang/InstantiationError.java,
	java/lang/InstantiationException.java,
	java/lang/Integer.java,
	java/lang/InternalError.java,
	java/lang/InterruptedException.java,
	java/lang/LinkageError.java,
	java/lang/Long.java,
	java/lang/NegativeArraySizeException.java,
	java/lang/NoClassDefFoundError.java,
	java/lang/NoSuchFieldError.java,
	java/lang/NoSuchFieldException.java,
	java/lang/NoSuchMethodError.java,
	java/lang/NoSuchMethodException.java,
	java/lang/NullPointerException.java,
	java/lang/Number.java,
	java/lang/NumberFormatException.java,
	java/lang/OutOfMemoryError.java,
	java/lang/Process.java,
	java/lang/Runnable.java,
	java/lang/Runtime.java,
	java/lang/RuntimeException.java,
	java/lang/RuntimePermission.java,
	java/lang/SecurityException.java,
	java/lang/SecurityManager.java,
	java/lang/Short.java,
	java/lang/StackOverflowError.java,
	java/lang/StackTraceElement.java,
	java/lang/StringBuffer.java,
	java/lang/StringIndexOutOfBoundsException.java,
	java/lang/ThreadDeath.java,
	java/lang/ThreadGroup.java,
	java/lang/Throwable.java,
	java/lang/UnsatisfiedLinkError.java,
	java/lang/UnsupportedOperationException.java,
	java/lang/VerifyError.java,
	java/lang/VirtualMachineError.java,
	java/lang/reflect/AccessibleObject.java,
	java/lang/reflect/Array.java,
	java/lang/reflect/InvocationTargetException.java,
	java/lang/reflect/Member.java,
	java/lang/reflect/Modifier.java,
	java/lang/reflect/Proxy.java,
	java/lang/reflect/ReflectPermission.java,
	java/lang/reflect/UndeclaredThrowableException.java,
	java/math/BigInteger.java,
	java/nio/ByteBufferHelper.java,
	java/nio/channels/IllegalBlockingModeException.java,
	java/nio/charset/spi/CharsetProvider.java,
	java/security/AccessControlException.java,
	java/security/AllPermission.java,
	java/security/BasicPermission.java,
	java/security/DigestException.java,
	java/security/DigestInputStream.java,
	java/security/DigestOutputStream.java,
	java/security/GeneralSecurityException.java,
	java/security/Guard.java,
	java/security/GuardedObject.java,
	java/security/InvalidAlgorithmParameterException.java,
	java/security/InvalidKeyException.java,
	java/security/InvalidParameterException.java,
	java/security/Key.java,
	java/security/KeyException.java,
	java/security/KeyManagementException.java,
	java/security/KeyStoreException.java,
	java/security/MessageDigestSpi.java,
	java/security/NoSuchAlgorithmException.java,
	java/security/NoSuchProviderException.java,
	java/security/Permission.java,
	java/security/PermissionCollection.java,
	java/security/Permissions.java,
	java/security/Principal.java,
	java/security/PrivateKey.java,
	java/security/PrivilegedActionException.java,
	java/security/ProviderException.java,
	java/security/PublicKey.java,
	java/security/SecureRandom.java,
	java/security/SecureRandomSpi.java,
	java/security/SignatureException.java,
	java/security/SignatureSpi.java,
	java/security/SignedObject.java,
	java/security/Signer.java,
	java/security/UnrecoverableKeyException.java,
	java/security/UnresolvedPermission.java,
	java/security/acl/AclNotFoundException.java,
	java/security/acl/LastOwnerException.java,
	java/security/acl/NotOwnerException.java,
	java/security/cert/CertPath.java,
	java/security/cert/CertPathBuilderException.java,
	java/security/cert/CertPathValidatorException.java,
	java/security/cert/CertStoreException.java,
	java/text/BreakIterator.java,
	java/text/ChoiceFormat.java,
	java/text/CollationElementIterator.java,
	java/text/CollationKey.java,
	java/text/Collator.java,
	java/text/DateFormat.java,
	java/text/DateFormatSymbols.java,
	java/text/FieldPosition.java,
	java/text/Format.java,
	java/text/MessageFormat.java,
	java/text/ParseException.java,
	java/text/ParsePosition.java,
	java/text/StringCharacterIterator.java,
	java/util/AbstractCollection.java,
	java/util/AbstractList.java,
	java/util/AbstractMap.java,
	java/util/AbstractSequentialList.java,
	java/util/AbstractSet.java,
	java/util/ArrayList.java,
	java/util/Arrays.java,
	java/util/BitSet.java,
	java/util/Collection.java,
	java/util/Collections.java,
	java/util/Comparator.java,
	java/util/ConcurrentModificationException.java,
	java/util/EmptyStackException.java,
	java/util/Enumeration.java,
	java/util/EventListener.java,
	java/util/EventListenerProxy.java,
	java/util/EventObject.java,
	java/util/HashMap.java,
	java/util/HashSet.java,
	java/util/Hashtable.java,
	java/util/IdentityHashMap.java,
	java/util/Iterator.java,
	java/util/LinkedHashSet.java,
	java/util/LinkedList.java,
	java/util/List.java,
	java/util/ListIterator.java,
	java/util/ListResourceBundle.java,
	java/util/Map.java,
	java/util/MissingResourceException.java,
	java/util/NoSuchElementException.java,
	java/util/Observable.java,
	java/util/Observer.java,
	java/util/Properties.java,
	java/util/PropertyPermissionCollection.java,
	java/util/RandomAccess.java,
	java/util/Set.java,
	java/util/SortedMap.java,
	java/util/SortedSet.java,
	java/util/Stack.java,
	java/util/StringTokenizer.java,
	java/util/TooManyListenersException.java,
	java/util/TreeMap.java,
	java/util/TreeSet.java,
	java/util/Vector.java,
	java/util/logging/Level.java,
	java/util/prefs/BackingStoreException.java:
	Fixed @author tag all over.

2005-02-16  Michael Koch  <konqueror@gmx.de>

	* java/awt/AWTError.java,
	java/awt/AWTEvent.java,
	java/awt/AWTEventMulticaster.java,
	java/awt/AWTException.java,
	java/awt/AWTKeyStroke.java,
	java/awt/AWTPermission.java,
	java/awt/ActiveEvent.java,
	java/awt/Adjustable.java,
	java/awt/AlphaComposite.java,
	java/awt/AttributeValue.java,
	java/awt/BorderLayout.java,
	java/awt/BufferCapabilities.java,
	java/awt/Button.java,
	java/awt/Canvas.java,
	java/awt/CheckboxGroup.java,
	java/awt/CheckboxMenuItem.java,
	java/awt/Color.java,
	java/awt/ColorPaintContext.java,
	java/awt/Component.java,
	java/awt/ComponentOrientation.java,
	java/awt/Composite.java,
	java/awt/CompositeContext.java,
	java/awt/Container.java,
	java/awt/ContainerOrderFocusTraversalPolicy.java,
	java/awt/DefaultFocusTraversalPolicy.java,
	java/awt/Dialog.java,
	java/awt/Dimension.java,
	java/awt/DisplayMode.java,
	java/awt/FileDialog.java,
	java/awt/FontFormatException.java,
	java/awt/Graphics.java,
	java/awt/Graphics2D.java,
	java/awt/GraphicsConfigTemplate.java,
	java/awt/GraphicsConfiguration.java,
	java/awt/GraphicsDevice.java,
	java/awt/GridBagLayout.java,
	java/awt/GridBagLayoutInfo.java,
	java/awt/GridLayout.java,
	java/awt/HeadlessException.java,
	java/awt/IllegalComponentStateException.java,
	java/awt/Image.java,
	java/awt/Insets.java,
	java/awt/ItemSelectable.java,
	java/awt/JobAttributes.java,
	java/awt/KeyEventDispatcher.java,
	java/awt/KeyEventPostProcessor.java,
	java/awt/KeyboardFocusManager.java,
	java/awt/Label.java,
	java/awt/LayoutManager.java,
	java/awt/MenuBar.java,
	java/awt/MenuComponent.java,
	java/awt/MenuContainer.java,
	java/awt/PageAttributes.java,
	java/awt/Paint.java,
	java/awt/PaintContext.java,
	java/awt/Panel.java,
	java/awt/Point.java,
	java/awt/Polygon.java,
	java/awt/PrintGraphics.java,
	java/awt/PrintJob.java,
	java/awt/Rectangle.java,
	java/awt/RenderingHints.java,
	java/awt/Shape.java,
	java/awt/Stroke.java,
	java/awt/SystemColor.java,
	java/awt/Toolkit.java,
	java/awt/Transparency.java,
	java/awt/Window.java,
	java/awt/color/CMMException.java,
	java/awt/color/ColorSpace.java,
	java/awt/color/ICC_ColorSpace.java,
	java/awt/color/ICC_Profile.java,
	java/awt/color/ProfileDataException.java,
	java/awt/datatransfer/FlavorTable.java,
	java/awt/datatransfer/MimeTypeParseException.java,
	java/awt/datatransfer/Transferable.java,
	java/awt/datatransfer/UnsupportedFlavorException.java,
	java/awt/dnd/Autoscroll.java,
	java/awt/dnd/DnDConstants.java,
	java/awt/dnd/DragGestureListener.java,
	java/awt/dnd/DragSourceAdapter.java,
	java/awt/dnd/DragSourceDropEvent.java,
	java/awt/dnd/DragSourceListener.java,
	java/awt/dnd/DragSourceMotionListener.java,
	java/awt/dnd/DropTargetAdapter.java,
	java/awt/dnd/DropTargetContext.java,
	java/awt/dnd/DropTargetListener.java,
	java/awt/dnd/InvalidDnDOperationException.java,
	java/awt/dnd/MouseDragGestureRecognizer.java,
	java/awt/dnd/peer/DropTargetContextPeer.java,
	java/awt/event/AWTEventListener.java,
	java/awt/event/AWTEventListenerProxy.java,
	java/awt/event/ActionEvent.java,
	java/awt/event/AdjustmentEvent.java,
	java/awt/event/AdjustmentListener.java,
	java/awt/event/ComponentAdapter.java,
	java/awt/event/ComponentEvent.java,
	java/awt/event/ComponentListener.java,
	java/awt/event/ContainerAdapter.java,
	java/awt/event/ContainerEvent.java,
	java/awt/event/ContainerListener.java,
	java/awt/event/FocusAdapter.java,
	java/awt/event/FocusEvent.java,
	java/awt/event/FocusListener.java,
	java/awt/event/InputEvent.java,
	java/awt/event/InputMethodEvent.java,
	java/awt/event/InputMethodListener.java,
	java/awt/event/InvocationEvent.java,
	java/awt/event/ItemEvent.java,
	java/awt/event/ItemListener.java,
	java/awt/event/KeyAdapter.java,
	java/awt/event/KeyEvent.java,
	java/awt/event/KeyListener.java,
	java/awt/event/MouseAdapter.java,
	java/awt/event/MouseEvent.java,
	java/awt/event/MouseListener.java,
	java/awt/event/MouseMotionAdapter.java,
	java/awt/event/MouseMotionListener.java,
	java/awt/event/MouseWheelEvent.java,
	java/awt/event/MouseWheelListener.java,
	java/awt/event/PaintEvent.java,
	java/awt/event/TextEvent.java,
	java/awt/event/TextListener.java,
	java/awt/event/WindowAdapter.java,
	java/awt/event/WindowEvent.java,
	java/awt/event/WindowFocusListener.java,
	java/awt/event/WindowListener.java,
	java/awt/event/WindowStateListener.java,
	java/awt/font/TextHitInfo.java,
	java/awt/geom/CubicCurve2D.java,
	java/awt/geom/Dimension2D.java,
	java/awt/geom/Ellipse2D.java,
	java/awt/geom/IllegalPathStateException.java,
	java/awt/geom/Line2D.java,
	java/awt/geom/NoninvertibleTransformException.java,
	java/awt/geom/PathIterator.java,
	java/awt/geom/Point2D.java,
	java/awt/geom/QuadCurve2D.java,
	java/awt/geom/RectangularShape.java,
	java/awt/geom/RoundRectangle2D.java,
	java/awt/im/InputContext.java,
	java/awt/im/InputMethodHighlight.java,
	java/awt/im/InputMethodRequests.java,
	java/awt/im/InputSubset.java,
	java/awt/im/spi/InputMethod.java,
	java/awt/im/spi/InputMethodDescriptor.java,
	java/awt/image/BandCombineOp.java,
	java/awt/image/BandedSampleModel.java,
	java/awt/image/ByteLookupTable.java,
	java/awt/image/ComponentSampleModel.java,
	java/awt/image/DataBuffer.java,
	java/awt/image/DataBufferByte.java,
	java/awt/image/DataBufferDouble.java,
	java/awt/image/DataBufferFloat.java,
	java/awt/image/DataBufferInt.java,
	java/awt/image/DataBufferShort.java,
	java/awt/image/DataBufferUShort.java,
	java/awt/image/ImagingOpException.java,
	java/awt/image/Kernel.java,
	java/awt/image/LookupTable.java,
	java/awt/image/MultiPixelPackedSampleModel.java,
	java/awt/image/PackedColorModel.java,
	java/awt/image/PixelInterleavedSampleModel.java,
	java/awt/image/RGBImageFilter.java,
	java/awt/image/Raster.java,
	java/awt/image/RasterFormatException.java,
	java/awt/image/SampleModel.java,
	java/awt/image/ShortLookupTable.java,
	java/awt/image/SinglePixelPackedSampleModel.java,
	java/awt/image/WritableRaster.java,
	java/awt/print/PrinterAbortException.java,
	java/awt/print/PrinterException.java,
	java/awt/print/PrinterIOException.java:
	Fixed @author tag all over.

2005-02-16  Michael Koch  <konqueror@gmx.de>

	* java/awt/EventQueue.java: Reworked import statements.
	* java/lang/StringBuilder.java
	(DEFAULT_CAPACITY): Reordered modifiers.
	* java/text/SimpleDateFormat.java: Reworked import statements.
	Fixed one littel formatting issue.
	(formatData): Removed a useless comment.
	* javax/imageio/ImageIO.java: Reworked import statements.
	* javax/swing/text/StringContent.java: Likewise.
	* javax/swing/JTextField.java: Likewise.
	(notifyAction): Added javadoc.

2005-02-15  Mark Wielaard  <mark@klomp.org>

	* java/util/jar/Attributes.java (Name.CLASS_PATH): Document that
	file path elements are separated by spaces.

2005-02-15  Mark Wielaard  <mark@klomp.org>

	* javax/net/ssl/SSLContext.java (getInstance): Add exception message
	and/or cause before throwing.

2005-02-15  Mark Wielaard  <mark@klomp.org>

	* java/net/URLClassLoader.java (JarURLLoader.JarURLLoader): Just use
	space for parsing CLASS_PATH attribute.

2005-02-15  Andrew Haley  <aph@redhat.com>

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

2005-02-14  Tom Tromey  <tromey@redhat.com>

	* java/net/URLClassLoader.java (URLLoader(URLClassLoader, URL,
	URL)): New constructor.

2005-02-14  Mark Wielaard  <mark@klomp.org>

	* java/net/URLClassLoader.java (findClass): Throw
	ClassNotFoundExceptions including urls, plus parent using toString().
	(thisString): New field.
	(toString): New method.

	* java/lang/ClassLoader (defaultGetSystemClassLoader): Only install
	ExtensionClassLoader when there are actual extension URLs.

2005-02-14  Mark Wielaard  <mark@klomp.org>

	* native/jni/xmlj/.cvsignore: Add *.o, *.a, *.lo, *.la, .libs, .deps.

2005-02-14  Sven de Marothy  <sven@physto.se>

	* java/util/Calendar.java 
	(Calendar): Constructor should clear fields.

2005-02-14  Sven de Marothy  <sven@physto.se>

	* javax/swing/SpinnerDateModel.java: Implemented.

2005-02-14  Sven de Marothy  <sven@physto.se>

        * java/util/Calendar.java 
        (clear): Dates should clear to local time.

        * java/util/GregorianCalendar.java      
        (computeTime): Fix priority problem with DAY_OF_WEEK,
        Handle non-sunday-startig weeks and minimumDaysInFirstWeek.

2005-02-13  Mark Wielaard  <mark@klomp.org>

	* java/awt/AWTKeyStroke.java (getAWTKeyStroke(String)): Throw
	IllegalArgumentException when the given String is null.

	* javax/swing/KeyStroke.java (getKeyStroke(String)): Return null
	when given keystoke sequence cannot be parsed.

	* javax/swing/JRootPane.java (setJMenuBar): Remove current menubar
	if one is installed. Only install the given menubar is not null.

	* javax/swing/JViewport.java (getViewSize): Return an empty
	Dimension when the view isn't set or preferred component size when
	no viewSize is set.

	* javax/swing/ViewportLayout.java (preferredLayoutSize): Return an
	empty Dimension when there is no view set.
	(minimumLayoutSize): Likewise.
	(layoutContainer): Don't try to layout when there is no view.

2005-02-13  Mark Wielaard  <mark@klomp.org>

	# Fixes bug #11957
	* java/io/ObjectInputStream.java (resolveClass): Don't check "void"
	twice.

2005-02-13  Tom Tromey  <tromey@redhat.com>

	* gnu/xml/aelfred2/SAXDriver.java: Ensure that null is returned when
	attribute index is out of bounds.

2005-02-12  Mark Wielaard  <mark@klomp.org>

	Fixes bug #11949
	* java/awt/BasicStroke.java (hashCode): Check for null dash.

2005-02-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/awt/color/ClutProfileConverter.java,
	gnu/java/awt/peer/ClasspathTextLayoutPeer.java,
	gnu/java/awt/peer/gtk/GdkFontPeer.java,
	gnu/java/awt/peer/gtk/GdkGlyphVector.java,
	gnu/java/awt/peer/gtk/GdkGraphics2D.java,
	gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
	gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
	gnu/java/awt/peer/gtk/GdkRobotPeer.java,
	gnu/java/awt/peer/gtk/GdkTextLayout.java,
	gnu/java/awt/peer/gtk/GtkButtonPeer.java,
	gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java,
	gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,
	gnu/java/awt/peer/gtk/GtkChoicePeer.java,
	gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	gnu/java/awt/peer/gtk/GtkContainerPeer.java,
	gnu/java/awt/peer/gtk/GtkDialogPeer.java,
	gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
	gnu/java/awt/peer/gtk/GtkFontPeer.java,
	gnu/java/awt/peer/gtk/GtkFramePeer.java,
	gnu/java/awt/peer/gtk/GtkLabelPeer.java,
	gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java,
	gnu/java/awt/peer/gtk/GtkMenuItemPeer.java,
	gnu/java/awt/peer/gtk/GtkScrollPanePeer.java,
	gnu/java/awt/peer/gtk/GtkTextComponentPeer.java,
	gnu/java/awt/peer/gtk/GtkToolkit.java,
	gnu/java/awt/peer/gtk/GtkWindowPeer.java,
	gnu/java/io/EncodingManager.java,
	gnu/java/io/decode/DecoderUTF8.java,
	gnu/java/net/protocol/file/Connection.java,
	gnu/java/net/protocol/ftp/ActiveModeDTP.java,
	gnu/java/net/protocol/ftp/BlockInputStream.java,
	gnu/java/net/protocol/ftp/BlockOutputStream.java,
	gnu/java/net/protocol/ftp/CompressedOutputStream.java,
	gnu/java/net/protocol/ftp/StreamInputStream.java,
	gnu/java/net/protocol/ftp/StreamOutputStream.java,
	gnu/java/net/protocol/http/Cookie.java,
	gnu/java/net/protocol/http/HTTPConnection.java,
	gnu/java/net/protocol/http/HTTPDateFormat.java,
	gnu/java/net/protocol/http/Request.java,
	gnu/java/nio/SelectorImpl.java,
	gnu/java/rmi/dgc/DGCImpl.java,
	gnu/java/rmi/server/UnicastConnectionManager.java,
	gnu/java/security/pkcs/SignerInfo.java,
	gnu/java/security/provider/EncodedKeyFactory.java,
	gnu/java/security/provider/GnuDHPublicKey.java,
	gnu/java/security/provider/PKIXCertPathValidatorImpl.java,
	gnu/java/security/x509/X500DistinguishedName.java,
	gnu/java/security/x509/X509CRL.java,
	gnu/java/security/x509/X509CRLEntry.java,
	gnu/java/security/x509/X509Certificate.java,
	gnu/java/security/x509/ext/AuthorityKeyIdentifier.java,
	gnu/java/security/x509/ext/CertificatePolicies.java,
	gnu/java/security/x509/ext/PolicyConstraint.java,
	gnu/xml/aelfred2/SAXDriver.java,
	gnu/xml/dom/Consumer.java,
	gnu/xml/dom/DomCharacterData.java,
	gnu/xml/dom/DomDocument.java,
	gnu/xml/dom/DomDocumentBuilder.java,
	gnu/xml/dom/DomIterator.java,
	gnu/xml/dom/DomNode.java,
	gnu/xml/dom/DomXPathExpression.java,
	gnu/xml/dom/DomXPathResult.java,
	gnu/xml/dom/JAXPFactory.java,
	gnu/xml/dom/ls/DomLSException.java,
	gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java,
	gnu/xml/libxmlj/dom/GnomeXPathNodeList.java,
	gnu/xml/libxmlj/sax/GnomeXMLReader.java,
	gnu/xml/libxmlj/transform/GnomeTransformer.java,
	gnu/xml/libxmlj/transform/GnomeTransformerFactory.java,
	gnu/xml/libxmlj/util/XMLJ.java,
	gnu/xml/pipeline/CallFilter.java,
	gnu/xml/pipeline/DomConsumer.java,
	gnu/xml/pipeline/LinkFilter.java,
	gnu/xml/pipeline/NSFilter.java,
	gnu/xml/pipeline/TeeConsumer.java,
	gnu/xml/pipeline/ValidationConsumer.java,
	gnu/xml/pipeline/WellFormednessFilter.java,
	gnu/xml/pipeline/XIncludeFilter.java,
	gnu/xml/pipeline/XsltFilter.java,
	gnu/xml/transform/ApplyImportsNode.java,
	gnu/xml/transform/Bindings.java,
	gnu/xml/transform/DocumentFunction.java,
	gnu/xml/transform/FormatNumberFunction.java,
	gnu/xml/transform/NodeNumberNode.java,
	gnu/xml/transform/NumberNode.java,
	gnu/xml/transform/Stylesheet.java,
	gnu/xml/transform/SystemPropertyFunction.java,
	gnu/xml/transform/Template.java,
	gnu/xml/transform/TemplatesImpl.java,
	gnu/xml/transform/TransformerImpl.java,
	gnu/xml/transform/ValueOfNode.java,
	gnu/xml/transform/XSLURIResolver.java,
	gnu/xml/util/DoParse.java,
	gnu/xml/util/Resolver.java,
	gnu/xml/xpath/Expr.java,
	gnu/xml/xpath/FunctionCall.java,
	gnu/xml/xpath/RelationalExpr.java,
	gnu/xml/xpath/Selector.java,
	gnu/xml/xpath/XPathParser.java,
	java/beans/XMLDecoder.java,
	java/text/SimpleDateFormat.java,
	javax/swing/JPopupMenu.java,
	javax/swing/JSpinner.java,
	javax/swing/SortingFocusTraversalPolicy.java,
	javax/swing/SwingUtilities.java,
	javax/swing/plaf/basic/BasicComboBoxEditor.java,
	javax/swing/plaf/basic/BasicComboBoxRenderer.java,
	javax/swing/tree/DefaultMutableTreeNode.java,
	javax/xml/parsers/DocumentBuilder.java,
	javax/xml/parsers/DocumentBuilderFactory.java,
	javax/xml/transform/sax/SAXTransformerFactory.java,
	vm/reference/java/lang/VMClassLoader.java,
	vm/reference/java/lang/VMProcess.java,
	vm/reference/java/lang/VMRuntime.java,
	vm/reference/java/lang/VMSystem.java,
	vm/reference/java/security/VMAccessController.java:
	Removed unused imports and expanded starred
	imports.

2005-02-12  Michael Koch  <konqueror@gmx.de>

	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h,
	include/gnu_java_awt_peer_gtk_GdkGraphics2D.h:
	Regenerated.

2005-02-12  Graydon Hoare  <graydon@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java: Add.

2005-02-12  Graydon Hoare  <graydon@redhat.com>

	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(getGlyphVector):
	(getFontMetrics):
	(getTextMetrics): New native methods.
	* gnu/java/awt/peer/gtk/GdkFontMetrics.java: Remove native parts.
	* gnu/java/awt/peer/gtk/GdkGlyphVector.java: Likewise.
	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java: 
	Hold reference to GtkToolkit.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(cairoSetFont):
	(cairoDrawGdkTextLayout):
	(cairoDrawString): 
	(getPeerTextMetrics):
	(getPeerFontMetrics): Remove.
	(setFont): Don't call cairoSetFont.
	(cairoDrawGlyphVector): Accept font peer argument.
	(drawGlyphVector): Pass font peer to cairoDrawGlyphVector.
	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
	(finalize): Call finish from here.
	(produce): Not from here.
	* gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java:
	Hold reference to GdkGraphicsEnvironment.
	* gnu/java/awt/peer/gtk/GtkToolkit.java:
	(getFontMetrics): Change locking.
	(getBounds): New method.
	(getLocalGraphicsEnvironment): Pass reference to this.

	* include/Makefile.am: Remove entries for GdkFontMetrics, GdkGlyphVector.
	* include/gnu_java_awt_peer_gtk_GdkFontMetrics.h: Remove.
	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h: Regenerate.
	* include/gnu_java_awt_peer_gtk_GdkGlyphVector.h: Remove.
	* include/gnu_java_awt_peer_gtk_GdkGraphics2D.h: Regenerate.

	* native/jni/gtk-peer/Makefile.am
	Remove entries for GdkFontMetrics, GdkGlyphVector.
	* native/jni/gtk-peer/gdkfont.h: Add #defines, remove struct glyphvec.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(ensure_metrics_cairo):
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetFont):
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawString):
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerFontMetrics):
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerTextMetrics):
	(metrics_cairo):
	(metrics_surface): Remove.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawGlyphVector):
	Pass and install font peer.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c:
	Release GDK lock while performing upcalls.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c: Remove.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getGlyphVector):
	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics): 
	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics): New methods.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c: Remove.

2005-02-11  Craig Black  <craig.black@aonix.com>

	* gnu/java/awt/peer/gtk/GtkCheckboxMenuItem.java
	(postMenuActionEvent): Implement to notify ItemListeners.
	* java/awt/CheckboxMenuItem.java
	(dispatchEventImpl): Update state on ItemEvent.
	* java/awt/MenuItem.java
	(processActionEvent): Retarget event source.

2005-02-11  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c (create):
	Use GTK's built-in file system backend.  Use GTK_RESPONSE_ACCEPT.
	(handle_response): Use GTK_RESPONSE_ACCEPT.

2005-02-10  Michael Koch  <konqueror@gmx.de>

	* configure.ac: Define GTK_CAIRO in config.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
	(gtkInit): Compile Graphics2D stuff conditionally.

2005-02-10  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomAttr.java,
	gnu/xml/dom/DomCDATA.java,
	gnu/xml/dom/DomCDATASection.java,
	gnu/xml/dom/DomCharacterData.java,
	gnu/xml/dom/DomDOMException.java,
	gnu/xml/dom/DomDoctype.java,
	gnu/xml/dom/DomDocument.java,
	gnu/xml/dom/DomDocumentConfiguration.java,
	gnu/xml/dom/DomDocumentFragment.java,
	gnu/xml/dom/DomElement.java,
	gnu/xml/dom/DomEx.java,
	gnu/xml/dom/DomFragment.java,
	gnu/xml/dom/DomImpl.java,
	gnu/xml/dom/DomIterator.java,
	gnu/xml/dom/DomNamedNodeMap.java,
	gnu/xml/dom/DomNode.java,
	gnu/xml/dom/DomNsNode.java,
	gnu/xml/dom/DomPI.java,
	gnu/xml/dom/DomProcessingInstruction.java,
	gnu/xml/dom/DomText.java,
	gnu/xml/dom/DomLSEx.java,
	gnu/xml/dom/DomLSException.java,
	gnu/xml/dom/DomLSParser.java,
	gnu/xml/dom/DomLSSerializer.java: Refactoring of exception and DOM
	implementation class names to conform to Classpath guidelines. Make
	DomLSException use JDK 1.4+ exception chaining.
	* gnu/xml/util/SAXNullTransformerFactory.java,
	gnu/xml/xpath/Predicate.java: Use constants relative to declaring
	class or interface.

2005-02-10  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTabbedPane.java
	(Page.setDisplayedMnemonicIndex): Handle empty menmonic.

2005-02-10  Graydon Hoare  <graydon@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
	Release GDK lock during upcalls.

2005-02-10  Michael Koch  <konqueror@gmx.de>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c:
	Merged file header from java-gui-20050128-branch.

2005-02-10  Michael Koch  <konqueror@gmx.de>

	* java/awt/Container.java (paramString):
	If layoutMgr is null just return result of super.paramString().

2005-02-10  Jeroen Frijters  <jeroen@frijters.net>

	* java/text/Collator.java (getInstance(Locale)):
	Added default collation pattern to handle case when resource
	is missing and throw InternalError instead of returning null
	should parsing fail.

2005-02-09  Mark Wielaard  <mark@klomp.org>

	* gnu/java/net/protocol/jar/Connection.java (getJarFile): 
	Rename jar_file to jf.

2005-02-09  Tom Tromey  <tromey@redhat.com>

	* gnu/java/net/protocol/jar/Connection.java (getJarFile): Open
	jar file with OPEN_DELETE.
	* java/util/zip/ZipFile.java (ZipFile): Call deleteOnExit when
	OPEN_DELETE is used.

2005-02-09  Michael Koch  <konqueror@gmx.de>

	* java/awt/Scrollbar.java: Reformatted.

2005-02-08  Tom Tromey  <tromey@redhat.com>

	* java/net/URI.java (AUTHORITY_REGEXP): Handle case where user
	name or port is missing.
	(AUTHORITY_USERINFO_GROUP, AUTHORITY_HOST_GROUP,
	AUTHORITY_PORT_GROUP): Updated.

2005-02-08  Craig Black  <craig.black@aonix.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(copyState): Pass a JNI global reference to signal handler.
	(realize_cb): Use and free JNI global reference.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
	(create): Pass a JNI global reference to signal handler.
	(selection_changed): Match declaration.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
	(dispose): Do not remove entries from state tables until after widget is
	destroyed.

2005-02-08  Michael Koch  <konqueror@gmx.de>

	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c
	(NIOGetPointer): Handle case of pointer size != 32 bit.
	(NIOGetRawData): Likewise.
	(Java_java_nio_VMDirectByteBuffer_init): Likewise.
	Fixed asking for primitive type 'long'.

2005-02-08  Michael Koch  <konqueror@gmx.de>

	* configure.ac: Define substition variable GTK_CAIRO_ENABLED.
	Fix handling of GTK_CAIRO conditional.
	* gnu/classpath/Configuration.java.in (GTK_CAIRO_ENABLED):
	New constant.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (static):
	Throw error when Cairo support was not enabled during configure time.

2005-02-08  Michael Koch  <konqueror@gmx.de>

	* javax/swing/tree/DefaultMutableTreeNode.java:
	Reworked Javadocs all over.
	(getPathToRoot): Fixed direction of result array initialization.

2005-02-07  Mark Wielaard  <mark@klomp.org>

	* java/util/ResourceBundle.java (getObject): Clarify
	MissingResourceException detailed message.
	(tryBundle(String,ClassLoader)): Likewise.

2005-02-07  Craig Black  <craig.black@aonix.com>

	* native/jni/classpath/native_state.c
	(add_node): Update head pointer when moving node to front of list.

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

	* acinclude.m4:
	(CLASSPATH_FIND_JAVAC): Add ECJ option.
	(CLASSPATH_WITH_ECJ): New function.
	(CLASSPATH_CHECK_ECJ): New function.
	* examples/Makefile.am:
	Allow examples to be built with ecj.
	* lib/Makefile.am:
	Allow Classpath to be built with ecj.

2005-02-06  Mark Wielaard  <mark@klomp.org>

	Reported by Timo Lindfors <timo.lindfors@iki.fi>
	java/util/regex/Matcher.java (lookingAt): Set position when match
	found.
	(matches): Implemented through lookingAt().

2005-02-06  Mark Wielaard  <mark@klomp.org>

	Fix suggested by Timo Lindfors <timo.lindfors@iki.fi>
	* java/util/regex/Pattern.java (split(CharSequence,int)):
	Fix while empties > 0 loops.

2005-02-05  C. Brian Jones  <cbj@gnu.org>

	* gnu/java/rmi/registry/: added back to classpath again, used by core library
	* gnu/java/rmi/registry/RegistryImpl.java: ditto
	* gnu/java/rmi/registry/RegistryImpl_Skel.java: ditto
	* gnu/java/rmi/registry/RegistryImpl_Stub.java: ditto

2005-02-06  Mark Wielaard  <mark@klomp.org>

	* doc/api/Makefile.am (create_html): Remove gjdoc -public flag.

2005-02-05  Sven de Marothy  <sven@physto.se>

        * java/text/SimpleDateFormat.java
        (parse): Tweak handling of 2-year dates
        * java/util/Calendar.java
        (clear): Clear fields to correct value.
        * java/util/GregorianCalendar.java
        (computeTime): Correct handling of time zones.
        Correct field minimum values.

2005-02-05  C. Brian Jones  <cbj@gnu.org>

	* gnu/java/rmi/rmic/: added to cp-tools and removed from classpath
	* gnu/java/rmi/rmic/Compile_gcj.java: ditto
	* gnu/java/rmi/rmic/Compile_jikes.java: ditto
	* gnu/java/rmi/rmic/Compile_kjc.java: ditto
	* gnu/java/rmi/rmic/Compiler.java: ditto
	* gnu/java/rmi/rmic/CompilerProcess.java: ditto
	* gnu/java/rmi/rmic/RMICException.java: ditto
	* gnu/java/rmi/rmic/RMIC.java: ditto
	* gnu/java/rmi/rmic/TabbedWriter.java: ditto
	* gnu/java/rmi/registry/: added to cp-tools and removed from classpath
	* gnu/java/rmi/registry/RegistryImpl.java: ditto
	* gnu/java/rmi/registry/RegistryImpl_Skel.java: ditto
	* gnu/java/rmi/registry/RegistryImpl_Stub.java: ditto

2005-02-05  Mark Wielaard  <mark@klomp.org>

	* doc/api/Makefile.am (classpathbox): Use class logo and target _top.

2005-02-04  Chris Burdess  <dog@gnu.org>

	* gnu/xml/aelfred2/SAXDriver.java: Corrected implementation of
	isDeclared methods. Improved performance of isSpecified methods.

2005-02-04  Michael Koch  <konqueror@gmx.de>

	* javax/swing/SortingFocusTraversalPolicy.java
	(getSortedCycle): Fixed initialization of set.

2005-02-03  Robert Schuster  <thebohemian@gmx.net>

	* gnu/java/nio/charset/ISO_8859_1.java,
	gnu/java/nio/charset/US_ASCII.java, 
	gnu/java/nio/charset/UTF_16.java,
	gnu/java/nio/charset/UTF_16_LE.java,
	gnu/java/nio/charset/UTF_16_BE.java,
	gnu/java/nio/charset/UTF_8.java: Fixed canonical names
	 and aliases according to
	 "http://www.iana.org/assignments/character-sets",
	 "http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html"
	 and "http://oss.software.ibm.com/cgi-bin/icu/convexp?s=ALL".
	* gnu/java/nio/charset/Provider.java: Made charset lookup
	 case-insensitive which fixes bug #11740. 

2005-02-03  Dalibor Topic  <robilad@kaffe.org>

	* libraries/javalib/gnu/regexp/RE.java,
	libraries/javalib/java/io/ObjectInputStream.java,
	libraries/javalib/java/io/ObjectStreamClass.java,
	libraries/javalib/java/lang/SecurityManager.java,
	libraries/javalib/java/security/AllPermission.java,
	libraries/javalib/java/security/BasicPermission.java,
	libraries/javalib/java/security/Permissions.java,
	libraries/javalib/java/text/MessageFormat.java,
	libraries/javalib/java/util/AbstractList.java:
	Made 'inner' classes real public static inner classes,
	and made them final where possible, or removed them 
	where unused. 

2005-02-03  Michael Koch  <konqueror@gmx.de>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	Fix includes for cairo 0.3.0 snappshot.

2005-02-02  Mark Wielaard  <mark@klomp.org>

	* gnu/java/net/protocol/jar/Connection.java (is_trying): Removed
	field.
	(get): Don't use or set is_trying.

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

	* java/util/Calendar.java 
	(set) Invalidate all fields on first call to set().

2005-02-02  Mark Wielaard  <mark@klomp.org>

	* vm/reference/java/lang/VMClassLoader.java: Remove SystemClassLoader
	import statement.

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

	* java/text/SimpleDateFormat.java
	Lots of documentation updates.
	(readObject(java.io.ObjectInputStream)): Wraps
	IllegalArgumentException as specified.
	(compileFormat(String)): Uses standardChars
	rather than the local pattern characters.
	Throws IllegalArgumentException rather than
	storing a -1 field.
	(toString()): Extended to include all variables
	in a better format.
	(translateLocalizedPattern(String, String, String)):
	Renamed to better define the use of this method.

2005-02-02  Dalibor Topic  <robilad@kaffe.org>

	* gnu/java/net/GetSystemPropertyAction.java:
	Removed.
	* gnu/java/net/protocol/ftp/FTPURLConnection.java:
	Use gnu.java.security.action.GetPropertyAction instead 
	of gnu.java.net.GetSystemPropertyAction.

2005-02-02  Robert Schuster  <thebohemian@gmx.net>

	* gnu/java/beans/decoder/GrowableArrayContext.java: Fixed
	assignment behavior by using java.lang.reflect.Array.set()
	directly.

2005-02-01  Dalibor Topic  <robilad@kaffe.org>

	* gnu/java/beans/EmptyBeanInfo.java,
	gnu/java/beans/info/ComponentBeanInfo.java,
	gnu/java/lang/SystemClassLoader.java:
	Removed unused files.

2005-02-01  Sven de Marothy  <sven@physto.se>
	
	* java/util/GregorianCalendar.java
	(computeTime): Fixed handling of time zones.

2005-02-01  Sven de Marothy  <sven@physto.se>
	
	* java/util/Calendar.java
	(clear): Set values to Epoch instead of zero.
	(set): Set isSet to the relevant field pattern instead of just the
	field.
	* java/util/GregorianCalendar.java
	(getBundle): Removed.
	(getDayOfYear): Removed.
	(getFirstDayOfMonth): New private method.
	(nonLeniencyCheck): New private method.
	(computeTime): Correct handling of insufficient data.

2005-02-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/security/auth/callback/Callback.java,
	javax/security/auth/callback/CallbackHandler.java,
	javax/security/auth/callback/ChoiceCallback.java,
	javax/security/auth/callback/ConfirmationCallback.java,
	javax/security/auth/callback/LanguageCallback.java,
	javax/security/auth/callback/NameCallback.java,
	javax/security/auth/callback/PasswordCallback.java,
	javax/security/auth/callback/TextInputCallback.java,
	javax/security/auth/callback/TextOutputCallback.java,
	javax/security/auth/callback/UnsupportedCallbackException.java:
	Removed CVS version tags.

2005-02-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Appendable.java:
	Changed formatting to match HEAD.
	* java/text/MessageFormat.java:
	Likewise.
	* javax/swing/AbstractSet.java,
	javax/swing/DefaultCellRenderer.java:
	Finally removed.

2005-01-31  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* acinclude.m4:
	(CLASSPATH_FIND_JAVAC): Add ECJ option.
	(CLASSPATH_WITH_ECJ): New function.
	(CLASSPATH_CHECK_ECJ): New function.
	* examples/Makefile.am:
	Allow examples to be built with ecj.
	* lib/Makefile.am:
	Allow Classpath to be built with ecj.
	
2005-01-31  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/locale/LocaleHelper.java:
	New utility class.
	(getLocalizedString(java.util.Locale,
	String, String, boolean, boolean)):
	More generic version of what was
	java.util.Locale.getDisplayString, now
	available to all classes.
	* gnu/java/locale/LocaleInformation.java,
	gnu/java/locale/LocaleInformation_aa.java,
	gnu/java/locale/LocaleInformation_aa_ET.java,
	gnu/java/locale/LocaleInformation_af.java,
	gnu/java/locale/LocaleInformation_am.java,
	gnu/java/locale/LocaleInformation_am_ET.java,
	gnu/java/locale/LocaleInformation_ar.java,
	gnu/java/locale/LocaleInformation_as.java,
	gnu/java/locale/LocaleInformation_az.java,
	gnu/java/locale/LocaleInformation_be.java,
	gnu/java/locale/LocaleInformation_bg.java,
	gnu/java/locale/LocaleInformation_bn.java,
	gnu/java/locale/LocaleInformation_byn.java
	gnu/java/locale/LocaleInformation_byn_ER.java
	gnu/java/locale/LocaleInformation_ca.java,
	gnu/java/locale/LocaleInformation_cs.java,
	gnu/java/locale/LocaleInformation_cy.java,
	gnu/java/locale/LocaleInformation_da.java,
	gnu/java/locale/LocaleInformation_de.java,
	gnu/java/locale/LocaleInformation_de_AT.java,
	gnu/java/locale/LocaleInformation_de_BE.java,
	gnu/java/locale/LocaleInformation_de_CH.java,
	gnu/java/locale/LocaleInformation_de_LU.java,
	gnu/java/locale/LocaleInformation_dv.java,
	gnu/java/locale/LocaleInformation_dz.java,
	gnu/java/locale/LocaleInformation_dz_BT.java,
	gnu/java/locale/LocaleInformation_el.java,
	gnu/java/locale/LocaleInformation_el_GR.java,
	gnu/java/locale/LocaleInformation_en.java,
	gnu/java/locale/LocaleInformation_en_AU.java,
	gnu/java/locale/LocaleInformation_en_BE.java,
	gnu/java/locale/LocaleInformation_en_CA.java,
	gnu/java/locale/LocaleInformation_en_GB.java,
	gnu/java/locale/LocaleInformation_en_HK.java,
	gnu/java/locale/LocaleInformation_en_IE.java,
	gnu/java/locale/LocaleInformation_en_MT.java,
	gnu/java/locale/LocaleInformation_en_NZ.java,
	gnu/java/locale/LocaleInformation_en_PH.java,
	gnu/java/locale/LocaleInformation_en_SG.java,
	gnu/java/locale/LocaleInformation_en_US.java,
	gnu/java/locale/LocaleInformation_en_ZW.java,
	gnu/java/locale/LocaleInformation_eo.java,
	gnu/java/locale/LocaleInformation_es.java,
	gnu/java/locale/LocaleInformation_es_AR.java,
	gnu/java/locale/LocaleInformation_es_CL.java,
	gnu/java/locale/LocaleInformation_es_CO.java,
	gnu/java/locale/LocaleInformation_es_ES.java,
	gnu/java/locale/LocaleInformation_es_MX.java,
	gnu/java/locale/LocaleInformation_es_PR.java,
	gnu/java/locale/LocaleInformation_et.java,
	gnu/java/locale/LocaleInformation_eu.java,
	gnu/java/locale/LocaleInformation_fa.java,
	gnu/java/locale/LocaleInformation_fa_AF.java,
	gnu/java/locale/LocaleInformation_fi.java,
	gnu/java/locale/LocaleInformation_fo.java,
	gnu/java/locale/LocaleInformation_fr.java,
	gnu/java/locale/LocaleInformation_fr_CA.java,
	gnu/java/locale/LocaleInformation_fr_LU.java,
	gnu/java/locale/LocaleInformation_ga.java,
	gnu/java/locale/LocaleInformation_ga_IE.java,
	gnu/java/locale/LocaleInformation_gez.java
	gnu/java/locale/LocaleInformation_gez_ER.java
	gnu/java/locale/LocaleInformation_gez_ET.java
	gnu/java/locale/LocaleInformation_gl.java,
	gnu/java/locale/LocaleInformation_gu.java,
	gnu/java/locale/LocaleInformation_gv.java,
	gnu/java/locale/LocaleInformation_haw.java
	gnu/java/locale/LocaleInformation_haw_US.java
	gnu/java/locale/LocaleInformation_he.java,
	gnu/java/locale/LocaleInformation_hi.java,
	gnu/java/locale/LocaleInformation_hr.java,
	gnu/java/locale/LocaleInformation_hu.java,
	gnu/java/locale/LocaleInformation_hy.java,
	gnu/java/locale/LocaleInformation_id.java,
	gnu/java/locale/LocaleInformation_is.java,
	gnu/java/locale/LocaleInformation_it.java,
	gnu/java/locale/LocaleInformation_it_IT.java,
	gnu/java/locale/LocaleInformation_iu.java,
	gnu/java/locale/LocaleInformation_ja.java,
	gnu/java/locale/LocaleInformation_ka.java,
	gnu/java/locale/LocaleInformation_kk.java,
	gnu/java/locale/LocaleInformation_kl.java,
	gnu/java/locale/LocaleInformation_km.java,
	gnu/java/locale/LocaleInformation_kn.java,
	gnu/java/locale/LocaleInformation_ko.java,
	gnu/java/locale/LocaleInformation_kok.java
	gnu/java/locale/LocaleInformation_kok_IN.java
	gnu/java/locale/LocaleInformation_kw.java,
	gnu/java/locale/LocaleInformation_ky.java,
	gnu/java/locale/LocaleInformation_lo.java,
	gnu/java/locale/LocaleInformation_lt.java,
	gnu/java/locale/LocaleInformation_lv.java,
	gnu/java/locale/LocaleInformation_mk.java,
	gnu/java/locale/LocaleInformation_ml.java,
	gnu/java/locale/LocaleInformation_mn.java,
	gnu/java/locale/LocaleInformation_mn_MN.java,
	gnu/java/locale/LocaleInformation_mr.java,
	gnu/java/locale/LocaleInformation_ms.java,
	gnu/java/locale/LocaleInformation_ms_BN.java,
	gnu/java/locale/LocaleInformation_mt.java,
	gnu/java/locale/LocaleInformation_nb.java,
	gnu/java/locale/LocaleInformation_nl.java,
	gnu/java/locale/LocaleInformation_nn.java,
	gnu/java/locale/LocaleInformation_om.java,
	gnu/java/locale/LocaleInformation_om_ET.java,
	gnu/java/locale/LocaleInformation_or.java,
	gnu/java/locale/LocaleInformation_pa.java,
	gnu/java/locale/LocaleInformation_pl.java,
	gnu/java/locale/LocaleInformation_ps.java,
	gnu/java/locale/LocaleInformation_pt.java,
	gnu/java/locale/LocaleInformation_pt_PT.java,
	gnu/java/locale/LocaleInformation_ro.java,
	gnu/java/locale/LocaleInformation_ru.java,
	gnu/java/locale/LocaleInformation_sa.java,
	gnu/java/locale/LocaleInformation_sid.java
	gnu/java/locale/LocaleInformation_sid_ET.java
	gnu/java/locale/LocaleInformation_sk.java,
	gnu/java/locale/LocaleInformation_sl.java,
	gnu/java/locale/LocaleInformation_so.java,
	gnu/java/locale/LocaleInformation_so_DJ.java,
	gnu/java/locale/LocaleInformation_so_ET.java,
	gnu/java/locale/LocaleInformation_so_SO.java,
	gnu/java/locale/LocaleInformation_sq.java,
	gnu/java/locale/LocaleInformation_sr.java,
	gnu/java/locale/LocaleInformation_sr_Latn.java,
	gnu/java/locale/LocaleInformation_sv.java,
	gnu/java/locale/LocaleInformation_sw.java,
	gnu/java/locale/LocaleInformation_syr.java
	gnu/java/locale/LocaleInformation_syr_SY.java
	gnu/java/locale/LocaleInformation_ta.java,
	gnu/java/locale/LocaleInformation_te.java,
	gnu/java/locale/LocaleInformation_th.java,
	gnu/java/locale/LocaleInformation_ti.java,
	gnu/java/locale/LocaleInformation_ti_ER.java,
	gnu/java/locale/LocaleInformation_ti_ET.java,
	gnu/java/locale/LocaleInformation_tig.java
	gnu/java/locale/LocaleInformation_tig_ER.java
	gnu/java/locale/LocaleInformation_tr.java,
	gnu/java/locale/LocaleInformation_tt.java,
	gnu/java/locale/LocaleInformation_uk.java,
	gnu/java/locale/LocaleInformation_ur.java,
	gnu/java/locale/LocaleInformation_uz.java,
	gnu/java/locale/LocaleInformation_uz_AF.java,
	gnu/java/locale/LocaleInformation_vi.java,
	gnu/java/locale/LocaleInformation_wal.java
	gnu/java/locale/LocaleInformation_wal_ET.java
	gnu/java/locale/LocaleInformation_zh.java,
	gnu/java/locale/LocaleInformation_zh_HK_Hant.java,
	gnu/java/locale/LocaleInformation_zh_Hant.java,
	gnu/java/locale/LocaleInformation_zh_MO_Hant.java,
	gnu/java/locale/LocaleInformation_zh_SG_Hans.java,
	Locales updated with re-ordered zone strings,
	new separator ('|' replaced with \u00A6) and updated
	data from the latest CLDR CVS (including 16 new
	locales).
	* java/util/Currency.java:
	 (currencySymbol): Removed.
	(getCurrencyCode()): Rewritten to call
	getCurrencyCode(Locale.getDefault()).
	(getCurrencyCode(java.util.Locale)): Rewritten to
	lookup localized currency symbol from our locale data.
	* java/util/Locale.java:
	(getDisplayLanguage(java.util.Locale)): Now calls
	method in LocaleHelper.
	(getDisplayCountry(java.util.Locale)): Likewise.
	(getDisplayVariant(java.util.Locale)): Likewise.
	(getDisplayString()): Rewritten in LocaleHelper.
	
2005-01-29  Quentin Anciaux  <quentin.anciaux@advalvas.be>

	* gnu/classpath/SystemProperties.java (static): Add all aliases
	for UTF8, UTF16 and UTF32 (Little and Big Endian), US-ASCII,
	iso-8859-[1-9], iso-8859-13, iso-8859-15, cp-1250, cp-1252 and
	cp1047 to defaultProperties.
	* gnu/java/io/decode/Decoder8859_13.java: New class.
	* gnu/java/io/decode/Decoder8859_15.java: Likewise.
	* gnu/java/io/decode/Decoder8859_6.java: Likewise.
	* gnu/java/io/decode/Decoder8859_7.java: Likewise.
	* gnu/java/io/decode/Decoder8859_8.java: Likewise.
	* gnu/java/io/decode/Decoder8859_9.java: Likewise.
	* gnu/java/io/decode/DecoderASCII.java: Likewise.
	* gnu/java/io/decode/DecoderCp1047.java: Likewise.
	* gnu/java/io/decode/DecoderEBCDIC_XML_US.java: Likewise.
	* gnu/java/io/decode/DecoderUTF16BE.java: Likewise.
	* gnu/java/io/decode/DecoderUTF16LE.java: Likewise.
	* gnu/java/io/decode/DecoderUTF32BE.java: Likewise.
	* gnu/java/io/decode/DecoderUTF32LE.java: Likewise.
	* gnu/java/io/decode/DecoderWindows1250.java: Likewise.
	* gnu/java/io/decode/DecoderWindows1252.java: Likewise.
	* gnu/java/io/encode/Encoder8859_13.java: Likewise.
	* gnu/java/io/encode/Encoder8859_15.java: Likewise.
	* gnu/java/io/encode/Encoder8859_6.java: Likewise.
	* gnu/java/io/encode/Encoder8859_7.java: Likewise.
	* gnu/java/io/encode/Encoder8859_8.java: Likewise.
	* gnu/java/io/encode/Encoder8859_9.java: Likewise.
	* gnu/java/io/encode/EncoderASCII.java: Likewise.
	* gnu/java/io/encode/EncoderCp1047.java: Likewise.
	* gnu/java/io/encode/EncoderEBCDIC_XML_US.java: Likewise.
	* gnu/java/io/encode/EncoderUTF16BE.java: Likewise.
	* gnu/java/io/encode/EncoderUTF16LE.java: Likewise.
	* gnu/java/io/encode/EncoderUTF32BE.java: Likewise.
	* gnu/java/io/encode/EncoderUTF32LE.java: Likewise.
	* gnu/java/io/encode/EncoderWindows1250.java: Likewise.
	* gnu/java/io/encode/EncoderWindows1252.java: Likewise.

2005-01-29  Steven Augart  <augart@watson.ibm.com>

	* vm/reference/gnu/classpath/VMStackWalker.java: Doc fix.

2005-01-29  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* java/text/SimpleDateFormat.java:
	(parse): Set the DST offset to 0 when parsing
	GMT offset timezones.

2005-01-28  Chris Burdess  <dog@gnu.org>

	* gnu/xml/DomNode: Correct implementation of getElementsByTagName
	etc to return a NodeList that returns consistent results from item
	and getLength methods.

2005-01-28  Mark Wielaard  <mark@klomp.org>

	* java/util/jar/Attributes.java (Attributes.Name): Add documentation
	to describe attributes without a constant field value in this class.

2005-01-28  Michael Koch  <konqueror@gmx.de>

	* javax/swing/SwingUtilities.java
	(getFontMetrics): Removed.

2005-01-28  Michael Koch  <konqueror@gmx.de>

	* java/awt/Container.java
	(paramString): Implemented.
	* javax/swing/AbstractButton.java
	(paramString): Implemented.
	* javax/swing/JComponent.java
	(paramString): Implemented.
	* javax/swing/JMenu.java
	(paramString): Implemented.
	* javax/swing/JMenuBar.java
	(paramString): Implemented.
	* javax/swing/JMenuItem.java
	(paramString): Implemented.
	* javax/swing/JPopupMenu.java
	(paramString): Implemented.

2005-01-28  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JMenu.java
	(uiClassID): Removed.
	(JMenu): Set invoker on popup menu.
	(getUIClassID): Return id directly.
	(getItemCount): Simply return getMenuComponentCount().
	Fixed javadoc.
	(isTopLevelMenu): Simplified.
	* javax/swing/JMenuItem.java
	(uiClassID): Removed.
	(getUIClassID): Return id directly.
	* javax/swing/JPopupMenu.java
	(uiClassID): Removed.
	(JPopupMenu): Always initialize correctly.
	(getSubElements): Only return components implementing MenuElement
	interface.
	(HeavyWeightPopup.hide): Removed.

2005-01-28  Michael Koch  <konqueror@gmx.de>

	* java/util/jar/Attributes.java
	(CREATED_BY, JAVA_BEAN, MAGIC): Removed.

2005-01-28  Michael Koch  <konqueror@gmx.de>

	* java/awt/image/ReplicateScaleFilter.java
	(replicatePixels): Made private.
	* javax/swing/colorchooser/DefaultRGBChooserPanel.java
	(DefaultRGBChooserPanel): Made package private.
	* javax/swing/colorchooser/DefaultSwatchChooserPanel.java
	(RecentSwatchPanel): Likewise.
	* javax/swing/event/MouseInputAdapter.java: Reformatted.
	(MouseInputAdapter): Made abstract.
	* javax/swing/tree/DefaultMutableTreeNode.java
	(random): Removed.
	(growTree): Likewise.

2005-01-27  Michael Koch  <konqueror@gmx.de>

	* java/util/GregorianCalendar.java (getLeniarDay): 
	Made private.

2005-01-27  Patrik Reali  <reali@acm.org>

	* doc/www.gnu.org/faq/faq.wml: type in faq code corrected

2005-01-27  Michael Koch  <konqueror@gmx.de>

	* java/awt/dnd/DropTarget.java (addDropTargetListener):
	Clarified comments.

2005-01-27  Graydon Hoare  <graydon@redhat.com>

	* java/awt/dnd/DropTarget.java
	(addDropTargetListener): Despite documentation, do not throw.
	* javax/swing/JComponent.java: Set a default DropTarget.

2005-01-27  Michael Koch  <konqueror@gmx.de>

	* java/util/zip/ZipFile.java
	(ZIP_MAGIC): New constant.
	(ZipFile): Check if given file is really a zip file.
	(checkZipFile): New method.
	(checkClosed): New method.
	(entries): Check if file was closed. Return an empty enumeration in
	error case.
	(getEntries): Use checkClosed().
	(getEntry): Check if file was closed.
	(getInputStream): Likewise.
	(size): Likewise.

2005-01-27  Patrik Reali  <reali@acm.org>

	* doc/www.gnu.org/faq/faq.wml: current command to generate doc
	added to the faq

2005-01-27  Patrik Reali  <reali@acm.org>

	* doc/www.gnu.org/docs/docs.wml: link to gjdoc-generated docs

2005-01-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/swing/SwingUtilities.java:
	(getAccessibleAt(java.awt.Component, java.awt.Point)):
	Implemented and documented.
	(getAccessibleChild(java.awt.Component, int)): Likewise.
	(getAccessibleChildrenCount(java.awt.Component)): Likewise.
	(getAccessibleIndexInParent(java.awt.Component)): Likewise.
	(getAccessibleStateSet(java.awt.Component)): Likewise.
	
2005-01-27  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractAction.java
	(ENABLED_PROPERTY): Removed.
	(setEnabled): Replaced constant with real string.
	* javax/swing/AbstractButton.java
	(createActionPropertyChangeListener.propertyChange): Likewise.
	* javax/swing/JComboBox.java
	(DEFAULT_MAXIMUM_ROW_COUNT): Made private.
	(EDITABLE_CHANGED_PROPERTY): Removed.
	(MAXIMUM_ROW_COUNT_CHANGED_PROPERTY):Likewise.
	(ENABLED_CHANGED_PROPERTY):Likewise.
	(RENDERER_CHANGED_PROPERTY):Likewise.
	(EDITOR_CHANGED_PROPERTY):Likewise.
	(MODEL_CHANGED_PROPERTY):Likewise.
	(uiClassID):Likewise.
	(getUIClassID): Replaced constant with real string.
	(setModel):Likewise.
	(setEditable):Likewise.
	(setMaximumRowCount):Likewise.
	(setRenderer):Likewise.
	(setEditor):Likewise.
	(setEnabled):Likewise.
	* javax/swing/JLabel.java
	(DISABLED_ICON_CHANGED_PROPERTY): Removed.
	(DISPLAYED_MNEMONIC_CHANGED_PROPERTY): Likewise.
	(DISPLAYED_MNEMONIC_INDEX_CHANGED_PROPERTY): Likewise.
	(HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY): Likewise.
	(HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY): Likewise.
	(ICON_CHANGED_PROPERTY): Likewise.
	(ICON_TEXT_GAP_CHANGED_PROPERTY): Likewise.
	(LABEL_FOR_CHANGED_PROPERTY): Likewise.
	(TEXT_CHANGED_PROPERTY): Likewise.
	(VERTICAL_ALIGNMENT_CHANGED_PROPERTY): Likewise.
	(VERTICAL_TEXT_POSITION_CHANGED_PROPERTY): Likewise.
	(setText): Replaced constant with real string.
	(setIcon): Likewise.
	(setDisabledIcon): Likewise.
	(setDisplayedMnemonic): Likewise.
	(setIconTextGap): Likewise.
	(setVerticalAlignment): Likewise.
	(setHorizontalAlignment): Likewise.
	(setVerticalTextPosition): Likewise.
	(setHorizontalTextPosition): Likewise.
	(setLabelFor): Replaced constant with real string.
	Fire property change event after property got changed.
	* javax/swing/JList.java
	(CELL_RENDERER_PROPERTY_CHANGED): Likewise.
	(FIXED_CELL_HEIGHT_PROPERTY_CHANGED): Likewise.
	(FIXED_CELL_WIDTH_PROPERTY_CHANGED): Likewise.
	(LAYOUT_ORIENTATION_PROPERTY_CHANGED): Likewise.
	(MODEL_PROPERTY_CHANGED): Likewise.
	(PROTOTYPE_CELL_VALUE_PROPERTY_CHANGED): Likewise.
	(SELECTION_BACKGROUND_PROPERTY_CHANGED): Likewise.
	(SELECTION_FOREGROUND_PROPERTY_CHANGED): Likewise.
	(SELECTION_MODEL_PROPERTY_CHANGED): Likewise.
	(setFixedCellWidth): Reimplemented.
	(setFixedCellHeight): Exit if new value is identical.
	Replaced constant with real string.
	(setSelectionBackground): Likewise.
	(setSelectionForeground): Likewise.
	(setPrototypeCellValue): Likewise.
	(setCellRenderer): Replaced constant with real string.
	(setModel): Likewise.
	(setSelectionModel): Likewise.
	* javax/swing/JMenuBar.java
	(BORDER_PAINTED_CHANGED_PROPERTY): Removed.
	(MODEL_CHANGED_PROPERTY): Likewise.
	(MARGIN_CHANGED_PROPERTY): Likewise.
	(setBorderPainted): Reimplemented.
	(setMargin): Likewise.
	(setSelectionModel): Replaced constant with real string.
	* javax/swing/JPopupMenu.java
	(LABEL_CHANGED_PROPERTY): Removed.
	(VISIBLE_CHANGED_PROPERTY): Likewise.
	(borderPainted): Likewise.
	(setLabel): Replaced constant with real string.
	(setVisible): Exit if new value is identical.
	Replaced constant with real string.
	* javax/swing/JProgressBar.java
	(BORDER_PAINTED_CHANGED_PROPERTY): Removed.
	(ORIENTATION_CHANGED_PROPERTY): Likewise.
	(STRING_CHANGED_PROPERTY): Likewise.
	(STRING_PAINTED_CHANGED_PROPERTY): Likewise.
	(INDETERMINATE_CHANGED_PROPERTY): Likewise.
	(setOrientation): Replaced constant with real string.
	(setStringPainted): Likewise.
	(setString): Likewise.
	(setBorderPainted): Likewise.
	(setIndeterminate): Likewise.
	* javax/swing/JScrollBar.java
	(BLOCK_INCREMENT_CHANGED_PROPERTY): Removed.
	(MODEL_CHANGED_PROPERTY): Likewise.
	(ORIENTATION_CHANGED_PROPERTY): Likewise.
	(setOrientation): Replaced constant with real string.
	(setModel): Likewise.
	(setUnitIncrement): Likewise.
	(setBlockIncrement): Likewise.
	* javax/swing/JScrollPane.java
	(COLUMN_HEADER_CHANGED_PROPERTY): Removed.
	(COMPONENT_ORIENTATION_CHANGED_PROPERTY): Likewise.
	(HORIZONTAL_SCROLLBAR_CHANGED_PROPERTY): Likewise.
	(HORIZONTAL_SCROLLBAR_POLICY_CHANGED_PROPERTY): Likewise.
	(LAYOUT_CHANGED_PROPERTY): Likewise.
	(ROW_HEADER_CHANGED_PROPERTY): Likewise.
	(VERTICAL_SCROLLBAR_CHANGED_PROPERTY): Likewise.
	(VERTICAL_SCROLLBAR_POLICY_CHANGED_PROPERTY): Likewise.
	(VIEWPORT_CHANGED_PROPERTY): Likewise.
	(VIEWPORT_BORDER_CHANGED_PROPERTY): Likewise.
	(WHEEL_SCROLLING_ENABLED_CHANGED_PROPERTY): Likewise.
	(setComponentOrientation): Replaced constant with real string.
	(setColumnHeader): Likewise.
	(setHorizontalScrollBar): Likewise.
	(setHorizontalScrollBarPolicy): Likewise.
	(setRowHeader): Likewise.
	(setVerticalScrollBar): Likewise.
	(setVerticalScrollBarPolicy): Likewise.
	(setWheelScrollingEnabled): Likewise.
	(setViewport): Likewise.
	(setViewportBorder): Likewise.
	* javax/swing/JSlider.java
	(INVERTED_CHANGED_PROPERTY): Removed.
	(LABEL_TABLE_CHANGED_PROPERTY): Likewise.
	(MAJOR_TICK_SPACING_CHANGED_PROPERTY): Likewise.
	(MINOR_TICK_SPACING_CHANGED_PROPERTY): Likewise.
	(MODEL_CHANGED_PROPERTY): Likewise.
	(ORIENTATION_CHANGED_PROPERTY): Likewise.
	(PAINT_LABELS_CHANGED_PROPERTY): Likewise.
	(PAINT_TICKS_CHANGED_PROPERTY): Likewise.
	(setModel): Replaced constant with real string.
	(setOrientation): Likewise.
	(setLabelTable): Likewise.
	(setInverted): Likewise.
	(setMajorTickSpacing): Likewise.
	(setMinorTickSpacing): Likewise.
	(setPaintTicks): Likewise.
	(setPaintLabels): Likewise.
	* javax/swing/JTabbedPane.java
	(MODEL_CHANGED_PROPERTY): Removed.
	(TAB_PLACEMENT_CHANGED_PROPERTY): Likewise.
	(TAB_LAYOUT_POLICY_CHANGED_PROPERTY): Likewise.
	(setModel): Replaced constant with real string.
	(setTabPlacement): Likewise.
	(setTabLayoutPolicy): Likewise.
	* javax/swing/JToolBar.java
	(ORIENTATION_CHANGED_PROPERTY): Removed.
	(FLOATABLE_CHANGED_PROPERTY): Likewise.
	(BORDER_PAINTED_CHANGED_PROPERTY): Likewise.
	(MARGIN_CHANGED_PROPERTY): Likewise.
	(ROLLOVER_CHANGED_PROPERTY): Likewise.
	(setRollover): Replaced constant with real string.
	(setMargin): Likewise.
	(setBorderPainted): Likewise.
	(setFloatable): Likewise.
	(setOrientation): Likewise.
	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(PropertyChangeHandler.propertyChange): Likewise.
	* javax/swing/plaf/basic/BasicComboPopup.java
	(PropertyChangeHandler.propertyChange): Likewise.
	* javax/swing/plaf/basic/BasicMenuBarUI.java
	(PropertyChangeHandler.propertyChange): Likewise.
	* javax/swing/plaf/basic/BasicProgressBarUI.java
	(PropertyChangeHandler.propertyChange): Likewise.
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(PropertyChangeHandler.propertyChange): Likewise.
	* javax/swing/plaf/basic/BasicSliderUI.java
	(PropertyChangeHandler.propertyChange): Likewise.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(PropertyChangeHandler.propertyChange): Likewise.
	* javax/swing/plaf/basic/BasicToolBarUI.java
	(PropertyChangeHandler.propertyChange): Likewise.

2005-01-26  Michael Koch  <konqueror@gmx.de>

	* javax/swing/DefaultButtonModel.java
	(changeState): Made private.
	* javax/swing/DefaultDesktopManager.java
	(setWasIcon): Fixed second argument to be java.lang.Boolean.
	* javax/swing/JLayeredPane.java
	(layerToRange): Made private.
	(incrLayer): Likewise.
	(decrLayer): Likewise.
	* javax/swing/JTable.java
	(dragEnabled): Likewise.
	(preferredViewportSize): Renamed from preferredScrollableViewportSize.
	* javax/swing/KeyStroke.java
	(Keystroke): Made private.
	* javax/swing/TransferHandler.java
	(COMMAND_COPY): Likewise.
	(COMMAND_CUT): Likewise.
	(COMMAND_PASTE): Likewise.

2005-01-26  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTextField.java
	(postActionEvent): Use text in field when actionCommand is null.
	(getActionCommand): Removed.

2005-01-26  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractSet.java: Removed.

2005-01-26  Michael Koch  <konqueror@gmx.de>

	* java/awt/Window.java
	(AccessibleWindow.getAccessibleStateSet): Fixed method name.
	* java/awt/dnd/DnDConstants.java
	(DnDConstants): New private constructor.

2005-01-25  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* java/text/SimpleDateFormat.java:
	(parse): Use offset to set ZONE_OFFSET
	rather than the DST_OFFSET, so that
	GMT offset timezones change the right
	one.
	
2005-01-25  Michael Koch  <konqueror@gmx.de>

	* javax/swing/DefaultCellRenderer.java: Removed.

2005-01-25  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractButton.java
	(fireItemStateChanged): Made protected.
	(fireActionPerformed): Likewise.
	(fireStateChanged): Likewise.
	* javax/swing/DefaultButtonModel.java
	(fireItemStateChanged): Likewise.
	(fireActionPerformed): Likewise.
	(fireStateChanged): Likewise.
	* javax/swing/JApplet.java
	(JApplet): Removed.
	(frameInit): Likewise.
	(setRootPane): Made protected.
	(createRootPane): Likewise.
	* javax/swing/JComponent.java
	(getClientProperty): Likewise.
	(putClientProperty): Likewise.
	* javax/swing/JEditorPane.java
	(getContentType): Likewise.
	(setContentType): Likewise.
	* javax/swing/JFrame.java
	(setRootPane): Likewise.
	(createRootPane): Likewise.
	* javax/swing/JInternalFrame.java
	(getFocusCycleRootAncestor): Made final. Added @since tag.
	(isFocusCycleRoot): Likewise.
	(getWarningString): Made final.
	* javax/swing/JScrollBar.java
	(changeListener): Removed.
	(changeEvent): Likewise.
	(createChangeListener): Likewise.
	(fireStateChanged): Likewise.
	(addChangeListener): Likewise.
	(removeChangeListener): Likewise.
	(getChangeListeners): Likewise.
	* javax/swing/JScrollPane.java
	(createViewport): Made protected.
	* javax/swing/JViewport.java
	(addImpl): Likewise.
	(setBorder): New method.
	* javax/swing/JWindow.java
	(setRootPane): Made protected.
	(createRootPane): Likewise.
	* javax/swing/plaf/basic/BasicButtonUI.java
	(installListeners): Likewise.
	(uninstallListeners): Likewise.
	* javax/swing/plaf/basic/BasicProgressBarUI.java
	(incrementAnimationIndex): Likewise.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(createLayoutManager): Likewise.
	* javax/swing/table/DefaultTableCellRenderer.java
	(firePropertyChange): Likewise.
	* javax/swing/table/JTableHeader.java
	(AccessibleJTableHeaderEntry.AccessibleJTableHeaderEntry):
	New constructor.
	* javax/swing/text/PlainDocument.java
	(reindex): Made private.
	* javax/swing/text/PlainView.java
	(drawLine): Made protected.
	(getTabSize): Likewise.
	* javax/swing/text/View.java
	(setSize): Removed.
	(preferenceChanged): New method.
	(getBreakWeight): Likewise.
	(breakView): Likewise.
	(getViewIndex): Likewise.

2005-01-24  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JScrollPane.java
	(ScrollBar): Made class protected.
	* javax/swing/JSpinner.java
	(JSpinner): Added @since tag.
	(listenerList): Removed.
	* javax/swing/JTable.java
	(setValueAt): New method.
	(getColumn): Likewise.
	* javax/swing/JWindow.java
	(rootPaneCheckingEnabled): Renamed from checking.

2005-01-24  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.modelToView): Made it public and return a java.awt.Shape.
	Handle null subview.
	(uninstall): Set textComponent to null when its not possible used
	anymore.
	* javax/swing/text/View.java
	(setParent): Use better argument name.
	(getContainer): Get parent via getParent().
	(getViewFactory): Likewise.
	(getAttributes): Get element via getElement().
	(getStartOffset): Likewise.
	(getEndOffset): Likewise.
	(getResizeWeight): New method.
	(getMaximumSpan): Likewise.
	(getMinimumSpan): Likewise.
	(setSize): Likewise.
	(getGraphics): Likewise.

2005-01-24  Graydon Hoare  <graydon@redhat.com>
	    Michael Koch  <konqueror@gmx.de>

	* javax/swing/LayoutFocusTraversalPolicy.java,
	javax/swing/SortingFocusTraversalPolicy.java:
	New classes.

2005-01-23  Sven de Marothy <sven@physto.se>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java:
	Reverted to previous version, after a mistake in the previous commit.

2005-01-23  Sven de Marothy <sven@physto.se>

	* java/util/Calendar.java: Invalidate ERA field on setting the YEAR.
	* java/util/SimpleTimeZone.java: 
	(getDaysInMonth): Reimplemented.
	* java/util/GregorianCalendar.java:
	(getLinearTime): Removed.
	(isLeapYear(int,boolean)): Removed.
	(before(), after()): Removed.
	(computeTime): Reimplemented.

2005-01-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/locale/LocaleInformation.java:
	Extended localPatternChars string to match root.xml.
	* gnu/java/locale/LocaleInformation_en.java:
	Removed invalid localPatternChars string.
	* gnu/java/locale/LocaleInformation_nl.java:
	Likewise.
	* java/text/DateFormat.java:
	Documented pattern character offset constants and
	added new ones.
	(Field): Added new static fields for new pattern chars.
	* java/text/SimpleDateFormat.java:
	(CompiledField): Changed name of FieldSizePair class
	to CompiledField after adding the character as an
	attribute.  Changed fields to private and added
	accessors to give encapsulation.
	(CompiledField.CompiledField(int,int,char)): Extended
	with character field.
	(CompiledField.getField()): New accessor method.
	(CompiledField.getSize()): New acceessor method.
	(CompiledField.getCharacter()): New accessor method.
	(CompiledField.toString()): Added primarily for debugging.
	(standardChars): Now uses extended 24 character sequence.
	(compileFormat(String)): Changed to use CompiledField.
	(formatWithAttribute(java.util.Date, gnu.java.text.FormatBuffer,
	java.text.FieldPosition)): Changed to use CompiledField.
	New handler for RFC 822 timezones added.

2005-01-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/awt/Checkbox.java:
	(AccessibleAWTCheckbox()): Added public constructor
	to call superclass.
	* java/awt/Choice.java:
	(AccessibleAWTChoice): Added class documentation.
	(AccessibleAWTChoice()): Added public constructor
	to call superclass.
	(AccessibleAWTChoice.getAccessibleAction()): Documented.
	(AccessibleAWTChoice.getAccessibleRole()): Documented,
	and changed role to COMBO_BOX.
	(AccessibleAWTChoice.getAccessibleActionCount()): Documented.
	(AccessibleAWTChoice.getAccessibleActionDescription(int)): Documented.
	(AccessibleAWTChoice.doAccessibleAction(int)): Documented.

2005-01-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/text/SimpleDateFormat.java:
	(parse(String, java.text.ParsePosition)):
	Changed 'E' and 'M' cases to use both
	short and long names.  Extended 'z'
	case to also handle 'Z', and deal
	with simple GMT offsets such as +0100.
	(computeOffset(String)): New private method,
	which converts a GMT offset specification,
	such as GMT-0500 to a numeric offset in
	milliseconds.
	* java/util/TimeZone.java:
	(timezones()): Added "CEST", the daylight
	savings time version of "CET", or Central
	European Time.
	
2005-01-21  Sven de Marothy <sven@physto.se>

	* java/util/Calendar.java: Reformatted.
	* java/util/GregorianCalendar.java: Reformatted.
	* java/util/SimpleTimeZon.java: Reformatted.

2005-01-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/DebugGraphics.java: Mostly implemented.

2005-01-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/SwingUtilities.java
	(findFocusOwner): New method.

2005-01-21  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/DefaultEditorKit.java
	(read): Added '\n' after each line.
	* javax/swing/text/PlainView.java
	(modelToView): Update metrics.
	(drawLine): Use offsets from element.
	(paint): Update metrics. Draw all lines.

2005-01-20  Michael Koch  <konqueror@gmx.de>

	* java/awt/print/PrinterJob.java
	(pageDialog): Throws java.awt.HeadlessException.
	(printDialog): Likewise.

2005-01-20  Michael Koch  <konqueror@gmx.de>

	* doc/hacking.texinfo: Fixed one typo and the paragraph about time
	formats.

2005-01-20  Michael Koch  <konqueror@gmx.de>

	* javax/print/attribute/standard/Chromaticity.java
	(serialVersionUID): Fixed value.
	* javax/print/attribute/standard/Destination.java
	(serialVersionUID): Fixed value.
	* javax/print/attribute/standard/MediaPrintableArea.java,
	javax/print/attribute/standard/MediaSize.java:
	New files.

2005-01-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* include/java_lang_VMSystem.h:
	(Java_java_lang_VMSystem_environ): added
	* java/lang/System.java:
	Added cached environmentMap.
	(getenv()): documented and implemented
	(EnvironmentCollection): new class for use
	by getenv()
	(EnvironmentSet): likewise
	(EnvironmentIterator): clone of
	UnmodifiableIterator from java.util
	* native/jni/java-lang/java_lang_VMSystem.c:
	(environ(JNIEnv, jclass)): implemented
	* vm/reference/java/lang/VMSystem.java:
	(getenv()): removed
	(environ()): new native method
	(getenv(String)): made native like HEAD

2005-01-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Currency.java:
	Added new countryMap which maps country codes
	to international currency codes.  The cache
	has been altered to map currency codes to
	Currency objects.
	(getInstance(java.util.Locale)): adds to both
	caches and attempts initial lookup from country map
	(getInstance(java.lang.String)): attempts to
	use code -> currency map first
	
2005-01-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/awt/Checkbox.java:
	(AccessibleAWTCheckbox): Added class documentation
	* java/awt/Scrollbar.java:
	(AccessibleAWTScrollBar): typo corrected and docs added
	(AccessibleAWTScrollBar.getAccessibleRole()): documented
	(AccessibleAWTScrollBar.getAccessibleStateSet()): likewise
	(AccessibleAWTScrollBar.getAccessibleValue()): likewise
	(AccessibleAWTScrollBar.getCurrentAccessibleValue()): likewise
	(AccessibleAWTScrollBar.setCurrentAccessibleValue(java.lang.Number)): likewise
	(AccessibleAWTScrollBar.getMinimumAccessibleValue()): likewise
	(AccessibleAWTScrollBar.getMaximumAccessibleValue()): likewise
	(getAccessibleContext()): name of accessible class corrected

2005-01-20  Mark Wielaard  <mark@klomp.org>

	* java/util/Currency.java (Currency(Locale)): Add Locale to
	IllegalArgumentException message.

2005-01-20  Mark Wielaard  <mark@klomp.org>

	* java/awt/BasicStroke.java (hashCode): Implement.
	(equals): Document.

2005-01-20  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTable.java
	(getValueAt): New method.
	* javax/swing/table/JTableHeader.java
	(columnAtPoint): New method.

2005-01-20  Mark Wielaard  <mark@klomp.org>

	* java/util/Currency.java (Currency(Locale)): Clarify
	IllegalArgumentException message.

2005-01-20  Mark Wielaard  <mark@klomp.org>

	* javax/naming/directory/BasicAttributes.java (equals): Compare to any
	Attributes and attribute order doesn't matter.
	(BasicAttributesEnumeration.where): Initialize to zero.
	(BasicAttributesEnumeration.nextElement): Update and compare where
	appropriately (zero based).

2005-01-20  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTextField.java
	(actions): New field.
	(static): Initalize actions field.
	(getActions): New method.

2005-01-20  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gtkpeer.h (gdk_env): Fix prototype.

2005-01-20  Graydon Hoare  <graydon@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
	(env_union): Use union to avoid type-punning warning.
	
2005-01-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/awt/Checkbox.java:
	(AccessibleAWTCheckbox): name capitalization corrected
	and serialization UID added.
	(AccessibleAWTCheckbox.itemStateChanged(java.awt.event.ItemEvent)):
	documented.
	(AccessibleAWTCheckbox.getAccessibleAction()): likewise
	(AccessibleAWTCheckbox.getAccessibleValue()): likewise
	(AccessibleAWTCheckbox.getAccessibleActionCount()): likewise
	(AccessibleAWTCheckbox.getAccessibleActionDescription(int)): likewise
	(AccessibleAWTCheckbox.doAccessibleAction(int)): likewise
	(AccessibleAWTCheckbox.getCurrentAccessibleValue()): likewise
	(AccessibleAWTCheckbox.setCurrentAccessibleValue(java.lang.Number)): likewise
	(AccessibleAWTCheckbox.getMinimumAccessibleValue()): likewise
	(AccessibleAWTCheckbox.getMaximumAccessibleValue()): likewise
	(AccessibleAWTCheckbox.getAccessibleRole()): likewise
	(AccessibleAWTCheckbox.getAccessibleStateSet()): implemented and
	documented
	(getAccessibleContext()): name of accessible class corrected

2005-01-19  Michael Koch  <konqueror@gmx.de>

	* javax/swing/DefaultListSelectionModel.java
	(clone): New method.

2005-01-19  Michael Koch  <konqueror@gmx.de>

	* scripts/check_jni_methods.sh: Call sed with LC_ALL=C.

2005-01-19  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/ClasspathToolkit.java:
	Import statements reworked.
	(imageCache): Made it of type java.util.HashMap.

2005-01-19  Graydon Hoare  <graydon@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
	Rewrite uses of extern variable to be function calls.
	* native/jni/gtk-peer/gtkpeer.h (gdk_env): Change declaration to
	function, from extern variable.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
	(gdk_env): Remove variable, add new function.
	(java_vm): Add new variable.
	(Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Initialize
	java_vm rather than old gdk_env variable.

2005-01-18  Mark Wielaard  <mark@klomp.org>

	Fixes bug #11618.
	* java/io/ObjectInputStream.java (readClassDescriptor): Handle classes
	without a super class and us ObjectStreamClass.lookupForClassObject().
	(resolveClass): Check for primitive types.
	(lookupClass): Return null when argument is null.

2005-01-18 David Gilbert <david.gilbert@object-refinery.com>

	* javax/swing/DefaultListModel.java
	(add): fire correct event,
	(addElement): corrected interval indices in event,
	(clear): corrected upper bound for interval, only fire event if
	list is not empty,
	(setSize): fire appropriate event.

2005-01-18  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/Externalizable.java,
	java/io/Serializable.java
	(serialVersionUID): Removed.
	* java/rmi/server/RemoteObject.java,
	java/rmi/server/UID.java
	(serialVersionUID): Made private.
	* java/rmi/server/RemoteRef.java,
	java/rmi/server/ServerRef.java
	(serialVersionUID): Set proper value.
	* java/security/interfaces/DSAPrivateKey.java,
	java/security/interfaces/DSAPublicKey.java,
	java/security/interfaces/RSAMultiPrimePrivateCrtKey.java,
	java/security/interfaces/RSAPrivateCrtKey.java,
	java/security/interfaces/RSAPrivateKey.java,
	java/security/interfaces/RSAPublicKey.java,
	javax/crypto/SecretKey.java
	(serialVersionUID): Added.

2005-01-18  Graydon Hoare  <graydon@redhat.com>

	* gnu/java/awt/ClasspathToolkit.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkToolkit.java: Likewise.
	* java/awt/EventQueue.java (getNextEvent):
	Adjust event loop to switch to native mode after 100ms.
	* javax/swing/Timer.java (drainEvents): Reuse Runnable.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose):
	Wake up event thread.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
	(Java_gnu_java_awt_peer_gtk_GtkToolkit_iterateNativeQueue):
	Adjust event loop to switch to java mode after 100ms.

2005-01-18  Michael Koch  <konqueror@gmx.de>

	* include/gnu_java_awt_peer_gtk_GtkToolkit.h: Regenerated.

2005-01-17  Tom Tromey  <tromey@redhat.com>

	* java/text/MessageFormat.java (scanString): Changed how quoting
	is handled.
	(scanFormatElement): Likewise.

2005-01-17  Mark Wielaard  <mark@klomp.org>

	* scripts/check_jni_methods.sh: Don't use mktemp for TMPFILEs.

2005-01-17  Michael Koch  <konqueror@gmx.de>

	PR libgcj/19444
	* java/net/URI.java
	(AUTHORITY_REGEXP): New regexp constant.
	(AUTHORITY_USERINFO_GROUP): New constant.
	(AUTHORITY_HOST_GROUP): Likewise.
	(AUTHORITY_PORT_GROUP): Likewise.
	(port): Changed default value to -1.
	(parseURI): Parse authority part and initialize host,
	port and userInfo.

2005-01-17  Michael Koch  <konqueror@gmx.de>

	* javax/print/attribute/standard/Chromaticity.java,
	javax/print/attribute/standard/Destination.java:
	New files.

2005-01-17  Jerry Quinn  <jlquinn@optonline.net>

	* javax/imageio/metadata/IIOMetadataNode.java:
	Implemented.
	* javax/imageio/metadata/IIOAttr.java,
	javax/imageio/metadata/IIONamedNodeMap.java,
	javax/imageio/metadata/IIONodeList.java:
	New files
	
2005-01-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/IdentityHashMap.java:
	added parameteric typing
	(entries): generically typed
	(IdentityHashMap(Map<? extends K, ? extends V>)):
	likewise
	(entrySet()): likewise
	(entrySet().iterator()): likewise
	(get(Object)): likewise
	(keySet()): likewise
	(keySet().iterator()): likewise
	(put(K,V)): likewise
	(putAll(Map<? extends K, ? extends V>)): likewise
	(remove(Object)): likewise
	(values()): likewise
	(values().iterator()): likewise
	(IdentityIterator): likewise
	(IdentityIterator.next()): likewise
	(IdentityEntry): likewise
	(IdentityEntry.getKey()): likewise
	(IdentityEntry.getValue()): likewise
	(IdentityEntry.putValue(V)): likewise
	(readObject()): appropriate casting
	
2005-01-16  Tom Tromey  <tromey@redhat.com>

	* .classpath: Updated.

2005-01-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Currency.java:
	(getInstance(String)): catch IllegalArgumentException
	for locales without countries
	
2005-01-16  Mark Wielaard  <mark@klomp.org>

	Reported by Christian Thalinger <twisti@complang.tuwien.ac.at>
	* java/lang/ClassLoader.java (getExtClassLoaderUrls): Add check for
	null returned from getFiles().

2005-01-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
	        
	Final merge of HEAD patches to generics branch
	All changes are listed in merged Changelog.
	In addition,
	* java/lang/System.java:
	(getenv()): changed Runtime.securityManager to
	SecurityManager.current
	(getenv(String)): likewise
	(remove(String)): pointed to SystemProperties
	* gnu/classpath/SystemProperties.java:
	(remove(String)): implemented and documented

2005-01-15  Tom Tromey  <tromey@redhat.com>

	* javax/imageo/metadata: Merged from trunk.

2005-01-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>
  
	* java/text/SimpleDateFormat.java:
	(getDateFormatSymbols()): return a copy
	(setDateFormatSymbols(java.text.DateFormatSymbols)):
	throw exception on null input
	(clone()): implemented to clone internal fields
  
2005-01-15  Mark Wielaard  <mark@klomp.org>
  
	Reported by Martin Platter <motse@complang.tuwien.ac.at>
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFile):
	Correct method signature of gtkSetFilename.

2005-01-14  Sven de Marothy <sven@physto.se>
  
	* java/util/GregorianCalendar.java
	(GregorianCalendar): Update fields in the constructor
  
2005-01-14  Arnaud Vandyck  <avdyk@gnu.org>
  
	* javax/swing/text/StringContent.java: New file.
  
2005-01-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>
  
	* java/text/SimpleDateFormat.java:
	(parse): extend try{} block so all illegal arguments
	are caught and returned as null
  
2005-01-13  Sven de Marothy <sven@physto.se>
  
	* java/text/SimpleDateFormat.java
	(parse): comparison should be case-insensitive, ignore null strings.
  
2005-01-13  Jeroen Frijters  <jeroen@frijters.net>
  
	* vm/reference/java/nio/channels/VMChannels.java: Class shouldn't
	be public.
	(newInputStream,newOutputStream): No need to be public.
  
2005-01-13  Michael Koch  <konqueror@gmx.de>
  
	* scripts/check_jni_methods.sh: Don't use GNU sed specific features.
  
2005-01-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Arrays.java:
	(sort(T[],int,int,Comparator<? super T>)): Typed
	Object[] to T[]
	* java/util/Collections.java;
	(compare(T,T,<? super T>)): typed generically
	(binarySearch(List<? extends T>,T,Comparator<? super T>)):
	re-typed and added casts to List<T>
	(rotate(List<? super Object>, int)): added (incorrect?)
	super type to compile
	(shuffle(List<? super Object>): likewise
	(shuffle(List<? super Object, Random)): likewise
	(entrySet()): singleton version changed for accuracy
	(swap(List<? super Object>,int,int)): added (incorrect?)
	super type to compile
	(entrySet()): unmodifiable version removed invalid
	static typing of K and V
	* java/util/HashMap.java:
	(entries): re-typed to Set<Map.Entry<K,V>>
	(putAll(Map<? extends K, ? extends V>)): cast and foreach
	statement added
	(putAllInternal(Map<? extends K, ? extends V>)): likewise
	* java/util/Hashtable.java:
	same as for HashMap
	* java/util/LinkedHashEntry.java:
	(pred,succ): generically typed
	(LinkedHashEntry(K,V)): likewise
	(cleanup()): likewise
	(get(Object)): likewise
	(addEntry(K,V,int,boolean)): likewise
	* java/util/LinkedList.java:
	changed incorrect cast
	(LinkedListItr<I>): re-typed to unique I from T
	* java/util/TreeSet.java:
	cast set to SortedSet<T> before using

2005-01-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>
  
	* java/text/DecimalFormatSymbols.java
	(DecimalFormatSymbols(java.util.Locale)): defaults
	changed to "?" and "XXX" to match a nuance of Sun's
	impl. along with documentation
  
2005-01-12  Michael Koch  <konqueror@gmx.de>
  
	* gnu/java/security/x509/X509Certificate.java
	(parse): Handle val == null case.
  
2005-01-12  Michael Koch  <konqueror@gmx.de>
  
	* java/nio/channels/Channels.java
	(newInputStream(ReadableByteChannel)):
	Call VMChannels.newInputStream(ReadableByteChannel).
	(newOutputStream(WritableByteChannel):
	Call VMChannels.newOutputStream(WritableByteChannel).
	(newInputStream(FileChannelImpl)): Removed.
	(newOutputStream(FileChannelImpl)): Likewise.
	* vm/reference/java/nio/channels/VMChannels.java: Nw file.
  	* native/jni/java-nio/Makefile.am:
	* native/jni/java-nio/java_nio_channels_Channels.c,
	include/java_nio_channels_Channels.h: Removed.
	* include/Makefile.am: Don't generate java_nio_channels_Channels.h.
	Removed java_nio_channels_Channels.c.
  
2005-01-12  Michael Koch  <konqueror@gmx.de>
  
	* gnu/java/net/PlainSocketImpl.java
	(shutdownInput): Made native. Throws IOException. Added Javadoc.
	(shutdownOutput): Likewise.
	* include/gnu_java_net_PlainSocketImpl.h: Regenerated.
	* native/jni/java-net/gnu_java_net_PlainSocketImpl.c
	(Java_gnu_java_net_PlainSocketImpl_shutdownInput): New method.
	(Java_gnu_java_net_PlainSocketImpl_shutdownOutput): Likewise.
	* native/jni/java-net/javanet.c
	(_javanet_shutdownInput): Likewise.
	(_javanet_shutdownOutput): Likewise.
	* native/jni/java-net/javanet.h
	(_javanet_shutdownInput): Likewise.
	(_javanet_shutdownOutput): Likewise.
  
2005-01-12  Michael Koch  <konqueror@gmx.de>
  
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetVisible):
	Removed setting of gdk_env.
  
2005-01-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Collections.java
	all occurences of
	(toArray(E[] a)): fixed parameteric type to be different
	from collection type
	(entrySet()): immutable version retyped to return Map.Entry<K,V>
	* java/util/TreeMap.java
	Completion of generic typing for all methods and variables
	(entries, comparator): generically typed
	(TreeMap(Comparator<? super K>): likewise
	(TreeMap(Map <? extends K, ? extends V>): likewise
	(TreeMap(SortedMap<K, ? extends V> sm): likewise
	(comparator()): likewise
	(containsKey(Object)): cast to K for getKey()
	(entrySet()): generically typed
	(get(Object)): cast to K for getKey()
	(keySet()): generically typed
	(put(K,V)): likewise
	(putAll(Map<? extends K, ? extends V>)): likewise
	(remove(Object)): removed invalid generic typing
	(values()): generically typed
	(deleteFixup(Node<K,V>, Node<K,V>)): likewise
	(highestLessThan(K)): likewise
	(insertFixup(Node<K,V>)): likewise
	(lastNode()): likewise
	(lowestGreatThan(K, boolean): likewise
	(predecessor(Node<K,V>)): likewise
	(putKeysLinear(Iterator<K>, int)): likewise and doc
	correction
	(removeNode(Node<K,V>)): generically typed
	(rotateLeft(Node<K,V>)): likewise
	(rotateRight(Node<K,V>)): likewise
	(sucessor(Node<K,V>)): likewise
	(SubMap): generically typed with SK and SV
	
2005-01-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/EnumMap.java
	Corrected comment for accuracy.
	* java/util/EnumSet.java
	Corrected indenting.
	* java/util/Hashtable.java
	Corrected bracketing of author.

2005-01-11  Mark Wielaard  <mark@klomp.org>
  
	* acinclude.m4 (CLASSPATH_WITH_GJDOC): Test for gjdoc, not jay.
  
2005-01-12  Thomas Fitzsimmons  <fitzsim@redhat.com>
  
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c
	(mouseWheel): Call XFlush.
	(keyPress): Likewise.
	(keyRelease): Likewise.
  
2005-01-11  Michael Koch  <konqueror@gmx.de>
  
	* javax/swing/UIDefaults.java (UIDefaults):
	Fixed typo in javadoc (Thanks to Thomas Zander for reporting)
	Fixed HTML entity and removed a redundant comma.
  
2005-01-11  Michael Koch  <konqueror@gmx.de>
  
	* configure.ac: Check for gdk-pixbuf-2.0.
  
2005-01-11  Graydon Hoare  <graydon@redhat.com>
  
	* gnu/java/awt/ClasspathToolkit.java
	(registerImageIOSpis): New method.
	* gnu/java/awt/image/ImageDecoder.java
	(imageDecoder): New constructor using InputStream
	(startProduction): Handle existing InputStream.
  	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(findSimpleIntegerArray): Make public and static.
	(updateBufferedImage): Set each pixel, in a loop.
	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
	Implement ImageIO SPI classes.
	(createBufferedImage): Rewrite in terms of SPI classes.
  	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(registerImageIOSpis): New method.
	* java/lang/reflect/natMethod.cc
	(_Jv_CallAnyMethodA): Borrow a patch from aph, applied to trunk,
	which lets JNI call interface methods properly.
	* javax/imageio/ImageIO.java
	(WriterFormatFilter.filter): Fix copy-and-paste typos.
	(WriterMIMETypeFilter.filter): Likewise.
	(ImageReaderIterator): Pass extension argument through to SPI.
	(getReadersByFilter): Likewise.
	(getWritersByFilter): Likewise.
	(getImageReadersByFormatName): Likewise.
	(getImageReadersByMIMEType): Likewise.
	(getImageReadersBySuffix): Likewise.
	(getImageWritersByFormatName): Likewise.
	(getImageWritersByMIMEType): Likewise.
	(getImageWritersBySuffix): Likewise.
	(read): Implement.
	(write): Implement.
	* javax/imageio/ImageReader.java
	(progressListeners): Initialize.
	(setInput): Implement.
	* javax/imageio/ImageWriter.java
	(progressListeners): Initialize.
	(warningListeners): Likewise.
	(warningLocales): Likewise.
	(setOutput): Test "isInstance" rather than class equality.
	* javax/imageio/spi/IIORegistry.java
	(static): Add reader and writer SPIs.
	(IIORegistry): Call ClasspathToolkit.registerImageIOSpis.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
	(query_formats): New function.
	(save_to_stream): Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_streamImage): Likewise.

2005-01-11  Michael Koch  <konqueror@gmx.de>

	* include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: Regenerated.

2005-01-11  Michael Koch  <konqueror@gmx.de>

	* java/net/URL.java (URL): Handle specs like
	"/redir?http://domain2.com/index.html" which start with a slash.

2005-01-11  Steven Augart  <augart@watson.ibm.com>

	* scripts/check_jni_methods.sh: Portable to the OpenBSD
	"mktemp", as used in Red Hat Linux 7.3.
	Check whether "mktemp" fails; abort if it does.
	
2005-01-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/text/DecimalFormatSymbols.java
	(DecimalFormatSymbols(java.util.Locale)): check for
	errors in setting the currency and default to null and
	empty strings if unavailable
	(setCurrency(Currency)): moved assignment to ensure
	currency is not accidentally set to null
	* java/util/Currency.java
	(Currency(java.util.Locale)): throw IllegalArgumentException
	for empty country string and NullPointerException for null
	locale or country
  
2005-01-11  Graydon Hoare  <graydon@redhat.com>
  
	* gnu/java/awt/ClasspathToolkit.java
	(nativeQueueEmpty)
	(wakeNativeQueue)
	(iterateNativeQueue): New methods.
	* gnu/java/awt/peer/gtk/GtkMainThread.java: Remove.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(gtkInit): Absorb from defunct GtkMainThread class.
	(static): Run gtkInit in static startup block.
	(GtkToolkit): Remove construction of GtkMainThread and queue.
	(getSystemEventQueueImpl): Construct queue when requested.
	(nativeQueueEmpty)
	(wakeNativeQueue)
	(iterateNativeQueue): New methods.
	* java/awt/Component.java (removeNotify): Remove race.
	* java/awt/EventDispatchThread.java
	(EventDispatchThread): Don't start on construction.
	(run): Remove isInterrupted check.
	* java/awt/EventQueue.java (shutdown): New flag.
	(isShutdown): New method checking J2SE shutdown condition.
	(setShutdown): New method.
	(getNextEvent): Restructure to use ClasspathToolkit.
	(postEvent): Activate new thread on posting, wake thread on
	post of possible shutdown condition event.
	* java/awt/Frame.java
	(Frame): Call noteFrame in all constructors.
	(fireDummyEvent): New helper method.
	(addNotify): Fire a dummy event to wake up queue.
	(removeNotify): Fire a dummy event to wake up queue.
	(noteFrame): New method.
	(weakFrames): New static field.
	(getFrames): Implement.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c:
	Remove.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c:
	Move everything from GtkMainThread into this file
	(Java_gnu_java_awt_peer_gtk_GtkToolkit_iterateNativeQueue)
	(Java_gnu_java_awt_peer_gtk_GtkToolkit_wakeNativeQueue)
	(Java_gnu_java_awt_peer_gtk_GtkToolkit_nativeQueueEmpty):
	New functions to implement single-threaded queue semantics.

2005-01-11  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java: Replace direct
	references to event queue q with method call q().
	* gnu/java/awt/peer/gtk/GtkDialogPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkScrollbarPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkTextComponentPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkGenericPeer.java: Likewise.
	(q): New method.
  
2005-01-11  Michael Koch  <konqueror@gmx.de>
  
	* native/jni/gtk-peer/Makefile.am:
	Removed gnu_java_awt_peer_gtk_GtkMainThread.c.
	* include/Makefile.am:
	Don't generate gnu_java_awt_peer_gtk_GtkMainThread.h
	* include/gnu_java_awt_peer_gtk_GtkMainThread.h: Removed.
  
2005-01-11  Michael Koch  <konqueror@gmx.de>
  
	* javax/swing/text/DefaultEditorKit.java
	(deinstall): Removed.
	(install): Likewise.
  
2005-01-11  Michael Koch  <konqueror@gmx.de>
  
	* javax/swing/UIDefaults.java (put): Handle value of null.
  
2005-01-11  Chris Burdess  <dog@gnu.org>
  
	* gnu/java/net/protocol/http/HTTPConnection.java: Use correct form of
	Host header when using a non-default port number.
  
2005-01-11  Chris Burdess  <dog@gnu.org>
  
	* javax/net/ssl/HttpsURLConnection.java: Do not request SSLv3
	provider during class initialization.
  
2005-01-11  Michael Koch  <konqueror@gmx.de>
  
	* java/awt/Robot.java,
	java/awt/Scrollbar.java,
	java/awt/print/PrinterJob.java,
	javax/swing/JTable.java,
	javax/swing/text/AbstractDocument.java:
	Reworked import statements.
  
2005-01-11  Michael Koch  <konqueror@gmx.de>
  
	* java/beans/XMLDecoder.java: Reworked imports, fixed class javadoc.
	* java/io/File.java,
	java/lang/System.java,
	java/net/Inet4Address.java,
	java/util/Currency.java,
	java/util/ResourceBundle.java: Reworked imports.
  
2005-01-11  Tom Tromey  <tromey@redhat.com>

	* java/util/AbstractList.java (set, add): Fixed argument types.
	* java/util/ArrayList.java: Properly handle generic arrays.
	* java/util/Arrays.java (sort): Fixed type of temporary 'elem'.
	* java/util/BitSet.java (containsAll): Use correct variable name.
	* java/util/Collections.java (copy): Use correct
	parameterizations.
	(min): Likewise.
	(putAll): Likewise.
	(compare): Fixed argument types.
	(sort): Properly handle generic arrays.
	* java/util/EnumSet.java (clone): Ignore
	CloneNotSupportedException.
	(addAll, contains, containsAll, remove, removeAll, retainAll,
	copyOf, complementOf): Don't use generic instanceof.
	(copyOf): Cast result of 'clone'.
	* java/util/HashMap.java (HashMap): Properly handle generic
	arrays.
	(clone): Likewise.
	(rehash): Likewise.
	(readObject): Likewise.
	(putAll): Don't use generic instanceof.
	(getEntry): Likewise.
	(putAllInternal): Use correct parameterizations.
	(next): Fixed return type.
	* java/util/Hashtable.java (Hashtable): Properly handle generic
	arrays.
	(clone): Likewise.
	(rehash): Likewise.
	(readObject): Likewise.
	(hash): Fixed argument type.
	(getEntry): Don't use generic instanceof.
	(next): Cast return values.
	(nextElement): Fixed return type.
	* java/util/LinkedList.java (toArray): Added cast.
	(LinkedListItr): Now generic.
	* java/util/TreeMap.java (TreeMap): Now generic.
	(Node): Likewise.
	(left, right, parent): Updated types.
	(firstKey, get, headMap, lastKey, remove, subMap, tailMap,
	firstNode, getNode): Updated types.
	* java/util/TreeSet.java (TreeSet): Fixed cast.
	(clone): Likewise.
	(readObject): Likewise.
	* java/util/Vector.java (Vector): Properly handle generic arrays.
	(trimToSize): Likewise.
	(ensureCapacity): Likewise.
	(toArray): Likewise.
	(addAll): Fixed parameterization.
	* java/util/WeakHashMap.java (WeakBucket): Now generic.
	(value, next): Updated types.
	(WeakEntry): Parameterized superinterface.
	(key, getKey, getValue, setValue): Updated types.
	(getEntry): Fixed type of local 'key'.
	(get): Updated.
	(put): Fixed return type.
	(remove): Updated.

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

	* .classpath: Updated for Eclipse 3.1.
	* .settings/org.eclipse.jdt.core.prefs: New file.
	* .settings/org.eclipse.jdt.ui.prefs: New file.

2005-01-10  Tom Tromey  <tromey@redhat.com>
  
	* java/io/BufferedInputStream.java: Fixed indentation.
  
2005-01-10  Michael Koch  <konqueror@gmx.de>
  
	* javax/swing/JEditorPane.java
	(read): Implemented.
	(write): Likewise.
	* javax/swing/text/DefaultEditorKit.java
	(page): Renamed from page_url. Made private.
	(editorKit): Renamed from kit. Made private.
	(ctype): Removed.
	(JEditorPane): All constructors reimplemented.
	(getContentType): Use content type from editor kit.
	(getEditorKit): Return editorKit.
	(getEditorKitForContentType):Likewise.
	(getPage): Return page.
	(setContentType): Reimplemented.
	(setEditorKit): Likewise.
	(setEditorKitForContentType): Removed wrong implementation.
	(setPage): Implemented.
  
2005-01-10  Michael Koch  <konqueror@gmx.de>
  
	* scripts/check_jni_methods.sh: Dont ignore
	Java_gnu_java_awt_peer_gtk_GtkFramePeer_nativeSetIconImageFromData.
  
2005-01-10  Thomas Fitzsimmons  <fitzsim@redhat.com>
  
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
	(nativeSetIconImageFromData): Re-add native implementation.
  
2005-01-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/AbstractMap.java:
	(putAll(Map<? extends K, ? extends V>)): added cast to
	Map<K,V>
	* java/util/EnumMap.java:
	Corrected instanceof tests, generic array creation,
	use of Enum.getDeclaringClass() and wrong typing
	of iterator methods
	(clone()): re-written to use the EnumMap(EnumMap)
	constructor
	
2005-01-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/awt/AWTKeyStroke.java:
	Typed static cache and vktable generically
	(removeEldestEntry(Map.Entry<AWTKeyStroke,AWTKeyStroke>)):
	typed generically
	(registerSubclass(Class<?>)): typed generically
	(readResolve()): removed unnecessary cast
	(setFocusTraversalKeys(int, Set<? extends AWTKeyStroke>)):
	typed generically
	* java/awt/Container.java:
	(setFocusTraversalKeys(int, Set<? extends AWTKeyStroke>)):
	typed generically
	(getFocusTraversalKeys(int)): typed generically
	* java/awt/GridBagLayout.java:
	comptable, internalcomptable now generically typed
	(GridBagLayout()): generic typing
	(sortBySpan(Component,int,ArrayList<Component>,boolean)):
	typed generically
	* java/awt/KeyboardFocusManager.java:
	(getDefaultFocusTraversalKeys(int)): typed generically
	* java/awt/dnd/DragGestureRecognizer.java:
	typed events generically
	* java/awt/dnd/DropTargetContext.java:
	removed unnecessary import and added serialization UID
	* java/awt/im/InputContext.java:
	typed descriptors and recent generically
	* java/awt/im/spi/InputMethodContext.java:
	removed unnecessary import
	* java/io/DeleteFileHelper.java:
	filesToDelete typed generically
	(add(java.io.File)): typed generically
	(deleteFiles()): iteration changed to foreach
	* java/io/ObjectInputStream.java:
	typed objectLookupTable, validators, classLookupTable, oscs
	generically
	(resolveProxyClass(String[]): typed generically
	* java/io/ObjectOutputStream.java:
	removed unnecessary import
	typed OIDLookupTable generically
	* java/io/ObjectStreamClass.java:
	typed oscs and classLookupTable generically
	* java/io/ObjectStreamField.java:
	type typed generically
	(getType()): typed generically
	(checkFieldType()): typed generically
	* java/lang/Byte.java:
	(compareTo(Object)): removed as unneeded
	* java/lang/Character.java:
	(compareTo(Object)): removed as unneeded
	* java/lang/Class.java:
	Typing changed from K to T in accordance with docs
	and semantics (is a type, not a key)
	(getEnumConstants()): implemented using reflection
	(isEnum()): implemented using reflection
	* java/lang/Double.java:
	(compareTo(Object)): removed as unneeded
	* java/lang/Float.java:
	(compareTo(Object)): removed as unneeded
	* java/lang/InheritableThreadLocal.java:
	removed invalid static generic typing
	* java/lang/Integer.java:
	(compareTo(Object)): removed as unneeded
	* java/lang/Long.java:
	(compareTo(Object)): removed as unneeded
	* java/lang/Short.java:
	(compareTo(Object)): removed as unneeded
	* java/util/AbstractQueue.java:
	Typing changed from T to E in accordance with docs
	and semantics (is primarily a element)
	* java/util/Collection.java:
	(containsAll(Collection<?> c)): typed generically
	* java/util/EnumMap.java:
	(EnumMap(Class<K>)): removed invalid array creation
	* java/util/LinkedHashMap.java:
	Added generic typing
	(LinkedHashMap(Map<? extends K, ? extends V>)): added
	generics
	(get(Object)): returns V instead of Object
	(removeEldestEntry(Map.Entry<K,V>)): typed generically
	* java/util/PriorityQueue.java:
	removed invalid generic instanceof and generic array
	creation
	(iterator().remove()): added reference to outer class
	* java/util/WeakHashMap.java
	Added generic typing
	(WeakHashMap(Map<? extends K, ? extends V>)): added
	generics
	(get(Object)): returns V instead of Object
	(put(K,V)): generically typed
	(remove(Object)): returns V instead of Object
	(entrySet()): returns generic set
	(keySet()): returns generic set
	(putAll(Map<? extends K, ? extends V>)): generically typed
	(values()): returns generic collection
	
2005-01-09  Mark Wielaard  <mark@klomp.org>
  
	* java/security/AlgorithmParameterGenerator.java (getInstance):
	Mention provider when throwing NoSuchProviderException.
	* java/security/AlgorithmParameters.java (getInstance): Likewise.
	* java/security/KeyFactory.java (getInstance): Likewise.
	* java/security/KeyStore.java (getInstance): Likewise.
	* java/security/SecureRandom.java (getInstance): Likewise.
	* java/security/cert/CertificateFactory.java (getInstance): Likewise.
  
2005-01-09  Mark Wielaard  <mark@klomp.org>
  
	* native/jni/java-io/java_io_VMFile.c
	(Java_java_io_VMFile_create): Call JCL_free_cstring() when done with
	string.
	* native/jni/java-io/javaio.c
	(_javaio_open_read): Likewise.
	(_javaio_open_readwrite): Likewise.
	* native/jni/java-lang/java_lang_VMSystem.c
	(Java_java_lang_VMSystem_getenv): Likewise.
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c
	(Java_gnu_java_nio_channels_FileChannelImpl_open): Likewise.
  
2005-01-09  Mark Wielaard  <mark@klomp.org>
  
	* configure.ac: Update version to 0.13+cvs.
  
2005-01-09  Mark Wielaard  <mark@klomp.org>
  
	* acinclude.m4 (CLASSPATH_WITH_GJDOC): Renamed from
	CLASSPATH_ENABLE_GJDOC. Can now take argument to use as gjdoc program.
	Doesn't depend on xml tools.
	* configure.ac: Use CLASSPATH_WITH_GJDOC.
	* INSTALL: Mention --with-gjdoc option.
	* NEWS: Add --with-gjdoc addition.
	* doc/api/Makefile.am (EXTRA_DIST): Removed.
	(sourcepath): New variable.
	(htmllist): Removed.
	(core): Removed.
	(packages): Removed.
	(date): Removed.
	(clean): Also remove create_html file.
	(create_html): Rewritten.
	* doc/api/classpath-copyright.xml: Removed.
  
2005-01-09  Patrik Reali  <reali@acm.org>
  
	* doc/www.gnu.org/newsitems.txt doc/www.gnu.org/announce/20050107.wml 
	doc/www.gnu.org/downloads/downloads.wml: classpath 0.13 release news
  
2005-01-08  Ito Kazumitsu  <kaz@maczuka.gcd.org>
  
	* java/nio/charset/Charset.java (providers):
	New method to make an array of CharsetProviders defined in
	META-INF/services/java.nio.charset.spi.CharsetProvider.
	(charsetForName, availableCharsets): Use the
	new method providers().
  
2005-01-08  Michael Koch  <konqueror@gmx.de>
  
	* java/util/SimpleTimeZone.java (checkRule):
	Throw IllegalArgumentException on invalid month values.
  
2005-01-08  Michael Koch  <konqueror@gmx.de>
  
	* gnu/java/net/protocol/http/HTTPConnection.java
	(newRequest): Use "/" as path if no path given in URL.
  
2005-01-08  Michael Koch  <konqueror@gmx.de>
  
	* resource/Makefile.am: Install classpath.security file.
  
2005-01-08  Michael Koch  <konqueror@gmx.de>
  
	* resource/java/util/iso639_fr.properties,
	resource/java/util/iso3166.properties,
	resource/java/util/iso3166_de.properties,
	resource/java/util/iso639-a3.properties,
	resource/java/util/iso639_de.properties,
	resource/java/util/iso639.properties,
	resource/java/util/iso639-a2-old.properties,
	resource/java/util/iso3166-a3.properties,
	resource/java/util/iso639_ga.properties: Removed.
  
2005-01-07  Tom Tromey  <tromey@redhat.com>
  
	* java/lang/Package.java (getPackages): Use VMClassLoader when
	appropriate.
	(getPackage): Likewise.
  
2005-01-07  Michael Koch  <konqueror@gmx.de>
  
	* java/nio/Buffer.java (address): New field.
	* java/nio/DirectByteBufferImpl.java (address): Removed.
	* java/nio/MappedByteBufferImpl.java (address): Likewise..
	* java/nio/CharViewBufferImpl.java (CharViewBufferImpl): Explicitely
	initialize Buffer.address if needed.
	* java/nio/DoubleViewBufferImpl.java (DoubleViewBufferImpl): Likewise.
	* java/nio/FloatViewBufferImpl.java (FloatViewBufferImpl): Likewise.
	* java/nio/IntViewBufferImpl.java (IntViewBufferImpl): Likewise.
	* java/nio/LongViewBufferImpl.java (LongViewBufferImpl): Likewise.
	* java/nio/ShortViewBufferImpl.java (ShortViewBufferImpl): Likewise.
  
2005-01-07  Olga Rodimina  <rodimina@redhat.com>
  
	* javax/swing/JTable.java
	(columnAtPoint): New Method. Implemented.
	(rowAtPoint): Likewise.
	(countSelections): Fixed few small count errors.
	(getSelections): Likewise.
	(setSelectionMode): Set selection mode for column
	selection model in addition to row selection model.
	* javax/swing/plaf/basic/BasicTableUI.java:
	(getRowForPoint): Removed. Replaced by
	JTable.rowAtPoint().
	(getColForPoint): Removed. Replaced by
	JTable.columnAtPoint().
	(updateSelection): Updated to call JTable.columnAtPoint
	and JTable.rowAtPoint.
	* javax/swing/table/DefaultTableColumnModel.java:
	(getSelectedColumns): Implemented.
	(getSelectedColumnCount): Implemented.

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

	* javax/swing/table/DefaultTableModel.java
	(DefaultTableModel()): Added Javadocs.
	(DefaultTableModel(int, int)): Fixed implementation.
	(DefaultTableModel(Vector, int)): Throw IllegalArgumentException
	for negative rowCount.
	(DefaultTableModel(Object[], int)): Added Javadocs.
	(DefaultTableModel(Vector, Vector)): Likewise.
	(DefaultTableModel(Object[][], Object[])): Likewise.
	(getDataVector): Likewise.
	(setDataVector(Vector, Vector)): Likewise.
	(setDataVector(Object[][], Object[])): Likewise.
	(newDataAvailable): Likewise.
	(newRowsAdded): Likewise.
	(rowsRemoved): Likewise.
	(setColumnIdentifiers(Vector)): Allow for null argument.
	(setColumnIdentifiers(Object[])): Added Javadocs.
	(setNumRows): Likewise.
	(setRowCount): Adds new rows if necessary, and sends more specific
	TableModelEvent.
	(setColumnCount): Allow for null columnIdentifiers.
	(addColumn(Object)): Added Javadocs.
	(addColumn(Object, Vector)): Handle null columnData.
	(addColumn(Object, Object[])): Handle columnData with more or less
	entries than rows in the table.
	(addRow(Vector)): Fire appropriate event.
	(addRow(Object[])): Added Javadocs.
	(insertRow(int, Vector)): Fire appropriate event.
	(insertRow(int, Object[])): Added Javadocs.
	(moveRow): Reimplemented.
	(removeRow(int)): Fire appropriate event.
	(getColumnCount): Allow for null columnIdentifiers.
	(getColumnName): Now returns empty string when column index is too
	large.
	(isCellEditable): Added Javadocs.
	(getValueAt): Likewise.
	(setValueAt): Fire more specific event.
	(convertToVector): Added Javadocs.
	* javax/swing/table/TableModel.java
	Added Javadocs.

2005-01-07  Archie Cobbs  <archie@dellroad.org>

	* NEWS: Document changes.
	* java/lang/Class.java (newInstance(), getClassLoader(),
	forName(String), forName(String, boolean, ClassLoader)):
	Use new VMStackWalker methods.
	* java/lang/ClassLoader.java (getParent(), getSystemClassLoader()):
	Likewise.
	* java/lang/Package.java (getPackages()): Likewise.
	* java/lang/SecurityManager.java (getClassContext()): Likewise.
	* java/util/ResourceBundle.java (getBundle()): Likewise.
	* java/lang/Runtime.java (load(), loadLibrary()): Load the native
	library using the calling class' class loader.
	* java/lang/System.java (load(), loadLibrary()): Likewise.
	(currentClassLoader()): implement via currentLoadedClass().
	* vm/reference/gnu/classpath/VMStackWalker.java: New class.
	* vm/reference/java/lang/VMRuntime.java (nativeLoad()):
	Add a ClassLoader parameter.
	* vm/reference/java/lang/VMSecurityManager.java: Removed.

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

	* java/util/SimpleTimeZone.java:
	(getOffset): offset end date with daylight savings

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

	* java/io/PrintStream.java:
	(PrintStream(String, String)): added UnsupportedEncodingException
	(PrintStream(File, String)): added UnsupportedEncodingException
	* java/lang/Deprecated.java:
	Changed import to java.lang.annotation.RetentionPolicy.RUNTIME
	* java/lang/InheritableThreadLocal.java:
	Corrected typo `Locals' to `Local'
	* java/lang/String.java:
	(compareTo(Object)): removed
	* java/lang/annotation/AnnotationTypeMismatchException.java:
	Added import of java.lang.reflect.Method
	* java/lang/annotation/Documentation.java:
	Added import of java.lang.annotation.RetentionPolicy.RUNTIME
	* java/lang/annotation/Inherited.java:
	Added import of java.lang.annotation.RetentionPolicy.RUNTIME
	Added import of java.lang.annotation.ElementType.ANNOTATION_TYPE
	* java/lang/annotation/Retention.java: ditto
	* java/lang/annotation/Target.java: ditto
	* java/lang/reflect/AnnotatedElement.java:
	Added import of java.lang.annotation.Annotation
	* java/util/AbstractCollection.java:
	(toArray(T[])): converted returned type to T[] from Object[]
	* java/util/EnumMap.java:
	Added import of java.io.Serializable
	* java/util/EnumSet.java: ditto
	* java/util/TreeSet.java:
	(TreeSet(SortedMap<T,String> backingMap)): type of input parameter
	corrected.
	* vm/reference/java/lang/VMClass.java:
	(cast(Object, Class<K>)): typed method parameterically
	
2005-01-06  Tom Tromey  <tromey@redhat.com>

	* java/lang/ClassLoader.java (findClass): Fixed documentation.

2005-01-06  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Update version to 0.13.
	* NEWS: Add news about 0.13.
	* INSTALL: Mention new dependencies and configure flags.
  
2005-01-06  Mark Wielaard  <mark@klomp.org>
  
	* configure.ac: Add explicit X and libXtst tests when gtk+ peers are
	enabled.
  
2005-01-06  Michael Koch  <konqueror@gmx.de>
  
	* java/util/TimeZone.java
	(setID): Throw NullPointerException if needed.
  
2005-01-05  Mark Wielaard  <mark@klomp.org>
  
	* lib/gen-classlist.sh.in: Don't split locales in classes.locale1
	and classes.locale2.
	* lib/Makefile.am (JAVAC): Compile only classes.locale.
	(CLEANFILES): Remove classes.locale1 and classes.locale2,
	add classes.locale.
  
2005-01-05  Tom Tromey  <tromey@redhat.com>
  
	* java/util/zip/ZipEntry.java (setCompressedSize): Allow any
	argument.
	(compressedSize): Now 'long'.  Default to -1.
	(getCompressedSize): Rewrote.
  
2005-01-05  Ranjit Mathew  <rmathew@hotmail.com>
  
	* java/util/IdentityHashMap.java (put): Replace mistaken use
	of "<<" by "*".
  
2005-01-05  Michael Koch  <konqueror@gmx.de>
  
	* gnu/java/locale/LocaleInformation_mn_MN.java:
  	New file.
	* gnu/java/locale/LocaleInformation_aa.java,
	gnu/java/locale/LocaleInformation_aa_DJ.java,
	gnu/java/locale/LocaleInformation_aa_ER.java,
	gnu/java/locale/LocaleInformation_aa_ER_SAAHO.java,
	gnu/java/locale/LocaleInformation_aa_ET.java,
	gnu/java/locale/LocaleInformation_af.java,
	gnu/java/locale/LocaleInformation_af_ZA.java,
	gnu/java/locale/LocaleInformation_am.java,
	gnu/java/locale/LocaleInformation_am_ET.java,
	gnu/java/locale/LocaleInformation_ar.java,
	gnu/java/locale/LocaleInformation_ar_DZ.java,
	gnu/java/locale/LocaleInformation_ar_IN.java,
	gnu/java/locale/LocaleInformation_ar_IQ.java,
	gnu/java/locale/LocaleInformation_ar_JO.java,
	gnu/java/locale/LocaleInformation_ar_KW.java,
	gnu/java/locale/LocaleInformation_ar_LB.java,
	gnu/java/locale/LocaleInformation_ar_LY.java,
	gnu/java/locale/LocaleInformation_ar_MA.java,
	gnu/java/locale/LocaleInformation_ar_QA.java,
	gnu/java/locale/LocaleInformation_ar_SA.java,
	gnu/java/locale/LocaleInformation_ar_SY.java,
	gnu/java/locale/LocaleInformation_ar_TN.java,
	gnu/java/locale/LocaleInformation_ar_YE.java,
	gnu/java/locale/LocaleInformation_as.java,
	gnu/java/locale/LocaleInformation_as_IN.java,
	gnu/java/locale/LocaleInformation_az.java,
	gnu/java/locale/LocaleInformation_be.java,
	gnu/java/locale/LocaleInformation_be_BY.java,
	gnu/java/locale/LocaleInformation_bg.java,
	gnu/java/locale/LocaleInformation_bg_BG.java,
	gnu/java/locale/LocaleInformation_bn.java,
	gnu/java/locale/LocaleInformation_bn_IN.java,
	gnu/java/locale/LocaleInformation_ca.java,
	gnu/java/locale/LocaleInformation_ca_ES.java,
	gnu/java/locale/LocaleInformation_cs.java,
	gnu/java/locale/LocaleInformation_cs_CZ.java,
	gnu/java/locale/LocaleInformation_cy.java,
	gnu/java/locale/LocaleInformation_cy_GB.java,
	gnu/java/locale/LocaleInformation_da.java,
	gnu/java/locale/LocaleInformation_da_DK.java,
	gnu/java/locale/LocaleInformation_de.java,
	gnu/java/locale/LocaleInformation_de_AT.java,
	gnu/java/locale/LocaleInformation_de_BE.java,
	gnu/java/locale/LocaleInformation_de_CH.java,
	gnu/java/locale/LocaleInformation_de_DE.java,
	gnu/java/locale/LocaleInformation_de_LI.java,
	gnu/java/locale/LocaleInformation_de_LU.java,
	gnu/java/locale/LocaleInformation_dv.java,
	gnu/java/locale/LocaleInformation_dv_MV.java,
	gnu/java/locale/LocaleInformation_dz.java,
	gnu/java/locale/LocaleInformation_dz_BT.java,
	gnu/java/locale/LocaleInformation_el.java,
	gnu/java/locale/LocaleInformation_el_GR.java,
	gnu/java/locale/LocaleInformation_en.java,
	gnu/java/locale/LocaleInformation_en_AS.java,
	gnu/java/locale/LocaleInformation_en_AU.java,
	gnu/java/locale/LocaleInformation_en_BE.java,
	gnu/java/locale/LocaleInformation_en_BW.java,
	gnu/java/locale/LocaleInformation_en_BZ.java,
	gnu/java/locale/LocaleInformation_en_CA.java,
	gnu/java/locale/LocaleInformation_en_GB.java,
	gnu/java/locale/LocaleInformation_en_GU.java,
	gnu/java/locale/LocaleInformation_en_HK.java,
	gnu/java/locale/LocaleInformation_en_IE.java,
	gnu/java/locale/LocaleInformation_en_IN.java,
	gnu/java/locale/LocaleInformation_en_MH.java,
	gnu/java/locale/LocaleInformation_en_MP.java,
	gnu/java/locale/LocaleInformation_en_MT.java,
	gnu/java/locale/LocaleInformation_en_NZ.java,
	gnu/java/locale/LocaleInformation_en_PH.java,
	gnu/java/locale/LocaleInformation_en_PK.java,
	gnu/java/locale/LocaleInformation_en_SG.java,
	gnu/java/locale/LocaleInformation_en_UM.java,
	gnu/java/locale/LocaleInformation_en_US.java,
	gnu/java/locale/LocaleInformation_en_US_POSIX.java,
	gnu/java/locale/LocaleInformation_en_VI.java,
	gnu/java/locale/LocaleInformation_en_ZA.java,
	gnu/java/locale/LocaleInformation_en_ZW.java,
	gnu/java/locale/LocaleInformation_eo.java,
	gnu/java/locale/LocaleInformation_es.java,
	gnu/java/locale/LocaleInformation_es_AR.java,
	gnu/java/locale/LocaleInformation_es_BO.java,
	gnu/java/locale/LocaleInformation_es_CL.java,
	gnu/java/locale/LocaleInformation_es_CO.java,
	gnu/java/locale/LocaleInformation_es_CR.java,
	gnu/java/locale/LocaleInformation_es_DO.java,
	gnu/java/locale/LocaleInformation_es_EC.java,
	gnu/java/locale/LocaleInformation_es_ES.java,
	gnu/java/locale/LocaleInformation_es_GT.java,
	gnu/java/locale/LocaleInformation_es_HN.java,
	gnu/java/locale/LocaleInformation_es_MX.java,
	gnu/java/locale/LocaleInformation_es_NI.java,
	gnu/java/locale/LocaleInformation_es_PA.java,
	gnu/java/locale/LocaleInformation_es_PE.java,
	gnu/java/locale/LocaleInformation_es_PR.java,
	gnu/java/locale/LocaleInformation_es_PY.java,
	gnu/java/locale/LocaleInformation_es_SV.java,
	gnu/java/locale/LocaleInformation_es_US.java,
	gnu/java/locale/LocaleInformation_es_UY.java,
	gnu/java/locale/LocaleInformation_es_VE.java,
	gnu/java/locale/LocaleInformation_et.java,
	gnu/java/locale/LocaleInformation_et_EE.java,
	gnu/java/locale/LocaleInformation_eu.java,
	gnu/java/locale/LocaleInformation_eu_ES.java,
	gnu/java/locale/LocaleInformation_fa.java,
	gnu/java/locale/LocaleInformation_fa_AF.java,
	gnu/java/locale/LocaleInformation_fa_IR.java,
	gnu/java/locale/LocaleInformation_fi.java,
	gnu/java/locale/LocaleInformation_fi_FI.java,
	gnu/java/locale/LocaleInformation_fo.java,
	gnu/java/locale/LocaleInformation_fo_FO.java,
	gnu/java/locale/LocaleInformation_fr.java,
	gnu/java/locale/LocaleInformation_fr_BE.java,
	gnu/java/locale/LocaleInformation_fr_CA.java,
	gnu/java/locale/LocaleInformation_fr_CH.java,
	gnu/java/locale/LocaleInformation_fr_LU.java,
	gnu/java/locale/LocaleInformation_ga.java,
	gnu/java/locale/LocaleInformation_ga_IE.java,
	gnu/java/locale/LocaleInformation_gl.java,
	gnu/java/locale/LocaleInformation_gl_ES.java,
	gnu/java/locale/LocaleInformation_gu.java,
	gnu/java/locale/LocaleInformation_gu_IN.java,
	gnu/java/locale/LocaleInformation_gv.java,
	gnu/java/locale/LocaleInformation_gv_GB.java,
	gnu/java/locale/LocaleInformation_he.java,
	gnu/java/locale/LocaleInformation_he_IL.java,
	gnu/java/locale/LocaleInformation_hi.java,
	gnu/java/locale/LocaleInformation_hi_IN.java,
	gnu/java/locale/LocaleInformation_hr.java,
	gnu/java/locale/LocaleInformation_hu.java,
	gnu/java/locale/LocaleInformation_hu_HU.java,
	gnu/java/locale/LocaleInformation_hy.java,
	gnu/java/locale/LocaleInformation_hy_AM.java,
	gnu/java/locale/LocaleInformation_hy_AM_REVISED.java,
	gnu/java/locale/LocaleInformation_id.java,
	gnu/java/locale/LocaleInformation_id_ID.java,
	gnu/java/locale/LocaleInformation_is.java,
	gnu/java/locale/LocaleInformation_is_IS.java,
	gnu/java/locale/LocaleInformation_it.java,
	gnu/java/locale/LocaleInformation_it_CH.java,
	gnu/java/locale/LocaleInformation_it_IT.java,
	gnu/java/locale/LocaleInformation_iu.java,
	gnu/java/locale/LocaleInformation_ja.java,
	gnu/java/locale/LocaleInformation_ja_JP.java,
	gnu/java/locale/LocaleInformation_ka.java,
	gnu/java/locale/LocaleInformation_kk.java,
	gnu/java/locale/LocaleInformation_kk_KZ.java,
	gnu/java/locale/LocaleInformation_kl.java,
	gnu/java/locale/LocaleInformation_kl_GL.java,
	gnu/java/locale/LocaleInformation_km.java,
	gnu/java/locale/LocaleInformation_km_KH.java,
	gnu/java/locale/LocaleInformation_kn.java,
	gnu/java/locale/LocaleInformation_kn_IN.java,
	gnu/java/locale/LocaleInformation_ko.java,
	gnu/java/locale/LocaleInformation_ko_KR.java,
	gnu/java/locale/LocaleInformation_kw.java,
	gnu/java/locale/LocaleInformation_kw_GB.java,
	gnu/java/locale/LocaleInformation_ky.java,
	gnu/java/locale/LocaleInformation_lo.java,
	gnu/java/locale/LocaleInformation_lo_LA.java,
	gnu/java/locale/LocaleInformation_lt.java,
	gnu/java/locale/LocaleInformation_lt_LT.java,
	gnu/java/locale/LocaleInformation_lv.java,
	gnu/java/locale/LocaleInformation_lv_LV.java,
	gnu/java/locale/LocaleInformation_mk.java,
	gnu/java/locale/LocaleInformation_ml.java,
	gnu/java/locale/LocaleInformation_ml_IN.java,
	gnu/java/locale/LocaleInformation_mn.java,
	gnu/java/locale/LocaleInformation_mr.java,
	gnu/java/locale/LocaleInformation_mr_IN.java,
	gnu/java/locale/LocaleInformation_ms.java,
	gnu/java/locale/LocaleInformation_ms_BN.java,
	gnu/java/locale/LocaleInformation_ms_MY.java,
	gnu/java/locale/LocaleInformation_mt.java,
	gnu/java/locale/LocaleInformation_mt_MT.java,
	gnu/java/locale/LocaleInformation_nb.java,
	gnu/java/locale/LocaleInformation_nb_NO.java,
	gnu/java/locale/LocaleInformation_nl.java,
	gnu/java/locale/LocaleInformation_nl_BE.java,
	gnu/java/locale/LocaleInformation_nl_NL.java,
	gnu/java/locale/LocaleInformation_nn.java,
	gnu/java/locale/LocaleInformation_nn_NO.java,
	gnu/java/locale/LocaleInformation_om.java,
	gnu/java/locale/LocaleInformation_om_ET.java,
	gnu/java/locale/LocaleInformation_om_KE.java,
	gnu/java/locale/LocaleInformation_or.java,
	gnu/java/locale/LocaleInformation_or_IN.java,
	gnu/java/locale/LocaleInformation_pa.java,
	gnu/java/locale/LocaleInformation_pa_IN.java,
	gnu/java/locale/LocaleInformation_pl.java,
	gnu/java/locale/LocaleInformation_pl_PL.java,
	gnu/java/locale/LocaleInformation_ps.java,
	gnu/java/locale/LocaleInformation_ps_AF.java,
	gnu/java/locale/LocaleInformation_pt.java,
	gnu/java/locale/LocaleInformation_pt_BR.java,
	gnu/java/locale/LocaleInformation_pt_PT.java,
	gnu/java/locale/LocaleInformation_ro.java,
	gnu/java/locale/LocaleInformation_ro_RO.java,
	gnu/java/locale/LocaleInformation_ru.java,
	gnu/java/locale/LocaleInformation_ru_RU.java,
	gnu/java/locale/LocaleInformation_ru_UA.java,
	gnu/java/locale/LocaleInformation_sa.java,
	gnu/java/locale/LocaleInformation_sa_IN.java,
	gnu/java/locale/LocaleInformation_sk.java,
	gnu/java/locale/LocaleInformation_sk_SK.java,
	gnu/java/locale/LocaleInformation_sl.java,
	gnu/java/locale/LocaleInformation_so.java,
	gnu/java/locale/LocaleInformation_so_DJ.java,
	gnu/java/locale/LocaleInformation_so_ET.java,
	gnu/java/locale/LocaleInformation_so_KE.java,
	gnu/java/locale/LocaleInformation_so_SO.java,
	gnu/java/locale/LocaleInformation_sq.java,
	gnu/java/locale/LocaleInformation_sq_AL.java,
	gnu/java/locale/LocaleInformation_sr.java,
	gnu/java/locale/LocaleInformation_sr_Latn.java,
	gnu/java/locale/LocaleInformation_sv.java,
	gnu/java/locale/LocaleInformation_sv_FI.java,
	gnu/java/locale/LocaleInformation_sv_SE.java,
	gnu/java/locale/LocaleInformation_sw.java,
	gnu/java/locale/LocaleInformation_sw_KE.java,
	gnu/java/locale/LocaleInformation_sw_TZ.java,
	gnu/java/locale/LocaleInformation_ta.java,
	gnu/java/locale/LocaleInformation_ta_IN.java,
	gnu/java/locale/LocaleInformation_te.java,
	gnu/java/locale/LocaleInformation_te_IN.java,
	gnu/java/locale/LocaleInformation_th.java,
	gnu/java/locale/LocaleInformation_th_TH.java,
	gnu/java/locale/LocaleInformation_ti.java,
	gnu/java/locale/LocaleInformation_ti_ER.java,
	gnu/java/locale/LocaleInformation_ti_ET.java,
	gnu/java/locale/LocaleInformation_tr.java,
	gnu/java/locale/LocaleInformation_tr_TR.java,
	gnu/java/locale/LocaleInformation_tt.java,
	gnu/java/locale/LocaleInformation_tt_RU.java,
	gnu/java/locale/LocaleInformation_uk.java,
	gnu/java/locale/LocaleInformation_uk_UA.java,
	gnu/java/locale/LocaleInformation_ur.java,
	gnu/java/locale/LocaleInformation_uz.java,
	gnu/java/locale/LocaleInformation_uz_AF.java,
	gnu/java/locale/LocaleInformation_vi.java,
	gnu/java/locale/LocaleInformation_zh.java,
	gnu/java/locale/LocaleInformation_zh_CN_Hans.java,
	gnu/java/locale/LocaleInformation_zh_HK_Hant.java,
	gnu/java/locale/LocaleInformation_zh_Hant.java,
	gnu/java/locale/LocaleInformation_zh_MO_Hant.java,
	gnu/java/locale/LocaleInformation_zh_SG_Hans.java,
	gnu/java/locale/LocaleInformation_zh_TW_Hant.java:
	Regenerated.
  
2005-01-04  Tom Tromey  <tromey@redhat.com>
  
	* vm/reference/java/lang/VMProcess.java (VMProcess): Constructor
	now package-private.
	(processThread, workList, reapedPid, reapedExitValue, state, cmd,
	env, dir, exception, pid, stdin, stdout, stderr, exitValue): Now
	package-private.
	(nativeSpawn, nativeReap): Likewise.
	* vm/reference/java/lang/VMThread.java (currentThread): Reordered
	modifiers.
	* vm/reference/java/security/VMAccessController.java
	(DEFAULT_CONTEXT): Reordered modifiers.
  
	* gnu/java/nio/SelectorImpl.java: Removed unused import.
	* gnu/java/security/der/DERWriter.java: Removed unused import.
	* gnu/java/net/protocol/http/Connection.java: Removed unused
	import.
	* gnu/java/nio/PipeImpl.java (read): Reordered modifiers.  Fixed
	indentation.
  	(write): Likewise.
	* gnu/java/rmi/server/ConnectionRunnerPool.java
	(getConnectionRunner): Reordered modifiers.
	* gnu/java/text/FormatCharacterIterator.java (debug): Removed
	useless `final'.
	(dumpTable): Likewise.
	* gnu/java/net/PlainDatagramSocketImpl.java (bind): Reordered
  	modifiers.
	(create, setOption, getOption, close, join, leave): Likewise.
	* gnu/java/net/PlainSocketImpl.java (create): Reordered
	modifiers.
	(bind, listen, accept): Likewise.
  
2005-01-04  Tom Tromey  <tromey@redhat.com>
  
	* Makefile.am (EXTRA_DIST): Added ChangeLog-2004.
  
2005-01-04  Robert Schuster <thebohemian@gmx.net>
  
       * gnu/java/beans/DummyAppletStub.java: Add dummy implementation
       of AppletStub for java.beans.Beans.instantiate.
       * gnu/java/beans/DummyAppletContext.java: Add dummy implementation
       of AppletContext.
       * java/beans/Beans: Added 1.4 functionality, fixed user documentation
       to be conformant with Javadoc guidelines.
       (instantiate): Added two more overloaded variants, reworked user
       documentation, fixed exception behavior, fixed behavior when
       deserializing null.
  
2005-01-03  Michael Koch  <konqueror@gmx.de>
  
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(getControlTextFont): New method.
	(getMenuTextFont): Likewise.
	(getSubTextFont): Likewise.
	(getSystemTextFont): Likewise.
	(getUserTextFont): Likewise.
	(getWindowTitleFont): Likewise.
  
2005-01-03  Michael Koch  <konqueror@gmx.de>
  
	* javax/swing/text/AbstractDocument.java
	(documentFilter): New field.
	(getDocumentFilter): New method.
	(setDocumentFilter): Likewise.
  	(dump): Likewise.
  
2005-01-03  Michael Koch  <konqueror@gmx.de>
  
  	* javax/swing/JTree.java
	(DynamicUtilTreeNode.hasChildren): Clarify javadoc.
  
2005-01-03  Thomas Fitzsimmons  <fitzsim@redhat.com>
  
	* gnu/java/awt/ClasspathToolkit.java (createRobot): New method.
	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
	(getDefaultScreenDevice): Implement.
	* gnu/java/awt/peer/gtk/GdkRobotPeer.java: New file.
	* gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (createRobot): New method.
	* java/awt/Robot.java: Implement.
	* java/awt/peer/RobotPeer.java: Rename parameters.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c: New file.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(awt_keycode_to_keysym): Make non-static.
	* native/jni/gtk-peer/gtkpeer.h (AWT_BUTTON1_MASK, AWT_BUTTON2_MASK,
	AWT_BUTTON3_MASK): Declare constants.
	(awt_keycode_to_keysym): Declare.

2005-01-03  Michael Koch  <konqueror@gmx.de>

	* configure.ac: Check for X11 stuff when GTK peer is enabled.
	* include/Makefile.am: Generate gnu_java_awt_peer_gtk_GdkRobotPeer.h.
	* include/gnu_java_awt_peer_gtk_GdkRobotPeer.h: New files.
	* native/jni/gtk-peer/Makefile.am: Link libXtst.
	Added gnu_java_awt_peer_gtk_GdkRobotPeer.c to the build.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c:
	Added "__attribute__((__unused__))" all over.

2005-01-03  Michael Koch  <konqueror@gmx.de>

	* java/net/InetAddress.java: Made all hexadecimal numbers lowercase.
	Fixed typos in javadocs.
	(isSiteLocalAddress): Fixed handling of byte values.
	(isMCLinkLocal): Likewise.
	* java/net/Inet4Address.java
	(isMulticastAddress): Call super method.
	(isLoopbackAddress): Likewise.
	(isAnyLocalAddress): Likewise.
	(isLinkLocalAddress): Likewise.
	(isSiteLocalAddress): Likewise.
	(isMCGlobal): Likewise.
	(isMCNodeLocal): Likewise.
	(isMCLinkLocal): Likewise.
	(isMCSiteLocal): Likewise.
	(isMCOrgLocal): Likewise.
	(getHostAddress): Likewise.

2005-01-02  Mark Wielaard  <mark@klomp.org>

	* gnu/java/beans/decoder/DummyHandler.java: Add return statements for
	failing methods.
	* gnu/java/beans/decoder/DummyContext.java: Likewise.

2005-01-02  Robert Schuster  <theBohemian@gmx.net>

	* gnu/java/beans/decoder/AbstractContext.java,
	gnu/java/beans/decoder/AbstractCreatableContext.java,
	gnu/java/beans/decoder/AbstractElementHandler.java,
	gnu/java/beans/decoder/AbstractObjectContext.java,
	gnu/java/beans/decoder/ArrayContext.java,
	gnu/java/beans/decoder/ArrayHandler.java,
	gnu/java/beans/decoder/BooleanHandler.java,
	gnu/java/beans/decoder/ByteHandler.java,
	gnu/java/beans/decoder/CharHandler.java,
	gnu/java/beans/decoder/ClassHandler.java,
	gnu/java/beans/decoder/ConstructorContext.java,
	gnu/java/beans/decoder/Context.java,
	gnu/java/beans/decoder/DecoderContext.java,
	gnu/java/beans/decoder/DefaultExceptionListener.java,
	gnu/java/beans/decoder/DoubleHandler.java,
	gnu/java/beans/decoder/DummyContext.java,
	gnu/java/beans/decoder/DummyHandler.java,
	gnu/java/beans/decoder/ElementHandler.java,
	gnu/java/beans/decoder/FloatHandler.java,
	gnu/java/beans/decoder/GrowableArrayContext.java,
	gnu/java/beans/decoder/IndexContext.java,
	gnu/java/beans/decoder/IntHandler.java,
	gnu/java/beans/decoder/JavaHandler.java,
	gnu/java/beans/decoder/LongHandler.java,
	gnu/java/beans/decoder/MethodContext.java,
	gnu/java/beans/decoder/MethodFinder.java,
	gnu/java/beans/decoder/NullHandler.java,
	gnu/java/beans/decoder/ObjectContext.java,
	gnu/java/beans/decoder/ObjectHandler.java,
	gnu/java/beans/decoder/PersistenceParser.java,
	gnu/java/beans/decoder/PropertyContext.java,
	gnu/java/beans/decoder/ShortHandler.java,
	gnu/java/beans/decoder/SimpleHandler.java,
	gnu/java/beans/decoder/StaticMethodContext.java,
	gnu/java/beans/decoder/StringHandler.java,
	gnu/java/beans/decoder/VoidHandler.java: New class
	implementing java.beans.XMLDecoder decoding functionality.
	* java/beans/XMLDecoder.java: New class.

2005-01-02  Mark Wielaard  <mark@klomp.org>

	* acinclude.m4 (REGEN_WITH_JAY): New macro.
	* configure.ac: Call REGEN_WITH_JAY.
	* lib/Makefile.am (gen-xpath-parser): New rule, depends on
	REGEN_PARSER being defined.
	(genclasses): Depend on gen-xpath-parser.

2005-01-02  Archie Cobbs  <archie@dellroad.org>

	* vm/reference/java/lang/VMThread.java (sleep()): revert behavior
	of sleep(0,0) to previous, where we check for InterruptedException.

2005-01-02  Mark Wielaard  <mark@klomp.org>

	* ChangeLog.gnujaxp.1: New (historic) ChangeLog file.
	* ChangeLog.gnujaxp.2: Likewise.
	* ChangeLog.libxmlj: Likewise.
	* Makefile.am (EXTRA_DIST): List new ChangeLog files.
	* INSTALL: Add libxml2 and libxslt requirements for --enable-xmlj.
	* doc/README.jaxp: New file.
	* doc/Makefile.am (EXTRA_DIST): List new README.jaxp
	* native/jni/xmlj/BUGS: New file.
	* native/jni/xmlj/Makefile.am (EXTRA_DIST): List new BUGS file.

2005-01-02  Mark Wielaard  <mark@klomp.org>

	* lib/gen-classlist.sh.in: Use test -ef and echo top_srcdir and
	top_builddir locations.

2005-01-02  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Fix pkg checks for libxml-2.0 and libxslt.
	* native/jni/xmlj/Makefile.am (AM_CFLAGS): Add STRICT_WARNING_CFLAGS
	but disable ERROR_CFLAGS.
	* native/jni/xmlj/xmlj_dom.c: Add __attribute__ ((__unused__)) where
	obvious.
	* native/jni/xmlj/xmlj_sax.c: Likewise.
	* native/jni/xmlj/xmlj_transform.c: Likewise.
	* native/jni/xmlj/xmlj_xpath.c: Likewise.
  
2005-01-02  Michael Koch  <konqueror@gmx.de>
  
  	* javax/swing/text/AbstractDocument.java
	(AbstractElement.getLength): Fixed off-by-one error.
	(AbstractElement.children): Made abstract.
	(AbstractElement.getAllowsChildren): Likewise.
	(AbstractElement.getElement): Likewise.
	(AbstractElement.dumpElement): New private method.
	(AbstractElement.dump): New method.
	(BranchElememt.getName): Fixed implementation.
	(BranchElememt.toString): Likewise.
	(BranchElememt.getElement): Fixed arguments.
	(LeafElement.getName): Fixed implementation.
	(LeafElement.toString): Likewise.
	* javax/swing/text/GapContent.java
	(GapContent): Put default content into buffer.
  	* javax/swing/text/PlainDocument.java
	(reindex): Use empty attribute sets instead of null.
	(createDefaultRoot): Reimplemented.
	(insertUpdate): Call super method.
	(removeUpdate): Likewise.
	(getParagraphElement): Implemented.
  
2005-01-02  Tom Tromey  <tromey@redhat.com>

	* java/io/PrintStream.java: Implement Appendable.
	(PrintStream(String)): New constructor.
	(PrintStream(String,String)): Likewise.
	(PrintStream(File)): New constructor.
	(PrintStream(File,String)): Likewise.
	(append): New methods.

	* java/lang/System.java (getenv): Added @since.

	* java/lang/System.java (getenv(String)): Rewrote.
	(getenv): New method.
	* vm/reference/java/lang/VMSystem.java (getenv): New methods.

2005-01-01  Michael Koch  <konqueror@gmx.de>
  
	* javax/swing/DefaultBoundedRangeModel.java
	(fireValueChanged): Fixed off-by-one error.
