Imported GNU Classpath 0.20
authorMark Wielaard <mark@gcc.gnu.org>
Tue, 17 Jan 2006 18:09:40 +0000 (18:09 +0000)
committerMark Wielaard <mark@gcc.gnu.org>
Tue, 17 Jan 2006 18:09:40 +0000 (18:09 +0000)
       Imported GNU Classpath 0.20
       * Makefile.am (AM_CPPFLAGS): Add classpath/include.
       * java/nio/charset/spi/CharsetProvider.java: New override file.
       * java/security/Security.java: Likewise.
       * sources.am: Regenerated.
       * Makefile.in: Likewise.

From-SVN: r109831

447 files changed:
libjava/ChangeLog
libjava/Makefile.am
libjava/Makefile.in
libjava/classpath/.externalToolBuilders/Autogen.launch
libjava/classpath/.externalToolBuilders/ClasspathHeaders.launch [new file with mode: 0644]
libjava/classpath/.externalToolBuilders/ClasspathJar.launch [new file with mode: 0644]
libjava/classpath/.externalToolBuilders/CompileNative.launch
libjava/classpath/.externalToolBuilders/Configure.launch
libjava/classpath/.project
libjava/classpath/AUTHORS
libjava/classpath/ChangeLog
libjava/classpath/ChangeLog-2005 [new file with mode: 0644]
libjava/classpath/ChangeLog.gcj
libjava/classpath/Makefile.am
libjava/classpath/Makefile.in
libjava/classpath/NEWS
libjava/classpath/aclocal.m4
libjava/classpath/config.guess
libjava/classpath/config.sub
libjava/classpath/configure
libjava/classpath/configure.ac
libjava/classpath/doc/Makefile.in
libjava/classpath/doc/README.jaxp
libjava/classpath/doc/api/Makefile.in
libjava/classpath/doc/hacking.texinfo
libjava/classpath/doc/vmintegration.texinfo
libjava/classpath/doc/www.gnu.org/events/events.wml
libjava/classpath/doc/www.gnu.org/events/fosdem06.wml [new file with mode: 0644]
libjava/classpath/doc/www.gnu.org/newsitems.txt
libjava/classpath/examples/Makefile.am
libjava/classpath/examples/Makefile.in
libjava/classpath/external/Makefile.in
libjava/classpath/external/sax/Makefile.in
libjava/classpath/external/w3c_dom/Makefile.in
libjava/classpath/gnu/CORBA/Poa/AOM.java
libjava/classpath/gnu/CORBA/Poa/gnuPOA.java
libjava/classpath/gnu/classpath/jdwp/Jdwp.java
libjava/classpath/gnu/classpath/jdwp/event/EventManager.java
libjava/classpath/gnu/java/awt/image/ImageDecoder.java
libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphics.java
libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphics2D.java
libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
libjava/classpath/gnu/java/beans/encoder/ArrayPersistenceDelegate.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/ClassPersistenceDelegate.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/CollectionPersistenceDelegate.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/Context.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/GenericScannerState.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/IgnoringScannerState.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/MapPersistenceDelegate.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/ObjectId.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/PrimitivePersistenceDelegate.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/ReportingScannerState.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/Root.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/ScanEngine.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/ScannerState.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/StAXWriter.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/Writer.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/ArrayInstantiation.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/Array_Get.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/Array_Set.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/ClassResolution.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/Element.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/List_Get.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/List_Set.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/MethodInvocation.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/NullObject.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/ObjectInstantiation.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/ObjectReference.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/PrimitiveInstantiation.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/StaticFieldAccess.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/StaticMethodInvocation.java [new file with mode: 0644]
libjava/classpath/gnu/java/beans/encoder/elements/StringReference.java [new file with mode: 0644]
libjava/classpath/gnu/java/net/CRLFInputStream.java
libjava/classpath/gnu/java/net/PlainDatagramSocketImpl.java
libjava/classpath/gnu/java/net/PlainSocketImpl.java
libjava/classpath/gnu/java/nio/channels/FileChannelImpl.java
libjava/classpath/gnu/java/nio/charset/Provider.java
libjava/classpath/gnu/java/nio/charset/iconv/IconvProvider.java
libjava/classpath/gnu/java/rmi/server/UnicastRef.java
libjava/classpath/gnu/java/security/Engine.java
libjava/classpath/gnu/java/util/WeakIdentityHashMap.java [new file with mode: 0644]
libjava/classpath/gnu/regexp/RE.java
libjava/classpath/gnu/regexp/RETokenRepeated.java
libjava/classpath/gnu/xml/aelfred2/ContentHandler2.java [deleted file]
libjava/classpath/gnu/xml/aelfred2/SAXDriver.java
libjava/classpath/gnu/xml/aelfred2/XmlParser.java
libjava/classpath/gnu/xml/dom/Consumer.java
libjava/classpath/gnu/xml/dom/DomDocument.java
libjava/classpath/gnu/xml/dom/DomElement.java
libjava/classpath/gnu/xml/dom/DomNamedNodeMap.java
libjava/classpath/gnu/xml/dom/DomNode.java
libjava/classpath/gnu/xml/dom/ls/DomLSParser.java
libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java
libjava/classpath/gnu/xml/pipeline/DomConsumer.java
libjava/classpath/gnu/xml/pipeline/EventFilter.java
libjava/classpath/gnu/xml/stream/BufferedReader.java [new file with mode: 0644]
libjava/classpath/gnu/xml/stream/CRLFReader.java [new file with mode: 0644]
libjava/classpath/gnu/xml/stream/SAXParser.java [new file with mode: 0644]
libjava/classpath/gnu/xml/stream/SAXParserFactory.java [new file with mode: 0644]
libjava/classpath/gnu/xml/stream/UnicodeReader.java [new file with mode: 0644]
libjava/classpath/gnu/xml/stream/XIncludeFilter.java [new file with mode: 0644]
libjava/classpath/gnu/xml/stream/XMLInputFactoryImpl.java
libjava/classpath/gnu/xml/stream/XMLParser.java [new file with mode: 0644]
libjava/classpath/gnu/xml/stream/XMLStreamWriterImpl.java
libjava/classpath/gnu/xml/transform/AttributeNode.java
libjava/classpath/gnu/xml/transform/Bindings.java
libjava/classpath/gnu/xml/transform/ElementAvailableFunction.java
libjava/classpath/gnu/xml/transform/ElementNode.java
libjava/classpath/gnu/xml/transform/FunctionAvailableFunction.java
libjava/classpath/gnu/xml/transform/LiteralNode.java
libjava/classpath/gnu/xml/transform/MessageNode.java
libjava/classpath/gnu/xml/transform/NamespaceProxy.java [new file with mode: 0644]
libjava/classpath/gnu/xml/transform/StreamSerializer.java
libjava/classpath/gnu/xml/transform/StrippingInstruction.java [new file with mode: 0644]
libjava/classpath/gnu/xml/transform/Stylesheet.java
libjava/classpath/gnu/xml/transform/TransformerFactoryImpl.java
libjava/classpath/gnu/xml/transform/TransformerImpl.java
libjava/classpath/gnu/xml/transform/ValueOfNode.java
libjava/classpath/gnu/xml/xpath/Expr.java
libjava/classpath/gnu/xml/xpath/LocalNameFunction.java
libjava/classpath/gnu/xml/xpath/NameFunction.java
libjava/classpath/gnu/xml/xpath/NameTest.java
libjava/classpath/gnu/xml/xpath/NamespaceTest.java
libjava/classpath/gnu/xml/xpath/NamespaceUriFunction.java
libjava/classpath/gnu/xml/xpath/NodeTypeTest.java
libjava/classpath/gnu/xml/xpath/Selector.java
libjava/classpath/gnu/xml/xpath/SubstringFunction.java
libjava/classpath/include/Makefile.am
libjava/classpath/include/Makefile.in
libjava/classpath/include/config.h.in
libjava/classpath/include/gnu_java_awt_peer_gtk_GdkGraphics.h
libjava/classpath/include/gnu_java_net_PlainDatagramSocketImpl.h [deleted file]
libjava/classpath/include/gnu_java_net_PlainSocketImpl.h [deleted file]
libjava/classpath/include/gnu_java_net_VMPlainDatagramSocketImpl.h [new file with mode: 0644]
libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h [new file with mode: 0644]
libjava/classpath/java/awt/BorderLayout.java
libjava/classpath/java/awt/Component.java
libjava/classpath/java/awt/Container.java
libjava/classpath/java/awt/GridBagLayout.java
libjava/classpath/java/awt/datatransfer/DataFlavor.java
libjava/classpath/java/awt/datatransfer/SystemFlavorMap.java
libjava/classpath/java/beans/DefaultPersistenceDelegate.java [new file with mode: 0644]
libjava/classpath/java/beans/Encoder.java [new file with mode: 0644]
libjava/classpath/java/beans/EventSetDescriptor.java
libjava/classpath/java/beans/Expression.java
libjava/classpath/java/beans/IndexedPropertyChangeEvent.java [new file with mode: 0644]
libjava/classpath/java/beans/Introspector.java
libjava/classpath/java/beans/PersistenceDelegate.java [new file with mode: 0644]
libjava/classpath/java/beans/PropertyChangeSupport.java
libjava/classpath/java/beans/Statement.java
libjava/classpath/java/beans/XMLEncoder.java [new file with mode: 0644]
libjava/classpath/java/io/File.java
libjava/classpath/java/io/InputStreamReader.java
libjava/classpath/java/io/ObjectInputStream.java
libjava/classpath/java/io/ObjectOutputStream.java
libjava/classpath/java/io/ObjectStreamClass.java
libjava/classpath/java/io/OutputStreamWriter.java
libjava/classpath/java/io/PrintStream.java
libjava/classpath/java/io/RandomAccessFile.java
libjava/classpath/java/io/StreamTokenizer.java
libjava/classpath/java/lang/Character.java
libjava/classpath/java/lang/Class.java
libjava/classpath/java/lang/Double.java
libjava/classpath/java/lang/Float.java
libjava/classpath/java/lang/InheritableThreadLocal.java
libjava/classpath/java/lang/SecurityManager.java
libjava/classpath/java/lang/StackTraceElement.java
libjava/classpath/java/lang/String.java
libjava/classpath/java/lang/Thread.java
libjava/classpath/java/lang/ThreadLocal.java
libjava/classpath/java/net/DatagramSocket.java
libjava/classpath/java/net/InetAddress.java
libjava/classpath/java/net/URL.java
libjava/classpath/java/nio/charset/Charset.java
libjava/classpath/java/nio/charset/spi/CharsetProvider.java
libjava/classpath/java/security/MessageDigest.java
libjava/classpath/java/security/Security.java
libjava/classpath/java/text/Bidi.java [new file with mode: 0644]
libjava/classpath/java/text/DecimalFormat.java
libjava/classpath/java/util/AbstractMap.java
libjava/classpath/java/util/ArrayList.java
libjava/classpath/java/util/Collections.java
libjava/classpath/java/util/Hashtable.java
libjava/classpath/java/util/Properties.java
libjava/classpath/java/util/StringTokenizer.java
libjava/classpath/java/util/WeakHashMap.java
libjava/classpath/java/util/logging/XMLFormatter.java
libjava/classpath/java/util/regex/Pattern.java
libjava/classpath/javax/crypto/CipherInputStream.java
libjava/classpath/javax/management/Attribute.java [new file with mode: 0644]
libjava/classpath/javax/print/AttributeException.java
libjava/classpath/javax/print/FlavorException.java
libjava/classpath/javax/print/PrintException.java
libjava/classpath/javax/print/URIException.java
libjava/classpath/javax/print/attribute/ResolutionSyntax.java
libjava/classpath/javax/print/attribute/SetOfIntegerSyntax.java
libjava/classpath/javax/print/attribute/Size2DSyntax.java
libjava/classpath/javax/print/attribute/TextSyntax.java
libjava/classpath/javax/print/attribute/standard/Chromaticity.java
libjava/classpath/javax/print/attribute/standard/ColorSupported.java
libjava/classpath/javax/print/attribute/standard/Compression.java
libjava/classpath/javax/print/attribute/standard/Copies.java
libjava/classpath/javax/print/attribute/standard/CopiesSupported.java
libjava/classpath/javax/print/attribute/standard/DateTimeAtCompleted.java
libjava/classpath/javax/print/attribute/standard/DateTimeAtCreation.java
libjava/classpath/javax/print/attribute/standard/DateTimeAtProcessing.java
libjava/classpath/javax/print/attribute/standard/Destination.java
libjava/classpath/javax/print/attribute/standard/DocumentName.java
libjava/classpath/javax/print/attribute/standard/Fidelity.java
libjava/classpath/javax/print/attribute/standard/Finishings.java
libjava/classpath/javax/print/attribute/standard/JobHoldUntil.java
libjava/classpath/javax/print/attribute/standard/JobImpressions.java
libjava/classpath/javax/print/attribute/standard/JobImpressionsCompleted.java
libjava/classpath/javax/print/attribute/standard/JobImpressionsSupported.java
libjava/classpath/javax/print/attribute/standard/JobKOctets.java
libjava/classpath/javax/print/attribute/standard/JobKOctetsProcessed.java
libjava/classpath/javax/print/attribute/standard/JobKOctetsSupported.java
libjava/classpath/javax/print/attribute/standard/JobMediaSheets.java
libjava/classpath/javax/print/attribute/standard/JobMediaSheetsCompleted.java
libjava/classpath/javax/print/attribute/standard/JobMediaSheetsSupported.java
libjava/classpath/javax/print/attribute/standard/JobMessageFromOperator.java
libjava/classpath/javax/print/attribute/standard/JobName.java
libjava/classpath/javax/print/attribute/standard/JobOriginatingUserName.java
libjava/classpath/javax/print/attribute/standard/JobPriority.java
libjava/classpath/javax/print/attribute/standard/JobPrioritySupported.java
libjava/classpath/javax/print/attribute/standard/JobSheets.java
libjava/classpath/javax/print/attribute/standard/JobState.java
libjava/classpath/javax/print/attribute/standard/JobStateReason.java
libjava/classpath/javax/print/attribute/standard/JobStateReasons.java
libjava/classpath/javax/print/attribute/standard/Media.java
libjava/classpath/javax/print/attribute/standard/MediaName.java [new file with mode: 0644]
libjava/classpath/javax/print/attribute/standard/MediaPrintableArea.java
libjava/classpath/javax/print/attribute/standard/MediaSize.java
libjava/classpath/javax/print/attribute/standard/MediaSizeName.java
libjava/classpath/javax/print/attribute/standard/MediaTray.java [new file with mode: 0644]
libjava/classpath/javax/print/attribute/standard/MultipleDocumentHandling.java
libjava/classpath/javax/print/attribute/standard/NumberOfDocuments.java
libjava/classpath/javax/print/attribute/standard/NumberOfInterveningJobs.java
libjava/classpath/javax/print/attribute/standard/NumberUp.java
libjava/classpath/javax/print/attribute/standard/NumberUpSupported.java
libjava/classpath/javax/print/attribute/standard/OrientationRequested.java
libjava/classpath/javax/print/attribute/standard/OutputDeviceAssigned.java
libjava/classpath/javax/print/attribute/standard/PDLOverrideSupported.java
libjava/classpath/javax/print/attribute/standard/PageRanges.java
libjava/classpath/javax/print/attribute/standard/PagesPerMinute.java
libjava/classpath/javax/print/attribute/standard/PagesPerMinuteColor.java
libjava/classpath/javax/print/attribute/standard/PresentationDirection.java
libjava/classpath/javax/print/attribute/standard/PrintQuality.java
libjava/classpath/javax/print/attribute/standard/PrinterInfo.java
libjava/classpath/javax/print/attribute/standard/PrinterIsAcceptingJobs.java
libjava/classpath/javax/print/attribute/standard/PrinterLocation.java
libjava/classpath/javax/print/attribute/standard/PrinterMakeAndModel.java
libjava/classpath/javax/print/attribute/standard/PrinterMessageFromOperator.java
libjava/classpath/javax/print/attribute/standard/PrinterMoreInfo.java
libjava/classpath/javax/print/attribute/standard/PrinterMoreInfoManufacturer.java
libjava/classpath/javax/print/attribute/standard/PrinterName.java
libjava/classpath/javax/print/attribute/standard/PrinterResolution.java
libjava/classpath/javax/print/attribute/standard/PrinterState.java
libjava/classpath/javax/print/attribute/standard/PrinterStateReason.java
libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java
libjava/classpath/javax/print/attribute/standard/PrinterURI.java
libjava/classpath/javax/print/attribute/standard/QueuedJobCount.java
libjava/classpath/javax/print/attribute/standard/ReferenceUriSchemesSupported.java
libjava/classpath/javax/print/attribute/standard/RequestingUserName.java
libjava/classpath/javax/print/attribute/standard/Severity.java
libjava/classpath/javax/print/attribute/standard/SheetCollate.java
libjava/classpath/javax/print/attribute/standard/Sides.java
libjava/classpath/javax/print/attribute/standard/package.html
libjava/classpath/javax/security/auth/login/AccountException.java [new file with mode: 0644]
libjava/classpath/javax/security/auth/login/AccountExpiredException.java
libjava/classpath/javax/security/auth/login/AccountLockedException.java [new file with mode: 0644]
libjava/classpath/javax/security/auth/login/AccountNotFoundException.java [new file with mode: 0644]
libjava/classpath/javax/security/auth/login/CredentialException.java [new file with mode: 0644]
libjava/classpath/javax/security/auth/login/CredentialExpiredException.java
libjava/classpath/javax/security/auth/login/CredentialNotFoundException.java [new file with mode: 0644]
libjava/classpath/javax/security/auth/login/LoginContext.java
libjava/classpath/javax/swing/AbstractAction.java
libjava/classpath/javax/swing/BoxLayout.java
libjava/classpath/javax/swing/JComponent.java
libjava/classpath/javax/swing/JEditorPane.java
libjava/classpath/javax/swing/JFileChooser.java
libjava/classpath/javax/swing/JFormattedTextField.java
libjava/classpath/javax/swing/JInternalFrame.java
libjava/classpath/javax/swing/JLayeredPane.java
libjava/classpath/javax/swing/JList.java
libjava/classpath/javax/swing/JMenuItem.java
libjava/classpath/javax/swing/JProgressBar.java
libjava/classpath/javax/swing/JTabbedPane.java
libjava/classpath/javax/swing/JTable.java
libjava/classpath/javax/swing/JTextArea.java
libjava/classpath/javax/swing/JTextField.java
libjava/classpath/javax/swing/JTextPane.java
libjava/classpath/javax/swing/JTree.java
libjava/classpath/javax/swing/JViewport.java
libjava/classpath/javax/swing/LookAndFeel.java
libjava/classpath/javax/swing/Popup.java
libjava/classpath/javax/swing/RepaintManager.java
libjava/classpath/javax/swing/SwingUtilities.java
libjava/classpath/javax/swing/TransferHandler.java
libjava/classpath/javax/swing/UIDefaults.java
libjava/classpath/javax/swing/ViewportLayout.java
libjava/classpath/javax/swing/event/EventListenerList.java
libjava/classpath/javax/swing/plaf/ComponentUI.java
libjava/classpath/javax/swing/plaf/basic/BasicArrowButton.java
libjava/classpath/javax/swing/plaf/basic/BasicComboBoxUI.java
libjava/classpath/javax/swing/plaf/basic/BasicComboPopup.java
libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java
libjava/classpath/javax/swing/plaf/basic/BasicHTML.java [new file with mode: 0644]
libjava/classpath/javax/swing/plaf/basic/BasicInternalFrameUI.java
libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java
libjava/classpath/javax/swing/plaf/basic/BasicListUI.java
libjava/classpath/javax/swing/plaf/basic/BasicLookAndFeel.java
libjava/classpath/javax/swing/plaf/basic/BasicMenuItemUI.java
libjava/classpath/javax/swing/plaf/basic/BasicOptionPaneUI.java
libjava/classpath/javax/swing/plaf/basic/BasicScrollPaneUI.java
libjava/classpath/javax/swing/plaf/basic/BasicSplitPaneDivider.java
libjava/classpath/javax/swing/plaf/basic/BasicTabbedPaneUI.java
libjava/classpath/javax/swing/plaf/basic/BasicTableHeaderUI.java
libjava/classpath/javax/swing/plaf/basic/BasicTableUI.java
libjava/classpath/javax/swing/plaf/basic/BasicTextUI.java
libjava/classpath/javax/swing/plaf/basic/BasicToolBarUI.java
libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java
libjava/classpath/javax/swing/plaf/metal/MetalComboBoxUI.java
libjava/classpath/javax/swing/plaf/metal/MetalFileChooserUI.java
libjava/classpath/javax/swing/plaf/metal/MetalIconFactory.java
libjava/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java
libjava/classpath/javax/swing/plaf/metal/MetalRadioButtonUI.java
libjava/classpath/javax/swing/plaf/metal/MetalScrollPaneUI.java
libjava/classpath/javax/swing/plaf/metal/MetalSplitPaneDivider.java
libjava/classpath/javax/swing/plaf/metal/MetalTabbedPaneUI.java
libjava/classpath/javax/swing/plaf/metal/MetalTextFieldUI.java
libjava/classpath/javax/swing/plaf/metal/MetalToolBarUI.java
libjava/classpath/javax/swing/plaf/metal/OceanTheme.java
libjava/classpath/javax/swing/table/DefaultTableCellRenderer.java
libjava/classpath/javax/swing/text/AbstractDocument.java
libjava/classpath/javax/swing/text/ComponentView.java
libjava/classpath/javax/swing/text/CompositeView.java
libjava/classpath/javax/swing/text/DefaultCaret.java
libjava/classpath/javax/swing/text/DefaultEditorKit.java
libjava/classpath/javax/swing/text/DefaultFormatter.java
libjava/classpath/javax/swing/text/DefaultFormatterFactory.java [new file with mode: 0644]
libjava/classpath/javax/swing/text/DefaultStyledDocument.java
libjava/classpath/javax/swing/text/FlowView.java
libjava/classpath/javax/swing/text/GapContent.java
libjava/classpath/javax/swing/text/GlyphView.java
libjava/classpath/javax/swing/text/IconView.java
libjava/classpath/javax/swing/text/InternationalFormatter.java
libjava/classpath/javax/swing/text/JTextComponent.java
libjava/classpath/javax/swing/text/MaskFormatter.java [new file with mode: 0644]
libjava/classpath/javax/swing/text/NumberFormatter.java [new file with mode: 0644]
libjava/classpath/javax/swing/text/PasswordView.java
libjava/classpath/javax/swing/text/PlainDocument.java
libjava/classpath/javax/swing/text/PlainView.java
libjava/classpath/javax/swing/text/StyleContext.java
libjava/classpath/javax/swing/text/StyledEditorKit.java
libjava/classpath/javax/swing/text/TableView.java [new file with mode: 0644]
libjava/classpath/javax/swing/text/Utilities.java
libjava/classpath/javax/swing/text/View.java
libjava/classpath/javax/swing/text/WrappedPlainView.java
libjava/classpath/javax/swing/text/html/BlockView.java [new file with mode: 0644]
libjava/classpath/javax/swing/text/html/CSS.java
libjava/classpath/javax/swing/text/html/CSSParser.java [new file with mode: 0644]
libjava/classpath/javax/swing/text/html/HTMLDocument.java
libjava/classpath/javax/swing/text/html/HTMLEditorKit.java
libjava/classpath/javax/swing/text/html/StyleSheet.java [new file with mode: 0644]
libjava/classpath/javax/swing/text/html/default.css [new file with mode: 0644]
libjava/classpath/javax/swing/tree/DefaultTreeModel.java
libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java
libjava/classpath/javax/xml/namespace/QName.java
libjava/classpath/javax/xml/parsers/SAXParserFactory.java
libjava/classpath/lib/Makefile.am
libjava/classpath/lib/Makefile.in
libjava/classpath/lib/copy-vmresources.sh.in
libjava/classpath/ltcf-c.sh
libjava/classpath/m4/acinclude.m4
libjava/classpath/m4/ax_create_stdint_h.m4 [new file with mode: 0644]
libjava/classpath/native/Makefile.in
libjava/classpath/native/fdlibm/Makefile.am
libjava/classpath/native/fdlibm/Makefile.in
libjava/classpath/native/fdlibm/fdlibm.h
libjava/classpath/native/fdlibm/ieeefp.h
libjava/classpath/native/fdlibm/java-assert.h [deleted file]
libjava/classpath/native/fdlibm/mprec.c
libjava/classpath/native/fdlibm/mprec.h
libjava/classpath/native/fdlibm/namespace.h [new file with mode: 0644]
libjava/classpath/native/jawt/Makefile.in
libjava/classpath/native/jni/Makefile.in
libjava/classpath/native/jni/classpath/Makefile.in
libjava/classpath/native/jni/classpath/jcl.c
libjava/classpath/native/jni/gtk-peer/Makefile.in
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
libjava/classpath/native/jni/java-io/Makefile.am
libjava/classpath/native/jni/java-io/Makefile.in
libjava/classpath/native/jni/java-io/java_io_VMFile.c
libjava/classpath/native/jni/java-io/javaio.c [deleted file]
libjava/classpath/native/jni/java-io/javaio.h [deleted file]
libjava/classpath/native/jni/java-lang/Makefile.in
libjava/classpath/native/jni/java-net/Makefile.am
libjava/classpath/native/jni/java-net/Makefile.in
libjava/classpath/native/jni/java-net/gnu_java_net_PlainDatagramSocketImpl.c [deleted file]
libjava/classpath/native/jni/java-net/gnu_java_net_PlainSocketImpl.c [deleted file]
libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c [new file with mode: 0644]
libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c [new file with mode: 0644]
libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c
libjava/classpath/native/jni/java-net/java_net_VMNetworkInterface.c
libjava/classpath/native/jni/java-net/javanet.c
libjava/classpath/native/jni/java-net/javanet.h
libjava/classpath/native/jni/java-nio/Makefile.in
libjava/classpath/native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c
libjava/classpath/native/jni/java-nio/java_nio.c [deleted file]
libjava/classpath/native/jni/java-nio/java_nio_VMDirectByteBuffer.c
libjava/classpath/native/jni/java-util/Makefile.in
libjava/classpath/native/jni/midi-alsa/Makefile.in
libjava/classpath/native/jni/midi-dssi/Makefile.in
libjava/classpath/native/jni/qt-peer/Makefile.in
libjava/classpath/native/jni/qt-peer/mainqtthread.cpp
libjava/classpath/native/jni/qt-peer/qtmenupeer.cpp
libjava/classpath/native/jni/xmlj/Makefile.am
libjava/classpath/native/jni/xmlj/Makefile.in
libjava/classpath/native/jni/xmlj/xmlj_util.h
libjava/classpath/native/target/Linux/Makefile.in
libjava/classpath/native/target/Makefile.in
libjava/classpath/native/target/generic/Makefile.in
libjava/classpath/org/omg/CORBA/INVALID_ACTIVITY.java
libjava/classpath/resource/META-INF/services/javax.xml.parsers.SAXParserFactory
libjava/classpath/resource/META-INF/services/org.xml.sax.driver
libjava/classpath/resource/Makefile.am
libjava/classpath/resource/Makefile.in
libjava/classpath/scripts/Makefile.in
libjava/classpath/scripts/build_mathnamespace [new file with mode: 0644]
libjava/classpath/scripts/math_symbols [new file with mode: 0644]
libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
libjava/classpath/vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java [new file with mode: 0644]
libjava/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java [new file with mode: 0644]
libjava/gcj/Makefile.in
libjava/include/Makefile.in
libjava/java/nio/charset/spi/CharsetProvider.java [new file with mode: 0644]
libjava/java/security/Security.java [new file with mode: 0644]
libjava/sources.am
libjava/testsuite/Makefile.in

index b0d5acdebf04ad08fc991d58d9a979935a18dda9..f8df781bde1b5983711a54e3cb98e94542936a65 100644 (file)
@@ -1,3 +1,12 @@
+2006-01-16  Mark Wielaard  <mark@klomp.org>
+
+       Imported GNU Classpath 0.20
+       * Makefile.am (AM_CPPFLAGS): Add classpath/include.
+       * java/nio/charset/spi/CharsetProvider.java: New override file.
+       * java/security/Security.java: Likewise.
+       * sources.am: Regenerated.
+       * Makefile.in: Likewise.
+
 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
 
        * configure.ac (dbexecdir): New substituted var.
index c1774cdfc883ac18e9be4e4820358f9ab4aafb8c..9ec3a549ccc4f3edf16c55738d7c1313d6d716b0 100644 (file)
@@ -152,6 +152,7 @@ LIBFFIINCS = @LIBFFIINCS@
 AM_CPPFLAGS = -I$(top_srcdir) \
        -Iinclude -I$(top_srcdir)/include \
        -I$(top_srcdir)/classpath/include \
+       -Iclasspath/include \
        -I$(top_srcdir)/classpath/native/fdlibm \
        $(GCINCS) $(THREADINCS) $(INCLTDL) \
        $(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS)
index 2a7add561ac8ad0df51dcb4c16ec937768b3ecc5..118b49251816444e8b8cdae56da4db26e0f317ef 100644 (file)
@@ -192,24 +192,25 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
        java/util/jar.lo java/util/logging.lo java/util/prefs.lo \
        java/util/regex.lo java/util/zip.lo javax/accessibility.lo \
        javax/crypto.lo javax/crypto/interfaces.lo \
-       javax/crypto/spec.lo javax/naming.lo javax/naming/directory.lo \
-       javax/naming/event.lo javax/naming/ldap.lo javax/naming/spi.lo \
-       javax/net.lo javax/net/ssl.lo javax/print.lo \
-       javax/print/attribute.lo javax/print/attribute/standard.lo \
-       javax/print/event.lo javax/security/auth.lo \
-       javax/security/auth/callback.lo javax/security/auth/login.lo \
-       javax/security/auth/spi.lo javax/security/auth/x500.lo \
-       javax/security/cert.lo javax/security/sasl.lo \
-       javax/sound/midi.lo javax/sound/midi/spi.lo \
-       javax/sound/sampled.lo javax/sound/sampled/spi.lo javax/sql.lo \
-       javax/swing.lo javax/swing/border.lo \
-       javax/swing/colorchooser.lo javax/swing/event.lo \
-       javax/swing/filechooser.lo javax/swing/plaf.lo \
-       javax/swing/plaf/basic.lo javax/swing/plaf/metal.lo \
-       javax/swing/plaf/multi.lo javax/swing/table.lo \
-       javax/swing/text.lo javax/swing/text/html.lo \
-       javax/swing/text/html/parser.lo javax/swing/text/rtf.lo \
-       javax/swing/tree.lo javax/swing/undo.lo javax/transaction.lo \
+       javax/crypto/spec.lo javax/management.lo javax/naming.lo \
+       javax/naming/directory.lo javax/naming/event.lo \
+       javax/naming/ldap.lo javax/naming/spi.lo javax/net.lo \
+       javax/net/ssl.lo javax/print.lo javax/print/attribute.lo \
+       javax/print/attribute/standard.lo javax/print/event.lo \
+       javax/security/auth.lo javax/security/auth/callback.lo \
+       javax/security/auth/login.lo javax/security/auth/spi.lo \
+       javax/security/auth/x500.lo javax/security/cert.lo \
+       javax/security/sasl.lo javax/sound/midi.lo \
+       javax/sound/midi/spi.lo javax/sound/sampled.lo \
+       javax/sound/sampled/spi.lo javax/sql.lo javax/swing.lo \
+       javax/swing/border.lo javax/swing/colorchooser.lo \
+       javax/swing/event.lo javax/swing/filechooser.lo \
+       javax/swing/plaf.lo javax/swing/plaf/basic.lo \
+       javax/swing/plaf/metal.lo javax/swing/plaf/multi.lo \
+       javax/swing/table.lo javax/swing/text.lo \
+       javax/swing/text/html.lo javax/swing/text/html/parser.lo \
+       javax/swing/text/rtf.lo javax/swing/tree.lo \
+       javax/swing/undo.lo javax/transaction.lo \
        javax/transaction/xa.lo org/ietf/jgss.lo
 am__DEPENDENCIES_3 = gnu-CORBA.lo gnu-java-beans.lo gnu-javax-rmi.lo \
        gnu-javax-sound-midi.lo gnu-xml.lo javax-imageio.lo \
@@ -582,6 +583,7 @@ build_os = @build_os@
 build_subdir = @build_subdir@
 build_vendor = @build_vendor@
 datadir = @datadir@
+dbexecdir = @dbexecdir@
 exec_prefix = @exec_prefix@
 extra_ldflags_libjava = @extra_ldflags_libjava@
 gxx_include_dir = @gxx_include_dir@
@@ -622,7 +624,6 @@ target_vendor = @target_vendor@
 toolexecdir = @toolexecdir@
 toolexeclibdir = @toolexeclibdir@
 toolexecmainlibdir = @toolexecmainlibdir@
-dbexecdir = @dbexecdir@
 AUTOMAKE_OPTIONS = foreign subdir-objects
 ACLOCAL_AMFLAGS = -I . -I .. -I ../config
 
@@ -697,6 +698,7 @@ JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS)
 AM_CPPFLAGS = -I$(top_srcdir) \
        -Iinclude -I$(top_srcdir)/include \
        -I$(top_srcdir)/classpath/include \
+       -Iclasspath/include \
        -I$(top_srcdir)/classpath/native/fdlibm \
        $(GCINCS) $(THREADINCS) $(INCLTDL) \
        $(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS)
@@ -1395,7 +1397,37 @@ classpath/gnu/java/beans/editors/NativeFloatEditor.java \
 classpath/gnu/java/beans/editors/NativeIntEditor.java \
 classpath/gnu/java/beans/editors/NativeLongEditor.java \
 classpath/gnu/java/beans/editors/NativeShortEditor.java \
-classpath/gnu/java/beans/editors/StringEditor.java
+classpath/gnu/java/beans/editors/StringEditor.java \
+classpath/gnu/java/beans/encoder/ArrayPersistenceDelegate.java \
+classpath/gnu/java/beans/encoder/ClassPersistenceDelegate.java \
+classpath/gnu/java/beans/encoder/CollectionPersistenceDelegate.java \
+classpath/gnu/java/beans/encoder/Context.java \
+classpath/gnu/java/beans/encoder/GenericScannerState.java \
+classpath/gnu/java/beans/encoder/IgnoringScannerState.java \
+classpath/gnu/java/beans/encoder/MapPersistenceDelegate.java \
+classpath/gnu/java/beans/encoder/ObjectId.java \
+classpath/gnu/java/beans/encoder/PrimitivePersistenceDelegate.java \
+classpath/gnu/java/beans/encoder/ReportingScannerState.java \
+classpath/gnu/java/beans/encoder/Root.java \
+classpath/gnu/java/beans/encoder/ScanEngine.java \
+classpath/gnu/java/beans/encoder/ScannerState.java \
+classpath/gnu/java/beans/encoder/StAXWriter.java \
+classpath/gnu/java/beans/encoder/Writer.java \
+classpath/gnu/java/beans/encoder/elements/ArrayInstantiation.java \
+classpath/gnu/java/beans/encoder/elements/Array_Get.java \
+classpath/gnu/java/beans/encoder/elements/Array_Set.java \
+classpath/gnu/java/beans/encoder/elements/ClassResolution.java \
+classpath/gnu/java/beans/encoder/elements/Element.java \
+classpath/gnu/java/beans/encoder/elements/List_Get.java \
+classpath/gnu/java/beans/encoder/elements/List_Set.java \
+classpath/gnu/java/beans/encoder/elements/MethodInvocation.java \
+classpath/gnu/java/beans/encoder/elements/NullObject.java \
+classpath/gnu/java/beans/encoder/elements/ObjectInstantiation.java \
+classpath/gnu/java/beans/encoder/elements/ObjectReference.java \
+classpath/gnu/java/beans/encoder/elements/PrimitiveInstantiation.java \
+classpath/gnu/java/beans/encoder/elements/StaticFieldAccess.java \
+classpath/gnu/java/beans/encoder/elements/StaticMethodInvocation.java \
+classpath/gnu/java/beans/encoder/elements/StringReference.java
 
 gnu_java_io_source_files = \
 classpath/gnu/java/io/ASN1ParsingException.java \
@@ -1885,7 +1917,8 @@ classpath/gnu/java/text/WordBreakIterator.java
 gnu_java_text_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_text_source_files)))
 gnu_java_util_source_files = \
 classpath/gnu/java/util/DoubleEnumeration.java \
-classpath/gnu/java/util/EmptyEnumeration.java
+classpath/gnu/java/util/EmptyEnumeration.java \
+classpath/gnu/java/util/WeakIdentityHashMap.java
 
 gnu_java_util_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_util_source_files)))
 gnu_java_util_prefs_source_files = \
@@ -2005,7 +2038,6 @@ classpath/gnu/regexp/UncheckedRE.java
 
 gnu_regexp_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_regexp_source_files)))
 gnu_xml_source_files = \
-classpath/gnu/xml/aelfred2/ContentHandler2.java \
 classpath/gnu/xml/aelfred2/JAXPFactory.java \
 classpath/gnu/xml/aelfred2/SAXDriver.java \
 classpath/gnu/xml/aelfred2/XmlParser.java \
@@ -2166,6 +2198,8 @@ classpath/gnu/xml/pipeline/WellFormednessFilter.java \
 classpath/gnu/xml/pipeline/XIncludeFilter.java \
 classpath/gnu/xml/pipeline/XsltFilter.java \
 classpath/gnu/xml/stream/AttributeImpl.java \
+classpath/gnu/xml/stream/BufferedReader.java \
+classpath/gnu/xml/stream/CRLFReader.java \
 classpath/gnu/xml/stream/CharactersImpl.java \
 classpath/gnu/xml/stream/CommentImpl.java \
 classpath/gnu/xml/stream/DTDImpl.java \
@@ -2180,9 +2214,13 @@ classpath/gnu/xml/stream/LocationImpl.java \
 classpath/gnu/xml/stream/NamespaceImpl.java \
 classpath/gnu/xml/stream/NotationDeclarationImpl.java \
 classpath/gnu/xml/stream/ProcessingInstructionImpl.java \
+classpath/gnu/xml/stream/SAXParser.java \
+classpath/gnu/xml/stream/SAXParserFactory.java \
 classpath/gnu/xml/stream/StartDocumentImpl.java \
 classpath/gnu/xml/stream/StartElementImpl.java \
 classpath/gnu/xml/stream/StartEntityImpl.java \
+classpath/gnu/xml/stream/UnicodeReader.java \
+classpath/gnu/xml/stream/XIncludeFilter.java \
 classpath/gnu/xml/stream/XMLEventAllocatorImpl.java \
 classpath/gnu/xml/stream/XMLEventFactoryImpl.java \
 classpath/gnu/xml/stream/XMLEventImpl.java \
@@ -2190,6 +2228,7 @@ classpath/gnu/xml/stream/XMLEventReaderImpl.java \
 classpath/gnu/xml/stream/XMLEventWriterImpl.java \
 classpath/gnu/xml/stream/XMLInputFactoryImpl.java \
 classpath/gnu/xml/stream/XMLOutputFactoryImpl.java \
+classpath/gnu/xml/stream/XMLParser.java \
 classpath/gnu/xml/stream/XMLStreamReaderImpl.java \
 classpath/gnu/xml/stream/XMLStreamWriterImpl.java \
 classpath/gnu/xml/transform/AbstractNumberNode.java \
@@ -2218,6 +2257,7 @@ classpath/gnu/xml/transform/Key.java \
 classpath/gnu/xml/transform/KeyFunction.java \
 classpath/gnu/xml/transform/LiteralNode.java \
 classpath/gnu/xml/transform/MessageNode.java \
+classpath/gnu/xml/transform/NamespaceProxy.java \
 classpath/gnu/xml/transform/NodeNumberNode.java \
 classpath/gnu/xml/transform/NumberNode.java \
 classpath/gnu/xml/transform/OtherwiseNode.java \
@@ -2226,6 +2266,7 @@ classpath/gnu/xml/transform/ProcessingInstructionNode.java \
 classpath/gnu/xml/transform/SAXSerializer.java \
 classpath/gnu/xml/transform/SortKey.java \
 classpath/gnu/xml/transform/StreamSerializer.java \
+classpath/gnu/xml/transform/StrippingInstruction.java \
 classpath/gnu/xml/transform/Stylesheet.java \
 classpath/gnu/xml/transform/SystemPropertyFunction.java \
 classpath/gnu/xml/transform/Template.java \
@@ -2686,17 +2727,21 @@ classpath/java/beans/BeanDescriptor.java \
 classpath/java/beans/BeanInfo.java \
 classpath/java/beans/Beans.java \
 classpath/java/beans/Customizer.java \
+classpath/java/beans/DefaultPersistenceDelegate.java \
 classpath/java/beans/DesignMode.java \
+classpath/java/beans/Encoder.java \
 classpath/java/beans/EventHandler.java \
 classpath/java/beans/EventSetDescriptor.java \
 classpath/java/beans/ExceptionListener.java \
 classpath/java/beans/Expression.java \
 classpath/java/beans/FeatureDescriptor.java \
+classpath/java/beans/IndexedPropertyChangeEvent.java \
 classpath/java/beans/IndexedPropertyDescriptor.java \
 classpath/java/beans/IntrospectionException.java \
 classpath/java/beans/Introspector.java \
 classpath/java/beans/MethodDescriptor.java \
 classpath/java/beans/ParameterDescriptor.java \
+classpath/java/beans/PersistenceDelegate.java \
 classpath/java/beans/PropertyChangeEvent.java \
 classpath/java/beans/PropertyChangeListener.java \
 classpath/java/beans/PropertyChangeListenerProxy.java \
@@ -2712,7 +2757,8 @@ classpath/java/beans/VetoableChangeListener.java \
 classpath/java/beans/VetoableChangeListenerProxy.java \
 classpath/java/beans/VetoableChangeSupport.java \
 classpath/java/beans/Visibility.java \
-classpath/java/beans/XMLDecoder.java
+classpath/java/beans/XMLDecoder.java \
+classpath/java/beans/XMLEncoder.java
 
 java_beans_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_beans_source_files)))
 java_beans_beancontext_source_files = \
@@ -3091,9 +3137,9 @@ classpath/java/nio/charset/UnsupportedCharsetException.java
 
 java_nio_charset_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_nio_charset_source_files)))
 java_nio_charset_spi_source_files = \
-classpath/java/nio/charset/spi/CharsetProvider.java
+java/nio/charset/spi/CharsetProvider.java
 
-java_nio_charset_spi_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_nio_charset_spi_source_files)))
+java_nio_charset_spi_header_files = $(patsubst %.java,%.h,$(java_nio_charset_spi_source_files))
 java_rmi_source_files = \
 classpath/java/rmi/AccessException.java \
 classpath/java/rmi/AlreadyBoundException.java \
@@ -3235,7 +3281,7 @@ classpath/java/security/PublicKey.java \
 classpath/java/security/SecureClassLoader.java \
 classpath/java/security/SecureRandom.java \
 classpath/java/security/SecureRandomSpi.java \
-classpath/java/security/Security.java \
+java/security/Security.java \
 classpath/java/security/SecurityPermission.java \
 classpath/java/security/Signature.java \
 classpath/java/security/SignatureException.java \
@@ -3372,6 +3418,7 @@ classpath/java/text/Annotation.java \
 classpath/java/text/AttributedCharacterIterator.java \
 classpath/java/text/AttributedString.java \
 classpath/java/text/AttributedStringIterator.java \
+classpath/java/text/Bidi.java \
 classpath/java/text/BreakIterator.java \
 classpath/java/text/CharacterIterator.java \
 classpath/java/text/ChoiceFormat.java \
@@ -3647,6 +3694,10 @@ classpath/javax/imageio/stream/ImageOutputStreamImpl.java \
 classpath/javax/imageio/stream/MemoryCacheImageInputStream.java \
 classpath/javax/imageio/stream/MemoryCacheImageOutputStream.java
 
+javax_management_source_files = \
+classpath/javax/management/Attribute.java
+
+javax_management_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_source_files)))
 javax_naming_source_files = \
 classpath/javax/naming/AuthenticationException.java \
 classpath/javax/naming/AuthenticationNotSupportedException.java \
@@ -3870,9 +3921,11 @@ classpath/javax/print/attribute/standard/JobState.java \
 classpath/javax/print/attribute/standard/JobStateReason.java \
 classpath/javax/print/attribute/standard/JobStateReasons.java \
 classpath/javax/print/attribute/standard/Media.java \
+classpath/javax/print/attribute/standard/MediaName.java \
 classpath/javax/print/attribute/standard/MediaPrintableArea.java \
 classpath/javax/print/attribute/standard/MediaSize.java \
 classpath/javax/print/attribute/standard/MediaSizeName.java \
+classpath/javax/print/attribute/standard/MediaTray.java \
 classpath/javax/print/attribute/standard/MultipleDocumentHandling.java \
 classpath/javax/print/attribute/standard/NumberOfDocuments.java \
 classpath/javax/print/attribute/standard/NumberOfInterveningJobs.java \
@@ -3956,10 +4009,15 @@ classpath/javax/security/auth/callback/UnsupportedCallbackException.java
 
 javax_security_auth_callback_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_security_auth_callback_source_files)))
 javax_security_auth_login_source_files = \
+classpath/javax/security/auth/login/AccountException.java \
 classpath/javax/security/auth/login/AccountExpiredException.java \
+classpath/javax/security/auth/login/AccountLockedException.java \
+classpath/javax/security/auth/login/AccountNotFoundException.java \
 classpath/javax/security/auth/login/AppConfigurationEntry.java \
 classpath/javax/security/auth/login/Configuration.java \
+classpath/javax/security/auth/login/CredentialException.java \
 classpath/javax/security/auth/login/CredentialExpiredException.java \
+classpath/javax/security/auth/login/CredentialNotFoundException.java \
 classpath/javax/security/auth/login/FailedLoginException.java \
 classpath/javax/security/auth/login/LoginContext.java \
 classpath/javax/security/auth/login/LoginException.java \
@@ -4348,6 +4406,7 @@ classpath/javax/swing/plaf/basic/BasicEditorPaneUI.java \
 classpath/javax/swing/plaf/basic/BasicFileChooserUI.java \
 classpath/javax/swing/plaf/basic/BasicFormattedTextFieldUI.java \
 classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java \
+classpath/javax/swing/plaf/basic/BasicHTML.java \
 classpath/javax/swing/plaf/basic/BasicIconFactory.java \
 classpath/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java \
 classpath/javax/swing/plaf/basic/BasicInternalFrameUI.java \
@@ -4492,6 +4551,7 @@ classpath/javax/swing/text/DateFormatter.java \
 classpath/javax/swing/text/DefaultCaret.java \
 classpath/javax/swing/text/DefaultEditorKit.java \
 classpath/javax/swing/text/DefaultFormatter.java \
+classpath/javax/swing/text/DefaultFormatterFactory.java \
 classpath/javax/swing/text/DefaultHighlighter.java \
 classpath/javax/swing/text/DefaultStyledDocument.java \
 classpath/javax/swing/text/DefaultTextUI.java \
@@ -4512,8 +4572,10 @@ classpath/javax/swing/text/Keymap.java \
 classpath/javax/swing/text/LabelView.java \
 classpath/javax/swing/text/LayeredHighlighter.java \
 classpath/javax/swing/text/LayoutQueue.java \
+classpath/javax/swing/text/MaskFormatter.java \
 classpath/javax/swing/text/MutableAttributeSet.java \
 classpath/javax/swing/text/NavigationFilter.java \
+classpath/javax/swing/text/NumberFormatter.java \
 classpath/javax/swing/text/ParagraphView.java \
 classpath/javax/swing/text/PasswordView.java \
 classpath/javax/swing/text/PlainDocument.java \
@@ -4531,6 +4593,7 @@ classpath/javax/swing/text/TabExpander.java \
 classpath/javax/swing/text/TabSet.java \
 classpath/javax/swing/text/TabStop.java \
 classpath/javax/swing/text/TabableView.java \
+classpath/javax/swing/text/TableView.java \
 classpath/javax/swing/text/TextAction.java \
 classpath/javax/swing/text/Utilities.java \
 classpath/javax/swing/text/View.java \
@@ -4539,11 +4602,14 @@ classpath/javax/swing/text/WrappedPlainView.java
 
 javax_swing_text_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_swing_text_source_files)))
 javax_swing_text_html_source_files = \
+classpath/javax/swing/text/html/BlockView.java \
 classpath/javax/swing/text/html/CSS.java \
+classpath/javax/swing/text/html/CSSParser.java \
 classpath/javax/swing/text/html/HTML.java \
 classpath/javax/swing/text/html/HTMLDocument.java \
 classpath/javax/swing/text/html/HTMLEditorKit.java \
-classpath/javax/swing/text/html/HTMLFrameHyperlinkEvent.java
+classpath/javax/swing/text/html/HTMLFrameHyperlinkEvent.java \
+classpath/javax/swing/text/html/StyleSheet.java
 
 javax_swing_text_html_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_swing_text_html_source_files)))
 javax_swing_text_html_parser_source_files = \
@@ -5558,6 +5624,7 @@ all_packages_source_files = \
   javax/crypto.list \
   javax/crypto/interfaces.list \
   javax/crypto/spec.list \
+  javax/management.list \
   javax/naming.list \
   javax/naming/directory.list \
   javax/naming/event.list \
@@ -5711,6 +5778,7 @@ ordinary_header_files = \
   $(javax_crypto_header_files) \
   $(javax_crypto_interfaces_header_files) \
   $(javax_crypto_spec_header_files) \
+  $(javax_management_header_files) \
   $(javax_naming_header_files) \
   $(javax_naming_directory_header_files) \
   $(javax_naming_event_header_files) \
@@ -8705,6 +8773,16 @@ javax-imageio.lo: $(javax_imageio_source_files)
        $(LTGCJCOMPILE) -fjni -findirect-dispatch -c -o javax-imageio.lo @javax-imageio.list
        @rm -f javax-imageio.list
 
+javax/management.list: $(javax_management_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       @for file in $(javax_management_source_files); do \
+         if test -f $(srcdir)/$$file; then \
+           echo $(srcdir)/$$file; \
+         else echo $$file; fi; \
+       done > javax/management.list
+
+-include javax/management.deps
+
 javax/naming.list: $(javax_naming_source_files)
        @$(mkinstalldirs) $(dir $@)
        @for file in $(javax_naming_source_files); do \
index 2f6a39d18716abd21dca0ef5813783aedde79577..a6051b111c31b0f07ac981c0e1c084892934bbfa 100644 (file)
@@ -1,11 +1,2 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="./autogen.sh"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/>
-<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${build_project}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="/bin/sh"/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-</launchConfiguration>
+<?xml version='1.0'?>
+<launchConfiguration type='org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType'><stringAttribute key='org.eclipse.debug.core.ATTR_REFRESH_SCOPE' value='${project}'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS' value='full,incremental,auto,'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE' value='${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/external/sax/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/external/w3c_dom/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/test/java.net/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/test/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/jni/java-nio/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/jni/midi-dssi/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/vmi/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/test/java.util/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/target/generic/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/lib/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/fdlibm/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/target/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/target/Linux/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/examples/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/jawt/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/jni/gtk-peer/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/jni/classpath/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/jni/midi-alsa/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/test/java.lang.reflect/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/test/java.io/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/external/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/jni/xmlj/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/compat/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/jni/qt-peer/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/vm/reference/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/jni/java-util/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/test/gnu.java.lang.reflect/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/configure.ac&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/compat/java.net/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/include/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/jni/java-lang/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/jni/java-io/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/doc/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/gnu/test/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/doc/api/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/testsuite/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/jni/java-net/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/vm/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native/jni/Makefile.am&quot; type=&quot;1&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_LOCATION' value='/bin/sh'/><booleanAttribute key='org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED' value='true'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY' value='${build_project}'/><booleanAttribute key='org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED' value='true'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS' value='./autogen.sh'/><booleanAttribute key='org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND' value='false'/><booleanAttribute key='org.eclipse.debug.core.appendEnvironmentVariables' value='true'/></launchConfiguration>
\ No newline at end of file
diff --git a/libjava/classpath/.externalToolBuilders/ClasspathHeaders.launch b/libjava/classpath/.externalToolBuilders/ClasspathHeaders.launch
new file mode 100644 (file)
index 0000000..0c84817
--- /dev/null
@@ -0,0 +1,2 @@
+<?xml version='1.0'?>
+<launchConfiguration type='org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType'><stringAttribute key='org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS' value='full,incremental,auto,'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE' value='${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/include/Makefile&quot; type=&quot;1&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_LOCATION' value='${system_path:make}'/><booleanAttribute key='org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED' value='true'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY' value='${build_project}'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS' value='-C ${build_project}/include CLASSDIR=install/share/classpath USER_CLASSLIB=../install/share/classpath all install'/><booleanAttribute key='org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND' value='false'/><booleanAttribute key='org.eclipse.debug.core.appendEnvironmentVariables' value='true'/></launchConfiguration>
\ No newline at end of file
diff --git a/libjava/classpath/.externalToolBuilders/ClasspathJar.launch b/libjava/classpath/.externalToolBuilders/ClasspathJar.launch
new file mode 100644 (file)
index 0000000..e58a58b
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="true"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/install/share/classpath&quot; type=&quot;2&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-cf glibj.zip META-INF java gnu org javax vm"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${build_project:install/share/classpath}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${system_path:jar}"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+</launchConfiguration>
index 7eaac601ecb52adfc170ad33f0d9f3003f3d6f84..c6a6b9f06a950822d2a9d3715c8f6f8a4e8dacd8 100644 (file)
@@ -1,2 +1,2 @@
 <?xml version='1.0'?>
-<launchConfiguration type='org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType'><stringAttribute key='org.eclipse.debug.core.ATTR_REFRESH_SCOPE' value='${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;working set&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native&quot; type=&quot;2&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS' value='full,incremental,'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE' value='${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native&quot; type=&quot;2&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_LOCATION' value='${system_path:make}'/><booleanAttribute key='org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED' value='true'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY' value='${build_project}'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS' value='-C ${build_project}/native all install'/><booleanAttribute key='org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND' value='false'/><booleanAttribute key='org.eclipse.debug.core.appendEnvironmentVariables' value='true'/></launchConfiguration>
\ No newline at end of file
+<launchConfiguration type='org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType'><stringAttribute key='org.eclipse.debug.core.ATTR_REFRESH_SCOPE' value='${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;working set&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native&quot; type=&quot;2&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS' value='full,incremental,auto,'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE' value='${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/native&quot; type=&quot;2&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_LOCATION' value='${system_path:make}'/><booleanAttribute key='org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED' value='true'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY' value='${build_project}'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS' value='-C ${build_project}/native all install'/><booleanAttribute key='org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND' value='false'/><booleanAttribute key='org.eclipse.debug.core.appendEnvironmentVariables' value='true'/></launchConfiguration>
\ No newline at end of file
index 575eb7b2506d6e30e444b522575e15282bc85095..96bcda0fef12715b5679ecef42614dae050c3a27 100644 (file)
@@ -1,2 +1,2 @@
 <?xml version='1.0'?>
-<launchConfiguration type='org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType'><stringAttribute key='org.eclipse.debug.core.ATTR_REFRESH_SCOPE' value='${project}'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS' value='full,incremental,'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_LOCATION' value='${build_project}/configure'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY' value='${build_project}'/><booleanAttribute key='org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED' value='true'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS' value='--prefix=${build_project}/install'/><booleanAttribute key='org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND' value='false'/><booleanAttribute key='org.eclipse.debug.core.appendEnvironmentVariables' value='true'/></launchConfiguration>
\ No newline at end of file
+<launchConfiguration type='org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType'><stringAttribute key='org.eclipse.debug.core.ATTR_REFRESH_SCOPE' value='${project}'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS' value='full,incremental,auto,'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE' value='${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/classpath/Makefile.in&quot; type=&quot;1&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_LOCATION' value='${build_project}/configure'/><booleanAttribute key='org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED' value='true'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY' value='${build_project}'/><booleanAttribute key='org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED' value='true'/><stringAttribute key='org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS' value='--prefix=${build_project}/install --enable-regen-headers --enable-gtk-cairo'/><booleanAttribute key='org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND' value='false'/><booleanAttribute key='org.eclipse.debug.core.appendEnvironmentVariables' value='true'/></launchConfiguration>
\ No newline at end of file
index f9372aa49350098ea687745001953c0aa5856998..31f6e3a258931e2b4a9f52faae49185f93caacef 100644 (file)
@@ -7,7 +7,7 @@
        <buildSpec>
                <buildCommand>
                        <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-                       <triggers>full,incremental,</triggers>
+                       <triggers>auto,full,incremental,</triggers>
                        <arguments>
                                <dictionary>
                                        <key>LaunchConfigHandle</key>
@@ -17,7 +17,7 @@
                </buildCommand>
                <buildCommand>
                        <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-                       <triggers>full,incremental,</triggers>
+                       <triggers>auto,full,incremental,</triggers>
                        <arguments>
                                <dictionary>
                                        <key>LaunchConfigHandle</key>
                </buildCommand>
                <buildCommand>
                        <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-                       <triggers>full,incremental,</triggers>
+                       <triggers>auto,full,incremental,</triggers>
+                       <arguments>
+                               <dictionary>
+                                       <key>LaunchConfigHandle</key>
+                                       <value>&lt;project&gt;/.externalToolBuilders/ClasspathHeaders.launch</value>
+                               </dictionary>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+                       <triggers>auto,full,incremental,</triggers>
                        <arguments>
                                <dictionary>
                                        <key>LaunchConfigHandle</key>
                        <arguments>
                        </arguments>
                </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+                       <triggers>auto,full,incremental,</triggers>
+                       <arguments>
+                               <dictionary>
+                                       <key>LaunchConfigHandle</key>
+                                       <value>&lt;project&gt;/.externalToolBuilders/ClasspathJar.launch</value>
+                               </dictionary>
+                       </arguments>
+               </buildCommand>
        </buildSpec>
        <natures>
                <nature>org.eclipse.jdt.core.javanature</nature>
index 2ef1cb7a679504817ef27895e932cd7b16028029..9ffb0ea64e2a3d8e6b67517021f6971a5324740a 100644 (file)
@@ -8,15 +8,19 @@ Lillian Angel (langel@redhat.com)
 Anthony Balkissoon (abalkiss@redhat.com)
 Stuart Ballard (stuart.a.ballard@gmail.com)
 Mark Benvenuto (mcb54@columbia.edu)
+Gary Benson (gbenson@redhat.com)
 Geoff Berry (gcb@gnu.org)
 James E. Blair (corvus@gnu.org)
 Eric Blake (ebb9@email.byu.edu)
 Sascha Brawer (brawer@acm.org)
+Chris Burdess (dog@gnu.org)
+David Daney (ddaney@avtrex.com)
 Nic Ferrier (nferrier@tapsellferrier.co.uk)
 Paul Fisher (rao@gnu.org)
 David Gilbert (david.gilbert@object-refinery.com)
 Anthony Green (green@redhat.com)
 Jochen Hoenicke (Jochen.Hoenicke@Informatik.Uni-Oldenburg.de)
+Kazumitsu Ito (kaz@maczuka.gcd.org)
 Andrew John Hughes (gnu_andrew@member.fsf.org)
 Brian Jones (cbj@gnu.org)
 Roman Kennke (roman@kennke.org) 
@@ -25,8 +29,10 @@ John Keiser (jkeiser@iname.com)
 John Leuner (jewel@debian.org)
 Warren Levy (warrenl@cygnus.com)
 Sven de Marothy (sven@physto.se)
+Casey Marshall (csm@gnu.org)
 Bryce McKinlay (bryce@waitaki.otago.ac.nz)
 Audrius Meskauskas (audriusa@Bioinformatics.org)
+Raif S. Naffah (raif@swiftdsl.com.au)
 Aaron M. Renn (arenn@urbanophile.com)
 Andrew Selkirk (aselkirk@sympatico.ca)
 Christian Thalinger (twisti@complang.tuwien.ac.at)
index 75e139eec7fc4a8606baf03f7c6a85e1df1d69f1..2653abd43d4b69a2bbbe0b4d41a83772b164251c 100644 (file)
-2006-01-14  Anthony Green  <green@redhat.com>
+2005-01-13  Mark Wielaard  <mark@klomp.org>
 
-        * java/net/ServerSocket.java (accept): Remove bogus
-        security check.
-       (implAccept): Add FIXME comment.
+       * configure.ac: Set version to 0.20.
+       * NEWS: Add entries for all the new work done.
 
-2005-12-27  Tom Tromey  <tromey@redhat.com>
+2005-01-13  Mark Wielaard  <mark@klomp.org>
 
-       * gnu/java/nio/SelectorImpl.java: Added import.
+       * javax/swing/text/DefaultCaret.java: Chain all AssertionErrors.
 
-2005-12-26  Anthony Green  <green@redhat.com>
+2005-01-13  Mark Wielaard  <mark@klomp.org>
 
-        * java/net/Socket.java (connect): Don't close the socket on
-        exceptions.
+       * java/util/regex/Pattern.java (Pattern): Chain REException.
 
-        * gnu/java/nio/SocketChannelImpl.java (read): Compute the right amount
-        of data to read (dst.remaining()).
-        * gnu/java/nio/DatagramChannelImpl.java (receive): Ditto.
+2006-01-13  Chris Burdess  <dog@gnu.org>
 
-        * gnu/java/nio/SelectorImpl.java (select): Handle OP_CONNECT
-        properly.
+       * gnu/xml/xpath/NameTest.java: Removed debugging output.
 
-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>
-
-       Fixes 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>
+2005-01-13  Jeroen Frijters  <jeroen@frijters.net>
 
-       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.
+       * java/security/Security.java
+       (getProperty): Added hack to skip security check when trusted
+       code is direct caller.
 
-2005-11-17  Roman Kennke  <kennke@aicas.com>
+2005-01-13  Jeroen Frijters  <jeroen@frijters.net>
 
-       * 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
-       * classpath/examples/Makefile.am
-       (EXAMPLE_JAVA_FILES): Extended by /*/*/*.java and /*/*/*/*.java.
-       (READMES): New category.
-       (ALL_EXAMPLE_FILES): Extended by READMES category. 
+       * java/io/PrintStream.java
+       (line_separator, PrintStream(OutputStream,boolean)): Use
+       SystemProperties.
 
-2004-11-17  Bryce McKinlay  <mckinlay@redhat.com>
+2005-01-13  Jeroen Frijters  <jeroen@frijters.net>
 
-       * gnu/java/net/protocol/jar/Connection.java (getHeaderField):
-       Implemented.
-       (getLastModified): Implemented.
+       * gnu/java/nio/charset/Provider.java: Added comment about its
+       special relation with CharsetProvider.
+       (static): Removed.
+       * gnu/java/nio/charset/iconv/IconvProvider.java: Added comment about
+       its special relation with CharsetProvider.
+       (static): Removed.
+       * java/nio/charset/spi/CharsetProvider.java
+       (CharsetProvider): Add special case to skip security check for
+       built in providers.
 
-2005-11-17  Mark Wielaard  <mark@klomp.org>
+2005-01-13  Mark Wielaard  <mark@klomp.org>
 
-       * java/net/URLClassLoader.java: Reindented.
+       * javax/swing/JMenuItem.java (JMenuItem(Action)): Check whether
+       name, accel, mnemonic and command are defined before setting.
 
-2005-11-17  Roman Kennke  <kennke@aicas.com>
+2005-01-12  Mark Wielaard  <mark@klomp.org>
 
-       * 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'.
+       * javax/swing/plaf/metal/MetalFileChooserUI.java
+       (FileRenderer.getListCellRendererComponent): Set empty name and null
+       icon when File is null.
 
-2005-11-17  Roman Kennke  <kennke@aicas.com>
+2006-01-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
-       * javax/swing/plaf/basic/BasicButtonUI.java
-       (installDefaults): Don't handle the Button.rollover property here,
-       this is Metal specific and is handled in MetalButtonUI.
+       * gnu/java/rmi/server/UnicastRef.java (newCall):
+       Throw ConnectException after catching IOException.
 
-2005-11-17  Roman Kennke  <kennke@aicas.com>
+2006-01-12  Lillian Angel  <langel@redhat.com>
 
-       * javax/swing/JList.java
-       (locationToIndex): Clarified API comment.
+       * javax/swing/text/DefaultStyledDocument.java
+       (insertUpdate): Removed unneeded check.
 
-2005-11-17  Roman Kennke  <kennke@aicas.com>
+2006-01-12  Anthony Balkissoon  <abalkiss@redhat.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.
+       * javax/swing/text/DefaultStyledDocument.java:
+       (ElementBuffer.insertContentTag): If the direction is JoinNextDirection
+       and we haven't come immediately after a fracture, adjust the Element
+       offsets.  Added comment explaining the situation.
+       (insert): Return early if no ElementSpecs passed in.  Removed redundant
+       call to insertUpdate.  Fired the UndoableEditUpdate.
 
-       * java/net/URL.java (URL): If the file part of a spec is absolute,
-       ignore the file part of its context.
+2006-01-12  Ito Kazumitsu  <kaz@maczuka.gcd.org>
 
-2005-11-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       Fixes bug #22802
+       * gnu/regexp/RE.java(initialize): Fixed the parsing of
+       character classes within a subexpression.
 
-       * examples/gnu/classpath/examples/CORBA/swing/README.html:
-       Added note about the build.
-       
-2005-11-16  Anthony Balkissoon  <abalkiss@redhat.com>
+2006-12-12  Lillian Angel  <langel@redhat.com>
 
-       * javax/swing/JSplitPane.java: Reformatted file.
-       * javax/swing/plaf/basic/BasicSplitPaneUI.java: Reformatted file.
+       * javax/swing/text/DefaultStyledDocument.java
+       (insertUpdate): Added check to check if attribute set is 
+       empty.
+       (insertUpdate): Added check to determine if last character
+       is a newline. If it is, we should not be fracturing.
+       (insert): Added check to determine if attribute set is empty.
+       If it is, insertUpdate should not be called.
 
-2005-11-16  Lillian Angel  <langel@redhat.com>
+2006-12-12  Guilhem Lavaux  <guilhem@kaffe.org>
 
-       * javax/swing/ToolTipManager.java
-       (mouseEntered): No need to start the insideTimer here,
-       already called showTip.
+       * configure.ac: Check for isnan.
 
-2005-11-16  Lillian Angel  <langel@redhat.com>
+       * native/fdlibm/fdlibm.h: If we have a isnan function then do not
+       define the macro.
 
-       Fixes 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.
+2006-01-12  Chris Burdess  <dog@gnu.org>
 
-2005-11-16  Lillian Angel  <langel@redhat.com>
-       
-       Fixes 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.
+       * gnu/xml/stream/XMLParser.java: Corrected the handling of some XML
+         1.1 character ranges.
 
-2005-11-16  Roman Kennke  <kennke@aicas.com>
+2006-01-12  Anthony Balkissoon  <abalkiss@redhat.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/MetalButtonUI.java
-       (getCurrentTheme): New method.
+       * javax/swing/TransferHandler.java:
+       (TransferAction<init>): Call super constructor.  Fixes Mauve regression
+       gnu/testlet/javax/swing/JTextField/CopyPaste.
 
-2005-11-16  Gary Benson  <gbenson@redhat.com>
+2006-01-12  Christian Thalinger  <twisti@complang.tuwien.ac.at>
 
-       * java/io/FilePermission.java (implies): Correct the sense
-       in which action checks are applied.
+       * resource/Makefile.am: Install 
+       logging.properties into $(prefix)/lib.
+       * resource/Makefile.am (securitydir): Changed to 
+       $(prefix)/lib/security.
 
-2005-11-16  Anthony Balkissoon  <abalkiss@redhat.com>
+2006-01-12  Roman Kennke  <kennke@aicas.com>
 
-       * AUTHORS: Added myself.
-       * javax/swing/KeyboardManager.java: Changed @author tag to match the 
-       other ones I have.
-       * javax/swing/text/WrappedPlainView.java: Likewise.
+       * javax/swing/JTextField.java
+       (createDefaultModel): Moved installation of the filterNewlines
+       property to setDocument().
+       (setDocument): New method. Installs the filterNewlines property
+       on the document.
 
-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.
+2006-01-12  Chris Burdess  <dog@gnu.org>
 
-2005-11-16  Lillian Angel  <langel@redhat.com>
+       * gnu/xml/dom/DomNode.java,
+         gnu/xml/transform/ElementAvailableFunction.java: Removed debugging
+         output.
+       * gnu/xml/xpath/NameTest.java,
+         gnu/xml/xpath/NamespaceTest.java,
+         gnu/xml/xpath/Selector.java: Fix regression for namespace axis
+         navigation.
+       * gnu/xml/transform/MessageNode.java: Use standard logging system
+         for outputting messages.
+
+2006-01-12  Tom Tromey  <tromey@redhat.com>
+
+       * java/net/InetAddress.java (DEFAULT_CACHE_SIZE): Removed.
+       (DEFAULT_CACHE_PERIOD, DEFAULT_CACHE_PURGE_PCT): Likewise.
+       (cache_size, cache_period, cache_purge_pct, cache): Likewise.
+       (static initializer): Removed cache code.
+       (checkCacheFor, addToCache): Removed.
+       (getAllByName): Removed cache code.
+       (lookup_time): Removed.
+       (InetAddress): Updated.
+
+2006-01-12  Chris Burdess  <dog@gnu.org>
+
+       * gnu/xml/dom/DomDocument.java,
+         gnu/xml/dom/DomElement.java,
+         gnu/xml/dom/DomNode.java,
+         gnu/xml/stream/XMLParser.java,
+         gnu/xml/transform/Bindings.java,
+         gnu/xml/transform/ElementAvailableFunction.java,
+         gnu/xml/transform/ElementNode.java,
+         gnu/xml/transform/FunctionAvailableFunction.java,
+         gnu/xml/transform/NamespaceProxy.java,
+         gnu/xml/transform/StreamSerializer.java,
+         gnu/xml/transform/Stylesheet.java,
+         gnu/xml/transform/TransformerImpl.java,
+         gnu/xml/xpath/Selector.java: Implement isEqualNode correctly for
+         document and element nodes; correct coalescing semantics when parsing;
+         attribute-sets can only refer to top-level variables and parameters;
+         fix namespace retrieval during element-available and
+         function-available functions; implement xsl:fallback for extension
+         elements; tokenize whitespace correctly during whitespace stripping;
+         correct following and previous node axes selectors.
+
+2006-01-12  Roman Kennke  <kennke@aicas.com>
+
+       * java/util/Hashtable.java
+       (KeyEnumerator.nextElement): Added null check to avoid NPE.
+       (ValueEnumerator.nextElement): Added null check to avoid NPE.
+
+2006-01-12  Lillian Angel  <langel@redhat.com>
 
-       * 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.
+       * javax/swing/text/GapContent.java
+       (UndoInsertString): Changed name of class to InsertUndo to match the JDK.
+
+2006-01-12  Mark Wielaard  <mark@klomp.org>
+
+       * vm/reference/gnu/java/net/VMPlainSocketImpl.java (connect):
+       Throw UnknowHostException when name could not be resolved.
+
+2006-01-12  Jeroen Frijters  <jeroen@frijters.net>
+
+       * java/net/URL.java
+       (static, getURLStreamHandler): Use SystemProperties.
+
+2006-01-12  Mark Wielaard  <mark@klomp.org>
+
+       * vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java (receive):
+       Use packet.getLength().
+       * native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c
+       (nativeReceive): Check whether the receiver wants zero bytes.
+
+2006-01-12  Mark Wielaard  <mark@klomp.org>
+
+       * native/jni/java-net/javanet.c (_javanet_recvfrom): Return -1 when
+       other side orderly closed connection.
+       * vm/reference/gnu/java/net/VMPlainSocketImpl.java
+       (read(PlainSocketImpl)): Mask byte to return unsigned int. Return -1
+       when end of stream reached.
+
+2006-01-12  Mark Wielaard  <mark@klomp.org>
+
+       * native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c:
+       Remove asserts.
+       * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c: Likewise.
+       * native/jni/java-net/java_net_VMInetAddress.c: Likewise.
+       * native/jni/java-net/java_net_VMNetworkInterface.c: Likewise.
+       * native/jni/java-net/javanet.c: Likewise.
+
+2006-01-12  Mark Wielaard  <mark@klomp.org>
+
+       * native/fdlibm/mprec.c (Balloc): Disable assert to workaround
+       PR classpath/23863.
+
+2006-01-11  Chris Burdess  <dog@gnu.org>
+
+       * gnu/xml/transform/AttributeNode.java,
+         gnu/xml/transform/ElementNode.java,
+         gnu/xml/transform/LiteralNode.java,
+         gnu/xml/transform/StreamSerializer.java,
+         gnu/xml/transform/StrippingInstruction.java,
+         gnu/xml/transform/Stylesheet.java,
+         gnu/xml/transform/TransformerImpl.java,
+         gnu/xml/transform/ValueOfNode.java,
+         gnu/xml/xpath/Expr.java,
+         gnu/xml/xpath/LocalNameFunction.java,
+         gnu/xml/xpath/NameFunction.java,
+         gnu/xml/xpath/NameTest.java,
+         gnu/xml/xpath/NamespaceUriFunction.java,
+         gnu/xml/xpath/NodeTypeTest.java,
+         gnu/xml/xpath/SubstringFunction.java,
+         javax/xml/namespace/QName.java: don't determine element namespace
+         from namespace aliases when specified; better namespace handling
+         when serializing elements; don't create HTML meta element unless
+         head element exists; correct encoding of CDATA sections containing
+         ']]>'; encode HTML character entity references; use ISO-Latin-1 as
+         default encoding for HTML output; rewrite of XSLT
+         strip-space/preserve-space handling; correct doctype-public and
+         doctype-system output attributes; insert generated doctype before
+         document element; fixed result tree whitespace stripping
+         algorithm; fixed semantics of XPath name, local-name, and
+         namespace-uri functions; name tests handle XML/XMLNS namespaces
+         correctly; fixed semantics of processing-instruction node test.
+       * gnu/xml/transform/TransformerFactoryImpl.java: Add main method to
+         aid debugging.
+
+2006-01-11  Lillian Angel  <langel@redhat.com>
 
-2005-11-16  Anthony Balkissoon  <abalkiss@redhat.com>
+       * javax/swing/text/DefaultStyledDocument.java
+       (insertFracture): Added calls to addEdit for each time a structure 
+       is changed. addEdit is called on the newBranch, previous, and parent
+       structures.
 
-       * javax/swing/text/PlainDocument.java:
-       (insertString): Null check fixes PR 24890.
+2006-01-11  Anthony Balkissoon  <abalkiss@redhat.com>
 
-2005-11-16  Lillian Angel  <langel@redhat.com>
+       * javax/swing/text/DefaultStyledDocument.java:
+       (ElementBuffer.insertContentTag): Don't adjust the structure here.  
+       This will have been taken care of in insertFracture.  Added a comment
+       explaining that we need to add edits to the DocumentEvent and that
+       this may be the place to do it.
 
-       * javax/swing/plaf/basic/BasicTreeUI.java
-       (paintVerticalPartOfLeg): Added a check to prevent
-       ArrayOutOfBoundsException.
+2006-01-11  Anthony Balkissoon  <abalkiss@redhat.com>
 
-2005-11-16  Roman Kennke  <kennke@aicas.com>
+       * javax/swing/text/DefaultStyledDocument.java:
+       (ElementBuffer.insertUpdate): Properly recreate Elements if the first
+       tag is an end tag. Avoid NPE by pushing the proper Element on to the 
+       elementStack when there is a start tag with JoinNextDirection.
+
+2006-01-11  Roman Kennke  <kennke@aicas.com>
+
+       Reported by: Fridjof Siebert <siebert@aicas.com>
+       * java/util/Hashtable.java
+       (KEYS): Removed unneeded field.
+       (VALUES): Removed unneeded field.
+       (ENTRIES): Removed unneeded field.
+       (keys): Return a KeyEnumerator instance.
+       (elements): Returns a ValueEnumerator instance.
+       (toString): Use an EntryIterator instance.
+       (keySet): Return a KeyIterator instance.
+       (values): Return a ValueIterator instance.
+       (entrySet): Return an EntryIterator instance.
+       (hashCode): Use EntryIterator instance.
+       (rehash): Changed this loop to avoid redundant reads and make
+       it obvious that null checking is not needed.
+       (writeObject): Use EntryIterator instance.
+       (HashIterator): Removed class.
+       (Enumerator): Removed class.
+       (EntryIterator): New class.
+       (KeyIterator): New class.
+       (ValueIterator): New class.
+       (EntryEnumerator): New class.
+       (KeyEnumerator): New class.
+       (ValueEnumerator): New class.
+
+2006-01-11  Lillian Angel  <langel@redhat.com>
 
-       * javax/swing/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.
+       * javax/swing/text/DefaultStyledDocument.java
+       (toString): Shouldn't append the '>' character here.
+       (createDefaultRoot): Should not set the resolve parent. This
+       causes problems when comparing attribute sets.
 
-2005-11-16  Lillian Angel  <langel@redhat.com>
+2006-01-10  Anthony Balkissoon  <abalkiss@redhat.com>
 
-       * javax/swing/ToolTipManager.java:
-       Removed unneeded fields.
-       (showTip): Re-implemented to use PopupFactory.
-       (hideTip): Likewise.
-       (adjustLocation): Fixed location.
+       * javax/swing/text/DefaultStyledDocument.java:
+       (ElementBuffer.insertUpdate): Rewritten to properly handle start and
+       end tags.
+       (ElementBuffer.insertFracture): New method.
+       (ElementBuffer.insertContentTag): Removed unnecessary case for 
+       JoinFractureDirection - this only applies to start tags, not content
+       tags.
+       (insertUpdate): Corrected conditions for setting direction to 
+       JoinNextDirection.
 
-2005-11-16  Anthony Balkissoon  <abalkiss@redhat.com>
+2006-01-10  Roman Kennke  <kennke@aicas.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.
+       * Makefile.am (EXTRA_DIST): Added ChangeLog-2004.
+       * ChangeLog-2005: New File.
 
-2005-11-16  Roman Kennke  <kennke@aicas.com>
+2006-01-10  Roman Kennke  <kennke@aicas.com>
 
-       * javax/swing/plaf/basic/BasicMenuItemUI.java
-       (paintMenuItem): Always call paintBackground().
+       * native/jni/java-nio/java_nio_VMDirectByteBuffer.c
+       (get): Release the array with the correct pointer.
+       (put): Release the array with the correct pointer. Copy the array
+       around _before_ releasing it.
 
-2005-11-16  Lillian Angel  <langel@redhat.com>
+2006-01-10  Roman Kennke  <kennke@aicas.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.
+       * javax/swing/ViewportLayout.java
+       (layoutContainer): Fixed condition, to avoid ClasscastException.
 
-2005-11-16  Roman Kennke  <kennke@aicas.com>
+2006-01-10  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.
+       * javax/swing/plaf/basic/BasicSplitPaneDivider.java
+       (MouseHandler.mousePressed): Fixed indendation.
+       (MouseHandler.mouseDragged): Fixed indendation.
 
-2005-11-16  Roman Kennke  <kennke@aicas.com>
+2006-01-10  Roman Kennke  <kennke@aicas.com>
 
-       * javax/swing/JMenu.java
-       (JMenu()): Set opaque flag to false.
-       (JMenu(String)): Likewise.
-       (JMenu(Action)): Likewise.
+       * javax/swing/plaf/basic/BasicLookAndFeel.java
+       (playSound): Added @since 1.4 to the API docs.
 
-2005-11-16  Roman Kennke  <kennke@aicas.com>
+2006-01-10  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>
+       (maybeUpdateLayoutState): Also update the layout state, if the
+       list has been invalidated since the last update.
 
-       * 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.
+2006-01-10  Roman Kennke  <kennke@aicas.com>
 
-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/ComponentUI.java
+       (update): Fixed indendation.
 
-       * 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().
+2006-01-10  Roman Kennke  <kennke@aicas.com>
 
-2005-11-15  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+       * javax/swing/ViewportLayout.java
+       (layoutContainer): Fixed condition, so that Scrollable components
+       are always forced to have to Viewport size, when they
+       return true for getScrollableTracksViewportHeight() and ..Width().
 
-       * 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.
+2006-01-10  Roman Kennke  <kennke@aicas.com>
 
-2005-11-15  Lillian Angel  <langel@redhat.com>
+       * javax/swing/RepaintManager.java
+       (validateInvalidComponents): Fixed condition to avoid NPE.
 
-       * 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>
+2006-01-10  Roman Kennke  <kennke@aicas.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:
+       (static_initializer): Removed unused variable myScrollMode.
 
-       * javax/swing/JViewport.java
-       (JViewport): Recognize setting of a system property
-       gnu.javax.swing.JViewport for the scrollMode.
+2006-01-10  Roman Kennke  <kennke@aicas.com>
 
-2005-11-15  Roman Kennke  <kennke@aicas.com>
+       * javax/swing/JTabbedPane.java:
+       Cleared API docs a little.
 
-       * javax/swing/plaf/metal/MetalUtils.java
-       (fillMetalPattern2D): Fixed the texture width.
-       (initializePattern): Made texture transparent.
+2006-01-10  Roman Kennke  <kennke@aicas.com>
 
-2005-11-15  Roman Kennke  <kennke@aicas.com>
+       * java/util/StringTokenizer.java
+       (StringTokenizer(String, String, boolean)):
+       Don't trigger NPE here for conformance with the spec.
 
-       * javax/swing/JTextField.java
-       (createDefaultModel): Set the filterNewlines property on the created
-       model.
+2006-01-10  Roman Kennke  <kennke@aicas.com>
 
-2005-11-15  Roman Kennke  <kennke@aicas.com>
+       * java/util/ArrayList.java
+       (DEFAULT_CAPACITY): Changed default capacity to 10, as specified.
 
-       * 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.
+2006-01-10  Roman Kennke  <kennke@aicas.com>
 
-2005-11-14  Wolfgang Baer  <WBaer@gmx.de>
+       * gnu/java/awt/peer/gtk/GdkGraphics2D.java
+       (GdkGraphics2D(GdkGraphics2D)): Added null check for the bg
+       field to avoid NPE.
 
-       * 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.
+2006-01-10  Roman Kennke  <kennke@aicas.com>
 
-2005-11-14  Lillian Angel  <langel@redhat.com>
+       * native/jni/java-net/javanet.c
+       (_javanet_shutdownOutput): Replaced strerror() with
+       TARGET_NATIVE_LAST_ERROR_STRING() for portability.
+       (_javanet_shutdownInput): Replaced strerror() with
+       TARGET_NATIVE_LAST_ERROR_STRING() for portability.
 
-       * 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.
+2006-01-10  Robert Schuster  <robertschuster@fsfe.org>
 
-2005-11-14  Anthony Balkissoon  <abalkiss@redhat.com>
+       * java/beans/EventSetDescriptor.java: Reformatted and
+       fixed API docs.
 
-       * javax/swing/JMenuBar.java:
-       (removeNotify): Unregister this JMenuBar from the KeyboardManager.
-       * javax/swing/KeyboardManager.java:
-       (unregisterJMenuBar): New implementation method.
+2006-01-10  Roman Kennke  <kennke@aicas.com>
 
-2005-11-14  Anthony Balkissoon  <abalkiss@redhat.com>
+       * java/lang/SecurityManager.java
+       Fully qualified AWT class references in API docs.
 
-       * 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>
+2006-01-10  Robert Schuster  <robertschuster@fsfe.org>
 
-       * 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.
+        * java/beans/EventSetDescriptor.java:
+        (getGetListenerMethod): New method.
 
-2005-11-14  Tom Tromey  <tromey@redhat.com>
+2006-01-10  Mark Wielaard  <mark@klomp.org>
 
-       * java/applet/Applet.java (URLAudioClip): New class.
-       (newAudioClip): Implemented.
-       * gnu/java/beans/DummyAppletContext.java (getAudioClip): Use
-       Applet.newAudioClip.
-       (DUMMY_CLIP): Removed.
-       (DummyAudioClip): Removed.
+       * lib/Makefile.am (GCJX): Add -g to get linenumber info.
 
-2005-11-14  Tom Tromey  <tromey@redhat.com>
+2006-01-10  Jeroen Frijters  <jeroen@frijters.net>
 
-       * javax/sound/sampled/Line.java (open): Throws
-       LineUnavailableException.
+       PR classpath/25727
+       * java/util/Hashtable.java
+       (contains): Call equals on existing value.
+       (containsKey, get, put, remove): Call equals on existing key.
+       (getEntry): Call equals on existing entry.
 
-2005-11-14  Roman Kennke  <kennke@aicas.com>
+2006-01-10  Jeroen Frijters  <jeroen@frijters.net>
 
-       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.
+       PR classpath/24618
+       * java/util/AbstractMap.java
+       (equals(Object,Object)): Test for identity first.
+       * java/util/WeakHashMap.java
+       (WeakBucket.WeakEntry.equals): Use helper method to determine equality.
+       (WeakBucket.WeakEntry.toString): Fixed string representation of
+       null key.
+       (internalGet): Use helper method to determine equality.
 
-2005-11-14  Roman Kennke  <kennke@aicas.com>
+2006-01-09  Robert Schuster  <robertschuster@fsfe.org>
 
-       * javax/swing/JLayeredPane.java
-       (paint): Only clear the background if the layeredPane is opaque.
+       * java/beans/EventSetDescriptor.java: Implemented the two 1.4
+       constructors.
 
-2005-11-14  Roman Kennke  <kennke@aicas.com>
+2006-01-09  Anthony Balkissoon  <abalkiss@redhat.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.
+       * javax/swing/text/PlainDocument.java:
+       (insertUpdate): Handle special case of an insertion immediately 
+       following a newline character.
 
-2005-11-14  Roman Kennke  <kennke@aicas.com>
+2006-01-09  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.
+       * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c
+       (connect): Added stream parameter to _connect() call.
+       * native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c
+       (connect): Added stream parameter to _connect() call.
+       * native/jni/java-net/javanet.c
+       (_javanet_create_localfd): Added stream parameter. Look up
+       fd field based on the stream parameter either in SocketImpl or
+       in DatagramSocketImpl.
+       (_javanet_connect): Added stream parameter. Call create_localfd
+       using this stream parameter. Set localPort field either in
+       SocketImpl or in DatagramSocketImpl, depending on the stream
+       flag.
+       * native/jni/java-net/javanet.c
+       (_javanet_connect): Added stream parameter.
 
-2005-11-14  Roman Kennke  <kennke@aicas.com>
+2006-01-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
-       * javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
-       (setButtonIcons): Only set icons if buttons are != null.
+       * javax.management.Attribute.java: Grammar and 
+       formatting fixes.
 
-2005-11-14  Roman Kennke  <kennke@aicas.com>
+2006-01-09  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/plaf/basic/BasicLookAndFeel.java
-       (initComponentDefaults): Fixed some UI defaults used by ProgressBar.
+       * gnu/java/nio/channels/FileChannelImpl.java (map): Throw correct
+       exception when channel is not readable or writable.
+       * native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c
+       (mapImpl): Add PROT_WRITE when mode == 'c' (MAP_PRIVATE). Make sure
+       there is enough space to mmap().
 
-2005-11-14  Roman Kennke  <kennke@aicas.com>
+2006-01-09  Robert Schuster  <robertschuster@fsfe.org>
 
-       * 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).
+       * java/beans/Introspector.java:
+       (getBeanInfo(Class, int)): New method.
+       (getBeanInfo(Class, Class): Moved common code in a new method.
+       (merge): New method.
 
-2005-11-14  Roman Kennke  <kennke@aicas.com>
+2006-01-09  Robert Schuster  <robertschuster@fsfe.org>
 
-       * javax/swing/plaf/basic/BasicTextUI.java
-       (uninstallListeners): Uninstall the document listener here.
-       (getVisibleEditorRect): Fetch the textComponent via getComponent().
+       * java/beans/XMLEncoder.java: Fix spelling mistakes.
 
-2005-11-14  Roman Kennke  <kennke@aicas.com>
+2006-01-09  Anthony Balkissoon  <abalkiss@redhat.com>
 
-       * javax/swing/text/BoxView.java
-       (paint): Only paint child if it is inside the current clip.
+       * javax/swing/text/DefaultStyledDocument.java:
+       (insertUpdate): Removed call to checkForInsertAfterNewline and instead
+       inlined this method because it needs to change the value of the 
+       finalStartTag and finalStartDirection variables.
+       (checkForInsertAfterNewline): Removed this method.
+       (handleInsertAfterNewline): Added case for making the start tag's 
+       direction JoinNextDirection.
 
-2005-11-14  Roman Kennke  <kennke@aicas.com>
+2006-01-09  Lillian Angel  <langel@redhat.com>
 
-       * javax/swing/AbstractButton.java
-       (setEnabled): Also set focusable flag on the button when the enabled
-       property changes.
+       * javax/swing/plaf/basic/BasicTreeUI.java:
+       Added new field.
+       (setRowHeight): Row height is set to the max height of
+       all the nodes, or 20 as a default value.
+       (getPathBounds): Cleaned up code.
+       (getMaxHeight): New helper function that gets the max 
+       height of all the rows.
+       (getClosestPathForLocation): Fixed to use getMaxHeight.
+       (updateCachedPreferredSize): Likewise.
+       (installUI): Shouldn't expand tree on startup.
+       (getNodeDimensions): Fixed to use getMaxHeight. 
 
-2005-11-14  Roman Kennke  <kennke@aicas.com>
+2006-01-09  Mark Wielaard  <mark@klomp.org>
 
-       * 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>
+       * javax/swing/JList.java (setSelectedIndex): Clear selection when
+       argument is negative.
 
-       * 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>
+2006-01-08  Mark Wielaard  <mark@klomp.org>
 
-       * java/io/ObjectInputStream.java
-       (processResolution): Pass Error, RuntimeException and
-       ObjectStreamException through to the caller.
-       (readObject): Documentation update.
+       * java/net/InetAddress.java (getInaddrAny): Explicitly set hostName.
 
-2005-11-11  Mark Wielaard  <mark@klomp.org>
-           Anthony Green  <green@redhat.com>
+2006-01-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
-       * 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.
+       * javax.management.Attribute.java: New file. 
 
-2005-11-11  Lillian Angel  <langel@redhat.com>
+2006-01-09  Roman Kennke  <kennke@aicas.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.
+       * java/net/DatagramSocketImpl.java
+       (localPort): Renamed to localport for correct access from native
+       code.
 
-2005-11-11  Archie Cobbs  <archie@dellroad.org>
+2006-01-09  Roman Kennke  <kennke@aicas.com>
 
-       * autogen.sh: Fix broken libtool version detection on FreeBSD.
+       * javax/swing/Popup.java
+       (LightweightPopup.hide): Repaint the layered pane when popup is
+       removed.
 
-2005-11-11  Lillian Angel  <langel@redhat.com>
+2006-01-09  Roman Kennke  <kennke@aicas.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.
+       (remove): Don't repaint the container here.
+
+2006-01-08  Tom Tromey  <tromey@redhat.com>
+
+       * java/lang/InheritableThreadLocal.java: Organized imports.
+
+2006-01-08  Ito Kazumitsu  <kaz@maczuka.gcd.org>  
+
+       Fixes bug #25679
+       * gnu/regexp/RETokenRepeated.java(match): Optimized the case
+       when an empty string matched an empty token.
+
+2006-01-08  Chris Burdess  <dog@gnu.org>
+
+       * gnu/xml/stream/SAXParser.java: Check standalone status for mixed
+         content models from external entities.
+       * gnu/xml/stream/UnicodeReader.java: Report error instead of
+         attempting to continue with unpaired surrogates.
+       * gnu/xml/stream/XMLParser.java: Don't normalize LF equivalents when
+         resolving entities with character entity references; better
+         checking of valid character ranges; don't report an error for URI
+         fragments in notation declarations; check unbound namespace
+         prefixes for elements and attributes, including XML 1.1 unbinding
+         syntax; namespace-aware checking of attribute duplicates.
+
+2006-01-08  Robert Schuster  <robertschuster@fsfe.org>
+
+       * java/beans/Statement.java: Doc fixes.
+       (doExecute): Workaround for Class.forName call.
+       (toString): Made output look more like on the JDK.
+       * java/beans/Expression.java: Doc fixes.
+       (toString): Made output look more like on the JDK.
+       * java/beans/PersistenceDelegate.java,
+       java/beans/DefaultPersistenceDelegate.java,
+       java/beans/Encoder.java,
+       java/beans/XMLEncoder.java: New file.
+       * gnu/java/beans/encoder/ArrayPersistenceDelegate.java,
+       gnu/java/beans/encoder/ClassPersistenceDelegate.java,
+       gnu/java/beans/encoder/CollectionPersistenceDelegate.java,
+       gnu/java/beans/encoder/Context.java,
+       gnu/java/beans/encoder/GenericScannerState.java,
+       gnu/java/beans/encoder/IgnoringScannerState.java,
+       gnu/java/beans/encoder/MapPersistenceDelegate.java,
+       gnu/java/beans/encoder/ObjectId.java,
+       gnu/java/beans/encoder/PrimitivePersistenceDelegate.java,
+       gnu/java/beans/encoder/ReportingScannerState.java,
+       gnu/java/beans/encoder/Root.java,
+       gnu/java/beans/encoder/ScanEngine.java,
+       gnu/java/beans/encoder/ScannerState.java,
+       gnu/java/beans/encoder/StAXWriter.java,
+       gnu/java/beans/encoder/Writer.java: New file.
+       * gnu/java/beans/encoder/elements/Array_Get.java,
+       gnu/java/beans/encoder/elements/Element.java,
+       gnu/java/beans/encoder/elements/List_Set.java,
+       gnu/java/beans/encoder/elements/Array_Set.java,
+       gnu/java/beans/encoder/elements/NullObject.java,
+       gnu/java/beans/encoder/elements/StaticMethodInvocation.java,
+       gnu/java/beans/encoder/elements/StaticFieldAccess.java,
+       gnu/java/beans/encoder/elements/StringReference.java,
+       gnu/java/beans/encoder/elements/ClassResolution.java,
+       gnu/java/beans/encoder/elements/ArrayInstantiation.java,
+       gnu/java/beans/encoder/elements/PrimitiveInstantiation.java,
+       gnu/java/beans/encoder/elements/ObjectReference.java,
+       gnu/java/beans/encoder/elements/ObjectInstantiation.java,
+       gnu/java/beans/encoder/elements/List_Get.java,
+       gnu/java/beans/encoder/elements/MethodInvocation.java: New file.
+
+2006-01-08  Chris Burdess  <dog@gnu.org>
+
+       * java/lang/Character.java (toChars,toCodePoint): Correct these
+         methods to use algorithms from Unicode specification.
+2006-01-08  Mark Wielaard  <mark@klomp.org>
 
-2005-11-11  Mark Wielaard  <mark@klomp.org>
+       * native/jni/xmlj/Makefile.am (libxmlj_la_LIBADD): Add jcl.o.
 
-       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.
+2006-01-07  Paul Jenner  <psj@harker.dyndns.org>
 
-2005-11-11  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       Fixes bug #25711
+       * examples/Makefile.am: Corrected DESTDIR install paths.
 
-       * 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>
+2006-01-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
-       * javax/swing/plaf/metal/MetalRadioButtonUI.java
-       (paintFocus): Centered border around rectangle. It seemed
-       a bit offset and too small at times.
+       * org/omg/CORBA/INVALID_ACTIVITY.java: Removed non - 
+       ASCII character (line 46).
 
-2005-11-10  Roman Kennke  <kennke@aicas.com>
+2006-01-07  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.
+       * javax/swing/text/TableView.java: New file.
 
-2005-11-10  Anthony Balkissoon  <abalkiss@redhat.com>
+2006-01-07  Chris Burdess  <dog@gnu.org>
 
-       * 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>
+       * gnu/xml/stream/BufferedReader.java: Removed commented out code.
+       * gnu/xml/stream/XIncludeFilter.java: Correct XML Base behaviour.
+       * gnu/xml/stream/XMLParser.java: Make additional StAX properties
+         available; correct handling of unparsed entity references;
+         absolutize all base URIs; remove commented out code.
 
-       * 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.
+2006-01-07  Chris Burdess  <dog@gnu.org>
 
-2005-11-10  Roman Kennke  <kennke@aicas.com>
+       * gnu/xml/stream/SAXParser.java,
+         gnu/xml/stream/XMLParser.java: Add SAX property to return base
+         URI of the current event.
 
-       * javax/swing/JComponent.java
-       (paintingTile): New field.
-       (isPaintingTile): Implemented.
-       (paintChildren): Optimized painting of overlapping children.
+2006-01-07  Chris Burdess  <dog@gnu.org>
 
-2005-11-10  Mark Wielaard  <mark@klomp.org>
+       * gnu/xml/stream/SAXParser.java: Add SAX feature to set XML Base
+         aware processing.
 
-       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.
+2006-01-07  Chris Burdess  <dog@gnu.org>
 
-2005-11-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * gnu/xml/stream/SAXParser.java,
+         gnu/xml/stream/XIncludeFilter.java,
+         gnu/xml/stream/XMLParser.java: Updated documentation.
 
-       * 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.
+2006-01-07  Chris Burdess  <dog@gnu.org>
 
-2005-11-09  Anthony Balkissoon  <abalkiss@redhat.com>
+       * AUTHORS: add self.
 
-       * 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.  
+2006-01-06  Casey Marshall  <csm@gnu.org>
 
-2005-11-09  Roman Kennke  <kennke@aicas.com>
+       * AUTHORS: add myself.
 
-       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.
+2006-01-06  Casey Marshall  <csm@gnu.org>
 
-2005-11-09  Roman Kennke  <kennke@aicas.com>
+       PR classpath/25699
+       * javax/crypto/CipherInputStream.java (logger): new constant.
+       (cipher): make final.
+       (outLength, inBuffer, inLength): removed.
+       (isStream): make final.
+       (VIRGIN, LIVING, DYING, DEAD, state): removed.
+       (eof): new field.
+       (<init>): call `super,' not `this;' remove `inBuffer' and
+       `outBuffer' initialization; init `eof;' add debug logging.
+       (<init>): call `this' with a new null cipher.
+       (available): fix javadoc to reflect the real semantics; if we
+       don't have a buffer, call `nextBlock.'
+       (close): synchronize.
+       (read): synchronize; fix testing for buffered data.
+       (read): synchronize; add `skip' semantics if first argument is
+       `null;' decrypt stream cipher data only if there is any; fix tests
+       for buffered data.
+       (skip): stop using `available' to see how many data are buffered.
+       (nextBlock): simplify to use cipher-allocated output buffers
+       instead of internally allocated ones.
 
-       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.
+2006-01-06  Tom Tromey  <tromey@redhat.com>
 
-2005-11-09  Roman Kennke  <kennke@aicas.com>
+       * java/lang/String.java (codePointCount): Fixed javadoc.
 
-       * java/io/InputStreamReader.java
-       (InputStreamReader(InputStream, CharsetDecoder)): Catch the case
-       when the CharsetDecoder returns a null charset and handle it like
-       US-ASCII.
+2006-01-06  Tom Tromey  <tromey@redhat.com>
 
-2005-11-09  Mark Wielaard  <mark@klomp.org>
+       * java/lang/String.java (contains): Added @since.
 
-       Reported by Petteri Räty <betelgeuse@gentoo.org>
-       * INSTALL: Remove double --enable-xmlj entry.
+2006-01-06  Ito Kazumitsu  <kaz@maczuka.gcd.org>  
 
-2005-11-09  Anthony Balkissoon  <abalkiss@redhat.com>
+       Fixes bug #25616
+       * gnu/regexp/RE.java(initialize): Allow repeat.empty.token.
+       * gnu/regexp/RETokenRepeated.java(match): Break the loop
+       when an empty string matched an empty token.
 
-       * 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.
+2006-01-06  Jeroen Frijters  <jeroen@frijters.net>
 
-2005-11-09  Lillian Angel  <langel@redhat.com>
+       PR classpath/24858
+       * gnu/java/util/WeakIdentityHashMap.java: New file.
+       * java/lang/InheritableThreadLocal.java
+       (newChildThread): Modified to remove key indirection.
+       * java/lang/Thread.java
+       (locals): Changed type to WeakIdentityHashMap.
+       (getThreadLocals): Instantiate WeakIdentityHashMap instead of
+       WeakHashMap.
+       * java/lang/ThreadLocal.java
+       (key, Key): Removed.
+       (get, set): Changed to use "this" instead of "key".
 
-       * 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.
+2006-01-06  Dalibor Topic  <robilad@kaffe.org>
 
-2005-11-09  Lillian Angel  <langel@redhat.com>
+       * native/fdlibm/Makefile.am (libfdlibm_la_SOURCES): Removed java-assert.h.
 
-       * 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.
+       * native/fdlibm/java-assert.h: Removed file.
 
-2005-11-09  Mark Wielaard  <mark@klomp.org>
+       * native/fdlibm/mprec.c: Include assert.h. Don't include java-assert.h.
+       Replaced use of JvAssert by assert.
 
-       * doc/www.gnu.org/cp-tools/cp-tools.wml: Add gjdoc download link.
+2006-01-05  Anthony Balkissoon  <abalkiss@redhat.com>
 
-2005-11-09  Chris Burdess  <dog@gnu.org>
+       * javax/swing/text/DefaultCaret.java:
+       (setDot): Fixed paramater to Math.max to be this.dot and not the 
+       parameter dot.
 
-       * gnu/xml/aelfred2/SAXDriver.java: Ensure that absolutize does not
-       throw exception when custom entity resolver is set.
+2006-01-05  Roman Kennke  <kennke@aicas.com>
 
-2005-11-09  Anthony Balkissoon  <abalkiss@redhat.com>
+       * javax/swing/plaf/basic/BasicListUI.java
+       (getCellHeight): New helper method.
+       (getCellBounds): Use new helper method for determining the cell
+       height.
+       (paint): Don't call list.indexToLocation() but instead call
+       directly into the same UI method.
+       (locationToIndex): Fixed calculation of # visible rows and handling
+       of cell heights.
+       (indexToLocation): Fixed calculation of # visible rows and handling
+       of cell heights.
 
-       * 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.
+2006-01-05  Roman Kennke  <kennke@aicas.com>
 
-2005-11-09  Anthony Balkissoon  <abalkiss@redhat.com>
+       * javax/swing/plaf/metal/MetalFileChooserUI.java
+       (createList): Set VERTICAL_SCROLLBAR_NEVER mode on the JScrollPane
+       in the file chooser.
 
-       * 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.
+2006-01-05  Anthony Balkissoon  <abalkiss@redhat.com>
 
-2005-11-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * javax/swing/JTextPane.java:
+       (replaceSelection): If the document is an AbstractDocument, use replace
+       rather than remove and insert.
+       * javax/swing/event/EventListenerList.java:
+       (getListeners): Reversed the order of the listeners to match the 
+       reference implementation.
+       * javax/swing/text/AbstractDocument.java:
+       (insertString): Add the UndoableEdit from the content.insertString call
+       to the DocumentEvent.
+       (DefaultDocumentEvent.toString): Implemented.
+       * javax/swing/text/DefaultCaret.java:
+       (setDot): Make sure dot is > 0 and less than the length of the 
+       document.
+       * javax/swing/text/DefaultStyledDocument.java:
+       (ElementBuffer.insertUpdate): Set the modified tag of the document 
+       event when we get start and end tags.  This ensures that we create the
+       proper BranchElements in endEdit().
+       (ElementBuffer.insertUpdate): Added FIXME to handle 
+       JoinFractureDirection case.
+       (insertUpdate): Added code to check if we're inserting immediately 
+       after a newline and to handle this case (create start and end tags). 
+       Only change the direction of the first and last tags if they are of 
+       type ContentType.
+       (checkForInsertAfterNewline): New helper method.
+       (handleInsertAfterNewline): Likewise.
+       * javax/swing/text/View.java:
+       (updateLayout): Avoid NPE by checking if shape is null.  Repaint 
+       container.
+
+2006-01-05  Mark Wielaard  <mark@klomp.org>
+
+       * newsitems.txt: Add fosdem meeting.
+       * events/events.wml: Likewise.
+       * events/fosdem06.wml: New file.
+       
+2006-01-05  Lillian Angel  <langel@redhat.com>
+       
+       * javax/swing/text/GapContent.java
+       (createPosition): No positions should be created inside the
+       gap. Fixed check to ensure this does not happen.
 
-       * org/omg/PortableInterceptor/ObjectReferenceTemplate.java,
-       org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java,
-       org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.java:
-       New files.
+2006-01-05  Roman Kennke  <kennke@aicas.com>
 
-2005-11-09  Lillian Angel  <langel@redhat.com>
+       * javax/swing/RepaintManager.java
+       (validateInvalidComponents): Search for the validate root
+       and start validating there.
 
-       * 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.
+2006-01-05  Roman Kennke  <kennke@aicas.com>
 
-2005-11-09  David Gilbert  <david.gilbert@object-refinery.com>
+       * javax/swing/plaf/basic/BasicListUI.java
+       (ComponentHandler): Removed unneeded class.
+       (ListDataHandler.contentsChanged): Revalidate instead of calling
+       damageLayout().
+       (ListDataHandler.intervalAdded): Revalidate instead of calling
+       damageLayout().
+       (ListDataHandler.intervalRemoved): Revalidate instead of calling
+       damageLayout().
+       (PropertyChangeHandler.propertyChange): Or flags together instead
+       of adding them. Don't call damageLayout().
+       (componentListener): Removed unnecessary field.
+       (damageLayout): Removed unnecessary method.
+       (installListeners): Don't install unnecessary listeners.
+       (uninstallListeners): Dito.
+       (getPreferredSize): Don't ask for the real list height and
+       calculate with the previously calculated list height.
+       (locationToIndex): Renamed list parameter to l so that it doesn't
+       shadow the field with the same name.
+       (indexToLocation): Renamed list parameter to l so that it doesn't
+       shadow the field with the same name.
+
+2006-01-04  Tom Tromey  <tromey@redhat.com>
+
+       * include/.cvsignore: Ignore config-int.h.
+
+2006-01-04  Roman Kennke  <kennke@aicas.com>
 
-       * 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.
+       * javax/swing/plaf/basic/BasicListUI.java
+       (getPreferredSize): Rewritten to match the specs.
 
-2005-11-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+2006-01-04  Roman Kennke  <kennke@aicas.com>
 
-       * org/omg/PortableInterceptor/ObjectReferenceFactory.java: Do not
-       inherit from org.omg.CORBA.Object.
+       * javax/swing/JFileChooser.java
+       (showOpenDialog): Set fixed width on the dialog.
+       (showSaveDialog): Set fixed width on the dialog.
+       (showDialog): Set fixed width on the dialog.
 
-2005-11-09  Roman Kennke  <kennke@aicas.com>
+2006-01-04  Roman Kennke  <kennke@aicas.com>
 
-       * javax/swing/plaf/ComponentUI.java
-       (update): Restore the foreground color after filling the background.
+       * javax/swing/plaf/basic/BasicListUI.java
+       (locationToIndex): Added FIXME about getVisibleRowCount() usage.
+       Adjusted iteration to not use visibleRowCount and instead iterate
+       over the real number of elements in cellHeights.
+       (indexToLocation): Added FIXME about getVisibleRowCount() usage.
+       Adjusted iteration to not use visibleRowCount and instead iterate
+       over the real number of elements in cellHeights.
+
+2006-01-04  Roman Kennke  <kennke@aicas.com>
+
+       * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c,
+       * native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c:
+       Added __attribute__((__unused__)) macros to avoid gcc warnings.
+
+2006-01-04  Roman Kennke  <kennke@aicas.com>
+
+       * vm/reference/gnu/java/net/VMPlainSocketImpl.java: New VM class.
+       * vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java:
+       New VM class.
+       * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c: New file.
+       * native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c:
+       New file.
+       * native/jni/java-net/gnu_java_net_PlainDatagramSocketImpl.c:
+       Removed.
+       * native/jni/java-net/gnu_java_net_PlainSocketImpl.c: Removed.
+       * native/jni/java-net/Makefile.am: Adjusted for new source files.
+       * gnu/java/net/PlainDatagramSocketImpl.java: Use new VM interface.
+       * gnu/java/net/PlainSocketImpl.java: Use new VM interface.
+       * include/gnu_java_net_PlainDatagramSocketImpl.h: Removed.
+       * include/gnu_java_net_PlainSocketImpl.h: Removed.
+       * include/gnu_java_net_VMPlainDatagramSocketImpl.h: New header file.
+       * include/gnu_java_net_VMPlainSocketImpl.h: New header file.
 
-2005-11-09  Roman Kennke  <kennke@aicas.com>
+2006-01-04  Lillian Angel  <langel@redhat.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.
+       * javax/swing/plaf/metal/MetalFileChooserUI.java
+       (propertyChange): Fixed to change the combo box label
+       appropriately. Also, fixed to set the textfield's text
+       correctly.
+       (editFile): Fixed size of editing field.
+       (installComponents): Correctly aligned all panels.
+       (installStrings): Fixed to set the label's text
+       appropriately depending on the dialog type.
 
-2005-11-09  David Gilbert  <david.gilbert@object-refinery.com>
+2006-01-04  Lillian Angel  <langel@redhat.com>
 
-       * javax/swing/JList.java
-       (setModel): throw IllegalArgumentException for null model.
+       PR classpath/25473 
+       PR classpath/25479
+       * javax/swing/JTree.java
+       (JTree): Because some L&F defaults have been updated,
+       the selectionMode for the tree needed to be set to SINGLE.
+       * javax/swing/plaf/basic/BasicFileChooserUI.java:
+       Initialized accessoryPanel.
+       * javax/swing/plaf/metal/MetalFileChooserUI.java
+       (installComponents): Added accessoryPanel to the filechooser.
 
-2005-11-09  Roman Kennke  <kennke@aicas.com>
+2006-01-04  Dalibor Topic  <robilad@kaffe.org>
 
-       * javax/swing/plaf/basic/BasicTextUI.java
-       (getVisibleEditorRect): Correctly calculate the inner rectangle.
+       * configure.ac: Added AX_CREATE_STDINT_H
 
-2005-11-09  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+       * include/Makefile.am (DISTCLEANFILES): Remove config-int.h.
 
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c 
-       (initStaticState): Register global variable glyphVector_class 
-       as global reference.
+       * m4/ax_create_stdint_h.m4: New file.
 
-2005-11-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * native/fdlibm/mprec.h: Include config-int.h. Removed C99
+       typedefs. Removed stdint.h and inttypes.h includes.
+2006-01-03  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/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.
+       * javax/swing/JMenuItem.java (configurePropertiesFromAction): Only
+       register keyboard action when accelerator is not null.
+       * javax/swing/plaf/basic/BasicMenuItemUI.java (propertyChange): Only
+       re-register accelerator if not null.
+       (installKeyboardActions): Only put accelerator in map when not null.
 
-2005-11-08  Lillian Angel  <langel@redhat.com>
+2006-01-04  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.
+       * javax/swing/plaf/basic/BasicLookAndFeel.java
+       (initComponentDefaults): Removed unneeded default.
+       * javax/swing/plaf/metal/MetalLookAndFeel.java
+       (initComponentDefaults): Added and fixed several defaults.
 
-2005-11-08  Tom Tromey  <tromey@redhat.com>
+2006-01-04  Roman Kennke  <kennke@aicas.com>
 
-       * gnu/classpath/SystemProperties.java: Don't mention
-       gnu.java.awt.FocusManager.
+       * javax/swing/plaf/basic/BasicHTML.java: New class.
 
-2005-11-08  Roman Kennke  <kennke@aicas.com>
+2006-01-03  Tom Tromey  <tromey@redhat.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.
+       * java/io/OutputStreamWriter.java (OutputStreamWriter): Added @since.
+       * java/io/InputStreamReader.java (InputStreamReader): Added @since.
 
-2005-11-08  Roman Kennke  <kennke@aicas.com>
+2006-01-03  Mark Wielaard  <mark@klomp.org>
 
-       * 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.
+       * org/omg/CORBA/INVALID_ACTIVITY.java: Remove non-ascii characters.
 
-2005-11-08  Lillian Angel  <langel@redhat.com>
+2006-01-03  Mark Wielaard  <mark@klomp.org>
 
-       * 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.
+       * javax/swing/plaf/metal/MetalLookAndFeel.java (MetalLookAndFeel):
+       Always call createDefaultTheme().
+       (createDefaultTheme): Check whether theme is still null.
 
-2005-11-08  Anthony Balkissoon  <abalkiss@redhat.com>
+2006-01-03  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/text/DefaultStyledDocument.java:
-       (ElementBuffer.clone): New API method.
+       * gnu/java/awt/peer/gtk/GdkGraphics2D.java (setBackground): Set to
+       Color.WHITE if null.
 
-2005-11-08  Anthony Balkissoon  <abalkiss@redhat.com>
+2006-01-03  Lillian Angel  <langel@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.
+       * javax/swing/plaf/metal/MetalLookAndFeel.java
+       (getDescription): Fixed to return the correct string.
+       (getID): Likewise.
+       (getName): Likewise.
+       (getDefaults): Added check to avoid NPE.
+       (getAcceleratorForeground): Likewise.
+       (getAcceleratorSelectedForeground): Likewise.
+       (getBlack): Likewise.
+       (getControl): Likewise.
+       (getControlDarkShadow): Likewise.
+       (getControlDisabled): Likewise.
+       (getControlHighlight): Likewise.
+       (getControlInfo): Likewise.
+       (getControlShadow): Likewise.
+       (getControlTextColor): Likewise.
+       (getControlTextFont): Likewise.
+       (getDesktopColor): Likewise.
+       (getFocusColor): Likewise.
+       (getHighlightedTextColor): Likewise.
+       (getInactiveControlTextColor): Likewise.
+       (getInactiveSystemTextColor): Likewise.
+       (getMenuBackground): Likewise.
+       (getMenuDisabledForeground): Likewise.
+       (getMenuForeground): Likewise.
+       (getMenuSelectedBackground): Likewise.
+       (getMenuSelectedForeground): Likewise.
+       (getMenuTextFont): Likewise.
+       (getPrimaryControl): Likewise.
+       (getPrimaryControlDarkShadow): Likewise.
+       (getPrimaryControlHighlight): Likewise.
+       (getPrimaryControlInfo): Likewise.
+       (getPrimaryControlShadow): Likewise.
+       (getSeparatorBackground): Likewise.
+       (getSeparatorForeground): Likewise.
+       (getSubTextFont): Likewise.
+       (getSystemTextColor): Likewise.
+       (getSystemTextFont): Likewise.
+       (getTextHighlightColor): Likewise.
+       (getUserTextColor): Likewise.
+       (getUserTextFont): Likewise.
+       (getWhite): Likewise.
+       (getWindowBackground): Likewise.
+       (getWindowTitleBackground): Likewise.
+       (getWindowTitleFont): Likewise.
+       (getWindowTitleForeground): Likewise.
+       (getWindowTitleInactiveBackground): Likewise.
+       (getWindowTitleInactiveForeground): Likewise.
 
-2005-11-08  Roman Kennke  <kennke@aicas.com>
+2006-01-03  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/plaf/basic/BasicTextUI.java
-       (installDefaults): Initialize background field correctly.
+       * javax/swing/JTextArea.java
+       (JTextArea(Document,text,int,int)): Only call setText() when text is
+       not null.
 
-2005-11-08  Roman Kennke  <kennke@aicas.com>
+2006-01-03  Lillian Angel  <langel@redhat.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>
+       * javax/swing/plaf/basic/BasicFileChooserUI.java
+       (installStrings): Fixed installation of defaults that
+       were changed in BasicLookAndFeel.
+       * javax/swing/plaf/basic/BasicTabbedPaneUI.java
+       (installDefaults): Fixed installation of defaults that
+       were changed in BasicLookAndFeel.
 
-       * 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.
+2006-01-03  Lillian Angel  <langel@redhat.com>
 
-2005-11-08  Roman Kennke  <kennke@aicas.com>
+       * javax/swing/plaf/basic/BasicLookAndFeel.java
+       (initComponentDefaults): Fixed several defaults that differed
+       from the JDK.
 
-       * javax/swing/JLayeredPane.java
-       (layerToRange): Return empty array for unknown layer instead of
-       throwing an exception.
+2006-01-03  Lillian Angel  <langel@redhat.com>
 
-2005-11-08  Roman Kennke  <kennke@aicas.com>
+<<<<<<< .working
+       PR swing/23558
+       * javax/swing/plaf/basic/BasicComboBoxUI.java
+       (FocusHandler.focusLost): Do not call popup.hide.
 
-       * java/awt/Component.java
-       (invalidate): Don't invalidate invalid parents.
+2005-09-08  Mark Wielaard  <mark@klomp.org>
 
-2005-11-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * gnu/java/awt/peer/gtk/GdkGraphics2D.java (static): Fix typo
+       (Grahics -> Graphics).
 
-       * javax/swing/JComponent.java (setMaximumSize, 
-       setMinimumSize, setPreferredSize): Clone the passed parameter.
+2005-09-08  Tom Tromey  <tromey@redhat.com>
 
-2005-11-07  Roman Kennke  <kennke@aicas.com>
+       * examples/gnu/classpath/examples/swing/ClasspathSwingActivityBoard.launch:
+       New file.
 
-       * 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-09-08  Roman Kennke  <kennke@aicas.com>
 
-2005-11-07  Lillian Angel  <langel@redhat.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.
 
-       * 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-09-08  Anthony Balkissoon  <abalkiss@redhat.com>
 
-2005-11-07  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+       * java/awt/Container.java:
+       (findComponentForMouseEventAt): Removed check for opacity.
 
-       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-09-08  Keith Seitz  <keiths@redhat.com>
 
-2005-11-07  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+       * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
+       (executeVersion): Major and minor version are integers, not bytes.
 
-       Fixes bug #22968
-       * gnu/java/nio/charset/iconv/IconvProvider.java
-       (IconvProvider): Declare the constructor public.
+2005-09-08  Anthony Balkissoon  <abalkiss@redhat.com>
 
-2005-11-07  Roman Kennke  <kennke@aicas.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>
 
-       * 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>
+       * .classpath: Enable compilation of jdwp.
 
-       * 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-09-08  Keith Seitz  <keiths@redhat.com>
 
-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>
+       * 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.
 
-       * 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-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-11-07  Mark Wielaard  <mark@klomp.org>
+2005-09-08  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.
+       * 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-11-07  David Gilbert  <david.gilbert@object-refinery.com>
+2005-09-08  Tom Tromey  <tromey@redhat.com>
 
-       * javax/swing/plaf/metal/MetalComboBoxEditor.java
-       (MetalComboBoxEditor): don't create new editor.
+       * .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-11-07  David Gilbert  <david.gilbert@object-refinery.com>
+2005-09-08  Roman Kennke  <kennke@aicas.com>
 
-       * javax/swing/plaf/basic/BasicComboBoxEditor.java: API docs plus
-       (BasicComboBoxEditor): set border to null and columns to 9,
-       (addActionListener): implemented,
-       (removeActionListener): implemented.
+       * 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-11-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+2005-09-08  David Gilbert  <david.gilbert@object-refinery.com>
 
-       * gnu/CORBA/IOR.java (equals, hasCode): Compare port number as well
-       and do not crash on IOR.Internet==null.
+       * 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-11-06  Mark Wielaard  <mark@klomp.org>
+2005-09-08  Roman Kennke  <kennke@aicas.com>
 
-       * 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.
+       * 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-11-06  Andreas Tobler  <a.tobler@schweiz.ch>
+2005-09-08  Roman Kennke  <kennke@aicas.com>
 
-       * 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.
+       * 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-11-06  Mark Wielaard  <mark@klomp.org>
+2005-09-08  Roman Kennke  <kennke@aicas.com>
 
-       * java/awt/image/AreaAveragingScaleFilter.java: Add FIXME
-       * java/awt/Image.java (getScaledInstance): In case of
-       SCALE_AREA_AVERAGING use AreaAveragingScaleFilter.
+       * 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-11-06  Wolfgang Baer  <WBaer@gmx.de>
+2005-09-08  Roman Kennke  <kennke@aicas.com>
 
-       * 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.
+       * 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-11-06  Wolfgang Baer  <WBaer@gmx.de>
+2005-09-08  David Gilbert  <david.gilbert@object-refinery.com>
 
-       * 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.
+       * 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-11-06  Chris Burdess  <dog@gnu.org>
+2005-09-08  Jeroen Frijters  <jeroen@frijters.net>
 
-       * 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.
+       * 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-11-06  Chris Burdess  <dog@gnu.org>
+2005-09-08  Jeroen Frijters  <jeroen@frijters.net>
 
-       * gnu/xml/transform/StreamSerializer.java: Avoid undeclared apos
-       entity when output mode is HTML.
+       * javax/naming/CompoundName.java
+       (readObject, writeObject): New methods.
 
-2005-11-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+2005-09-07  Lillian Angel  <langel@redhat.com>
 
-       * gnu/CORBA/IOR.java (equals, hashCode): New metods.
-       * gnu/CORBA/SimpleDelegate.java (is_equivalent): Compare IORs when applicable.
+       * 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-11-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+2005-09-07  Lillian Angel  <langel@redhat.com>
 
-       * 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.
+       * javax/swing/text/GapContent.java:
+       Fixes Bug #PR22966
+       (getOffset): Fixed check, was redundant.
 
-2005-11-06  Chris Burdess  <dog@gnu.org>
+2005-09-07  Lillian Angel  <langel@redhat.com>
 
-       * gnu/xml/stream/XMLStreamWriterImpl.java: Fixed handling of
-       namespaces when isPrefixDefaulting is set.
+       * javax/swing/text/GapContent.java:
+       Fixes Bug #PR22966
+       (getOffset): Added check for mark <= gapEnd
 
-2005-11-04  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-09-07  Roman Kennke  <roman@kennke.org>
 
-       * javax/swing/text/DefaultStyledDocument.java: Reformatted.
+       * 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-11-04  Lillian Angel  <langel@redhat.com>
+2005-09-07  Roman Kennke  <roman@kennke.org>
 
-       * java/awt/Window.java
-       (setLocationRelativeTo): Implemented case when
-       component is not null.
+       * javax/swing/JPanel.java
+       (AccessibleJPanel): New inner class.
+       (getAccessibleContext): Implemented this method.
 
-2005-11-04  Tom Tromey  <tromey@redhat.com>
+2005-09-07  Roman Kennke  <roman@kennke.org>
 
-       * java/awt/image/BufferedImage.java (BufferedImage): Implement
-       Transparency.
-       (getTransparency): New method.
+       * javax/swing/JPanel.java: Reformatted to match our coding
+       standards.
 
-2005-11-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+2005-09-07  Roman Kennke  <roman@kennke.org>
 
-        * gnu/CORBA/SocketRepository.java (sockets): Changed type to
-       HashMap. (put_socket, get_socket, gc):
-       Always synchronize on 'sockets'.
+       * javax/swing/JViewport.java
+       (AccessibleJViewport): New inner class.
+       (getAccessibleContext): New method. Implements the Accessible
+       interface for JViewport.
 
-2005-11-04  Mark Wielaard  <mark@klomp.org>
+2005-09-07  David Gilbert  <david.gilbert@object-refinery.com>
 
-       * configure.ac: Set version to 0.20-pre.
+       * 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>
 
-2005-11-04  Anthony Balkissoon  <abalkiss@redhat.com>
+       * native/jni/qt-peer/componentevent.cpp: Added inclusion
+       of assert.h
 
-       * javax/swing/text/StyleConstants.java:
-       (Family): New API field.
-       (Size): New API field.
+2005-09-07  Robert Schuster  <robertschuster@fsfe.org>
 
-2005-11-04  Lillian Angel  <langel@redhat.com>
+       * INSTALL: Mention that GCJ4 is now mandatory.
 
-       * 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>
+2005-09-07  Robert Schuster  <robertschuster@fsfe.org>
 
-       * javax/swing/plaf/basic/BasicTextUI.java
-       (getMinimumSize): New method.
-       * javax/swing/text/FieldView.java
-       (getPreferredSpan): Added assert that replaces a 'should never happen'
-       comment.
+       * javax/swing/Box.java: Added java.awt.Container import statement.
 
-2005-11-04  Roman Kennke  <kennke@aicas.com>
+2005-09-06  David Gilbert  <david.gilbert@object-refinery.com>
 
-       * javax/swing/SizeRequirements.java
-       (getTiledSizeRequirements): Added check for overflows.
-       (adjustGreater): Fixed overflow handling through usage of long
-       instead of int.
+       * 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-11-03  Roman Kennke  <kennke@aicas.com>
+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.       
 
-       * 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-09-06  Lillian Angel  <langel@redhat.com>
 
-2005-11-03  Mark Wielaard  <mark@klomp.org>
+       * javax/swing/plaf/basic/BasicFileChooserUI.java:
+       Formatted entire class.
 
-       * 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-09-06  Mark Wielaard  <mark@klomp.org>
 
-2005-11-03  Roman Kennke  <kennke@aicas.com>
+       * configure.ac: Set version to 0.19-pre.
 
-       * 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.
+       * 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-11-03  Lillian Angel  <langel@redhat.com>
+2005-09-06  Roman Kennke  <roman@kennke.org>
 
-       * 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.
+       * 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-11-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2005-09-06  David Gilbert  <david.gilbert@object-refinery.com>
 
-       * AUTHORS: Added myself.
+       * javax/swing/plaf/metal/MetalIconFactory.java
+       (RadioButtonIcon.drawCheck): removed,
+       (RadioButtonIcon.paintIcon): reimplemented,
+       * javax/swing/plaf/metal/MetalLookAndFeel.java
+       (initComponentDefaults): added defaults for JRadioButton.
        
-2005-11-02  Mark Wielaard  <mark@klomp.org>
+2005-09-06  Lillian Angel  <langel@redhat.com>
 
-       * javax/swing/Timer.java (Waker.run): Only break out when !running.
+       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-11-02  Mark Wielaard  <mark@klomp.org>
+2005-09-06  Lillian Angel  <langel@redhat.com>
 
-       * javax/swing/UIManager.java (static): Print complete exception.
+       * 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-11-02  Mark Wielaard  <mark@klomp.org>
+2005-09-06  Lillian Angel <langel@redhat.com>
 
-       * lib/Makefile.am: Add typeHiding, unchecked, unused and varargsCast
-       to ECJ compile warning rule.
+       * javax/swing/plaf/basic/BasicMenuItemUI.java:
+       Formatted class.
 
-2005-11-02  Guilhem Lavaux  <guilhem@kaffe.org>
+2005-09-06  Lillian Angel  <langel@redhat.com>
 
-       * lib/copy-vmresources.sh.in: Added definition for top_srcdir.
+       * 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-11-02  Andreas Tobler  <a.tobler@schweiz.ch>
+2005-09-06  Mark Wielaard  <mark@klomp.org>
 
-       * NEWS: Mention Qt4 configury for OS-X.
+       * NEWS: Add new features for 0.18.
+       * configure.ac: Set version to 0.18.
 
-2005-11-02  Roman Kennke  <kennke@aicas.com>
+2005-09-06  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-       * NEWS: Added some news items regarding my Swing work.
+       * 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-11-02  Roman Kennke  <kennke@aicas.com>
+2005-09-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-       * javax/swing/JComponent.java
-       (findOverlapFreeParent): Don't search beyond the components
-       containing window (important when in a Dialog).
+       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-11-02  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+2005-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
 
-       * AUTHORS: Added myself to the cool gang.
+       * native/jni/Makefile.am (all-local): Invoke $(SHELL) to execute
+       the script.
 
-2005-11-02  Anthony Balkissoon  <abalkiss@redhat.com>
+       * scripts/check_jni_methods.sh: Make script working with non GNU
+       grep versions.
 
-       * javax/swing/text/WrappedPlainView.java:
-       (calculateBreakPosition): If the component is not valid use it's 
-       preferredSize instead of getBounds().
+2005-09-05  Roman Kennke  <roman@kennke.org>
 
-2005-11-02  Lillian Angel  <langel@redhat.com>
+       * javax/swing/event/DocumentEvent.java:
+       (ElementChange) Made inner interface static to conform to the specs.
 
-       * java/awt/Dialog.java
-       (show): pack should always be called before show, so Dialog is
-       set to the correct size and validated.
+2005-09-05  Roman Kennke  <roman@kennke.org>
 
-2005-11-02  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+       * 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.
 
-       * configure.ac: Check for cairo, pangoft2 and freetype2 only 
-       when gtk peers are enabled.
+2005-09-05  Roman Kennke  <roman@kennke.org>
 
-2005-11-02    Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * javax/swing/event/DocumentEvent.java:
+       Reindented file to conform to our coding standards.
 
-       * AUTHORS (Stuart Ballard): Address update.
+2005-09-05  Chris Burdess  <dog@gnu.org>
 
-2005-11-02    Audrius Meskauskas  <AudriusA@Bioinformatics.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.
 
-       * AUTHORS: Added Lillian Angel.
+2005-09-05  Mark Wielaard  <mark@klomp.org>
 
-2005-11-02  Roman Kennke  <kennke@aicas.com>
+       * lib/standard.omit: Add gnu/xml/stream and javax/xml/stream.
+       * NEWS: Describe Untested/Disabled new features.
 
-       * 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-09-04  Mark Wielaard  <mark@klomp.org>
 
-2005-11-02  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * javax/swing/plaf/basic/BasicScrollPaneUI.java
-       (PropertyChangeHandler.propertyChange): Re-setup listeners on
-       the scrollbars if the scrollbars change.
+2005-09-05  Jeroen Frijters  <jeroen@frijters.net>
 
-2005-11-02  Roman Kennke  <kennke@aicas.com>
+       * java/lang/reflect/Proxy.java
+       (sameTypes): Removed.
+       (equals): Fixed bug #23727.
 
-       * 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-09-04  Mark Wielaard  <mark@klomp.org>
 
-2005-11-02  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * javax/swing/plaf/basic/BasicLookAndFeel.java
-       (initComponentDefaults): Fixed the defaults for EditorPane.border,
-       TextArea.font and TextPane.border.
+2005-09-04  Mark Wielaard  <mark@klomp.org>
 
-2005-11-02  Roman Kennke  <kennke@aicas.com>
+       * gnu/CORBA/NamingService/NamingServiceTransient.java: Re-un-indent
+       boilerplate.
 
-       * java/awt/Component.java
-       (getForeground): Return null as default color, instead of some
-       system color.
+2005-09-04  Mark Wielaard  <mark@klomp.org>
 
-2005-11-02  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * 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-09-04  Chris Burdess  <dog@gnu.org>
 
-2005-11-02  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * 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-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
 
-2005-11-02  Roman Kennke  <kennke@aicas.com>
+       Fix for bug #23653
+       * lib/Makefile.am (metafiles): Use find -name -prune not -path.
 
-       * javax/swing/JTable.java
-       (AccessibleJTable.AccessibleJTableCell): New inner class.
+2005-09-04  Mark Wielaard  <mark@klomp.org>
 
-2005-11-02  David Gilbert  <david.gilbert@object-refinery.com>
+       * NEWS: Add description of new awt.datatransfer functionality.
 
-       * javax/swing/filechooser/FileSystemView.java: Added API docs all over,
-       * javax/swing/filechooser/UnixFileSystemView.java: Likewise.
+2005-09-04  Mark Wielaard  <mark@klomp.org>
 
-2005-11-02  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+       * javax/swing/text/AbstractDocument.java
+       (LeafElement.LeafElement): Set startPos and endPos through
+       createPosition() if parent is null.
 
-       * 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>
+2005-09-04  Chris Burdess  <dog@gnu.org>
 
-       * 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.
+       * gnu/xml/stream: StAX implementation.
 
-2005-11-02  Roman Kennke  <kennke@aicas.com>
+2005-09-04  Guilhem Lavaux  <guilhem@kaffe.org>
 
-       * 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
+       * java/lang/Integer.java
+       (parseInt): Added some messages to the exception thrown by 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>
+2005-09-04  Chris Burdess  <dog@gnu.org>
 
-       * 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.
+       * 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-11-01  Roman Kennke  <kennke@aicas.com>
+2005-09-03  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/JPopupMenu.java
-       (setVisible): Pack the JPopupMenu before fetching the Popup
-       instance. Otherwise the PopupFactory has the wrong size for
-       its size check.
+       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-11-01  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-09-03  Andreas Tobler  <a.tobler@schweiz.ch>
 
-       * javax/swing/JTable.java:
-       (JTable(TableModel, TableColumnModel, ListSelectionModel)): Call 
-       updateUI after initializeLocalVars.  Manually set the lead selection
-       indices.
+       * autogen.sh: Document libtool version needed for Darwin.
+       (LIBTOOLIZE): Don't special case Darwin, always use libtoolize.
 
-2005-11-01  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-09-03  Chris Burdess  <dog@gnu.org>
 
-       * javax/swing/plaf/basic/BasicFileChooserUI.java:
-       (getApproveButtonText): First use the JFileChooser's approve button 
-       text, but if it is null, then try otherwise.
+       * javax/xml/stream,
+       * javax/xml/stream/events,
+       * javax/xml/stream/util:
+       New StAX API classes.
 
-2005-11-01  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+2005-09-02  Keith Seitz  <keiths@redhat.com>
 
-       * 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>
+       * 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.
 
-       * 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-09-02  Keith Seitz  <keiths@redhat.com>
 
-2005-11-01  Anthony Balkissoon  <abalkiss@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.
 
-       * javax/swing/JTable.java:
-       (JTable(TableModel, TableColumnModel, ListSelectionModel)): Set the 
-       model before calling initializeLocalVars.
+2005-09-02  Keith Seitz  <keiths@redhat.com>
 
-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.
+       * 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-10-31  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+2005-09-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
-       * gnu/CORBA/SocketRepository.java (not_reusable, gc): New methods.
-       (sockets): Use hashtable. (get_socket): Rewritten.
+       * 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-10-31  Roman Kennke  <kennke@aicas.com>
+2005-09-02  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-       * javax/swing/JTable.java
-       (AccessibleJTable.tableChanged): Implemented.
-       (AccessibleJTable.tableRowsInserted): Implemented.
-       (AccessibleJTable.tableRowsDeleted): Implemented.
+       * 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-10-30  Mark Wielaard  <mark@klomp.org>
+2005-09-02  Lillian Angel  <langel@redhat.com>
 
        * 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>
+       (mousepressed): Fixed, so that clicking on control icon will not
+       start editing.
 
-       * gnu/java/rmi/server/UnicastServer.java (refcache): Make it a
-       synchronized IdentityHashMap.
+2005-09-02  Anthony Balkissoon  <abalkiss@redhat.com>
 
-2005-10-30  Mark Wielaard  <mark@klomp.org>
+       * 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.
 
-       * 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-09-02  Lillian Angel  <langel@redhat.com>
 
-2005-10-29  Guilhem Lavaux  <guilhem@kaffe.org>
+       * 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.
 
-       * 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>
+2005-09-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
-       * javax/swing/JViewport.java:
-       (scrollRectToVisible): Use the viewport bounds instead of the view 
-       bounds when scrolling up and scrolling left.
+       * gnu/CORBA/Interceptor/ClientRequestInterceptors.java (send_poll):
+       remove ForwardRequest from declaration.
 
-2005-10-27  Roman Kennke  <kennke@aicas.com>
+2005-09-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
-       * javax/swing/text/FieldView.java
-       (getPreferredSpan): For the Y_AXIS call the superclass behaviour as
-       described in the Swing book by OReilly.
+       * org/omg/PortableInterceptor/CurrentOperations.java:
+       Inherit from org.omg.CORBA.CurrentOperations.
+       * org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java
+       (send_poll): Remove ForwardRequest from declaration.
 
-2005-10-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+2005-09-02  Anthony Balkissoon  <abalkiss@redhat.com>
 
-       * org/omg/PortableInterceptor/ObjectIdHelper.java:
-       Assuming ObjectId as alias of byte[], not alias  of String.
+       * javax/swing/JList.java:
+       (getPreferredScrollableViewportSize): Implemented.
 
-2005-10-27  Roman Kennke  <kennke@aicas.com>
+2005-09-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
-       * 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.
+       * 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-10-27  Roman Kennke  <kennke@aicas.com>
+2005-09-02  Anthony Balkissoon  <abalkiss@redhat.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/JTree.java:
+       (getPreferredScrollableViewportSize): Implemented.
 
-       * javax/swing/plaf/metal/MetalToggleButtonUI.java:
-       (MetalToggleButtonUI): removed color field initialisation,
-       (installDefaults): added color field initialisation formerly in 
-       the constructor.
+2005-09-02  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-10-27  David Gilbert  <david.gilbert@object-refinery.com>
+       * javax/swing/plaf/basic/BasicLookAndFeel.java
+       (initComponentDefaults): set correct value for 
+       'InternalFrame.titleFont'.
 
-       * javax/swing/RepaintManager.java
-       (paintDirtyRegions): replaced characters in comment that caused 
-       warnings in gjdoc and Eclipse.
+2005-09-02  Mark Wielaard  <mark@klomp.org>
 
-2005-10-27  Audrius Meskauskas  <AudriusA@Bioinformatics.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.
 
-        * BUGS: URL refreshed.
+2005-09-02  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       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.
 
-       * gnu/CORBA/ExceptionCreator.java: Deleted.
+2005-09-02  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       PR awt/23557
+       * gnu/java/awt/peer/gtk/GdkGraphics2D.java (drawString(String,
+       float, float)): Return immediately if string is null or
+       zero-length.
 
-       * 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>
+2005-09-02  Thomas Fitzsimmons  <fitzsim@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.
+       PR awt/20014
+       * gnu/java/awt/peer/gtk/GdkGraphics2D.java (static): Always call
+       initStaticState.
 
-2005-10-26  Andreas Tobler  <a.tobler@schweiz.ch>
+2005-09-02  Robert Schuster  <robertschuster@fsfe.org>
 
-       * configure.ac: Rename --with-qtdir to --with-qt4dir to make clear
-       which Qt version is meant.
+       * README: Added MysaifuVM to list of VMs
+       * INSTALL: Added info about Qt4 and ecj.
 
-2005-10-26  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-09-01  Thomas Fitzsimmons  <fitzsim@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.
+       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-10-26  Thomas Fitzsimmons  <fitzsim@redhat.com>
+2005-09-01  Mark Wielaard  <mark@klomp.org>
 
-       * javax/imageio/spi/ImageReaderWriterSpi.java
-       (getStreamMetadataFormat): Implement.
-       (getImageMetadataFormat): Likewise.
+       * gnu/java/awt/ClasspathToolkit.java (getFont): Get non-public
+       constructor from Font. Chain "cannot happen" exceptions in
+       AssertionError.
 
-2005-10-26  David Gilbert  <david.gilbert@object-refinery.com>
+2005-09-01  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/colorchooser/AbstractColorChooserPanel.java
-       (getMnemonic): implemented,
-       (getDisplayedMnemonicIndex): implemented.
+       * java/util/jar/JarFile.java (JarEnumeration.nextElement): Only
+       readSignature when verifying jar.
+       (getEntry): Likewise.
 
-2005-10-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+2005-09-01  Anthony Balkissoon  <abalkiss@redhat.com>
 
-       * 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.
+       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-10-25  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-09-01  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/text/WrappedPlainView: New class.
+       * 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-10-25  Roman Kennke  <kennke@aicas.com>
+2005-09-01  Lillian Angel  <langel@redhat.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.
+       * 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-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-08-31  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       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.
 
-       * 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-08-31  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * 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.
 
-       * 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-08-31  Anthony Balkissoon  <abalkiss@redhat.com>
 
-2005-10-25  Roman Kennke  <kennke@aicas.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.
 
-       * 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-08-31  Anthony Balkissoon  <abalkiss@redhat.com>
 
-2005-10-24  Tom Tromey  <tromey@redhat.com>
+       PR swing/23037
+       * javax/swing/JFileChooser.java
+       (changeToParentDirectory): If parent directory is null, do nothing.
 
-       * java/io/ObjectOutputStream.java (useProtocolVersion): Fixed typo
-       in javadoc.
+2005-08-31  Anthony Balkissoon  <abalkiss@redhat.com>
 
-2005-10-24  Tom Tromey  <tromey@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.
 
-       * java/lang/StringBuffer.java (appendCodePoint): Added @since.
-       * java/lang/StringBuilder.java (insert): New overloads.
-       (appendCodePoint): New method.
+2005-08-31  Mark Wielaard  <mark@klomp.org>
 
-2005-10-24  Dalibor Topic  <robilad@kaffe.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.
 
-       * test/native/lib/PrimlibInterface.c,
-       * test/native/lib/PrimlibInterface.h,
-       * test/native/lib/PrimlibTest.java:
-       Removed unused test.
+2005-08-31  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-10-24  Dalibor Topic  <robilad@kaffe.org>
+       * javax/swing/plaf/metal/MetalBorders.java
+       (textFieldBorder): new field,
+       (Flush3DBorder): new class,
+       (TextFieldBorder): new class,
+       (getTextFieldBorder): implemented.
 
-       * native/jni/classpath/primlib.c,
-       native/jni/classpath/primlib.h: Removed since unused.
+2005-08-31  David Gilbert  <david.gilbert@object-refinery.com>
 
-       * native/jni/classpath/Makefile.am: (libclasspath_la_SOURCES)
-       Removed primlib.c and primlib.h.
+       * 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-10-24  David Gilbert  <david.gilbert@object-refinery.com>
+2005-08-30  Mark Wielaard  <mark@klomp.org>
+           Christian Schlichtherle  <christian@schlichtherle.de>
 
-       * examples/gnu/classpath/examples/swing/ScrollBarDemo.java: New file.
+       * 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-10-24  David Gilbert  <david.gilbert@object-refinery.com>
+2005-08-30  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,
+       * 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 '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>
+       (initComponentDefaults): added RadioButtonMenuItem defaults.
 
-       PR classpath/22972 
-       * java/io/File (createTempFile): Rewritten.
+2005-08-30  Lillian Angel <langel@redhat.com>
 
-2005-10-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * 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.
 
-       * org/omg/IOP/RMICustomMaxStreamFormat.java,
-       * org/omg/IOP/ExceptionDetailMessage.java: New files. 
+2005-08-30  Lillian Angel  <langel@redhat.com>
 
-2005-10-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * 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.
 
-       * gnu/CORBA/Interceptor/Registrator.java (m_prefix): Made static.
+2005-08-30  Christian Schlichtherle  <christian@schlichtherle.de>
 
-2005-10-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * java/util/zip/DeflaterOutputStream.java
+       (DeflaterOutputStream(OutputStream)): Increase buffer size to 4096.
+       (DeflaterOutputStream(OutputStream,Deflater)): Likewise.
 
-       * gnu/javax/rmi/CORBA/gnuRmiUtil.java (readValue):
-       Do not read fields of the ObjectImpl.
+2005-08-30  Christian Schlichtherle  <christian@schlichtherle.de>
 
-2005-10-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * java/util/zip/DeflaterHuffman.java (bit4Reverse): Mark final.
 
-       * 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-08-30  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-10-22  Julian Scheid  <julian@sektor37.de>
+       * 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.
 
-       * java/util/Map.java (Entry.equals): Fixed invalid example code
-       in documentation.
+2005-08-30  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-10-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * 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>
 
-       * 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.
+       * 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-10-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+2005-08-29  Keith Seitz  <keiths@redhat.com>
 
-       * javax/rmi/CORBA/ValueHandlerMultiFormat.java: New interface.
-       * gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.java
-       (getMaximumStreamFormatVersion, writeValue): New methods.
+       * 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-10-22  Mark Wielaard  <mark@klomp.org>
+2005-08-29  Tom Tromey  <tromey@redhat.com>
 
-       * java/net/URLClassloader.java (addURLs): Add comment about jboss.
+       * .externalToolBuilders/Configure.launch: Changed --prefix.
+       * .externalToolBuilders/CompileNative.launch: Invoke install target.
+       * .cdtproject: New file.
+       * .classpath: Changed output directory.
+       * .cvsignore: Added 'install'.
 
-2005-10-21  Lillian Angel  <langel@redhat.com>
+2005-08-29  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.
+       * 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-10-21  Nicolas Geoffray  <nicolas.geoffray@menlina.com>
+2005-08-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
-       * vm/reference/java/lang/VMClassLoader.java
-       (getResources): uses a new static field HashMap to
-       store opened zip files from property java.boot.class.path.
+       * 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-10-21  Nicolas Geoffray  <nicolas.geoffray@menlina.com>
+2005-08-28  Mark Wielaard  <mark@klomp.org>
 
-       * 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.
+       * javax/swing/text/AbstractDocument.java (addEdit): Document gcj bug
+       workaround.
+       (getChange): Likewise.
 
-2005-10-21  Lillian Angel  <langel@redhat.com>
+2005-08-28  Tom Tromey  <tromey@redhat.com>
 
-       * javax/swing/plaf/basic/BasicRadioButtonUI.java
-       (paint): Only paint focus if enabled.
+       * org/omg/PortableInterceptor/ORBInitInfoOperations.java: Removed
+       non-ascii character.
 
-2005-10-21  David Daney  <ddaney@avtrex.com>
+2005-08-28  Chris Burdess  <dog@gnu.org>
 
-       * NEWS: Added entry about HttpURLConnection improvements.
+        * javax/swing/text/AbstractDocument.java: Fully qualify references to
+        ElementChange class.
 
-2005-10-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+2005-08-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
-       * gnu/CORBA/DefaultSocketFactory.java,
-       * gnu/CORBA/interfaces/gnuSocketFactory.java,
-       * gnu/CORBA/interfaces/package.html: New files.
+       * 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/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>
+       * 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.
 
-       * javax/swing/text/BoxView.java
-       (layoutMinorAxis): Calculate total requirements before calling
-       the SizeRequirements utility method. Avoids an NPE.
+2005-08-28  Chris Burdess  <dog@gnu.org>
 
-2005-10-20  David Gilbert  <david.gilbert@object-refinery.com>
+       * gnu/xml/xpath/ArithmeticExpr.java: Fix div and mod by zero to
+       follow IEEE rules.
 
-       * 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-08-27  Tom Tromey  <tromey@redhat.com>
 
-2005-10-20  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * m4/acinclude.m4 (CLASSPATH_WITH_GLIBJ): Always check for 'zip'
+       program.  Changed zip install handling.
 
-       * org/ietf/jgss/GSSCredential.java (hashCode),
-       * org/ietf/jgss/GSSName.java (hashCode): New declarations.
+2005-08-26  Keith Seitz  <keiths@redhat.com>
 
-2005-10-19  Mark Wielaard  <mark@klomp.org>
+       * gnu/classpath/jdwp/event/EventRequest.java: New file.
+       * gnu/classpath/jdwp/exception/JdwpIllegalArgumentException.java:
+       New file.
 
-       * java/net/URLClassLoader.java (addURLs): Don't call addURL(), but
-       call urls.add() and addURLImpl() directly on each URL.
+2005-08-26  Keith Seitz  <keiths@redhat.com>
 
-2005-10-19  Andreas Tobler  <a.tobler@schweiz.ch>
+       * 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.
 
-       * javax/swing/text/html/HTMLEditorKit.java: Add missing import.
+2005-08-26  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-10-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * 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'.
 
-       * javax/swing/text/html/HTMLEditorKit.java (getParser): New method.
+2005-08-26  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
+       (create): Only set overwrite confirmation if using GTK >= 2.8.
 
-       * javax/swing/text/html/parser/ContentModel.java: Fixed comments for
-       parameterless constructor.
+       * 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-10-19  Roman Kennke  <kennke@aicas.com>
+2005-08-26  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-       * javax/swing/JComponent.java
-       (getDebugGraphicsOptions): Removed debug output.
+       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-10-19  Roman Kennke  <kennke@aicas.com>
+2005-08-25  Mark Wielaard  <mark@klomp.org>
 
-       * java/awt/Component.java
-       (isShowing): Fixed condition.
-       (show): Only repaint if component is showing.
-       (hide): Only repaint if component was showing.
+       * timezones.pl (parseRule): Add dayoffset when $time represents
+       more then a day.
+       * java/util/TimeZone.java (timezones): Regenerate.
 
-2005-10-19  Mark Wielaard  <mark@klomp.org>
+2005-08-25  Keith Seitz  <keiths@redhat.com>
 
-       * javax/security/auth/login/LoginContext.java (lookupModule):
-       Load LoginModule through Thread context class loader.
+       * gnu/classpath/jdwp/util/Value.java (Value): Update for
+       real VMIdManager API.
+       * gnu/classpath/jdwp/util/Location.java (Location): Likewise.
 
-2005-10-19  Mark Wielaard  <mark@klomp.org>
+2005-08-25  Keith Seitz  <keiths@redhat.com>
 
-       * java/net/Socket.java (getImpl): Chain exception before throwing.
+       * gnu/classpath/jdwp/processor/EventRequestCommandSet.java
+       (executeSet): Use constants for case values.
+       Fix "typo": It is really ThreadOnlyFilter.
+       Correct arguments to InstanceOnlyFilter.
 
-2005-10-19  Roman Kennke  <kennke@aicas.com>
+2005-08-25  Keith Seitz  <keiths@redhat.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>
+       * 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.
 
-       * javax/swing/OverlayLayout.java
-       (checkLayout): Respect the container's insets correctly.
+       * 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>
 
-2005-10-19  Roman Kennke  <kennke@aicas.com>
+       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.
 
-       * javax/swing/JLabel.java
-       (setText): Call revalidate() and repaint().
+2005-08-25  Keith Seitz  <keiths@redhat.com>
 
-2005-10-19  Roman Kennke  <kennke@aicas.com>
+       * gnu/classpath/jdwp/event/EventManager.java: New file concerning
+       JDWP event request management and notification infrastructure.
 
-       * javax/swing/JEditorPane.java
-       Added comments to empty blocks.
-       (read): Implemented this previously stubbed method.
+2005-08-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
-2005-10-19  Roman Kennke  <kennke@aicas.com>
+        * scripts/eclipse-gnu.xml: Reverted my patch 2005-07-31.
+        
+2005-08-25  Roman Kennke  <roman@kennke.org>
 
-       * javax/swing/JComboBox.java
-       Added comments to empty blocks.
-       (writeObject): Removed unnecessary serialization method.
-       (processKeyEvent): Implemented this previously stubbed method.
+       * javax/swing/JTextPane.java
+       (JTextPane()): Don't set the document to null here.
 
-2005-10-19  Roman Kennke  <kennke@aicas.com>
+2005-08-25  Roman Kennke  <roman@kennke.org>
 
-       * javax/swing/JButton.java
-       (removeNotify): Implemented this previously stubbed method.
+       * 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-10-19  Roman Kennke  <kennke@aicas.com>
+2005-08-25  Roman Kennke  <roman@kennke.org>
 
-       * javax/swing/undo/CannotRedoException.java
-       * javax/swing/undo/CannotUndoException.java
-       Put super() call in empty constructors.
+       * 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-10-19  Roman Kennke  <kennke@aicas.com>
+2005-08-25  Roman Kennke  <roman@kennke.org>
 
-       * 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.
+       * 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-10-19  Roman Kennke  <kennke@aicas.com>
+2005-08-25  Roman Kennke  <roman@kennke.org>
 
-       * 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>
+       (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.
 
-       * javax/swing/text/html/HTML.java
-       * javax/swing/text/html/HTMLDocument.java
-       Filled emtpy blocks with comments.
+2005-08-25  Roman Kennke  <roman@kennke.org>
 
-2005-10-19  Roman Kennke  <kennke@aicas.com>
+       * javax/swing/text/GapContent.java
+       (getString): Throw BadLocationException instead of letting
+       a StringIndexOutOfBoundsException bubble up.
 
-       * 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>
+2005-08-25  Roman Kennke  <roman@kennke.org>
 
-       * 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.
+       * 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-10-19  Roman Kennke  <kennke@aicas.com>
+2005-08-25  Roman Kennke  <roman@kennke.org>
 
-       * javax/swing/plaf/multi/MultiLookAndFeel.java
-       Filled empty block with comment.
+       * 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-10-19  Roman Kennke  <kennke@aicas.com>
+2005-08-25  Roman Kennke  <roman@kennke.org>
 
-       * 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/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.
 
-       * javax/swing/JList.java
-       (getAccessibleContext): Returned an instance of 
-       AccessibleJList. Should never return null.
+2005-08-25  Roman Kennke  <roman@kennke.org>
 
-2005-10-19  Lillian Angel  <langel@redhat.com>
+       * 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.
 
-       * 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-08-25  Roman Kennke  <roman@kennke.org>
 
-2005-10-18  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * javax/swing/filechooser/FileFilter.java:
-       * javax/swing/filechooser/FileView.java:
-       Filled empty blocks with comments.
+2005-08-25  Lillian Angel  <langel@redhat.com>
 
-2005-10-18  Roman Kennke  <kennke@aicas.com>
+       * javax/swing/JPasswordField.java
+       (setText): Changed to raise an AssertionError when a 
+       BadLocationException is caught.
 
-       * 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>
+2005-08-25  Tom Tromey  <tromey@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.
+       * configure.ac: Call AC_PROG_CXX.
 
-2005-10-18  David Gilbert  <david.gilbert@object-refinery.com>
+2005-08-25  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/JComboBox.java
-       (setModel): update the selectedItemReminder field,
-       (selectedItemChanged): only send ItemEvent.SELECTED event if the new
-       selection is non-null.
+       * javax/xml/namespace/QName.java: Updated boilerplate address.
+       * gnu/xml/xpath/XPathParser.y: Likewise.
+       * gnu/xml/xpath/XPathParser.java: Regenerated.
 
-2005-10-18  David Gilbert  <david.gilbert@object-refinery.com>
+2005-08-25  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.
+       * 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-10-18  Lillian Angel  <langel@redhat.com>
+2005-08-25  David Gilbert  <david.gilbert@object-refinery.com>
 
-       * javax/swing/plaf/basic/BasicTextUI.java
-       (installDefaults): Set the selected text color for the
-       text component.
+       * javax/swing/tree/DefaultTreeModel.java
+       (nodesWereRemoved): minor API doc fix.
+       
+2005-08-25  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-10-18  Lillian Angel  <langel@redhat.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.
 
-       * 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-08-25  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-18  David Gilbert  <david.gilbert@object-refinery.com>
+       * gnu/java/awt/ClasspathToolkit.java (getFont): Throw
+       RuntimeException in case of error.
+       * gnu/java/awt/EmbeddedWindow.java (addNotify): Likewise.
 
-       * javax/swing/plaf/metal/MetalComboBoxUI.java
-       (editablePropertyChanged): handle null selected item.
+2005-08-24  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-18  Roman Kennke  <kennke@aicas.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).
 
-       * javax/swing/plaf/basic/BasicScrollBarUI.java
-       (PropertyChangeHandler.propertyChange): Removed repaint call.
+2005-08-24  Tom Tromey  <tromey@redhat.com>
 
-2005-10-18  Roman Kennke  <kennke@aicas.com>
+       * java/text/SimpleDateFormat.java (compileFormat): Correctly
+       handle quoted single quotes.  PR classpath/23183.
 
-       * 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-08-24  Mark Wielaard  <mark@klomp.org>
 
-2005-10-18  David Gilbert  <david.gilbert@object-refinery.com>
+       * vm/reference/gnu/classpath/jdwp/VMFrame.java: Update copyright
+       boilerplate address.
+       * vm/reference/gnu/classpath/jdwp/VMIdManager.java: Likewise.
 
-       * 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-08-24  Mark Wielaard  <mark@klomp.org>
 
-2005-10-18  Roman Kennke  <kennke@aicas.com>
+       * doc/www.gnu.org/newsitems.txt: Fix announcement url.
 
-       * 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-08-24  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-10-18  Jeroen Frijters  <jeroen@frijters.net>
+       * javax/swing/plaf/metal/MetalIconFactory.java
+       (InternalFrameCloseIcon): new private class,
+       (InternalFrameAltMaximizeIcon): likewise,
+       (InternalFrameMaximizeIcon): likewise,
+       (InternalFrameMinimizeIcon): likewise,
+       (getInternalFrameCloseIcon): implemented,
+       (getInternalFrameMaximizeIcon): implemented,
+       (getInternalFrameMinimizeIcon): implemented,
+       (getInternalFrameAltMaximizeIcon): implemented.
 
-       * java/io/ObjectInputStream.java
-       (parseContent): Removed bogus println and fixed bug #24422.
+2005-08-24  Mark Wielaard  <mark@klomp.org>
 
-2005-10-17  Lillian Angel  <langel@redhat.com>
+       * 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.
 
-       * 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-08-24  Mark Wielaard  <mark@klomp.org>
 
-2005-10-17  Anthony Balkissoon  <abalkiss@redhat.com>
+       * configure.ac: Set version to 0.18-pre.
 
-       * 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-08-24  Mark Wielaard  <mark@klomp.org>
 
-2005-10-17  Lillian Angel  <langel@redhat.com>
+       * doc/www.gnu.org/newsitems.txt: Add Generics Branch Merge
+       Announcement.
 
-       * 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-08-24  Lillian Angel  <langel@redhat.com>
 
-2005-10-17  David Gilbert  <david.gilbert@object-refinery.com>
+       * javax/swing/DefaultCellEditor.java
+       (isCellEditable): Reversed last changes.
 
-       * 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>
+2005-08-24  Lillian Angel  <langel@redhat.com>
 
-       * javax/swing/event/ListDataListener: 
-       reformatted and added API docs.
+       * 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-10-17  Roman Kennke  <kennke@aicas.com>
+2005-08-24  Mark Wielaard  <mark@klomp.org>
 
-       * 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.
+       * 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-10-17  Roman Kennke  <kennke@aicas.com>
+2005-08-24  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/table/DefaultTableCellRenderer.java
-       (getTableCellRendererComponent): Setup colors (more) correctly.
-       * javax/swing/DefaultListSelectionModel.java
-       (isSelectedIndex): Check for an illegal index argument.
+       * NEWS: Split in general changes and vm interface changes. Add RawData
+       to Pointer conversion.
 
-2005-10-17  Roman Kennke  <kennke@aicas.com>
+2005-08-24  Mark Wielaard  <mark@klomp.org>
 
-       * 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.
+       * native/jni/java-lang/java_lang_VMDouble.c
+       (Java_java_lang_VMDouble_parseDouble): Remove KISSME_LINUX_USER hack.
 
-2005-10-17  Roman Kennke  <kennke@aicas.com>
+2005-08-24  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/JViewport.java
-       (setView): Removed unnecessary loop. We only have on component.
-       (isOptimizedDrawingEnabled): Added comment explaining why this
-       method is necessary.
+       * 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-10-17  Roman Kennke  <kennke@aicas.com>
+2005-08-24  David Gilbert  <david.gilbert@object-refinery.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/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 '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>
+       (initComponentDefaults): add values for "InternalFrame.border" and
+       "InternalFrame.icon".
 
-       * 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-08-24  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-10-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * javax/swing/plaf/metal/MetalBorders.java
+       (InternalFrameBorder): implemented.
+       
+2005-08-24  David Gilbert  <david.gilbert@object-refinery.com>
 
-       * org/omg/CORBA/DynamicImplementation.java: Made concrete.
-       (invoke): Implemented.
-       gnu/CORBA/Simple_delegate.java (request): Implemented. 
+       * 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-10-14  Lillian Angel  <langel@redhat.com>
+2005-08-23  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.
+       (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
-       (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.
+       (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-10-14  Roman Kennke  <kennke@aicas.com>
+2005-08-23  Tom Tromey  <tromey@redhat.com>
 
-       * javax/swing/JLayeredPane.java
-       (isOptimizedDrawingEnabled): New method.
+       * java/text/SimpleDateFormat.java (compileFormat): Reformatted.
 
-2005-10-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+2005-08-23  Tom Tromey  <tromey@redhat.com>
 
-       * 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.
+       PR classpath/23531
+       * java/sql/Date.java (toString): Not deprecated.
+       (valueOf): Likewise.
+       * java/sql/Time.java (toString): Not deprecated.
+       (valueOf): Likewise.
 
-2005-10-14  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-08-23  David Gilbert  <david.gilbert@object-refinery.com>
 
-       * javax/swing/text/PlainView.java:
-       (nextTabStop): Tab size should be multiplied by the width of 'm', not
-       added to it.
+       * javax/swing/UIManager.java:  
+       (addAuxiliaryLookAndFeel): renamed field, added check for null 
+       argument,
+       (removeAuxiliaryLookAndFeel): reimplemented,
+       (getAuxiliaryLookAndFeels): renamed field,
+       (installLookAndFeel): implemented by delegation.
 
-2005-10-14  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-08-23  David Gilbert  <david.gilbert@object-refinery.com>
 
-       * javax/swing/text/PlainView.java:
-       (getTabSize): Check the Document's properties for
-       PlainDocument.tabSizeAttribute before defaulting to 8.
+       * javax/swing/UIManager.java: added API docs all over.
+       
+2005-08-23  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-10-14  Anthony Balkissoon  <abalkiss@redhat.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.
 
-       * 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-08-23  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-10-14  Anthony Balkissoon  <abalkiss@redhat.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/text/CompositeView.java: Minor doc fixes.
-       * javax/swing/text/BoxView.java: Minor doc fixes.
+       * 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-10-14  Lillian Angel  <langel@redhat.com>
+2005-08-23  Tom Tromey  <tromey@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.
+       * configure.ac: Fixed typo.
 
-2005-10-14  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-08-23  David Gilbert  <david.gilbert@object-refinery.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.
+       * 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-10-14  Roman Kennke  <kennke@aicas.com>
+2005-08-23  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/BoxLayout.java
-       (layoutContainer): Perform layout inside the container's treeLock.
-       Respect the insets of the container.
+       * native/jni/qt-peer/qttextfieldpeer.cpp
+       (Java_gnu_java_awt_peer_qt_QtTextFieldPeer_getCaretPosition): Renamed
+       from Java_gnu_java_awt_peer_qt_QtTextFieldPeer_getCaretPositionNative.
 
-2005-10-14  Lillian Angel  <langel@redhat.com>
+       * gnu/java/awt/peer/qt/QtComponentPeer.java (getMinimumSizeNative):
+       Removed unused native method.
+       (getPreferredSizeNative): Likewise.
 
-       * 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.
+       * 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-10-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+2005-08-23  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-       * org/omg/CORBA/PolicyErrorCodeHelper.java: New class. 
+       * java/awt/EventQueue.java (getNextEvent): Don't check if this is
+       the dispatch thread.
 
-2005-10-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+2005-08-23  Sven de Marothy  <sven@physto.se>
 
-       * org/omg/CORBA/LocalObject.java (_get_interface, _invoke, _is_local,
-       _orb, _releaseReply, _request, _servant_postinvoke, _servant_preinvoke,
-       validate_connection): New methods.
+       * 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>
 
-2005-10-14  Michael Koch  <konqueror@gmx.de>
+       * java/net/JarURLConnection.java (getJarEntry): Return null if no
+       entry specified.
 
-       * native/jni/midi-alsa/.cvsignore,
-       native/jni/midi-dssi/.cvsignore: New files
+2005-08-22  Tom Tromey  <tromey@redhat.com>
 
-2005-10-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * 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.
 
-       * 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>
+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.
 
-       * 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-08-22  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-10-13  Anthony Balkissoon  <abalkiss@redhat.com>
+       * javax/swing/event/SwingPropertyChangeSupport.java: reformatted.
+       
+2005-08-22  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/plaf/basic/BasicTableHeaderUI.java:
-       (paint): Reset the clip of the Graphics object after each iteration.
+       * javax/swing/ImageIcon.java: Add documentation.
 
-2005-10-13  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-08-22  Tom Tromey  <tromey@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.
+       * javax/swing/text/LayoutQueue.java: New file.
 
-2005-10-13  Roman Kennke  <kennke@aicas.com>
+2005-08-22  Tom Tromey  <tromey@redhat.com>
 
-       * javax/swing/ScrollPaneLayout.java
-       (preferredLayoutSize): Added some more null checks to avoid NPEs.
-       (minimumLayoutSize): Added some more null checks to avoid NPEs.
+       PR libgcj/23499:
+       * doc/api/Makefile.am (install-data-local): Now conditional on
+       CREATE_API_DOCS.
+       (uninstall-local): Likewise.
 
-2005-10-13  Jan Roehrich  <jan@roehrich.info>
+2005-08-22  Kelley Cook  <kcook@gcc.gnu.org>
 
-       * javax/swing/plaf/basic/BasicTreeUI.java
-       (installUI): Fixed setting of local JTree reference
+       * Makefile.am (ACLOCAL_AMFLAGS): New.
 
-2005-10-13  Lillian Angel  <langel@redhat.com>
+2005-08-22  David Gilbert  <david.gilbert@object-refinery.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.
+       * javax/swing/UIManager.java: fixed error message typo in static
+       initialization code.
+       
+2005-08-22  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-10-13  Anthony Balkissoon  <abalkiss@redhat.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.
 
-       * javax/swing/text/PlainView.java:
-       (updateDamage): Repaint the container if a new line is added.
+2005-08-22  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-10-13  Lillian Angel  <langel@redhat.com>
+       * javax/swing/SwingUtilities.java: fixed some minor API doc problems.
+       
+2005-08-22  David Gilbert  <david.gilbert@object-refinery.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.
+       * NEWS: added item regarding javax.swing.plaf.multi.* package 
+       implementation.
+       
+2005-08-22  Mark Wielaard  <mark@klomp.org>
 
-2005-10-13  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * 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-08-21  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-13  Roman Kennke  <kennke@aicas.com>
+       * gnu/java/awt/peer/gtk/GtkSelection.java: Update for new FSF
+       address.
 
-       * 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>
+2005-08-21  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-       * javax/swing/plaf/metal/MetalFileChooserUI.java
-       (DirectoryComboBoxAction): new inner class,
-       (FileRenderer): new inner class,
-       (directoryModel): new private field.
+       * javax/swing/plaf/basic/BasicSplitPaneUI.java
+       (KEYBOARD_DIVIDER_MOVE_OFFSET): Initialize with 3.
 
-2005-10-13  David Gilbert  <david.gilbert@object-refinery.com>
+2005-08-21  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-       * javax/swing/plaf/metal/MetalLookAndFeel.java
-       (initComponentDefaults): added default value for 
-       'List.focusCellHighlightBorder'.
+       * javax/swing/ImageIcon.java (getIconHeight): Return -1 if image
+       is null.
+       (getIconWidth): Likewise.
 
-2005-10-12  Lillian Angel  <langel@redhat.com>
+2005-08-21  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-       * javax/swing/UIDefaults.java
-       (getUIClass): Fixed to use the system class loader if
-       the loader is null.
+       * 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-10-12  David Daney  <ddaney@avtrex.com>
+2005-08-21  Tom Tromey  <tromey@redhat.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.
+       * javax/swing/text/AbstractWriter.java (NEWLINE): Now 'final'.
 
-2005-10-12  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-08-21  Thomas Fitzsimmons  <fitzsim@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>
+       * java/awt/Label.java (setText): Refine text inequality test.
 
-       * javax/swing/plaf/basic/BasicFileChooserUI.java
-       (getFileView): Don't call back into the JFileChooser, avoids
-       a StackOverflow.
-       (getApproveButtonText): Likewise.
+2005-08-21  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-12  Mark Wielaard  <mark@klomp.org>
+       * gnu/java/awt/peer/gtk/GdkGraphics.java (setClip(Shape)): Clear
+       clip when clip == null.
+       * gnu/java/awt/peer/gtk/GdkGraphics2D.java (setClip(Shape)):
+       Likewise.
 
-       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-08-20  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-12  Roman Kennke  <kennke@aicas.com>
+       * java/awt/Label.java (setText): Invalidate label.
 
-       * javax/swing/CellRendererPane.java
-       (paintComponent): Fix clipping of cells.
-       * javax/swing/plaf/basic/BasicTableUI.java
-       (paint): Fix clipping of cells.
+2005-08-20  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-12  Anthony Balkissoon  <abalkiss@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.
 
-       * 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>
+2005-08-20  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-       * javax/swing/plaf/basic/BasicTreeUI.java
-       (treeExpanded): Added revalidate call.
-       (treeCollapsed): Likewise.
-       (treeNodesInserted): Likewise.
-       (treeNodesRemoved): Likewise.
-       (treeStructureChanged): Likewise.
+       * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java (findFormatName):
+       Just return null when ext == null.
 
-2005-10-12  David Gilbert  <david.gilbert@object-refinery.com>
+2005-08-20  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-       * javax/swing/plaf/metal/MetalLookAndFeel.java
-       (initComponentDefaults): added defaults for FileView.
+       * java/awt/AWTKeyStroke.java (getAWTKeyStroke): Include old-style
+       modifiers in returned AWTKeyStroke's modifier mask.
 
-2005-10-12  Roman Kennke  <kennke@aicas.com>
+2005-08-20  Thomas Fitzsimmons  <fitzsim@redhat.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.
+       * gnu/java/awt/peer/gtk/GdkGraphics2D.java (setStroke): Clear
+       dashes if dashes is null.
+       (setStrokeUnlocked): Likewise.
 
-2005-10-12  Roman Kennke  <kennke@aicas.com>
+2005-08-20  Thomas Fitzsimmons  <fitzsim@redhat.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.
+       * java/awt/Window.java (getMostRecentFocusOwner): New method.
 
-2005-10-12  Roman Kennke  <kennke@aicas.com>
+2005-08-20  Sven de Marothy  <sven@physto.se>
 
-       * 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.
+       * 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-10-12  Roman Kennke  <kennke@aicas.com>
+2005-08-20  Thomas Fitzsimmons  <fitzsim@redhat.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.
+       * 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-10-12  David Gilbert  <david.gilbert@object-refinery.com>
+2005-08-20  Keith Seitz  <keiths@redhat.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>
+       * 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.
 
-       * javax/swing/JList.java
-       (locationToIndex): Put opening brace on next line.
-       (indexToLocation): Call UI's indexToLocation.
-       (getCellBounds): Replaced cast with getUI() call.
+       * gnu/classpath/jdwp/id/ObjectId.java (setId): New method.
+       (disableCollection): New method.
+       (enableCollection): New method.
 
-2005-10-12  Roman Kennke  <kennke@aicas.com>
+       * gnu/classpath/jdwp/id/JdwpId.java (equals): Remove test for class equality.
+       (setId): Make public.
 
-       * 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-08-20  Keith Seitz  <keiths@redhat.com>
 
-2005-10-12  Roman Kennke  <kennke@aicas.com>
+       * gnu/classpath/jdwp/exception/InvalidThreadGroupException.java
+       (InvalidThreadGroupException): Fix misleading string error message.
+       (InvalidThreadGroupException): Fix typo -- should be
+       JdwpConstants.Error.INVALID_THREAD_GROUP.
 
-       * 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.
+       * 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-10-12  Roman Kennke  <kennke@aicas.com>
+2005-08-19  Audrius Meskauskas <AudriusA@Bioinformatics.org>
 
-       * javax/swing/JComboBox.java
-       (isFocusTraversable): Removed unneeded and unspecified method.
+        * NEWS: Added note about DynamicAny package.
 
-2005-10-12  Roman Kennke  <kennke@aicas.com>
+2005-08-19  Mark Wielaard  <mark@klomp.org>
 
-       * 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.
+       * native/jni/qt-peer/Makefile.am (libqtpeer_la_SOURCES):
+       Added eventmethods.h.
 
-2005-10-12  Roman Kennke  <kennke@aicas.com>
+2005-08-19  Tom Tromey  <tromey@redhat.com>
 
-       * javax/swing/text/JTextComponent.java
-       (getToolTipText): New method.
+       * javax/swing/tree/DefaultTreeCellEditor.java: Removed erroneous
+       import.
 
-2005-10-12  Roman Kennke  <kennke@aicas.com>
+2005-08-19  Tom Tromey  <tromey@redhat.com>
 
-       * javax/swing/plaf/metal/MetalLookAndFeel.java
-       (initComponentDefaults): Fixed value for
-       Table.focusCellHighlightBorder.
+       * javax/swing/text/AbstractWriter.java: New file.
+       * javax/swing/text/ElementIterator.java: New file.
 
-2005-10-12  Roman Kennke  <kennke@aicas.com>
+2005-08-19  Lillian Angel  <langel@redhat.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>
+       (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.
 
-       * javax/swing/JFileChooser.java: Added API docs all over.
+2005-08-19  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-11  Roman Kennke  <kennke@aicas.com>
+       * lib/.cvsignore: Add META-INF, Makefile.deps and lists.
 
-       * 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-08-19  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-11  David Gilbert  <david.gilbert@object-refinery.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.
 
-       * javax/swing/filechooser/FileSystemView.java
-       (defaultFileSystemView): new private field,
-       (getFileSystemView): initialise (if necessary) and return 
-       defaultFileSystemView.
+2005-08-19  Lillian Angel  <langel@redhat.com>
 
-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>
+       * 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.
 
-       * java/beans/IndexedPropertyDescriptor.java
-       (setIndexedReadMethod): Changed signature to throw
-       IntrospectionException as specified.
-       (setIndexedWriteMethod): Changed signature to throw
-       IntrospectionException as specified.
+2005-08-19  Roman Kennke  <roman@kennke.org>
 
-2005-10-10  Roman Kennke  <kennke@aicas.com>
+       * java/awt/image/DirectColorModel.java
+       (createCompatibleWritableRaster): Added API documentation.
 
-       * javax/swing/JComponent.java
-       (rectCache): New field. Caches Rectangle objects for reuse.
-       (paintChildren): Changed to reuse cached Rectangle object.
+2005-08-18  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-10  David Gilbert  <david.gilbert@object-refinery.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.
 
-       * 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-08-18  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-10-09  Mark Wielaard  <mark@klomp.org>
+       * 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.
 
-       Fixes bug #24006
-       * java/net/Socket.java (bound): Make package private.
-       * java/net/ServerSocket.java (implAccept): Set Socket.bound to true.
+2005-08-18  Lillian Angel  <langel@redhat.com>
 
-2005-10-07  Anthony Green  <green@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
+=======
+>>>>>>> .merge-right.r109770
+       * javax/swing/tree/DefaultTreeSelectionModel.java
+       (DefaultTreeSelectionModel): Default should be DISCONTIGUOUS_TREE_SELECTION.
 
-       * native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c
-       (process): call run_multiple_synths if required.
+2006-01-03  Lillian Angel  <langel@redhat.com>
 
-2005-10-07  Anthony Green  <green@redhat.com>
+       * javax/swing/AbstractAction.java
+       (AbstractAction): Fixed to pass in null. Should not be 
+       an empty string. Removed TODO comment.
+       (AbstractAction): Removed TODO comment.
+       * javax/swing/JList.java
+       (init): Default selection mode should be MULTIPLE_INTERVAL_SELECTION.
+       * javax/swing/JMenuItem.java
+       (JMenuItem): Set all defaults if the action passed in is not null.
+       * javax/swing/JProgressBar.java
+       (JProgressBar): Added check to prevent NPE.
 
-       * 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.
+2006-01-03  Lillian Angel  <langel@redhat.com>
 
-2005-10-07  Anthony Green  <green@redhat.com>
+       * javax/swing/plaf/basic/BasicListUI.java
+       (getPreferredSize): The JDK adds some extra space to 
+       the list, so we should as well.
+       * javax/swing/plaf/metal/MetalFileChooserUI.java
+       (getPreferredSize): Should only take the fileListPanel's
+       width into account when getting the size. Also, the buttonPanel's
+       size should not be checked, since it is in the bottomPanel already.
+       (getMinimumSize): Likewise.
 
-       * 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.
+2006-01-03  Lillian Angel  <langel@redhat.com>
 
-2005-10-07  Thomas Fitzsimmons  <fitzsim@redhat.com>
+       * javax/swing/JList.java
+       (init): visibleRowCount should be 7, like the JDK.
+       * javax/swing/plaf/metal/MetalFileChooserUI.java
+       (installComponents): No need to add the fileFilterCombo
+       to a panel. It can be added to the row directly.
 
-       * 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.
+2006-01-03  Lillian Angel  <langel@redhat.com>
+       
+       PR classpath/25480 PR classpath/25478
+       * javax/swing/plaf/basic/BasicScrollPaneUI.java
+       (updateViewport): Made changes suggested by
+       Chris Lansdown.
+       * javax/swing/plaf/metal/MetalFileChooserUI.java:
+       Removed unneeded import.
+       (createList): Removed comment, JList wrapping 
+       now works.
+       (getPreferredSize): Made changes suggested by
+       Chris Lansdown. Uses fileListPanel, instead
+       of fileList.
+       (getMinimumSize): Uses fileListPanel, instead
+       of fileList.
+       * javax/swing/plaf/metal/MetalRadioButtonUI.java
+       (paintFocus): Fixed height.
 
-2005-10-07  Anthony Green  <green@redhat.com>
+2006-01-03  Roman Kennke  <kennke@aicas.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.
+<<<<<<< .working
+       * javax/swing/plaf/basic/BasicScrollBarUI.java
+       (PropertyChangeHandler.propertyChange): Add default
+       to switch statement to avoid errors with unusual values
+       for orientation.
+       (installComponents): Likewise.
 
-2005-10-07  Roman Kennke  <kennke@aicas.com>
+2005-04-18  Roman Kennke  <roman@kennke.org>
 
-       * javax/swing/JTable.java
-       (tableChanged): Revalidate table if its structure changes.
+       * javax/swing/plaf/metal/MetalScrollBarUI.java:
+       (createUI): Instances cannot be shared among JScrollPanes.
 
-2005-10-07  Jan Roehrich  <jan@roehrich.info>
+2005-04-18  Sven de Marothy  <sven@physto.se>
 
-       * javax/swing/JTree.java: (JTree):
-       * javax/swing/plaf/basic/BasicTreeUI.java: (updateRenderer):
-       moved setting of TreeCellRenderer from JTree to BasicTreeUI.
+       * java/lang/String.java: Value, offset and count should be private.
 
-2005-10-07  Roman Kennke  <kennke@aicas.com>
+2005-04-18  Roman Kennke  <roman@kennke.org>
 
-       * java/beans/IndexedPropertyDescriptor.java
-       (setIndexedReadMethod): New method.
-       (setIndexedWriteMethod): New method.
+       * javax/swing/plaf/metal/MetalLookAndFeel.java
+       (initComponentDefaults): Added defaults for Menu, MenuBar
+       MenuEntry fonts.
 
-2005-10-07  Roman Kennke  <kennke@aicas.com>
+2005-04-18  Roman Kennke  <roman@kennke.org>
 
-       * java/beans/IndexedPropertyDescriptor.java: Reformatted.
+       * 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-10-07  Roman Kennke  <kennke@aicas.com>
+2005-04-18  Jeroen Frijters  <jeroen@frijters.net>
 
-       * 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  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.
+       * 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-10-06  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-04-18  Jeroen Frijters  <jeroen@frijters.net>
 
-       * 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.
+       * java/lang/Class.java (getModifiers, newInstance): Changed
+       call to VMClass.getModifiers().
+       * vm/reference/java/lang/VMClass.java
+       (getModifiers(Class, boolean)): New method.
 
-2005-10-06  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-04-18  Jeroen Frijters  <jeroen@frijters.net>
 
-       * javax/swing/text/PlainView.java:
-       (determineMaxLength): If maxLineLength is -1 we should return 0.
-       (insertOrRemoveUpdate): Avoid NPE by checking the Segment that 
-       getText returns.
+       * 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-10-06  Thomas Fitzsimmons  <fitzsim@redhat.com>
+2005-04-18  Jeroen Frijters  <jeroen@frijters.net>
 
-       * javax/imageio/metadata/IIOMetadata.java: Complete.
+       * gnu/java/beans/IntrospectionIncubator.java
+       (addToPropertyHash, addToListenerHash): Don't confuse get(),
+       set(), is(), add() and remove() with properties or events.
 
-2005-10-06  Roman Kennke  <kennke@aicas.com>
+2005-04-18  Roman Kennke  <roman@kennke.org>
 
-       * 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.
+       * 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-10-06  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-04-17  Roman Kennke  <roman@kennke.org>
 
-       * 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.
+       * javax/swing/text/SimpleAttributeSet.java
+       (addAttribute): Removed null pointer check.
+       * javax/swing/text/StyleContext.java
+       (NamedStyle.setResolveParent): Added null pointer check.
 
-2005-10-06  Roman Kennke  <kennke@aicas.com>
+2005-04-17  Roman Kennke  <roman@kennke.org>
 
-       * javax/swing/JLabel.java
-       (JLabel): Set alignmentX value to 0.0F.
+       * 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-10-06  Lillian Angel  <langel@redhat.com>
+2005-04-17  Roman Kennke  <roman@kennke.org>
 
-       * 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/UIManager.java:
+       Make the UIManager respect the swing.defaultlaf system
+       property.
 
-       * javax/swing/plaf/basic/BasicTreeUI.java
-       (mousePressed): Shouldn't change x location for leaf.
+2005-04-17  Roman Kennke  <roman@kennke.org>
 
-2005-10-06  Andreas Tobler  <a.tobler@schweiz.ch>
+       * 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 .
 
-       * configure.ac: Add Qt4 configury bits for OS-X.
+2005-04-16  Roman Kennke  <roman@kennke.org>
 
-2005-10-05  Lillian Angel  <langel@redhat.com>
+       * java/awt/BorderLayout.java
+       (calcSize): Check for overflow when component sizes are added.
 
-       * javax/swing/plaf/basic/BasicTreeUI.java
-       (paintRow): Fixed indentation.
-       (updateCurrentVisiblePath): Added FIXME
-       comment.
+2005-04-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2005-10-05  Roman Kennke  <kennke@aicas.com>
+       * 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>
 
-       * 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.
+       * 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>
 
-2005-10-05  Lillian Angel  <langel@redhat.com>
+       * java/rmi/server/RemoteObject.java:
+       Removed unused import statement.
 
-       * 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-04-16  Michael Koch  <konqueror@gmx.de>
 
-2005-10-05  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * 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-04-16  Michael Koch  <konqueror@gmx.de>
 
-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  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.
+       * 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-10-04  Roman Kennke  <kennke@aicas.com>
+2005-04-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * 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>
+       * 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".
 
-       * javax/swing/JMenuItem.java
-       (init): Set horizontalTextPosition to TRAILING, instead of 
-       LEFT. Icons are drawn in the correct spot now.
+2005-04-15  Roman Kennke  <roman@kennke.org>
 
-2005-10-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * javax/swing/plaf/metal/MetalLookAndFeel.java
+       (initComponentDefaults): Added Label.font.
+       (initSystemColorDefaults): Added this method and adjusted the
+       general control color.
 
-        * doc/www.gnu.org/corba.wml: New file. 
+2005-04-15  Roman Kennke  <roman@kennke.org>
 
-2005-10-03  David Gilbert  <david.gilbert@object-refinery.com>
+       * javax/swing/plaf/metal/MetalTabbedPaneUI.java:
+       Added newline between import blocks. Changed Map to
+       HashMap in field declarations.
 
-       * 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>
+2005-04-15  Sven de Marothy  <sven@physto.se>
 
-       * 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  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.
+       * 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-10-01  Jeroen Frijters  <jeroen@frijters.net>
+2005-04-15  Roman Kennke  <roman@kennke.org>
 
-       * 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.
+       * 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-10-01  Mark Wielaard  <mark@klomp.org>
+2005-04-15  Roman Kennke  <roman@kennke.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.
+       * javax/swing/plaf/metal/MetalTabbedPaneUI.java
+       (createUI): Create one MetalTabbedPaneUI per Component instead
+       of sharing one instance.
 
-2005-10-01  Andreas Tobler  <a.tobler@schweiz.ch>
+2005-04-15  Roman Kennke  <roman@kennke.org>
 
-       * 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.
+       * javax/swing/plaf/metal/MetalLookAndFeel.java
+       (initComponentDefaults): Added to set Metal specific component
+       defaults.
 
-2005-09-30  Roman Kennke  <kennke@aicas.com>
+2005-04-14  Chris Burdess  <dog@gnu.org>
 
-       * 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.
+       * java/io/DataOutputStream.java (writeUTF): Use block write for
+       output.
 
-2005-09-30  Lillian Angel  <langel@redhat.com>
+2005-04-14  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/plaf/basic/BasicTabbedPaneUI.java
-       (paintTabArea): Added check to adjust runCount if
-       it is less that tabCount.
+       * javax/swing/plaf/metal/MetalLookAndFeel.java
+       (initClassDefaults): Call super.initClassDefaults().
 
-2005-09-30  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-04-14  Roman Kennke  <roman@kennke.org>
 
-       * javax/swing/text/PlainDocument.java:
-       (removeUpdate): Fixed length of new LeafElement and off-by-one error
-       in call to rootElement.replace().
+       * javax/swing/plaf/metal/MetalLookAndFeel.java
+       (initClassDefaults): Added to include the *UI classes.
 
-2005-09-30  Lillian Angel  <langel@redhat.com>
+2005-04-14  Roman Kennke  <roman@kennke.org>
 
-       * 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.
+       * 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-09-30  David Gilbert  <david.gilbert@object-refinery.com>
+2005-04-14  Roman Kennke  <roman@kennke.org>
 
-       * examples/gnu/classpath/examples/swing/SliderDemo.java:
-       New file.
+       * 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-09-30  Lillian Angel  <langel@redhat.com>
+2005-04-13  Roman Kennke  <roman@kennke.org>
 
-       * 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.
+       * 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-09-30  Lillian Angel  <langel@redhat.com>
+2005-04-13  Sven de Marothy  <sven@physto.se>
 
-       * 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.
+       * java/nio/charset/Charset.java: Cached encoders shouldn't be static.
+       
+2005-04-13  Roman Kennke  <roman@kennke.org>
 
-2005-09-30  Anthony Balkissoon  <abalkiss@redhat.com>
+       * java/awt/MediaTracker.java:
+       Reindented tabs to spaces.
 
-       * 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-04-13  Roman Kennke  <roman@kennke.org>
 
-2005-09-30  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * 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-04-12  Roman Kennke  <roman@kennke.org>
 
-2005-09-30  Anthony Balkissoon  <abalkiss@redhat.com>
+       * java/util/.cvsignore:
+       Added file and included LocaleDate.java.
+       * lib/.cvsignore:
+       Added classes.locale.
+       * scripts/.cvsignore:
+       Added classpath.spec.
 
-       * 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-04-12  Roman Kennke  <roman@kennke.org>
 
-2005-09-30  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * 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>
+2005-04-12  Roman Kennke  <roman@kennke.org>
 
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
-       (cp_gtk_graphics2d_init_jni): Check ExceptionOccured after running
-       class initializer.
+       * javax/swing/plaf/basic/BasicMenuBarUI.java:
+       Fixed tabs to spaces.
 
-2005-09-30  Mark Wielaard  <mark@klomp.org>
+2005-04-12  Roman Kennke  <roman@kennke.org>
 
-       * gnu/java/awt/peer/gtk/GdkFontMetrics.java (initFont): New static
-       method.
-       (GdkFontMetrics): Use initFont() in super() call.
+       * javax/swing/JRootPane.java:
+       Fixed various tabs to be spaces.
+       (RootLayout.layoutContainer): Made menubar left aligned.
 
-2005-09-30  Mark Wielaard  <mark@klomp.org>
+2005-04-12  Roman Kennke  <roman@kennke.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.
+       * javax/swing/JComponent.java:
+       Modified alignmentX and alignmentY to be 0.5 instead of 0.0.
+       Untabified the file.
 
-2005-09-30  Sven de Marothy  <sven@physto.se>
+2005-04-12  Roman Kennke  <roman@kennke.org>
 
-       * javax/swing/JFileChooser.java:
-       (getAccessibleContext): Implement.
-       (AccessibleJFileChooser): Inner class implemented.
-       
-2005-09-30  Jeroen Frijters  <jeroen@frijters.net>
+       * javax/swing/BoxLayout.java:
+       (layoutContainer): Made this layout manager respect the
+       minimum, maximum and preferred size more correctly.
 
-       Fixes Bug 24122
-       * gnu/xml/transform/TransformerImpl.java
-       (writeStreamResult): Added call to connection.setDoInput(false).
+2005-04-12  Roman Kennke  <roman@kennke.org>
 
-2005-09-29  Tom Tromey  <tromey@redhat.com>
+       * 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.
 
-       * java/net/URLConnection.java (setDoInput): Javadoc fix.
-       (setDoOutput): Likewise.
-       (setContentHandlerFactory): Likewise.
-       (setFileNameMap): Likewise.
+2005-04-12  Michael Koch  <konqueror@gmx.de>
 
-2005-09-29  Roman Kennke  <kennke@aicas.com>
+       * java/io/FilePermission.java
+       (serialVersionUID): Made private.
+       (ALL_FILES): New constant.
+       (implies): Handle '<<ALL FILES>>' case.
 
-       * 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-04-12  Audrius Meskauskas, Lithuania  <AudriusA@Bioinformatics.org>
 
-2005-09-29  Roman Kennke  <kennke@aicas.com>
+       * javax/swing/text/html/HTMLDocument.java: New file.
 
-       * javax/swing/plaf/basic/BasicSliderUI.java
-       (ActionScroller.ActionScroller): Added constructor.
+2005-04-12  Michael Koch  <konqueror@gmx.de>
 
-2005-09-29  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * javax/swing/plaf/basic/BasicTableUI.java
-       (KeyHandler): New inner class.
-       (createKeyListener): New method.
+2005-04-12  Michael Koch  <konqueror@gmx.de>
 
-2005-09-29  Roman Kennke  <kennke@aicas.com>
+       * java/awt/image/RasterOp.java:
+       Fixed wrong formatting.
 
-       * javax/swing/plaf/basic/BasicTreeUI.java
-       (getLeftChildIndent): Fixed method signature.
-       (drawCentered): Fixed method signature.
+2005-04-12  Michael Koch  <konqueror@gmx.de>
 
-2005-09-29  Tom Tromey  <tromey@redhat.com>
+       * java/awt/print/PrinterJob.java
+       (pageDialog): New method.
+       (printDialog): Implemented.
 
-       PR classpath/23381:
-       * java/beans/PropertyDescriptor.java (hashCode): New method.
+2005-04-12  Michael Koch  <konqueror@gmx.de>
 
-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>
+       * java/awt/FontMetrics.java: Reformatted.
+       (getFontRenderContext): Handle case when java.awt.Graphics context is
+       given.
 
-       * javax/swing/SizeRequirements.java
-       (getAlignedSizeRequirements): Fixed calculation of preferred and
-       maximum size as well as the alignment.
+2005-04-12  Michael Koch  <konqueror@gmx.de>
 
-2005-09-29  Roman Kennke  <kennke@aicas.com>
+       * java/awt/FontMetrics.java
+       (getStringBounds): New methods.
 
-       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-04-12  Michael Koch  <konqueror@gmx.de>
 
-2005-09-29  David Gilbert  <david.gilbert@object-refinery.com>
+       * java/net/NetworkInterface.java
+       (NetworkInterface): Made constructor package private.
+       Introduced another constructor for more addresses on one
+       interface.
 
-       * examples/gnu/classpath/examples/swing/ComboBoxDemo.java: new demo.
+2005-04-12  Michael Koch  <konqueror@gmx.de>
 
-2005-09-29  Thomas Fitzsimmons  <fitzsim@redhat.com>
+       * native/jni/java-net/Makefile.am
+       Compile new files java_net_VMInetAddress.c and
+       java_net_VMNetworkInterface.
 
-       * java/awt/print/PrinterJob.java
-       (print(PrintRequestAttributeSet)): Remove abstract modifier and
-       implement.
+2005-04-12  Sven de Marothy  <sven@physto.se>
 
-2005-09-29  David Gilbert  <david.gilbert@object-refinery.com>
+       * 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>
 
-       * 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.
+       * 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-09-29  Roman Kennke  <kennke@aicas.com>
+2005-04-11  Roman Kennke  <roman@kennke.org>
 
-       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.
+       * javax/swing/ImageIcon.java
+       Added API documentation.
 
-2005-09-29  Lillian Angel  <langel@redhat.com>
+2005-04-11  Roman Kennke  <roman@kennke.org>
 
-       * 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
+       * java/awt/MediaTracker.java
+       Added API documentation.
 
-2005-09-29  Tom Tromey  <tromey@redhat.com>
+2005-04-11  Michael Koch  <konqueror@gmx.de>
 
-       * java/rmi/activation/ActivationGroup_Stub.java (serialVersionUID):
-       New field.
+       * javax/imageio/ImageIO.java (ReaderFormatFilter.filter):
+       Fixed wrong casting.
 
-2005-09-28  Lillian Angel  <langel@redhat.com>
+2005-04-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       Fixes Bug #24080
-       * java/awt/Window.java
-       (show): Fixed the synchronized block to fix deadlock
-       problem.
+       * org/omg/CORBA/Request.java:
+       (send_deferred): Added missing 'abstract' keyword.
+       
+2005-04-10  Sven de Marothy  <sven@physto.se>
 
-2005-09-29  Sven de Marothy  <sven@physto.se>
+       * java/text/SimpleDateFormat.java:
+       (formatWithAttribute): Pad year before truncating digits.
 
-       * 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-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-09-29  Roman Kennke  <kennke@aicas.com>
-
-       * java/rmi/server/RMIClassLoader.java
-       (loadClass(URL, String)): New method.
+2005-04-09  Mark Wielaard  <mark@klomp.org>
 
-2005-09-29  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       Fixes Bug #24114
-       * javax/swing/plaf/basic/BasicTextUI.java
-       (installDefaults): Set the background color correctly.
+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>
 
-2005-09-29  David Gilbert  <david.gilbert@object-refinery.com>
+       * 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>
 
-       * 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.
+       * 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>
 
-2005-09-28  Anthony Balkissoon  <abalkiss@redhat.com>
+       * 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.
 
-       * 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-04-08  Roman Kennke  <roman@kennke.org>
 
-2005-09-28  Lillian Angel  <langel@redhat.com>
+       * 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.
 
-       * 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-04-08  Guilhem Lavaux  <guilhem@kaffe.org>
 
-2005-09-28  Roman Kennke  <kennke@aicas.com>
+       * 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).
 
-       * 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-04-08  Roman Kennke  <roman@kennke.org>
 
-2005-09-28  Anthony Balkissoon  <abalkiss@redhat.com>
+       * 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.
 
-       * javax/swing/text/AbstractDocument.java:
-       (AbstractElement.getResolveParent): If the AttributeSet's 
-       getResolveParent returns null, use the Element's parent's AttributeSet.
+2005-04-07  Chris Burdess  <dog@gnu.org>
 
-2005-09-28  Roman Kennke  <kennke@aicas.com>
+       * gnu/java/net/CRLFInputStream.java: Rewrite to return
+       CRLF-delimited chunks.
 
-       * java/rmi/activation/ActivationGroup_Stub.java:
-       New class.
+2005-04-07  Roman Kennke  <roman@kennke.org>
 
-2005-09-28  Lillian Angel  <langel@redhat.com>
+       * javax/swing/UIDefaults.java:
+       Added API documentation for all methods.
 
-       * javax/swing/plaf/basic/BasicSliderUI.java
-       (paint): No need to call calculateThumbLocation, called
-       by calculateGeometry.
+2005-04-06  Roman Kennke  <roman@kennke.org>
 
-2005-09-28  Lillian Angel  <langel@redhat.com>
+       * 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.
 
-       Fixes Bug #23934
-       * javax/swing/plaf/basic/BasicSliderUI.java
-       (paint): Called calculateGeometry, so the slider is 
-       initially set up.
+2005-04-06   Audrius Meskauskas  <audriusa@bluewin.ch>
 
-2005-09-28  Lillian Angel  <langel@redhat.com>
-       
-       Fixes Bug #24080
-       * java/awt/Window.java
-       (show): Added a synchronized block to fix deadlock
-       problem.
+       * 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-09-28  Roman Kennke  <kennke@aicas.com>
+2005-04-05  Roman Kennke  <roman@kennke.org>
 
-       * 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.
+       * 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-09-28  Roman Kennke  <kennke@aicas.com>
+2005-04-03  Guilhem Lavaux  <guilhem@kaffe.org>
+       Rei Odaira <ray@is.s.u-tokyo.ac.jp>
 
-       * 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.
+       * 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-09-28  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-04-03  Guilhem Lavaux  <guilhem@kaffe.org>
 
-       * javax/swing/text/Utilities.java:
-       (getRowEnd): Call getText() rather than trying to get the Element-
-       specific portion to avoid GapContent errors.
-       (getRowStart): Likewise.
+       * native/jni/java-nio/gnu_java_nio_VMSelector.c: Reindented.
+       
+2005-04-01  Tom Tromey  <tromey@redhat.com>
 
-2005-09-28  Tom Tromey  <tromey@redhat.com>
+       * java/lang/AssertionError.java: Typo fix.
 
-       * javax/sound/midi/MidiUnavailableException.java (serialVersionUID):
-       New field.
-       * javax/sound/midi/InvalidMidiDataException.java (serialVersionUID):
-       New field.
+2005-04-01  Michael Koch  <konqueror@gmx.de>
 
-2005-09-28  David Gilbert  <david.gilbert@object-refinery.com>
+       * java/io/PipedInputStream.java
+       (read): Make sure a positive byte value is returned. Revised javadoc.
+       Thanks to Olafur Bragason for reporting these bugs.
 
-       * javax/swing/UIDefaults.java
-       (getBoolean(Object)): API doc correction.
+2005-04-01  Guilhem Lavaux  <guilhem@kaffe.org>
 
-2005-09-28  David Gilbert  <david.gilbert@object-refinery.com>
+       * java/awt/image/IndexColorModel.java
+       (getRGB): Check if pixel is negative.
 
-       * javax/swing/plaf/metal/MetalButtonListener.java
-       (propertyChange): check new value of property to determine which
-       border to set.
+2005-03-31  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-2005-09-28  Lillian Angel  <langel@redhat.com>
+       * javax/swing/text/JTextComponent.java (viewToModel): New method.
 
-       * javax/swing/plaf/basic/BasicComboBoxUI.java
-       (installDefaults): Fixed checks for setting defaults.
-       Should check if default is null also.
+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-09-28  Lillian Angel  <langel@redhat.com>
+2005-03-31  Michael Koch  <konqueror@gmx.de>
 
-       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>
+       (getClipBounds): Handle clip being null.
+       (setClip): Likewise.
+       * java/beans/beancontext/BeanContextSupport.java
+       (add): Implemented.
+       (addAll): Likewise.
+       (clear): Likewise.
+       (removeAll): Likewise.
+       (retainAll): Likewise.
 
-       * 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-03-30  Sven de Marothy  <sven@physto.se>
 
-2005-09-28  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * javax/swing/plaf/metal/MetalLookAndFeel.java
-       (createDefaultTheme): Change default back to DefaultMetalTheme.
-       The Ocean theme is too inconsistent.
+2005-03-30  Michael Koch  <konqueror@gmx.de>
 
-2005-09-28  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * 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-03-30  Michael Koch  <konqueror@gmx.de>
 
-2005-09-28  Roman Kennke  <kennke@aicas.com>
+       * java/awt/image/ConvolveOp.java:
+       Removed comment added by eclipse.
 
-       * 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-03-30  Michael Koch  <konqueror@gmx.de>
 
-2005-09-28  Roman Kennke  <kennke@aicas.com>
+       * gnu/xml/aelfred2/XmlParser.java:
+       Revert my typo fix.
 
-       * 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-03-30  Michael Koch  <konqueror@gmx.de>
 
-2005-09-28  Roman Kennke  <kennke@aicas.com>
+       * java/awt/geom/CubicCurve2D.java,
+       java/awt/geom/QuadCurve2D.java:
+       Fixed typo in name of Brian Cough.
 
-       * javax/swing/plaf/metal/MetalInternalFrameTitlePane.java
-       (paintPalette): Use new MetalUtils.fillMetalPattern signature.
-       (paintComponent): Use new MetalUtils.fillMetalPattern signature.
+2005-03-29  Guilhem Lavaux  <guilhem@kaffe.org>
 
-2005-09-28  Roman Kennke  <kennke@aicas.com>
+       * 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>
 
-       * 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.
+       * 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-09-28  Roman Kennke  <kennke@aicas.com>
+2005-03-28  Tom Tromey  <tromey@redhat.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.
+       * java/net/URL.java (DEFAULT_SEARCH_PATH): Added
+       org.metastatic.jessie.
 
-2005-09-28  Roman Kennke  <kennke@aicas.com>
+2005-03-28  Tom Tromey  <tromey@redhat.com>
 
-       * java/awt/Font.java: Reformatted file.
+       * java/lang/ClassLoader.java (loadClass): Resolve class even if
+       it was already found.
 
-2005-09-28  David Gilbert  <david.gilbert@object-refinery.com>
+2005-03-28  Sven de Marothy  <sven@physto.se>
 
-       * javax/swing/plaf/metal/MetalIconFactory.java
-       (TreeHardDriveIcon): new private class,
-       (TreeFloppyDriveIcon): new private class,
-       (TreeComputerIcon): new private class,
-       (getTreeControlIcon): implemented,
-       (getTreeComputerIcon): implemented,
-       (getTreeHardDriveIcon): implemented.
+       * 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-09-28  David Gilbert  <david.gilbert@object-refinery.com>
+2005-03-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * javax/swing/plaf/metal/MetalBorders.java
-       (ToolBarBorder): now implements SwingConstants.
-       
-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".
+       * doc/hacking.texinfo:
+       Added note on reserved word usage.
        
-2005-09-27  David Gilbert  <david.gilbert@object-refinery.com>
+2005-03-26  Dalibor Topic  <robilad@kaffe.org>
 
-       * 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.
+       * native/jni/java-nio/gnu_java_nio_VMSelector.c:
+       Moved include statement for config.h to the top to
+       fix the build on Darwin6.
 
-2005-09-27  David Gilbert  <david.gilbert@object-refinery.com>
+       Reported by:  Riccardo Mottola <zuse@libero.it>
 
-       * javax/swing/plaf/metal/MetalBorders.java
-       (RolloverButtonBorder): new class.
+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.
 
-2005-09-27  Roman Kennke  <kennke@aicas.com>
+       Reported by: Michael Franz <mvfranz@gmail.com>
 
-       * javax/swing/BoxLayout.java
-       (preferredLayoutSize): Fixed to respect the containers insets.
-       (layoutComponent): Likewise.
+2005-03-26  Ito Kazumitsu  <kaz@maczuka.gcd.org>
 
-2005-09-27  Roman Kennke  <kennke@aicas.com>
+       * java/text/DecimalFormat.java (parse):
+       Check whether the positive suffix matches the pattern.
 
-       * 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-03-26  Chris Burdess  <dog@gnu.org>
 
-2005-09-27  Anthony Balkissoon  <abalkiss@redhat.com>
+       * gnu/xml/dom/DomNode.java (notifyNode): grow listener array as
+       required.
 
-       * 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-03-26  Jeroen Frijters  <jeroen@frijters.net>
 
-2005-09-27  Lillian Angel  <langel@redhat.com>
+       * javax/imageio/spi/IIORegistry.java (IIORegistry):
+       Don't assume that awt Toolkit is always ClasspathToolkit.
 
-       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-03-26  Jeroen Frijters  <jeroen@frijters.net>
 
-2005-09-27  Tom Tromey  <tromey@redhat.com>
+       * java/awt/image/PixelGrabber.java (setPixels(int,int,int,int,
+       ColorModel,byte[],int,int): Fixed byte to int conversion.
 
-       * java/awt/Window.java (createBufferStrategy): Can throw AWTException.
-       * java/awt/Canvas.java (createBufferStrategy): Can throw AWTException.
+2005-03-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2005-09-27  Lillian Angel  <langel@redhat.com>
+       * gnu/xml/dom/html2/DomHTMLParser.java:
+       Changed 'enum' references to become 'enumeration'.
        
-       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-03-22  Archie Cobbs  <archie@dellroad.org>
 
-2005-09-27  Anthony Balkissoon  <abalkiss@redhat.com>
+       * configure.ac: Generate scripts/classpath.spec.
+       * scripts/classpath.spec.in: New file.
 
-       * javax/swing/text/Utilities.java:
-       (getRowEnd): New method.
-       (getRowStart): New method.
+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-09-27  Tom Tromey  <tromey@redhat.com>
+2005-03-21  Sven de Marothy  <sven@physto.se>
 
-       * java/beans/beancontext/BeanContextServicesSupport.java
-       (BCSSChild.serialVersionUID): Fixed.
-       * java/beans/beancontext/BeanContextSupport.java
-       (BCSChild.serialVersionUID): Fixed.
+       * gnu/classpath/SystemProperties.java:
+       Add missing aliases for "UnicodeBigUnmarked" and
+       UnicodeLittleUnmarked".
+       
+2005-03-21  Mark Wielaard  <mark@klomp.org>
 
-2005-09-27  David Gilbert  <david.gilbert@object-refinery.com>
+       * doc/www.gnu.org/events/escape_fosdem05.wml: Add link to kaffe
+       presentation.
 
-       * 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  Lillian Angel  <langel@redhat.com>
-
-       * javax/swing/ToolTipManager.java
-       (showTip): validating of toolTipWindow should not have been 
-       removed.
+2005-03-17  Archie Cobbs  <archie@dellroad.org>
 
-2005-09-26  Lillian Angel  <langel@redhat.com>
+       * vm/reference/java/lang/VMClassLoader.java: handle ZIP files
+       on the boot loader class path in getResources()
 
-       * javax/swing/ToolTipManager.java
-       (showTip): Removed validating of currentTip. setVisible(true) 
-       does this. Also, removed validating of toolTipWindow because 
-       show() does this.
+2005-03-19  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-2005-09-27  Roman Kennke  <kennke@aicas.com>
+       * org/omg/CORBA/AnySeqHolder.java,
+       org/omg/CORBA/AnySeqHelper.java,
+       org/omg/CORBA/CompletionStatusHelper.java:
+       New files.
 
-       * 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-03-18  Mark Wielaard  <mark@klomp.org>
 
-2005-09-27  Roman Kennke  <kennke@aicas.com>
+       * doc/www/downloads/downloads.wml: Add 0.14.
+       * doc/www/announce/20050226.wml: New file.
 
-       * 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-03-18  Sven de Marothy  <sven@physto.se>
 
-2005-09-27  Sven de Marothy  <sven@physto.se>
+       * java/util/zip/GZIPInputStream.java:
+       (GZIPInputStream): Read header in constructor.
+       
+2005-03-18  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * javax/swing/JComboBox.java
-       (firePopupMenuCanceled): Implement
-       (firePopupMenuWillBecomeInvisible): Implement
-       (firePopupMenuWillBecomeVisible): Implement
+       * 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-09-27  Sven de Marothy  <sven@physto.se>
+2005-03-18  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-       * javax/swing/text/html/CSS.java
-       (getAttribute,getAllAttributeKeys): Implement
+       * ChangeLog.usermap: New file (replacing).
 
-2005-09-26  Lillian Angel  <langel@redhat.com>
+2005-03-18  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-       * 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.
+       * 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>
 
-2005-09-26  Tom Tromey  <tromey@redhat.com>
+       * native/jni/java-nio/gnu_java_nio_VMSelector.c: Added important
+       return statement after throwing exception.
 
-       * java/lang/reflect/Proxy.java: Javadoc fix.
-       * java/io/OutputStreamWriter.java (OutputStreamWriter): Javadoc fix.
+2005-03-18  Robert Schuster  <thebohemian@gmx>
 
-2005-09-26  Anthony Green  <green@redhat.com>
+       * 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().
 
-       * 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  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-03-17  Mark Wielaard  <mark@klomp.org>
 
-2005-09-25  Casey Marshall  <csm@gnu.org>
+       * doc/www.gnu.org/newsitems.txt: Add 0.14 release announcement
+       and link for the dead of the gui branch.
 
-       * 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-03-17  Chris Burdess  <dog@gnu.org>
 
-2005-09-24  Roman Kennke  <kennke@aicas.com>
+       * gnu/xml/dom/html2/DomHTMLDocument.java: Fixed element creation and
+       check for HTML/XHTML namespace.
 
-       * 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-03-16  Tom Tromey  <tromey@redhat.com>
 
-2005-09-24  Roman Kennke  <kennke@aicas.com>
+       * gnu/java/lang/MainThread.java (MainThread): Load main class
+       using system class loader.
 
-       * javax/swing/BoxLayout.java
-       (layoutContainer): Respect the insets of the container.
+2005-03-16  Archie Cobbs  <archie@dellroad.org>
 
-2005-09-24  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * javax/swing/JComponent.java
-       Fixed some API comments.
-       (paintChildren): Set clip to exclude the border area.
+2005-03-16  Mark Wielaard  <mark@klomp.org>
 
-2005-09-24  Roman Kennke  <kennke@aicas.com>
+       * doc/vmintegration.texinfo: Change input start to \input.
 
-       * javax/swing/JComponent.java
-       (paint): Paint border after the children are painted. Otherwise the
-       children could draw over the border.
+2005-03-16  Robert Schuster  <thebohemian@gmx.net>
 
-2005-09-24  Roman Kennke  <kennke@aicas.com>
+       * doc/vmintegration.texinfo: Added explanation
+       of gnu.classpath.boot.library.path property.
 
-       * 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>
+2005-03-16  Robert Schuster  <thebohemian@gmx.net>
 
-       * gnu/java/awt/peer/gtk/GdkGraphics2D.java
-       (setFont): If font == null, simply return. Avoids a NPE.
+       * java/lang/Runtime.java: Added support for
+       gnu.classpath.boot.library.path system property.
 
-2005-09-23  Sven de Marothy  <sven@physto.se>
+2005-03-14  Chris Burdess  <dog@gnu.org>
 
-       * java/io/OutputStreamWriter.java:
-       (OutputStreamWriter): Added missing constructors.
+       * 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-09-23  Lillian Angel  <langel@redhat.com>
+2005-03-14  Patrik Reali  <reali@acm.org>
 
-       * 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.
+       * 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-09-23  Roman Kennke  <kennke@aicas.com>
+2005-03-14  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-       * javax/swing/SwingUtilities.java
-       (layoutCompoundLabel): Removed debug code.
+       * 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-09-23  Roman Kennke  <kennke@aicas.com>
+2005-03-13  Mark Wielaard  <mark@klomp.org>
 
-       * 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>
+       * configure.ac: Set version to 0.14+cvs.
 
-       * 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-03-13  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-2005-09-23  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * javax/swing/plaf/basic/BasicMenuUI.java
-       (ChangeHandler): Added some deprecated and unused fields for
-       binary compatibility.
+2005-03-13  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-2005-09-23  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * javax/swing/plaf/basic/BasicInternalFrameUI.java
-       (deactivateFrame): New method.
-       (InternalFramePropertyChangeListener.propertyChange): Call
-       new deactivate() method instead of getDesktopManager.deactivate()
+2005-03-13  Michael Koch  <konqueror@gmx.de>
 
-2005-09-23  Lillian Angel  <langel@redhat.com>
+       * 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.
 
-       Fixes Bug #24022
-       * javax/swing/plaf/basic/BasicTreeUI.java
-       (paint): Took out unneeded code.
+2005-03-13  Michael Koch  <konqueror@gmx.de>
 
-2005-09-23  Lillian Angel  <langel@redhat.com>
+       * gnu/java/net/protocol/https/Handler.java:
+       Reworked import statements.
 
-       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>
+2005-03-13  Michael Koch  <konqueror@gmx.de>
 
-       * javax/swing/plaf/basic/BasicDesktopPaneUI.java
-       (installKeyboardActions): Call renamed method registerKeyboardActions.
+       * 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-09-23  Roman Kennke  <kennke@aicas.com>
+2005-03-13  Michael Koch  <konqueror@gmx.de>
 
-       * javax/swing/plaf/basic/BasicDesktopPaneUI.java
-       (registerKeyboardAction): Renamed this method to
-       registerKeyboardActions as specifie.
+       * gnu/xml/aelfred2/XmlParser.java: Fixed typo.
 
-2005-09-23  Roman Kennke  <kennke@aicas.com>
+2005-03-12  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-       * 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>
+       * org/omg/CORBA/StringSeqHelper.java,
+       org/omg/CORBA/WStringSeqHelper.java: New files.
 
-       * javax/swing/plaf/metal/MetalBorders.java
-       (OptionDialogBorder): new class.
+2005-03-12  Mark Wielaard  <mark@klomp.org>
 
-2005-09-23  Roman Kennke  <kennke@aicas.com>
+       * doc/www.gnu.org/events/escape_fosdem05.wml: Add links to
+       presentations.
 
-       * javax/swing/plaf/basic/BasicColorChooserUI.java
-       (uninstallDefaultChoosers): New method.
-       (uninstallUI): Call uninstallDefaultChoosers.
+2005-03-11  Chris Burdess  <dog@gnu.org>
 
-2005-09-23  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * 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-03-11  Chris Burdess  <dog@gnu.org>
 
-2005-09-23  David Gilbert  <david.gilbert@object-refinery.com>
+       * gnu/xml/aelfred2/SAXDriver.java: Corrected bug handling URI
+       warnings.
 
-       * javax/swing/plaf/metal/MetalLookAndFeel.java
-       (setCurrentTheme): throw exception if argument is null, improved API
-       docs.
-       
-2005-09-22  Roman Kennke  <kennke@aicas.com>
+2005-03-11  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-       * javax/swing/JPanel.java
-       (accessibleContext): Removed this unnecessary field. Use the
-       inherited field of the same name from JComponent instead.
+       * org/omg/CORBA/portable/InputStream.java (read_Context):
+       following API, this must be concrete and unimplemented.
 
-2005-09-22  Roman Kennke  <kennke@aicas.com>
+2005-03-11  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-       * 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.
+       * 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-09-22  Roman Kennke  <kennke@aicas.com>
+2005-03-11  Archie Cobbs  <archie@dellroad.org>
 
-       * 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.
+       * native/jni/java-lang/java_lang_VMProcess.c: Fix segfault
+       in the case that a zero length command array is passed.
 
-2005-09-22  Andreas Tobler  <a.tobler@schweiz.ch>
+2005-03-11  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/fdlibm/ieeefp.h: Merge m32r bits from libgcj to keep the diff
+       minimal.
 
-       * 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.
+2005-03-11  Roman Kennke  <roman@kennke.org>
 
-       * 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.
+       * java/awt/Compmonent.java
+       (setComponentOrientation): The variable oldOrientation is initialized
+       too early. This is fixed.
 
-       * 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.
+2005-03-11  Roman Kennke  <roman@kennke.org>
 
-       * 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.
+       * java/awt/Compmonent.java
+       (setComponentOrientation): Made this property firing a
+       PropertyChangeEvent.
 
-2005-09-22  Lillian Angel  <langel@redhat.com>
+2005-03-11  Robert Schuster  <thebohemian@gmx.net>
 
-       * 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.
+       * java/beans/EventHandler.java: Reworked documentation.
+       (invoke): Fixed behavior to match spec. 
 
-2005-09-22  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-03-11  Jeroen Frijters  <jeroen@frijters.net>
 
-       * javax/swing/text/Utilities.java:
-       (getPreviousWord): Fixed incorrect logic.  Use preceding() instead of 
-       following(), previous() instead of next().
+       * java/lang/Class.java (newInstance): Fixed previous patch.
 
-2005-09-22  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-03-11  Jeroen Frijters  <jeroen@frijters.net>
 
-       * gnu/java/text/BaseBreakIterator.java:
-       (following): Don't restore old CharacterIterator index.
+       * java/lang/Class.java (newInstance): Fix bug related to package
+       private classes.
 
-2005-09-22  Tom Tromey  <tromey@redhat.com>
+2005-03-10  Andrew Haley  <aph@redhat.com>
 
-       * javax/swing/JList.java (AccessibleJList): New constructor.
+       * gnu/java/nio/channels/FileChannelImpl.java (smallTransferFrom):
+       New.
+       (smallTransferTo): New.
+       (transferFrom): Loop around smallTransferFrom, copying pageSize
+       bytes each time.
+       (transferTo): Likewise.
 
-2005-09-22  Tom Tromey  <tromey@redhat.com>
+2005-03-10  Tom Tromey  <tromey@redhat.com>
 
-       * java/net/ServerSocket.java (accept): Use correct security manager
-       call.
+       * java/io/InputStreamReader.java: Indentation fixlets.  Added
+       '@since' markers.
 
-2005-09-22  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-03-10  Chris Burdess  <dog@bluezoo.org>
 
-       * javax/swing/text/Utilities.java:
-       (getNextWord): Implemented.
-       (getPreviousWord): Implemented.
+       * gnu/xml/dom/ls/SAXEventSink.java: Ignore element declarations if
+       not currently parsing the DTD.
 
-2005-09-22  Lillian Angel  <langel@redhat.com>
+2005-03-10  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-       * 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.
-
-2004-10-09  Tom Tromey  <tromey@redhat.com>
-
-       * java/lang/ClassLoader.java 
-       (defineClass(String,ByteBuffer,ProtectionDomain)): New method.
-
-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  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>
+       * 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.
 
-       * 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>
+2005-03-10  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-       * javax/print/DocFlavor.java (BYTE_ARRAY.serialVersionUID): New field.
-       (INPUT_STREAM.serialVersionUID): Likewise.
+       * 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-09-19  Tom Tromey  <tromey@redhat.com>
+2005-03-09  Sven de Marothy  <sven@physto.se>
 
-       * java/text/DateFormat.java (serialVersionUID): New field.
+       * 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-19-19  Lillian Angel  <langel@redhat.com>
+2005-03-09  Sven de Marothy  <sven@physto.se>
 
-       * 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):
+       * gnu/java/locale/Calendar.java,
+       gnu/java/locale/Calendar_nl.java,
+       gnu/java/locale/Calendar_de.java,
+       gnu/java/locale/Calendar_en.java:
        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/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-03-09  Sven de Marothy  <sven@physto.se>
 
-2005-09-17  Tom Tromey  <tromey@redhat.com>
+       * 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.
 
-       * 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-03-09  Chris Burdess  <dog@gnu.org>
 
-2005-09-17  Mark Wielaard  <mark@klomp.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.
 
-       Reported by David Lichteblau <david@lichteblau.com>
-       * native/jni/classpath/jcl.c (JCL_NewRawDataObject): Create
-       NewGlobalRef before calling DeleteLocalRef.
+2005-03-09  Michael Koch  <konqueror@gmx.de>
 
-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>
+       * 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.
 
-       * javax/swing/plaf/basic/BasicMenuItemUI.java: Reindent boilerplate.
+2005-03-09  Tom Tromey  <tromey@redhat.com>
 
-2005-09-17  Tom Tromey  <tromey@redhat.com>
+       * java/net/URLClassLoader.java (addURLImpl): Reset 'thisString'.
+       (toString): Synchronize.
 
-       * 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-03-09  Michael Koch  <konqueror@gmx.de>
 
-2005-09-17  Mark Wielaard  <mark@klomp.org>
-
-       * doc/www.gnu.org/home.wml: Update mauve link.
+       * 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-09-16  Anthony Green  <green@redhat.com>
+2005-03-09  Michael Koch  <konqueror@gmx.de>
 
-       PR libgcj/20198
-       * java/net/URLClassLoader.java (FileURLLoader.getResource): File
-       resources should all have canonicalized names.
+       * org/omg/CORBA/AnyHolder.java: Added missing import.
 
-2005-09-16  Lillian Angel  <langel@redhat.com>
+2005-03-09  Robert Schuster <thebohemian@gmx.net>
 
-       * 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.
+       * java/awt/AWTEvent.java (toString): Added case
+       for source not being an AWT component.
        
-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-03-08  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-2005-09-16  Andrew Haley  <aph@redhat.com>
+       * 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.
 
-       * java/io/ObjectStreamClass.java (findAccessibleMethod): Allow
-       protected readResolve().  Rewrite accessibility check.
+2005-03-08  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-2005-09-16  Andrew Haley  <aph@redhat.com>
+       * 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.
 
-       * scripts/loc: New file.
+2005-03-08  Audrius Meskauskas  <audriusa@bluewin.ch>
+       * org/omg/CORBA/AnyHolder.java: New file.
 
-2005-09-16  Anthony Green  <green@redhat.com>
+2005-03-08 David Gilbert <david.gilbert@object-refinery.com>
 
-       * java/lang/String.java (getBytes): Throw an InternalError instead
-       of silently returning null.
+       * java/awt/Font.java (decode): Handle null argument and allow
+       space as delimiter.
 
-2005-09-16  Lillian Angel  <langel@redhat.com>
+2005-03-07  Chris Burdess  <dog@gnu.org>
 
-       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.
+       * gnu/java/net/protocol/https/Handler.java: New file.
 
-2005-09-16  David Gilbert  <david.gilbert@object-refinery.com>
+2005-03-07  Jeroen Frijters  <jeroen@frijters.net>
 
-       * javax/swing/plaf/metal/MetalComboBoxEditor.java
-       (MetalComboBoxEditorBorder.paintBorder): modified border appearance.
+       * java/io/DataInputStream.java (ignoreInitialNewline): Removed
+       (readLine): Changed newline handling.
 
-2005-09-16  David Gilbert  <david.gilbert@object-refinery.com>
+2005-03-07  Jeroen Frijters  <jeroen@frijters.net>
 
-       * javax/swing/plaf/basic/BasicComboBoxRenderer.java: updated API docs
-       and minor reformatting.
+       * java/net/URI.java (AUTHORITY_REGEXP): Corrected regexp.
+       (AUTHORITY_USERINFO_GROUP,AUTHORITY_HOST_GROUP,AUTHORITY_PORT_GROUP):
+       Adjusted to match new regexp.
 
-2005-09-16  Roman Kennke  <kennke@aicas.com>
+2005-03-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * javax/swing/JList.java
-       (AccessibleJList): New inner class.
+       * 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>
 
-2005-09-16  David Gilbert  <david.gilbert@object-refinery.com>
+       * 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-04-06  Audrius Meskauskas  <audriusa@bluewin.ch>
+       * org/omg/CORBA/Context.java,
+       org/omg/CORBA/ContextList.java: New files.
 
-       * examples/gnu/classpath/examples/swing/ButtonDemo.java: new file.
+2005-04-06  Audrius Meskauskas  <audriusa@bluewin.ch>
+       * org/omg/CORBA/TCKind.java: Making fields final.
 
-2005-09-16  David Gilbert  <david.gilbert@object-refinery.com>
+2005-04-06  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-       * javax/swing/plaf/metal/MetalIconFactory.java
-       (RadioButtonIcon.paintIcon): change color of selection indicator 
-       according to component state.
+       * 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-09-16  David Gilbert  <david.gilbert@object-refinery.com>
+2005-03-06 Audrius Meskauskas  <audriusa@bluewin.ch>
 
-       * javax/swing/plaf/metal/MetalCheckBoxIcon.java
-       (drawCheck): change color according to component state.
+       * 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-09-16  David Gilbert  <david.gilbert@object-refinery.com>
+2005-03-06  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-       * javax/swing/plaf/metal/MetalBorders.java
-       (ButtonBorder.paintBorder): draw a different border for a disabled 
-       button.
+       * 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>
 
-2005-09-15  Anthony Green  <green@redhat.com>
+       * 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>
 
-       * 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.
+       * 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.
 
-       * java/util/zip/ZipFile.java (checkZipFile): Make sure we read the
-       4 byte magic number.
+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>
 
-2005-09-15  Tom Tromey  <tromey@redhat.com>
+       * 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.   
 
-       * javax/swing/text/html/parser/DTD.java (FILE_VERSION): Now
-       final.
+2005-03-05  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-2005-09-15  Tom Tromey  <tromey@redhat.com>
+       * 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.
 
-       * javax/naming/Name.java: Extends Comparable.
+2005-03-04  Roman Kennke  <roman@ontographics.com>
 
-2005-09-15  Anthony Balkissoon  <abalkiss@redhat.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>
 
-       * 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.
+        * 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>
 
-2005-09-15  David Gilbert  <david.gilbert@object-refinery.com>
+       * 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.
 
-       * 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-03-03  Roman Kennke  <roman@ontographics.com>
 
-2005-09-15  Tom Tromey  <tromey@redhat.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.
 
-       * java/lang/EnumConstantNotPresentException.java: New file.
+2005-03-03  Jeroen Frijters  <jeroen@frijters.net>
 
-2005-09-15  Anthony Balkissoon  <abalkiss@redhat.com>
+       * 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.
 
-       * javax/swing/plaf/basic/BasicInternalFrameUI.java:
-       Reformatted file.
+2005-03-03  Jeroen Frijters  <jeroen@frijters.net>
 
-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.
+       * java/io/FileInputStream.java (FileInputStream(File)),
+       java/io/FileOutputStream.java (FileOutputStream(File)):
+       Removed unnecessary File.isDirectory() check.
 
-2005-09-15  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-03-02  Michael Koch  <konqueror@gmx.de>
 
-       * javax/swing/JRootPane.java:
-       (setContentPane): Remove the old content pane first.  Throw 
-       IllegalComponentStateException if the parameter is null.  Added docs.
+       * doc/hacking.texinfo: Improved explanation of our coding style
+       regarding import statements.
 
-2005-09-15  Tom Tromey  <tromey@redhat.com>
+2005-03-02  Michael Koch  <konqueror@gmx.de>
 
-       Workaround for PR classpath/23863:
-       * native/fdlibm/mprec.h (MAX_BIGNUM_WDS): Define as 128 on
-       non-Pack_32 platforms.
+       * 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-09-15  Anthony Balkissoon  <abalkiss@redhat.com>
+2005-03-02  Michael Koch  <konqueror@gmx.de>
 
-       * java/awt/Component.java:
-       (isDisplayable): Return true if peer != null.
-       * java/awt/Window.java:
-       (isDisplayable): Removed this method. Now inherits from Component.
+       * 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-09-15  Anthony Green  <green@redhat.com>
+2005-03-02  Michael Koch  <konqueror@gmx.de>
 
-       * java/io/PushbackInputStream.java (available, read, skip): Handle
-       closed stream operations gracefully.
+       * 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-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>
+2005-03-02  Michael Koch  <konqueror@gmx.de>
 
-       * 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.
+       * 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-09-15  David Gilbert  <david.gilbert@object-refinery.com>
+2005-03-02  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/plaf/metal/MetalBorders.java
-       (toggleButtonBorder): new private field,
-       (ToggleButtonBorder): new class,
-       (getToggleButtonBorder): new method.
+       * doc/www.gnu.org/cp-tools/cp-tools.wml: Fix createlink to
+       texidoclet.html.
 
-2005-09-14  Roman Kennke  <kennke@aicas.com>
+2005-03-02  Michael Koch  <konqueror@gmx.de>
 
-       * javax/swing/text/DefaultStyledDocument.java
-       (insertUpdate): Tweaked attribute comparison to avoid NPE.
+       * doc/api/Makefile.am: Remove gjdoc_rawcomment.cache if neccesary.
 
-2005-09-14  Roman Kennke  <kennke@aicas.com>
+2005-02-28  Roman Kennke  <roman@ontographics.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>
+       * 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.
 
-       * 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-02-27  Roman Kennke  <roman@ontographics.com>
 
-2005-09-14    Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+       * 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.
+=======
+>>>>>>> .merge-right.r109770
+       * javax/swing/plaf/basic/BasicListUI.java
+       (locationToIndex): Added check to avoid ArrayOutOfBoundsException.
 
-        * org/omg/CosNaming/NameComponent (hashCode): New method,
-        fixes #23883). 
+2006-01-03  Roman Kennke  <kennke@aicas.com>
 
-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.
+       * javax/swing/plaf/basic/BasicListUI.java
+       (locationToIndex): Special case for when variable cell heights
+       are possible. (cellHeights is used instead of cellHeight).
+       (indexToLocation): Special case for when variable cell heights
+       are possible. (cellHeights is used instead of cellHeight).
 
-2005-09-13  Tom Tromey  <tromey@redhat.com>
+2006-01-03  Roman Kennke  <kennke@aicas.com>
 
-       * java/lang/StringBuffer.java (StringBuffer): New constructor.
-       (trimToSize): New method.
-       (codePointAt): Likewise.
-       (codePointBefore): Likewise.
-       (codePointCount): Likewise.
-       (appendCodePoint): Likewise.
-       (append): New overloads.
-       (insert): Likewise.
+       * javax/swing/text/DefaultStyledDocument.java
+       (ElementBuffer.remove): New method.
+       (ElementBuffer.removeUpdate): New method.
+       (removeUpdate): New method.
 
-2005-09-13  Tom Tromey  <tromey@redhat.com>
+2006-01-03  Roman Kennke  <kennke@aicas.com>
 
-       * java/lang/Character.java: Typo fixes in javadoc.
+<<<<<<< .working
+       * 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-09-14  Roman Kennke  <kennke@aicas.com>
+2005-02-27  Chris Burdess  <dog@gnu.org>
 
-       * 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.
+       * 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-09-14  Roman Kennke  <kennke@aicas.com>
+2005-02-27  Chris Burdess  <dog@gnu.org>
 
-       * javax/swing/plaf/basic/BasicTabbedPaneUI.java:
-       Reformatted file.
+       * 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-09-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2005-02-27  Roman Kennke  <roman@ontographics.com>
 
-       * 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>
+       * javax/swing/plaf/basic/BasicListUI:
+       make BasicListUI capable of wrapping lists
+       (layoutOrientation property of javax.swing.JList)
 
-       * native/jni/classpath/jcl.c: Replaced undefined        
-       POINTERS_ARE_64BIT with SIZEOF_VOID_P == 8.
+2005-02-26  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-2005-09-14  David Gilbert  <david.gilbert@object-refinery.com>
+       * javax/swing/Timer.java: documenting and some
+       formatting.     
 
-       * javax/swing/plaf/metal/MetalIconFactory.java
-       (PaletteCloseIcon): now implements UIResource.
+2005-02-26  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-2005-09-14  Roman Kennke  <kennke@aicas.com>
+       * javax/swing/JTextArea.java (replaceRange): 
+       Fixing doc.remove(start, length) misinterpretation.
+       
+2005-02-26  Roman Kennke  <roman@ontographics.com>
 
-       * javax/swing/ButtonModel.java: Added API docs all over.
+       * javax/swing/plaf/basic/BasicListUI
+       (updateLayoutState,paint): make BasicListUI aware of the
+       width of the rendered JList
 
-2005-09-14  Roman Kennke  <kennke@aicas.com>
+2005-02-25  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/JTabbedPane.java: Added API comments to make clear
-       that null values for tab titles are allowed.
+       * NEWS: Add 0.14 release date.
+       * configure.ac: Set version to 0.14.
 
-2005-09-14  Roman Kennke  <kennke@aicas.com>
+2005-02-25  Sven de Marothy  <sven@physto.se>
 
-       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.
+       * java/net/InetAddress.java
+       (toString): Don't print empty hostnames.
+       Fixes bug #11956
 
-2005-09-14  David Gilbert  <david.gilbert@object-refinery.com>
+2005-02-24  Mark Wielaard  <mark@klomp.org>
 
-       * gnu/CORBA/ExceptionCreator.java: minor API doc fixes,
-       * gnu/CORBA/Version.java: likewise.
+       * 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-09-14  David Gilbert  <david.gilbert@object-refinery.com>
+2005-02-24  Audrius Meskauskas  <audriusa@bluewin.ch>
 
-       * 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.
+       * javax/swing/Timer.java (constructor): assigning initialDelay
 
-2005-09-14  David Gilbert  <david.gilbert@object-refinery.com>
+2005-02-24  Audrius Meskauskas  <audriusa@bluewin.ch>
+   
+       * javax/swing/Timer.java (Waker.run): firing the first action
+       event.
 
-       * 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-02-24  Chris Burdess  <dog@gnu.org>
 
-2005-09-14  David Gilbert  <david.gilbert@object-refinery.com>
+       * BASE64.java: Truncate encoded byte array.
 
-       * javax/swing/plaf/metal/MetalComboBoxIcon.java: fixed header,
-       (paintIcon): change color to reflect component state.
+2005-02-24  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-09-13  Tom Tromey  <tromey@redhat.com>
+       * java/awt/font/TextAttribute.java: changed names to lower case;
+       (readResolve): implemented.
+       Added doc comments all over.
 
-       * .settings/org.eclipse.jdt.core.prefs: Ignore javadoc warnings
-       for hidden or deprecated members.
+2005-02-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2005-09-14  Roman Kennke  <kennke@aicas.com>
+       * java/text/SimpleDateFormat.java:
+       Substitute StringBuilder for the original
+       StringBuffer.
 
-       * 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>
+2005-02-22  Michael Koch  <konqueror@gmx.de>
 
-       * 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.
+       * gnu/java/security/PolicyFile.java,
+       gnu/java/security/pkcs/PKCS7SignedData.java,
+       gnu/java/security/pkcs/SignerInfo.java:
+       Fixed copyright header.
 
-2005-09-14  Roman Kennke  <kennke@aicas.com>
+2005-02-22  Roman Kennke <roman@ontographics.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/plaf/basic/BasicLookAndFeel.java
+       (initComponentDefaults): Fixed Button left and right margin
 
-       * 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>
+2005-02-22  Thomas Fitzsimmons  <fitzsim@redhat.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.
+       * native/jni/gtk-peer/gthread-jni.c (throw):
+       Call g_snprintf instead of snprintf.
 
-2005-09-13  Lillian Angel  <langel@redhat.com>
+2005-02-22  Thomas Fitzsimmons  <fitzsim@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>
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
+       (button_to_awt_mods): Return BUTTON masks, not BUTTON_DOWN masks.
 
-       * 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>
+2005-02-22  Thomas Fitzsimmons  <fitzsim@redhat.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.
+       * 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-09-12  Roman Kennke  <kennke@aicas.com>
+2005-02-22  Michael Koch  <konqueror@gmx.de>
 
-       * 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().
+       * include/gnu_java_awt_peer_gtk_GtkWindowPeer.h:
+       Regenerated.
 
-2005-09-12  Tom Tromey  <tromey@redhat.com>
+2005-02-22  Thomas Fitzsimmons  <fitzsim@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.
+       * java/awt/Robot.java (waitForIdle): Call invokeAndWait on an
+       empty Runnable.
 
-2005-09-12  Thomas Fitzsimmons  <fitzsim@redhat.com>
+2005-02-21  Bryce McKinlay  <mckinlay@redhat.com>
 
-       * lib/Makefile.am (JAVAC): Specify -source 1.4 to ecj.
+       * 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-09-12  Lillian Angel  <langel@redhat.com>
+2005-02-22  Robert Schuster  <thebohemian@gmx.net>
 
-       * 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>
+       * java/io/InputStreamReader.java: Fixed compilation
+       problem.
 
-       * javax/swing/plaf/metal/MetalIconFactory.java
-       (InternalFrameCloseIcon.paintIcon): change colors according to button
-       state,
-       (InternalFrameAltMaximizeIcon.paintIcon): likewise,
-       (InternalFrameMaximizeIcon.paintIcon): likewise,
-       (InternalFrameMinimizeIcon.paintIcon): likewise.
+2005-02-21  Michael Koch  <konqueror@gmx.de>
 
-2005-09-12  Roman Kennke  <kennke@aicas.com>
+       * 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.
 
-       * 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-02-21  Mark Wielaard  <mark@klomp.org>
 
-2005-09-12  Anthony Balkissoon  <abalkiss@redhat.com>
+       * java/util/jar/JarFile.java (verifyHashes): Check whether ZipEntry
+       exists.
+       
+2005-02-21  Robert Schuster  <thebohemian@gmx.net>
+       
+       * gnu/java/nio/ChannelReader: Fixed comments.
 
-       * java/awt/Container.java:
-       (findComponentForMouseEventAt): Reduced visibility to package-private.
-       (getDeepestComponentForMouseEventAt): Reduced visibility to 
-       package-private and removed static modifier.
+2005-02-21  Robert Schuster  <thebohemian@gmx.net>
 
-2005-09-12  David Gilbert  <david.gilbert@object-refinery.com>
+       * 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.
 
-       * 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-02-21  Michael Koch  <konqueror@gmx.de>
 
-2005-09-11  Mark Wielaard  <mark@klomp.org>
+       * include/gnu_java_nio_channels_FileChannelImpl.h:
+       Regenerated.
 
-       * m4/acinclude.m4 (CLASSPATH_CHECK_GCJ): Check for gcj 4 with
-       #if __GNUC__ <= 3.
+2005-02-21  Michael Koch  <konqueror@gmx.de>
 
-2005-09-11  Mark Wielaard  <mark@klomp.org>
+       * java/lang/Class.java,
+       java/lang/SecurityManager.java,
+       java/net/URL.java:
+       Formatting cleanups.
 
-       * lib/gen-classlist.sh.in: Use sort -r to work around bug #21418.
+2005-02-21  Michael Koch  <konqueror@gmx.de>
 
-2005-09-11  Mark Wielaard  <mark@klomp.org>
+       * 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.
 
-       * gnu/java/nio/channels/FileChannelImpl.java (finalize): Check whether
-       fd != -1 before calling close().
+2005-02-21  Anthony Green  <green@redhat.com>
 
-2005-09-10  David Gilbert  <david.gilbert@object-refinery.com>
+       * gnu/java/rmi/registry/RegistryImpl.java:
+       Change year for '--version' to 2005.
 
-       * javax/swing/plaf/metal/MetalBorders.java
-       (PaletteBorder): new class.
-       
-2005-09-10  David Gilbert  <david.gilbert@object-refinery.com>
+2005-02-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * javax/swing/plaf/metal/MetalIconFactory.java
-       (PaletteCloseIcon): new class.
+       Merge of interfaces and exceptions to HEAD from
+       the generics branch.
 
-2005-09-10  David Gilbert  <david.gilbert@object-refinery.com>
+       * java/lang/StringBuilder.java: Serial version updated.
+       * java/lang/annotation/AnnotationTypeMismatchException.java: Likewise.
 
-       * javax/swing/plaf/metal/MetalInternalFrameUI.java:
-       (instances): removed,
-       (createUI): just return new instance,
-       API docs all over.
+       Changes from generics branch:
        
-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>
+       2005-02-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * gnu/java/awt/EmbeddedWindow.java (addNotify): Throw
-       AssertionError if field access fails.
+       * 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-01-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>
+       * java/lang/annotation/AnnotationTypeMismatchException.java:
+       Added import of java.lang.reflect.Method
 
-       * gnu/java/awt/peer/gtk/GdkGraphics2D.java (static): Reindent
-       second error message.
+       2004-08-26  Tom Tromey  <tromey@redhat.com>
 
-2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>
+       * java/lang/reflect/GenericSignatureFormatError.java: New file.
+       * java/lang/reflect/WildcardType.java: New file.
+       * java/lang/reflect/ParameterizedType.java: New file.
+       * java/lang/reflect/GenericArrayType.java: New file.
+       * java/lang/reflect/Type.java: New file.
+       * java/io/Flushable.java: New file.
+       * java/io/Closeable.java: New file.
 
-       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.
+       2004-08-07  Tom Tromey  <tromey@redhat.com>
+       
+       * java/lang/annotation/AnnotationFormatError.java: New file.
+       * java/lang/annotation/AnnotationTypeMismatchException.java: New
+       file.
 
-2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>
+       2004-08-06  Tom Tromey  <tromey@redhat.com>
 
-       * gnu/java/awt/peer/gtk/GdkGraphics.java
-       (GdkGraphics(GtkComponentPeer)): Set font field to a sensible
-       default if component font is null.
+       * java/lang/Readable.java: New file.
 
-2005-09-09  Keith Seitz  <keiths@redhat.com>
+2005-02-20  Mark Wielaard  <mark@klomp.org>
 
-       * vm/reference/gnu/classpath/jdwp/VMIdManager.java (newObjectId): 
-       Set the reference for the ID.
+       * java/util/SimpleTimeZone.java (getOffset): Calculate beforeEnd by
+       taking dstSavings into account.
 
-2005-09-09  Keith Seitz  <keiths@redhat.com>
+2005-02-20  Sven de Marothy <sven@physto.se>
 
-       * gnu/classpath/jdwp/event/VmDeathEvent.java: New file.
+       * java/text/SimpleDateFormat.java,
+       (parse): Set DST_OFFSET to the correct value.
 
-2005-09-09  Tom Tromey  <tromey@redhat.com>
+2005-02-20  Rutger Ovidius  <ovidr@users.sourceforge.net>
 
-       For PR libgcj/23288:
-       * java/net/URLClassLoader.java (definePackage): Correctly order
-       arguments to definePackage.  Look up per-entry Attributes.
-       (getAttributeValue): New method.
+       * gnu/java/security/provider/Gnu.java (Gnu): Add SHA-160 alias.
 
-2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>
+2005-02-20  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/plaf/basic/BasicTreeUI.java (installUI): Install
-       defaults after initializing tree.
+       * java/text/SimpleDateFormat.java
+       (SimpleDateFormat(String, DateFormatSymbols)): Throw
+       NullPointerException when formatData is null.
 
-2005-09-09  Roman Kennke  <kennke@aicas.com>
+2005-02-19  Michael Koch  <konqueror@gmx.de>
 
-       * javax/swing/text/html/CSS.java
-       New file. Defines standard CSS attributes.
+       * 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-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>
+2005-02-19  Archie Cobbs  <archie@dellroad.org>
 
-       * java/awt/Window.java (isDisplayable): Do not call super's
-       isDisplayable.
+       * java/lang/Throwable.java: simplify initializing cause in constructor
 
-2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>
+2005-02-19  Michael Koch  <konqueror@gmx.de>
 
-       PR swing/23796
-       * gnu/java/awt/peer/gtk/GtkDialogPeer.java
-       (create): Respect dialog's decorated flag.
+       * javax/swing/JToggleButton.java: Removed empty line.
 
-2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>
+2005-02-18  Bryce McKinlay  <mckinlay@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.
+       * java/util/LinkedHashMap (addEntry): Call remove() with key argument, 
+       not the HashEntry. Reported by Jean-Marie White.
 
-2005-09-09  Thomas Fitzsimmons  <fitzsim@redhat.com>
+2005-02-18  Mark Wielaard  <mark@klomp.org>
 
-       PR swing/23796
-       * gnu/java/awt/peer/gtk/GtkFramePeer.java (create): Respect
-       frame's decorated flag.
+       * 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-09-09  Lillian Angel  <langel@redhat.com>
+2005-02-18  Sven de Marothy <sven@physto.se>
 
-       * 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>
+       * java/util/TimeZone.java,
+       (getDefaultDisplayName): Fix previous fix.
 
-       * javax/swing/plaf/metal/MetalLookAndFeel.java
-       (initComponentDefaults): Added the remaining color defaults.
+2005-02-18  David Gilbert  <david.gilbert@object-refinery.com>
 
-2005-09-09  Andrew Haley  <aph@redhat.com>
+       * java/awt/font/TransformAttribute.java,
+       (TransformAttribute(AffineTransform)): throw 
+       IllegalArgumentException for null transform.
+       (getTransform): return a copy of transform.
+       Added doc comments to all.
 
-       * java/net/URLClassLoader.java (addURLImpl): Synchronize on the
-       loader.
-       (toString): Likewise.
+2005-02-18  Sven de Marothy <sven@physto.se>
 
-2005-09-09  Jeroen Frijters  <jeroen@frijters.net>
+       * java/util/TimeZone.java,
+       (getDefaultDisplayName): Don't print zero offsets.
 
-       * javax/security/auth/login/Configuration.java
-       (getConfiguration): Call getConfig() instead of doing the work.
-       (getConfig): Instantiate the configuration provider.
+2005-02-18  Robert Schuster <thebohemian@gmx.net>
 
-2005-09-09  Jeroen Frijters  <jeroen@frijters.net>
+       * java/nio/charset/Charset.java (forName): Throws
+       IllegalArgumentException when argument is null
+       and added documentation.
 
-       * java/lang/reflect/Proxy.java
-       (pack): Initialize field.
+2005-02-17  Mark Wielaard  <mark@klomp.org>
 
-2005-09-09  Jeroen Frijters  <jeroen@frijters.net>
+       * java/util/SimpleTimeZone.java (checkRule): Throw
+       IllegalArgumentException when month out of range.
 
-       * 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-02-17  Sven de Marothy  <sven@physto.se>
 
-2005-09-09  David Gilbert  <david.gilbert@object-refinery.com>
+       * java/util/GregorianCalendar.java,
+       (add): Don't set fields directly anymore. Use set()
 
-       * javax/swing/plaf/basic/BasicLookAndFeel.java
-       (initComponentDefaults): re-added 'ScrollBar.width' default.
-       
-2005-09-09  David Gilbert  <david.gilbert@object-refinery.com>
+2005-02-17  Ito Kazumitsu  <kaz@maczuka.gcd.org>
 
-       * 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>
+       * gnu/java/nio/channels/FileChannelImpl.java (write(ByteBuffer)):
+       Move the position of the source buffer forward.
 
-       PR swing/23558
-       * javax/swing/plaf/basic/BasicComboBoxUI.java
-       (FocusHandler.focusLost): Do not call popup.hide.
+2005-02-16  Andrew Haley  <aph@redhat.com>
 
-2005-09-08  Mark Wielaard  <mark@klomp.org>
+       * 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.
 
-       * gnu/java/awt/peer/gtk/GdkGraphics2D.java (static): Fix typo
-       (Grahics -> Graphics).
+       * 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-09-08  Tom Tromey  <tromey@redhat.com>
+2005-02-16  Julian Scheid  <julian@sektor37.de>
 
-       * examples/gnu/classpath/examples/swing/ClasspathSwingActivityBoard.launch:
-       New file.
+       * gnu/java/nio/charset/UTF_8.java (decodeLoop): Set inPos to
+       in.position().
+       (encodeLoop): Likewise.
 
-2005-09-08  Roman Kennke  <kennke@aicas.com>
+2005-02-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * 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.
+       * 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>
 
-2005-09-08  Anthony Balkissoon  <abalkiss@redhat.com>
+       * java/util/logging/LogManager.java: Reformatted.
+       (readConfiguration): If a logger for a key is not found, create one.
 
-       * java/awt/Container.java:
-       (findComponentForMouseEventAt): Removed check for opacity.
+2005-02-16  Michael Koch  <konqueror@gmx.de>
 
-2005-09-08  Keith Seitz  <keiths@redhat.com>
+       * scripts/checkstyle-config.xml: Activate JavadocStyle and
+       IllegalInstantiation tests.
+       * scripts/checkstyle-suppressions.xml: Suppress some more errors.
 
-       * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
-       (executeVersion): Major and minor version are integers, not bytes.
+2005-02-16  Michael Koch  <konqueror@gmx.de>
 
-2005-09-08  Anthony Balkissoon  <abalkiss@redhat.com>
+       * 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.
 
-       * 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>
+2005-02-16  Michael Koch  <konqueror@gmx.de>
 
-       * .classpath: Enable compilation of jdwp.
+       * 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-09-08  Keith Seitz  <keiths@redhat.com>
+2005-02-16  Michael Koch  <konqueror@gmx.de>
 
-       * 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.
+       * 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-09-08  Roman Kennke  <kennke@aicas.com>
+2005-02-16  Michael Koch  <konqueror@gmx.de>
 
-       * 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.
+       * 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-09-08  David Gilbert  <david.gilbert@object-refinery.com>
+2005-02-16  Michael Koch  <konqueror@gmx.de>
 
-       * 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.
+       * 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-09-08  Roman Kennke  <kennke@aicas.com>
+2005-02-16  Michael Koch  <konqueror@gmx.de>
 
-       * 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.
+       * 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-09-08  Roman Kennke  <kennke@aicas.com>
+2005-02-16  Michael Koch  <konqueror@gmx.de>
 
-       * 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.
+       * 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-09-08  Roman Kennke  <kennke@aicas.com>
+2005-02-16  Michael Koch  <konqueror@gmx.de>
 
-       * 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.
+       * 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-09-08  Roman Kennke  <kennke@aicas.com>
+2005-02-15  Mark Wielaard  <mark@klomp.org>
 
-       * 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.
+       * java/util/jar/Attributes.java (Name.CLASS_PATH): Document that
+       file path elements are separated by spaces.
 
-2005-09-08  David Gilbert  <david.gilbert@object-refinery.com>
+2005-02-15  Mark Wielaard  <mark@klomp.org>
 
-       * 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.
+       * javax/net/ssl/SSLContext.java (getInstance): Add exception message
+       and/or cause before throwing.
 
-2005-09-08  Jeroen Frijters  <jeroen@frijters.net>
+2005-02-15  Mark Wielaard  <mark@klomp.org>
 
-       * 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.
+       * java/net/URLClassLoader.java (JarURLLoader.JarURLLoader): Just use
+       space for parsing CLASS_PATH attribute.
 
-2005-09-08  Jeroen Frijters  <jeroen@frijters.net>
+2005-02-15  Andrew Haley  <aph@redhat.com>
 
-       * 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.
+       * 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-09-06  Mark Wielaard  <mark@klomp.org>
+2005-02-14  Tom Tromey  <tromey@redhat.com>
 
-       * configure.ac: Set version to 0.19-pre.
+       * java/net/URLClassLoader.java (URLLoader(URLClassLoader, URL,
+       URL)): New constructor.
 
-       * 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-02-14  Mark Wielaard  <mark@klomp.org>
 
-2005-09-06  Roman Kennke  <roman@kennke.org>
+       * java/net/URLClassLoader.java (findClass): Throw
+       ClassNotFoundExceptions including urls, plus parent using toString().
+       (thisString): New field.
+       (toString): New method.
 
-       * 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.
+       * java/lang/ClassLoader (defaultGetSystemClassLoader): Only install
+       ExtensionClassLoader when there are actual extension URLs.
 
-2005-09-06  David Gilbert  <david.gilbert@object-refinery.com>
+2005-02-14  Mark Wielaard  <mark@klomp.org>
 
-       * 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>
+       * native/jni/xmlj/.cvsignore: Add *.o, *.a, *.lo, *.la, .libs, .deps.
 
-       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-02-14  Sven de Marothy  <sven@physto.se>
 
-2005-09-06  Lillian Angel  <langel@redhat.com>
+       * java/util/Calendar.java 
+       (Calendar): Constructor should clear fields.
 
-       * 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-02-14  Sven de Marothy  <sven@physto.se>
 
-2005-09-06  Lillian Angel <langel@redhat.com>
+       * javax/swing/SpinnerDateModel.java: Implemented.
 
-       * javax/swing/plaf/basic/BasicMenuItemUI.java:
-       Formatted class.
+2005-02-14  Sven de Marothy  <sven@physto.se>
 
-2005-09-06  Lillian Angel  <langel@redhat.com>
+       * 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.
 
-       * 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-02-13  Mark Wielaard  <mark@klomp.org>
 
-2005-09-06  Mark Wielaard  <mark@klomp.org>
+       * java/awt/AWTKeyStroke.java (getAWTKeyStroke(String)): Throw
+       IllegalArgumentException when the given String is null.
 
-       * NEWS: Add new features for 0.18.
-       * configure.ac: Set version to 0.18.
+       * javax/swing/KeyStroke.java (getKeyStroke(String)): Return null
+       when given keystoke sequence cannot be parsed.
 
-2005-09-06  Thomas Fitzsimmons  <fitzsim@redhat.com>
+       * javax/swing/JRootPane.java (setJMenuBar): Remove current menubar
+       if one is installed. Only install the given menubar is not null.
 
-       * 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.
+       * javax/swing/JViewport.java (getViewSize): Return an empty
+       Dimension when the view isn't set or preferred component size when
+       no viewSize is set.
 
-2005-09-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
+       * 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.
 
-       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-02-13  Mark Wielaard  <mark@klomp.org>
 
-2005-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
+       # Fixes bug #11957
+       * java/io/ObjectInputStream.java (resolveClass): Don't check "void"
+       twice.
 
-       * native/jni/Makefile.am (all-local): Invoke $(SHELL) to execute
-       the script.
+2005-02-13  Tom Tromey  <tromey@redhat.com>
 
-       * scripts/check_jni_methods.sh: Make script working with non GNU
-       grep versions.
+       * gnu/xml/aelfred2/SAXDriver.java: Ensure that null is returned when
+       attribute index is out of bounds.
 
-2005-09-05  Roman Kennke  <roman@kennke.org>
+2005-02-12  Mark Wielaard  <mark@klomp.org>
 
-       * javax/swing/event/DocumentEvent.java:
-       (ElementChange) Made inner interface static to conform to the specs.
+       Fixes bug #11949
+       * java/awt/BasicStroke.java (hashCode): Check for null dash.
 
-2005-09-05  Roman Kennke  <roman@kennke.org>
+2005-02-11  Andrew John Hughes  <gnu_andrew@member.fsf.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>
-
-       * java/awt/Container.java
-       (addImpl): Call addNotify() only if the container has a peer.
-
-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  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  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  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  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  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  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.java: 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  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  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): Check for null and remove key in that case.
-       This fixes http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21064 .
-
-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-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-17  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-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  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-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-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-04-06  Audrius Meskauskas  <audriusa@bluewin.ch>
-       * org/omg/CORBA/Context.java,
-       org/omg/CORBA/ContextList.java: New files.
-
-2005-04-06  Audrius Meskauskas  <audriusa@bluewin.ch>
-       * org/omg/CORBA/TCKind.java: Making fields final.
-
-2005-04-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>
-
-       Merge of interfaces and exceptions to HEAD from
-       the generics branch.
-
-       * java/lang/StringBuilder.java: Serial version updated.
-       * java/lang/annotation/AnnotationTypeMismatchException.java: Likewise.
-
-       Changes from generics branch:
-       
-       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-01-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * java/lang/annotation/AnnotationTypeMismatchException.java:
-       Added import of java.lang.reflect.Method
-
-       2004-08-26  Tom Tromey  <tromey@redhat.com>
-
-       * java/lang/reflect/GenericSignatureFormatError.java: New file.
-       * java/lang/reflect/WildcardType.java: New file.
-       * java/lang/reflect/ParameterizedType.java: New file.
-       * java/lang/reflect/GenericArrayType.java: New file.
-       * java/lang/reflect/Type.java: New file.
-       * java/io/Flushable.java: New file.
-       * java/io/Closeable.java: New file.
-
-       2004-08-07  Tom Tromey  <tromey@redhat.com>
-       
-       * java/lang/annotation/AnnotationFormatError.java: New file.
-       * java/lang/annotation/AnnotationTypeMismatchException.java: New
-       file.
-
-       2004-08-06  Tom Tromey  <tromey@redhat.com>
-
-       * java/lang/Readable.java: New file.
-
-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-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>
-
-       * 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  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       Merge of java.lang.Appendable to HEAD from
-       the generics branch.
-       
-       2004-08-06  Tom Tromey  <tromey@redhat.com>
-
-       * java/lang/Appendable.java: New file.
-
-       2004-09-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * java/lang/Appendable.java
-       Documented this class.
-       (append(CharSequence, int, int)): added.
-
-       2004-10-31  Robert Schuster <thebohemian@gmx.net>
-
-       * java/lang/Appendable.java (append):
-       Throws IOException.
-
-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/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-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-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-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-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-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-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:
+       * 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-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>
+2005-02-12  Graydon Hoare  <graydon@redhat.com>
 
-       * Makefile.am (EXTRA_DIST): Added ChangeLog-2004.
+       * gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java: Add.
 
-2005-01-04  Robert Schuster <thebohemian@gmx.net>
+2005-02-12  Graydon Hoare  <graydon@redhat.com>
 
-       * 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.
+       * 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.
 
-2005-01-03  Michael Koch  <konqueror@gmx.de>
+       * 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.
 
-       * javax/swing/plaf/metal/MetalLookAndFeel.java
-       (getControlTextFont): New method.
-       (getMenuTextFont): Likewise.
-       (getSubTextFont): Likewise.
-       (getSystemTextFont): Likewise.
-       (getUserTextFont): Likewise.
-       (getWindowTitleFont): Likewise.
+       * 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-01-03  Michael Koch  <konqueror@gmx.de>
+2005-02-11  Craig Black  <craig.black@aonix.com>
 
-       * javax/swing/text/AbstractDocument.java
-       (documentFilter): New field.
-       (getDocumentFilter): New method.
-       (setDocumentFilter): Likewise.
-       (dump): Likewise.
+       * 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-01-03  Michael Koch  <konqueror@gmx.de>
+2005-02-11  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
-       * javax/swing/JTree.java
-       (DynamicUtilTreeNode.hasChildren): Clarify javadoc.
+       * 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-01-03  Thomas Fitzsimmons  <fitzsim@redhat.com>
+2005-02-10  Michael Koch  <konqueror@gmx.de>
 
-       * 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>
+       * configure.ac: Define GTK_CAIRO in config.h
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+       (gtkInit): Compile Graphics2D stuff conditionally.
 
-       * 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-01  Michael Koch  <konqueror@gmx.de>
-
-       * javax/swing/DefaultBoundedRangeModel.java
-       (fireValueChanged): Fixed off-by-one error.
+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.
+=======
+>>>>>>> .merge-right.r109770
+       * lib/Makefile.am:
+       (dist-hook): Preserve attributes of Java sources when copying to
+       dist dir.
+
+2006-01-03  Raif S. Naffah  <raif@swiftdsl.com.au>
+
+       * AUTHORS: Added self.
+       * java/security/Security.java (getProvider): Ensures provider's name is
+         not null, not an empty string, and is trimmed before usage.
+
+2006-01-01  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
+
+       * gnu/CORBA/Poa/AOM.java (add):
+       Changed parameter Object into gnuServantObject.
+       (Obj.object): Changed type to gnuServantObject.
+       (findObject): Rewritten.
+
+2006-01-01  Andreas Tobler  <a.tobler@schweiz.ch>
+
+       * native/jni/qt-peer/mainqtthread.cpp: Remove call to disable double
+       buffering. Ability has gone in Qt-4.1.x.
+
+       * configure.ac (QT_CFLAGS): Check for 4.1.0 version and for QtCore
+       to have the right include flags.
+
+2006-01-01  Raif S. Naffah  <raif@swiftdsl.com.au>
+
+       * java/security/MessageDigest.java (getInstance(String,String)):
+       Use trimmed copy of provider name.
+       * gnu/java/security/Engine.java
+       (getInstance(String,String,Provider,Object[])): Use trimmed copy of
+       service and algorithm names.
+
+2006-01-01  Raif S. Naffah  <raif@swiftdsl.com.au>
+
+       * java/net/InetAddress.java (getAllByName): use LOCALHOST if
+       localhost is null or is an empty string. Trim hostname before
+       lookup.
 
 \f
 Local Variables:
diff --git a/libjava/classpath/ChangeLog-2005 b/libjava/classpath/ChangeLog-2005
new file mode 100644 (file)
index 0000000..45ad84d
--- /dev/null
@@ -0,0 +1,31069 @@
+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  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  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  Lillian Angel  <langel@redhat.com>
+
+       * javax/swing/text/html/CSS.java:
+       Fixed class signature.
+       * javax/swing/text/html/HTMLEditorKit.java:
+       Fixed class signature.
+       (LinkController): New class added with only stubs. Functions
+       are not implmented yet.
+       (InsertHTMLTextAction): New class. Constructors implemented.
+       (insertHTML): Implemented.
+       (insertAtBoundary): Added, not yet implemented.
+       (insertAtBoundry): Implemented.
+       (actionPerformed): Added, not yet implemented.
+       (HTMLTextAction): New class.
+       (getHTMLDocument): Implemented.
+       (getHTMLEditorKit): Implemented.
+       (getElementsAt): Implemented.
+       (elementCountToTag): Added, not yet implemented.
+       (findElementMatchingTag): Likewise.
+       (getViewFactory): Implemented.
+       (HTMLFactory): Moved to beginning of class, with other inner classes.
+       (ParserCallBack): Added constructor, not yet implemented.
+       (clone): Added, not yet implemented. Calls super.
+       (createInputAttributes): Likewise.
+       (install): Likewise.
+       (deinstall): Likewise.
+       (getActions): Likewise.
+       (getInputAttributes): Likewise.
+       (getDefaultCursor): Implemented.
+       (getLinkCursor): Implemented.
+       (SetLinkCursor): Implemented.
+       (setDefaultLinkCursor): Implemented.
+       (AccessibleContext): Can't implement until AccessibleHTML is
+       implemented. Currently, returns null because accessibility is not supported.
+
+2005-12-09  Anthony Balkissoon  <abalkiss@redhat.com>
+
+       * javax/swing/JEditorPane.java:
+       (setText): Allow the EditorKit to read the text into the Document,
+       allowing for other than plain text.
+
+2005-12-09  Lillian Angel  <langel@redhat.com>
+
+       * javax/swing/text/html/HTMLDocument.java
+       (getReader): Added function. Not implemented. It was
+       added so a certain mauve test committed compiles with
+       classpath fine.
+
+2005-12-09  Lillian Angel  <langel@redhat.com>
+
+       * javax/swing/text/html/HTMLEditorKit.java
+       (getViewFactory): Fixed class name of ViewFactory returned.
+       (HTMLFactory): Fixed class name to match API.
+
+2005-12-08  Lillian Angel  <langel@redhat.com>
+
+       * javax/swing/text/html/HTMLEditorKit.java
+       (insertHTML): Added method, not implemented yet.
+       (read): Likewise.
+       (write): Likewise.
+       (getContentType): Implemented.
+       (getViewFactory): Implemented.
+       (HTMLViewFactory): New package-private inner class, implemented.
+
+2005-12-08  Lillian Angel  <langel@redhat.com>
+
+       * javax/swing/text/StyledEditorKit.java
+       (create): Reverted to use BoxView. I need to write
+       a mauve test to be sure about this.
+
+2005-12-08  Lillian Angel  <langel@redhat.com>
+
+       * javax/swing/text/StyledEditorKit.java
+       (create): Changed to use BlockView here instead of BoxView.
+
+2005-12-08  Anthony Balkissoon  <abalkiss@redhat.com>
+
+       * javax/swing/JEditorPane.java:
+       (init): Changed to no-argument instead of taking in an EditorKit and
+       passing it to setEditorKit.  Callers will have to call setEditorKit
+       themselves.
+       (JEditorPane()): Changed call to init to have no arguments, call
+       setEditorKit after init.
+       (JEditorPane(String, String)): Likewise.
+       (JEditorPane(URL)): Don't call default constructor, call init and then
+       setEditorKit using the appropriate EditorKit for text/html.
+
+2005-12-08  Anthony Balkissoon  <abalkiss@redhat.com>
+
+       * javax/swing/JEditorPane.java:
+       (registerMap): New field.
+       (editorMap): New field.
+       (JEditorPane()): Call init instead of setEditorKit.
+       (JEditorPane(String, String)): Likewise.
+       (init): New method.
+       (createEditorKitForContentType): Implemented and documented.
+       (getEditorKitClassNameForContentType): Likewise.
+       (getEditorKitForContentType): Likewise.
+       (registerEditorKitForContentType): Likewise.
+       (replaceSelection): Call super (this is temporary until the real
+       implementation happens.  There is already a TODO noting that this needs
+       to be implemented.
+       (setEditorKitForContentType): Implemented and documented.
+
+2005-12-08  Lillian Angel  <langel@redhat.com>
+
+       * javax/swing/text/html/BlockView.java:
+       New class added.
+       (BlockView): Implemented.
+       (setParent): Implemented.
+       (calculateMajorAxisRequirements): Added, not fully implemented.
+       (calculateMinorAxisRequirements): Likewise.
+       (layoutMinorAxis): Likewise.
+       (paint): Implemented, but some code is commented out since
+       StyleSheet is not yet implemented.
+       (getAttributes): Likewise.
+       (getResizeWeight): Implemented.
+       (getAlignment): Implemented.
+       (changedUpdate): Implemented.
+       (getPreferredSpan): Implemented.
+       (getMinimumSpan): Implemented.
+       (getMaximumSpan): Implemented.
+       (setPropertiesFromAttributes): Added, not implemented yet. Need
+       to wait for StyleSheet to be implemented.
+
+2005-12-08  Tom Tromey  <tromey@redhat.com>
+
+       * javax/security/auth/login/LoginContext.java (LoginContext): New
+       constructor.
+       * javax/security/auth/login/CredentialNotFoundException.java: New
+       file.
+       * javax/security/auth/login/CredentialExpiredException.java: Extends
+       CredentialException.
+       * javax/security/auth/login/CredentialException.java: New file.
+       * javax/security/auth/login/AccountNotFoundException.java: New file.
+       * javax/security/auth/login/AccountLockedException.java: New file.
+       * javax/security/auth/login/AccountExpiredException.java: Extends
+       AccountException.
+       * javax/security/auth/login/AccountException.java: New file.
+
+2005-12-08  Roman Kennke  <kennke@aicas.com>
+
+       * javax/swing/JComponent.java
+       (JComponent): Don't set a layout here. The default setting should be
+       null.
+
+2005-12-07  Tom Tromey  <tromey@redhat.com>
+
+       * java/lang/Float.java (toHexString): New method.
+       * java/lang/Double.java (toHexString): New method.
+
+2005-12-07  Gary Benson  <gbenson@redhat.com>
+
+       * java/io/RandomAccessFile.java (RandomAccessFile): Don't create
+       DataOutputStream for read-only files to avoid unnecessary security
+       manager check.
+
+2005-12-07  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+
+       Fixes bug #25273
+       * java/text/DecimalFormat.java(scanFormat): Don't set
+       minimumIntegerDigits to 0. 
+
+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-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  Mark Wielaard  <mark@klomp.org>
+
+       * configure.ac (AC_CONFIG_FILES): Removed
+       native/jni/sampled-jack/Makefile.
+       (AC_ARG_ENABLE [jack]): Removed.
+
+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  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  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>
+
+       * 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  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>
+
+       * 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  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>
+
+       * 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-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  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  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  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  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  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  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  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  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  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  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  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.
+
+2004-10-09  Tom Tromey  <tromey@redhat.com>
+
+       * java/lang/ClassLoader.java 
+       (defineClass(String,ByteBuffer,ProtectionDomain)): New method.
+
+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  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  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>
+
+       * java/awt/Container.java
+       (addImpl): Call addNotify() only if the container has a peer.
+
+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  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  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  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  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  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  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.java: 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  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  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): Check for null and remove key in that case.
+       This fixes http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21064 .
+
+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-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-17  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-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  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-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-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\ fjava/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-04-06  Audrius Meskauskas  <audriusa@bluewin.ch>
+       * org/omg/CORBA/Context.java,
+       org/omg/CORBA/ContextList.java: New files.
+
+2005-04-06  Audrius Meskauskas  <audriusa@bluewin.ch>
+       * org/omg/CORBA/TCKind.java: Making fields final.
+
+2005-04-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>
+
+       Merge of interfaces and exceptions to HEAD from
+       the generics branch.
+
+       * java/lang/StringBuilder.java: Serial version updated.
+       * java/lang/annotation/AnnotationTypeMismatchException.java: Likewise.
+
+       Changes from generics branch:
+       
+       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-01-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/lang/annotation/AnnotationTypeMismatchException.java:
+       Added import of java.lang.reflect.Method
+
+       2004-08-26  Tom Tromey  <tromey@redhat.com>
+
+       * java/lang/reflect/GenericSignatureFormatError.java: New file.
+       * java/lang/reflect/WildcardType.java: New file.
+       * java/lang/reflect/ParameterizedType.java: New file.
+       * java/lang/reflect/GenericArrayType.java: New file.
+       * java/lang/reflect/Type.java: New file.
+       * java/io/Flushable.java: New file.
+       * java/io/Closeable.java: New file.
+
+       2004-08-07  Tom Tromey  <tromey@redhat.com>
+       
+       * java/lang/annotation/AnnotationFormatError.java: New file.
+       * java/lang/annotation/AnnotationTypeMismatchException.java: New
+       file.
+
+       2004-08-06  Tom Tromey  <tromey@redhat.com>
+
+       * java/lang/Readable.java: New file.
+
+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\0 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-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>
+
+       * 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  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       Merge of java.lang.Appendable to HEAD from
+       the generics branch.
+       
+       2004-08-06  Tom Tromey  <tromey@redhat.com>
+
+       * java/lang/Appendable.java: New file.
+
+       2004-09-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/lang/Appendable.java
+       Documented this class.
+       (append(CharSequence, int, int)): added.
+
+       2004-10-31  Robert Schuster <thebohemian@gmx.net>
+
+       * java/lang/Appendable.java (append):
+       Throws IOException.
+
+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/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-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-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-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-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-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-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-01  Michael Koch  <konqueror@gmx.de>
+
+       * javax/swing/DefaultBoundedRangeModel.java
+       (fireValueChanged): Fixed off-by-one error.
+
+\f
+Local Variables:
+coding: iso-latin-1-unix       
+End:
index 0d04bba937a7412ac233a321a212602e10d21432..7ba6136833a2e15e4f361aceaf603d8aafa84569 100644 (file)
@@ -1,3 +1,13 @@
+2006-01-16  Mark Wielaard  <mark@klomp.org>
+
+       * native/fdlibm/namespace.h: Empty for gcj.
+
+2006-01-14  Anthony Green  <green@redhat.com>
+
+       * java/net/ServerSocket.java (accept): Remove bogus
+       security check.
+       (implAccept): Add FIXME comment.
+
 2006-01-06  Tom Tromey  <tromey@redhat.com>
 
        PR libgcj/23499:
index 69bdb4aa4317618250998356110956e111a2618e..3e532a05ff68f65dd1161d85cb6784e6ad897683 100644 (file)
@@ -10,7 +10,7 @@ ACLOCAL_AMFLAGS = -I m4 -I ../.. -I ../../config
 native: lib
 
 EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE \
-             ChangeLog-2003 ChangeLog-2004 \
+             ChangeLog-2003 ChangeLog-2004 ChangeLog-2005 \
              ChangeLog.gnujaxp.1 ChangeLog.gnujaxp.2 ChangeLog.libxmlj \
             autogen.sh
 
index 410171efc595ca76a78782a8f3dac8be39453436..565fa5b0a960520bd0839a2e011b95517dbf957d 100644 (file)
@@ -46,10 +46,11 @@ subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -165,6 +166,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -275,7 +277,7 @@ SUBDIRS = lib doc external include native resource scripts $(EXAMPLESDIR)
 DIST_SUBDIRS = lib doc external include native resource scripts examples
 ACLOCAL_AMFLAGS = -I m4 -I ../.. -I ../../config
 EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE \
-             ChangeLog-2003 ChangeLog-2004 \
+             ChangeLog-2003 ChangeLog-2004 ChangeLog-2005 \
              ChangeLog.gnujaxp.1 ChangeLog.gnujaxp.2 ChangeLog.libxmlj \
             autogen.sh
 
index 778369385b79d982e35400b7bf8095afb2064414..bbf1fdc11ac6bf7744972d32ae39c553de8fc394 100644 (file)
@@ -1,10 +1,47 @@
-New in release 0.20
+New in release 0.20 (Jan 13, 2006)
+
+* New StAX pull parser and SAX-over-StAX driver. Lots of DOM, SAX/StAX,
+  XPath and XSLT improvements.  Support for XInclude and XML Base added.
+  Conformance is now regularly tested against various test-suites at
+  http://builder.classpath.org/xml/ See also doc/README.jaxp.
+
+* Full beans XMLEncoder implementation.
+
+* javax.sound.sampled implementation.
+
+* javax.print.attribute and javax.print.event implementated.
+
+* Lots of new datatransfer, print swing and swing.text work and optimization.
+
+* Additional 1.5 support. Including new (separate) generic branch release.
+
+* SecurityManager cleanups and start of review of all Permission checks
+  (includes adding lots of new checks to the Mauve test-suite).
+
+* Buildable on cygwin.
+
+* Fully buildable as "in-workspace" library-plus-vm inside (native) Eclipse
+  see http://developer.classpath.org/mediation/ClasspathHackingWithEclipse
+
+* Full example that shows a real world CORBA and Free Swing implementation.
+  See examples/gnu/classpath/examples/CORBA/swing/README.html
+
+* A list of bug fixes can be found at:
+http://gcc.gnu.org/bugzilla/buglist.cgi?product=classpath&target_milestone=0.20
 
 Runtime interface changes:
 
 * New method VMStackWalker.getClassLoader() was added to avoid an infinite
   loop between getCallingClassLoader() and Class.getClassLoader().
 
+* The included fdlibm implementation has seen several cleanups to handle
+  new architectures and namespacing issues (in particular for ppc, darwin
+  and non-C99 compilers). Please double check any arithmetic test against
+  new platforms/runtimes.
+
+* The gnu.java.net.Plain[Datagram]Socket implementations have been
+  turned into VM reference classes with JNI/Posix implementations.
+
 New in release 0.19 (Nov 2, 2005)
 
 * The Swing RepaintManager has been reworked for more efficient painting,
index 7f4f5c62f2213b5774628915e468d9297a9798ee..f0a3d72af58a92b6120fd6ed77b635195bfeca13 100644 (file)
@@ -1090,6 +1090,7 @@ m4_include([../../libtool.m4])
 m4_include([m4/acattribute.m4])
 m4_include([m4/accross.m4])
 m4_include([m4/acinclude.m4])
+m4_include([m4/ax_create_stdint_h.m4])
 m4_include([m4/iconv.m4])
 m4_include([m4/lib-ld.m4])
 m4_include([m4/lib-link.m4])
index 917bbc50f36af7527bb91465a90821815ecefcc4..52c01be4c86d5bd9ac02d0c2506a2cbe7a742bd6 100755 (executable)
@@ -3,7 +3,7 @@
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 #   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
-timestamp='2005-07-08'
+timestamp='2005-11-11'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -779,7 +779,7 @@ EOF
     i*:PW*:*)
        echo ${UNAME_MACHINE}-pc-pw32
        exit ;;
-    x86:Interix*:[34]*)
+    x86:Interix*:[345]*)
        echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
        exit ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
@@ -794,7 +794,7 @@ EOF
     i*:UWIN*:*)
        echo ${UNAME_MACHINE}-pc-uwin
        exit ;;
-    amd64:CYGWIN*:*:*)
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
        echo x86_64-unknown-cygwin
        exit ;;
     p*:CYGWIN*:*)
@@ -873,6 +873,9 @@ EOF
        eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
        test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
        ;;
+    or32:Linux:*:*)
+       echo or32-unknown-linux-gnu
+       exit ;;
     ppc:Linux:*:*)
        echo powerpc-unknown-linux-gnu
        exit ;;
@@ -1182,7 +1185,6 @@ EOF
     *:Darwin:*:*)
        UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
        case $UNAME_PROCESSOR in
-           *86) UNAME_PROCESSOR=i686 ;;
            unknown) UNAME_PROCESSOR=powerpc ;;
        esac
        echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
index 1c366dfde9ab35fe6474af49933455433951457f..eb6b3eb89ce18575987f142778a6d0ac087e5a03 100755 (executable)
@@ -3,7 +3,7 @@
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 #   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
-timestamp='2005-07-08'
+timestamp='2005-12-06'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -171,6 +171,10 @@ case $os in
        -hiux*)
                os=-hiuxwe2
                ;;
+       -sco6)
+               os=-sco5v6
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
        -sco5)
                os=-sco3.2v5
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -187,6 +191,10 @@ case $os in
                # Don't forget version if it is 3.2v4 or newer.
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
+       -sco5v6*)
+               # Don't forget version if it is 3.2v4 or newer.
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
        -sco*)
                os=-sco3.2v2
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -257,7 +265,7 @@ case $basic_machine in
        | mipsisa64sr71k | mipsisa64sr71kel \
        | mipstx39 | mipstx39el \
        | mn10200 | mn10300 \
-       | ms1 \
+       | mt \
        | msp430 \
        | ns16k | ns32k \
        | or32 \
@@ -287,6 +295,9 @@ case $basic_machine in
        m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
                ;;
 
+        ms1)
+           basic_machine=mt-unknown
+           ;;
        # We use `pc' rather than `unknown'
        # because (1) that's what they normally are, and
        # (2) the word "unknown" tends to confuse beginning users.
@@ -336,7 +347,7 @@ case $basic_machine in
        | mipsisa64sr71k-* | mipsisa64sr71kel-* \
        | mipstx39-* | mipstx39el-* \
        | mmix-* \
-       | ms1-* \
+       | mt-* \
        | msp430-* \
        | none-* | np1-* | ns16k-* | ns32k-* \
        | orion-* \
@@ -696,6 +707,9 @@ case $basic_machine in
                basic_machine=i386-pc
                os=-msdos
                ;;
+       ms1-*)
+               basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+               ;;
        mvs)
                basic_machine=i370-ibm
                os=-mvs
index 7e8ebfa373c4e30741be7003f8a6c60398dcbc75..a07c29846eea68dc81934b34bd5b47f7ab9bea41 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for GNU Classpath 0.20-pre.
+# Generated by GNU Autoconf 2.59 for GNU Classpath 0.20.
 #
 # Report bugs to <classpath@gnu.org>.
 #
@@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='GNU Classpath'
 PACKAGE_TARNAME='classpath'
-PACKAGE_VERSION='0.20-pre'
-PACKAGE_STRING='GNU Classpath 0.20-pre'
+PACKAGE_VERSION='0.20'
+PACKAGE_STRING='GNU Classpath 0.20'
 PACKAGE_BUGREPORT='classpath@gnu.org'
 
 ac_unique_file="java/lang/System.java"
@@ -312,7 +312,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os LIBVERSION CLASSPATH_MODULE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE GTK_CAIRO_ENABLED GTK_CAIRO_TRUE GTK_CAIRO_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE nativelibdir glibjdir CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE LN_S RANLIB ac_ct_RANLIB LIBTOOL CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP LIBICONV LTLIBICONV WARNING_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS CAIRO_CFLAGS CAIRO_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS QT_CFLAGS QT_LIBS MOC USER_JAVAH USER_SPECIFIED_JAVAH_TRUE USER_SPECIFIED_JAVAH_FALSE CLASSPATH_INCLUDES GCJ JIKES JIKESENCODING KJC GCJX ECJ FOUND_GCJ_TRUE FOUND_GCJ_FALSE FOUND_JIKES_TRUE FOUND_JIKES_FALSE FOUND_ECJ_TRUE FOUND_ECJ_FALSE FOUND_KJC_TRUE FOUND_KJC_FALSE FOUND_GCJX_TRUE FOUND_GCJX_FALSE USER_CLASSLIB USER_SPECIFIED_CLASSLIB_TRUE USER_SPECIFIED_CLASSLIB_FALSE vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os LIBVERSION CLASSPATH_MODULE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE GTK_CAIRO_ENABLED GTK_CAIRO_TRUE GTK_CAIRO_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE nativelibdir glibjdir CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE LN_S RANLIB ac_ct_RANLIB LIBTOOL CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP LIBICONV LTLIBICONV WARNING_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS CAIRO_CFLAGS CAIRO_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS QT_CFLAGS QT_LIBS MOC USER_JAVAH USER_SPECIFIED_JAVAH_TRUE USER_SPECIFIED_JAVAH_FALSE CLASSPATH_INCLUDES GCJ JIKES JIKESENCODING JIKESWARNINGS KJC GCJX ECJ FOUND_GCJ_TRUE FOUND_GCJ_FALSE FOUND_JIKES_TRUE FOUND_JIKES_FALSE FOUND_ECJ_TRUE FOUND_ECJ_FALSE FOUND_KJC_TRUE FOUND_KJC_FALSE FOUND_GCJX_TRUE FOUND_GCJX_FALSE USER_CLASSLIB USER_SPECIFIED_CLASSLIB_TRUE USER_SPECIFIED_CLASSLIB_FALSE vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -793,7 +793,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GNU Classpath 0.20-pre to adapt to many kinds of systems.
+\`configure' configures GNU Classpath 0.20 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -864,7 +864,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU Classpath 0.20-pre:";;
+     short | recursive ) echo "Configuration of GNU Classpath 0.20:";;
    esac
   cat <<\_ACEOF
 
@@ -1041,14 +1041,14 @@ esac
     else
       echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi
-    cd $ac_popdir
+    cd "$ac_popdir"
   done
 fi
 
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-GNU Classpath configure 0.20-pre
+GNU Classpath configure 0.20
 generated by GNU Autoconf 2.59
 
 Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1062,7 +1062,7 @@ cat >&5 <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GNU Classpath $as_me 0.20-pre, which was
+It was created by GNU Classpath $as_me 0.20, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
@@ -1807,7 +1807,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='classpath'
- VERSION='0.20-pre'
+ VERSION='0.20'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2744,8 +2744,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2803,8 +2802,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2920,8 +2918,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2975,8 +2972,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3021,8 +3017,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3066,8 +3061,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3499,8 +3493,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3670,8 +3663,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3747,8 +3739,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3896,8 +3887,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3989,8 +3979,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5132,7 +5121,7 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
 case $host in
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 5135 "configure"' > conftest.$ac_ext
+  echo '#line 5124 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -5274,8 +5263,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5785,8 +5773,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5844,8 +5831,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5961,8 +5947,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6016,8 +6001,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6062,8 +6046,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6107,8 +6090,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6635,8 +6617,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_cxx_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_cxx_werror_flag"                         || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6694,8 +6675,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_cxx_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_cxx_werror_flag"                         || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6766,8 +6746,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_cxx_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_cxx_werror_flag"                         || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6811,8 +6790,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_cxx_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_cxx_werror_flag"                         || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7244,8 +7222,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7411,8 +7388,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7485,8 +7461,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7527,8 +7502,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7716,8 +7690,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7949,6 +7922,7 @@ rm -f conftest*
 
 
 
+
 
 
 for ac_func in ftruncate fsync select \
@@ -7959,7 +7933,8 @@ for ac_func in ftruncate fsync select \
                  localtime_r \
                  strerror_r \
                   fcntl \
-                 mmap munmap mincore msync madvise getpagesize sysconf
+                 mmap munmap mincore msync madvise getpagesize sysconf \
+                 isnan
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -8027,8 +8002,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8094,8 +8068,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8157,8 +8130,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8223,8 +8195,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8270,8 +8241,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8345,8 +8315,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8406,8 +8375,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8458,8 +8426,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8510,8 +8477,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8618,8 +8584,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8674,8 +8639,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9320,8 +9284,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9371,8 +9334,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9462,8 +9424,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9718,9 +9679,12 @@ echo "$as_me: error: Library requirements (libxslt >= 1.1.11) not met; consider
   fi
 
     if test "x${COMPILE_GTK_PEER}" = xyes; then
-    echo "$as_me:$LINENO: checking for X" >&5
+
+if test "x$ac_path_x_has_been_run" != xyes; then
+  echo "$as_me:$LINENO: checking for X" >&5
 echo $ECHO_N "checking for X... $ECHO_C" >&6
 
+ac_path_x_has_been_run=yes
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -9813,7 +9777,7 @@ ac_x_header_dirs='
 /usr/openwin/share/include'
 
 if test "$ac_x_includes" = no; then
-  # Guess where to find include files, by looking for Intrinsic.h.
+  # Guess where to find include files, by looking for a specified header file.
   # First, try using that file with no special directory specified.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -9821,7 +9785,7 @@ _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <X11/Intrinsic.h>
+#include <X11/Xlib.h>
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
@@ -9848,7 +9812,7 @@ else
 sed 's/^/| /' conftest.$ac_ext >&5
 
   for ac_dir in $ac_x_header_dirs; do
-  if test -r "$ac_dir/X11/Intrinsic.h"; then
+  if test -r "$ac_dir/X11/Xlib.h"; then
     ac_x_includes=$ac_dir
     break
   fi
@@ -9862,18 +9826,18 @@ if test "$ac_x_libraries" = no; then
   # See if we find them without any special options.
   # Don't add to $LIBS permanently.
   ac_save_LIBS=$LIBS
-  LIBS="-lXt $LIBS"
+  LIBS="-lX11 $LIBS"
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <X11/Intrinsic.h>
+#include <X11/Xlib.h>
 int
 main ()
 {
-XtMalloc (0)
+XrmInitialize ()
   ;
   return 0;
 }
@@ -9887,8 +9851,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9912,7 +9875,7 @@ for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
 do
   # Don't even attempt the hair of trying to link an X program!
   for ac_extension in a so sl; do
-    if test -r $ac_dir/libXt.$ac_extension; then
+    if test -r $ac_dir/libX11.$ac_extension; then
       ac_x_libraries=$ac_dir
       break 2
     fi
@@ -9948,10 +9911,15 @@ else
   # Update the cache value to reflect the command line values.
   ac_cv_have_x="have_x=yes \
                ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
-  echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5
-echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
+  # It might be that x_includes is empty (headers are found in the
+  # standard search path. Then output the corresponding message
+  ac_out_x_includes=$x_includes
+  test "x$x_includes" = x && ac_out_x_includes="in standard search path"
+  echo "$as_me:$LINENO: result: libraries $x_libraries, headers $ac_out_x_includes" >&5
+echo "${ECHO_T}libraries $x_libraries, headers $ac_out_x_includes" >&6
 fi
 
+fi
 if test "$no_x" = yes; then
   # Not all programs may use this symbol, but it does not hurt to define it.
 
@@ -9999,8 +9967,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10051,8 +10018,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10128,8 +10094,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10184,8 +10149,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10253,8 +10217,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10362,8 +10325,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10427,8 +10389,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10496,8 +10457,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10601,8 +10561,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10666,8 +10625,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10764,8 +10722,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10829,8 +10786,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10927,8 +10883,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10992,8 +10947,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11072,8 +11026,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11149,8 +11102,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
   else
      PKG_CONFIG_MIN_VERSION=0.9.0
      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
-        echo "$as_me:$LINENO: checking for QtGui >= 4.0.1" >&5
-echo $ECHO_N "checking for QtGui >= 4.0.1... $ECHO_C" >&6
+        echo "$as_me:$LINENO: checking for QtCore QtGui >= 4.1.0" >&5
+echo $ECHO_N "checking for QtCore QtGui >= 4.1.0... $ECHO_C" >&6
 
-        if $PKG_CONFIG --exists "QtGui >= 4.0.1" ; then
+        if $PKG_CONFIG --exists "QtCore QtGui >= 4.1.0" ; then
             echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6
             succeeded=yes
 
             echo "$as_me:$LINENO: checking QT_CFLAGS" >&5
 echo $ECHO_N "checking QT_CFLAGS... $ECHO_C" >&6
-            QT_CFLAGS=`$PKG_CONFIG --cflags "QtGui >= 4.0.1"`
+            QT_CFLAGS=`$PKG_CONFIG --cflags "QtCore QtGui >= 4.1.0"`
             echo "$as_me:$LINENO: result: $QT_CFLAGS" >&5
 echo "${ECHO_T}$QT_CFLAGS" >&6
 
             echo "$as_me:$LINENO: checking QT_LIBS" >&5
 echo $ECHO_N "checking QT_LIBS... $ECHO_C" >&6
-            QT_LIBS=`$PKG_CONFIG --libs "QtGui >= 4.0.1"`
+            QT_LIBS=`$PKG_CONFIG --libs "QtCore QtGui >= 4.1.0"`
             echo "$as_me:$LINENO: result: $QT_LIBS" >&5
 echo "${ECHO_T}$QT_LIBS" >&6
         else
@@ -11569,7 +11521,7 @@ echo "${ECHO_T}$QT_LIBS" >&6
             QT_LIBS=""
             ## If we have a custom action on failure, don't print errors, but
             ## do set a variable so people can do so.
-            QT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "QtGui >= 4.0.1"`
+            QT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "QtCore QtGui >= 4.1.0"`
 
         fi
 
@@ -12589,9 +12541,18 @@ echo "$as_me: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&2;}
 
     JIKESENCODING=
     if test -n "`$JIKES --help 2>&1 | grep encoding`"; then
-       JIKESENCODING='-encoding UTF-8'
+      JIKESENCODING='-encoding UTF-8'
+    fi
+
+
+    JIKESWARNINGS="+Pno-switchcheck"
+    if test "x$JIKES_VERSION_MAJOR" = x"1" ; then
+      if ! test "x$JIKES_VERSION_MINOR" = x"19"; then
+        JIKESWARNINGS="$JIKESWARNINGS +Pno-shadow"
+      fi
     fi
 
+
   fi
 
     else
@@ -12703,9 +12664,18 @@ echo "$as_me: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&2;}
 
     JIKESENCODING=
     if test -n "`$JIKES --help 2>&1 | grep encoding`"; then
-       JIKESENCODING='-encoding UTF-8'
+      JIKESENCODING='-encoding UTF-8'
     fi
 
+
+    JIKESWARNINGS="+Pno-switchcheck"
+    if test "x$JIKES_VERSION_MAJOR" = x"1" ; then
+      if ! test "x$JIKES_VERSION_MINOR" = x"19"; then
+        JIKESWARNINGS="$JIKESWARNINGS +Pno-shadow"
+      fi
+    fi
+
+
   fi
 
       fi
@@ -12821,9 +12791,18 @@ echo "$as_me: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&2;}
 
     JIKESENCODING=
     if test -n "`$JIKES --help 2>&1 | grep encoding`"; then
-       JIKESENCODING='-encoding UTF-8'
+      JIKESENCODING='-encoding UTF-8'
+    fi
+
+
+    JIKESWARNINGS="+Pno-switchcheck"
+    if test "x$JIKES_VERSION_MAJOR" = x"1" ; then
+      if ! test "x$JIKES_VERSION_MINOR" = x"19"; then
+        JIKESWARNINGS="$JIKESWARNINGS +Pno-shadow"
+      fi
     fi
 
+
   fi
 
 
@@ -14404,118 +14383,2929 @@ echo "$as_me: error: bad value ${enableval} for --enable-portable-native-sync" >
               esac
 fi;
 
-                                                                                                                                                                                                                                                                                                                                                    ac_config_files="$ac_config_files Makefile doc/Makefile doc/api/Makefile external/Makefile external/sax/Makefile external/w3c_dom/Makefile gnu/classpath/Configuration.java include/Makefile native/Makefile native/fdlibm/Makefile native/jawt/Makefile native/jni/Makefile native/jni/classpath/Makefile native/jni/java-io/Makefile native/jni/java-lang/Makefile native/jni/java-net/Makefile native/jni/java-nio/Makefile native/jni/java-util/Makefile native/jni/gtk-peer/Makefile native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile native/target/Makefile native/target/Linux/Makefile native/target/generic/Makefile resource/Makefile scripts/Makefile scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh examples/Makefile examples/Makefile.jawt"
+# ------ AX CREATE STDINT H -------------------------------------
+echo "$as_me:$LINENO: checking for stdint types" >&5
+echo $ECHO_N "checking for stdint types... $ECHO_C" >&6
+ac_stdint_h=`echo include/config-int.h`
+# try to shortcircuit - if the default include path of the compiler
+# can find a "stdint.h" header then we assume that all compilers can.
+if test "${ac_cv_header_stdint_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-          ac_config_commands="$ac_config_commands gen-classlist"
+old_CXXFLAGS="$CXXFLAGS" ; CXXFLAGS=""
+old_CPPFLAGS="$CPPFLAGS" ; CPPFLAGS=""
+old_CFLAGS="$CFLAGS"     ; CFLAGS=""
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdint.h>
+int
+main ()
+{
+int_least32_t v = 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_stdint_result="(assuming C99 compatible system)"
+ ac_cv_header_stdint_t="stdint.h";
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-          ac_config_commands="$ac_config_commands copy-vmresources"
+ac_cv_header_stdint_t=""
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+CXXFLAGS="$old_CXXFLAGS"
+CPPFLAGS="$old_CPPFLAGS"
+CFLAGS="$old_CFLAGS"
+fi
 
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
 
+v="... $ac_cv_header_stdint_h"
+if test "$ac_stdint_h" = "stdint.h" ; then
+ echo "$as_me:$LINENO: result: (are you sure you want them in ./stdint.h?)" >&5
+echo "${ECHO_T}(are you sure you want them in ./stdint.h?)" >&6
+elif test "$ac_stdint_h" = "inttypes.h" ; then
+ echo "$as_me:$LINENO: result: (are you sure you want them in ./inttypes.h?)" >&5
+echo "${ECHO_T}(are you sure you want them in ./inttypes.h?)" >&6
+elif test "_$ac_cv_header_stdint_t" = "_" ; then
+ echo "$as_me:$LINENO: result: (putting them into $ac_stdint_h)$v" >&5
+echo "${ECHO_T}(putting them into $ac_stdint_h)$v" >&6
+else
+ ac_cv_header_stdint="$ac_cv_header_stdint_t"
+ echo "$as_me:$LINENO: result: $ac_cv_header_stdint (shortcircuit)" >&5
+echo "${ECHO_T}$ac_cv_header_stdint (shortcircuit)" >&6
+fi
+
+if test "_$ac_cv_header_stdint_t" = "_" ; then # can not shortcircuit..
+
+
+inttype_headers=`echo  | sed -e 's/,/ /g'`
+
+ac_cv_stdint_result="(no helpful system typedefs seen)"
+
+echo "$as_me:$LINENO: checking for stdint uintptr_t" >&5
+echo $ECHO_N "checking for stdint uintptr_t... $ECHO_C" >&6
+if test "${ac_cv_header_stdint_x+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ ac_cv_header_stdint_x="" # the 1997 typedefs (inttypes.h)
+  echo "$as_me:$LINENO: result: (..)" >&5
+echo "${ECHO_T}(..)" >&6
+  for i in    stdint.h inttypes.h sys/inttypes.h $inttype_headers ; do
+   unset ac_cv_type_uintptr_t
+   unset ac_cv_type_uint64_t
+   echo "$as_me:$LINENO: checking for uintptr_t" >&5
+echo $ECHO_N "checking for uintptr_t... $ECHO_C" >&6
+if test "${ac_cv_type_uintptr_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$i>
 
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
+int
+main ()
 {
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-       "s/'/'\\\\''/g;
-         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-       "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
+if ((uintptr_t *) 0)
+  return 0;
+if (sizeof (uintptr_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_uintptr_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_uintptr_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_uintptr_t" >&5
+echo "${ECHO_T}$ac_cv_type_uintptr_t" >&6
+if test $ac_cv_type_uintptr_t = yes; then
+  ac_cv_header_stdint_x=$i
+else
+  continue
 fi
-rm -f confcache
 
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+   echo "$as_me:$LINENO: checking for uint64_t" >&5
+echo $ECHO_N "checking for uint64_t... $ECHO_C" >&6
+if test "${ac_cv_type_uint64_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include<$i>
 
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[         ]*VPATH[        ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[    ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[      ]*$//;
-}'
+int
+main ()
+{
+if ((uint64_t *) 0)
+  return 0;
+if (sizeof (uint64_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_uint64_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_uint64_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_uint64_t" >&5
+echo "${ECHO_T}$ac_cv_type_uint64_t" >&6
+if test $ac_cv_type_uint64_t = yes; then
+  and64="/uint64_t"
+else
+  and64=""
 fi
 
-DEFS=-DHAVE_CONFIG_H
+      stdint.h inttypes.h sys/inttypes.h $inttype_headers
+ break
+  done
+  echo "$as_me:$LINENO: checking for stdint uintptr_t" >&5
+echo $ECHO_N "checking for stdint uintptr_t... $ECHO_C" >&6
 
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-        sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdint_x" >&5
+echo "${ECHO_T}$ac_cv_header_stdint_x" >&6
 
-LTLIBOBJS=$ac_ltlibobjs
 
+if test "_$ac_cv_header_stdint_x" = "_" ; then
 
-if test -z "${CREATE_JNI_LIBRARIES_TRUE}" && test -z "${CREATE_JNI_LIBRARIES_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"CREATE_JNI_LIBRARIES\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"CREATE_JNI_LIBRARIES\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${CREATE_CORE_JNI_LIBRARIES_TRUE}" && test -z "${CREATE_CORE_JNI_LIBRARIES_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"CREATE_CORE_JNI_LIBRARIES\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"CREATE_CORE_JNI_LIBRARIES\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${CREATE_XMLJ_LIBRARY_TRUE}" && test -z "${CREATE_XMLJ_LIBRARY_FALSE}"; then
+echo "$as_me:$LINENO: checking for stdint uint32_t" >&5
+echo $ECHO_N "checking for stdint uint32_t... $ECHO_C" >&6
+if test "${ac_cv_header_stdint_o+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ ac_cv_header_stdint_o="" # the 1995 typedefs (sys/inttypes.h)
+  echo "$as_me:$LINENO: result: (..)" >&5
+echo "${ECHO_T}(..)" >&6
+  for i in    inttypes.h sys/inttypes.h stdint.h $inttype_headers ; do
+   unset ac_cv_type_uint32_t
+   unset ac_cv_type_uint64_t
+   echo "$as_me:$LINENO: checking for uint32_t" >&5
+echo $ECHO_N "checking for uint32_t... $ECHO_C" >&6
+if test "${ac_cv_type_uint32_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$i>
+
+int
+main ()
+{
+if ((uint32_t *) 0)
+  return 0;
+if (sizeof (uint32_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_uint32_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_uint32_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_uint32_t" >&5
+echo "${ECHO_T}$ac_cv_type_uint32_t" >&6
+if test $ac_cv_type_uint32_t = yes; then
+  ac_cv_header_stdint_o=$i
+else
+  continue
+fi
+
+   echo "$as_me:$LINENO: checking for uint64_t" >&5
+echo $ECHO_N "checking for uint64_t... $ECHO_C" >&6
+if test "${ac_cv_type_uint64_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include<$i>
+
+int
+main ()
+{
+if ((uint64_t *) 0)
+  return 0;
+if (sizeof (uint64_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_uint64_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_uint64_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_uint64_t" >&5
+echo "${ECHO_T}$ac_cv_type_uint64_t" >&6
+if test $ac_cv_type_uint64_t = yes; then
+  and64="/uint64_t"
+else
+  and64=""
+fi
+
+      inttypes.h sys/inttypes.h stdint.h $inttype_headers
+ break
+   break;
+  done
+  echo "$as_me:$LINENO: checking for stdint uint32_t" >&5
+echo $ECHO_N "checking for stdint uint32_t... $ECHO_C" >&6
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdint_o" >&5
+echo "${ECHO_T}$ac_cv_header_stdint_o" >&6
+
+fi
+
+if test "_$ac_cv_header_stdint_x" = "_" ; then
+if test "_$ac_cv_header_stdint_o" = "_" ; then
+
+echo "$as_me:$LINENO: checking for stdint u_int32_t" >&5
+echo $ECHO_N "checking for stdint u_int32_t... $ECHO_C" >&6
+if test "${ac_cv_header_stdint_u+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ ac_cv_header_stdint_u="" # the BSD typedefs (sys/types.h)
+  echo "$as_me:$LINENO: result: (..)" >&5
+echo "${ECHO_T}(..)" >&6
+  for i in    sys/types.h inttypes.h sys/inttypes.h $inttype_headers ; do
+   unset ac_cv_type_u_int32_t
+   unset ac_cv_type_u_int64_t
+   echo "$as_me:$LINENO: checking for u_int32_t" >&5
+echo $ECHO_N "checking for u_int32_t... $ECHO_C" >&6
+if test "${ac_cv_type_u_int32_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$i>
+
+int
+main ()
+{
+if ((u_int32_t *) 0)
+  return 0;
+if (sizeof (u_int32_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_u_int32_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_u_int32_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_u_int32_t" >&5
+echo "${ECHO_T}$ac_cv_type_u_int32_t" >&6
+if test $ac_cv_type_u_int32_t = yes; then
+  ac_cv_header_stdint_u=$i
+else
+  continue
+fi
+
+   echo "$as_me:$LINENO: checking for u_int64_t" >&5
+echo $ECHO_N "checking for u_int64_t... $ECHO_C" >&6
+if test "${ac_cv_type_u_int64_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include<$i>
+
+int
+main ()
+{
+if ((u_int64_t *) 0)
+  return 0;
+if (sizeof (u_int64_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_u_int64_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_u_int64_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_u_int64_t" >&5
+echo "${ECHO_T}$ac_cv_type_u_int64_t" >&6
+if test $ac_cv_type_u_int64_t = yes; then
+  and64="/u_int64_t"
+else
+  and64=""
+fi
+
+      sys/types.h inttypes.h sys/inttypes.h $inttype_headers
+ break
+   break;
+  done
+  echo "$as_me:$LINENO: checking for stdint u_int32_t" >&5
+echo $ECHO_N "checking for stdint u_int32_t... $ECHO_C" >&6
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdint_u" >&5
+echo "${ECHO_T}$ac_cv_header_stdint_u" >&6
+
+fi fi
+
+if test "_$ac_cv_header_stdint_x" = "_" ; then
+   echo "$as_me:$LINENO: checking for stdint datatype model" >&5
+echo $ECHO_N "checking for stdint datatype model... $ECHO_C" >&6
+   echo "$as_me:$LINENO: result: (..)" >&5
+echo "${ECHO_T}(..)" >&6
+
+   echo "$as_me:$LINENO: checking for char" >&5
+echo $ECHO_N "checking for char... $ECHO_C" >&6
+if test "${ac_cv_type_char+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((char *) 0)
+  return 0;
+if (sizeof (char))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_char=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_char=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_char" >&5
+echo "${ECHO_T}$ac_cv_type_char" >&6
+
+echo "$as_me:$LINENO: checking size of char" >&5
+echo $ECHO_N "checking size of char... $ECHO_C" >&6
+if test "${ac_cv_sizeof_char+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_char" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (char))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (char))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+                   if test $ac_lo -le $ac_mid; then
+                     ac_lo= ac_hi=
+                     break
+                   fi
+                   ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (char))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (char))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+                      if test $ac_mid -le $ac_hi; then
+                        ac_lo= ac_hi=
+                        break
+                      fi
+                      ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (char))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_char=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (char), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (char), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5
+echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (char)); }
+unsigned long ulongval () { return (long) (sizeof (char)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (char))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (char))))
+       exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (char))))
+       exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_char=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (char), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (char), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_char=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_char" >&5
+echo "${ECHO_T}$ac_cv_sizeof_char" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_CHAR $ac_cv_sizeof_char
+_ACEOF
+
+
+   echo "$as_me:$LINENO: checking for short" >&5
+echo $ECHO_N "checking for short... $ECHO_C" >&6
+if test "${ac_cv_type_short+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((short *) 0)
+  return 0;
+if (sizeof (short))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_short=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_short=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5
+echo "${ECHO_T}$ac_cv_type_short" >&6
+
+echo "$as_me:$LINENO: checking size of short" >&5
+echo $ECHO_N "checking size of short... $ECHO_C" >&6
+if test "${ac_cv_sizeof_short+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_short" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+                   if test $ac_lo -le $ac_mid; then
+                     ac_lo= ac_hi=
+                     break
+                   fi
+                   ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+                      if test $ac_mid -le $ac_hi; then
+                        ac_lo= ac_hi=
+                        break
+                      fi
+                      ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_short=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5
+echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (short)); }
+unsigned long ulongval () { return (long) (sizeof (short)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (short))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (short))))
+       exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (short))))
+       exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_short=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_short=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5
+echo "${ECHO_T}$ac_cv_sizeof_short" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_SHORT $ac_cv_sizeof_short
+_ACEOF
+
+
+   echo "$as_me:$LINENO: checking for int" >&5
+echo $ECHO_N "checking for int... $ECHO_C" >&6
+if test "${ac_cv_type_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((int *) 0)
+  return 0;
+if (sizeof (int))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_int=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_int=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5
+echo "${ECHO_T}$ac_cv_type_int" >&6
+
+echo "$as_me:$LINENO: checking size of int" >&5
+echo $ECHO_N "checking size of int... $ECHO_C" >&6
+if test "${ac_cv_sizeof_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_int" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+                   if test $ac_lo -le $ac_mid; then
+                     ac_lo= ac_hi=
+                     break
+                   fi
+                   ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+                      if test $ac_mid -le $ac_hi; then
+                        ac_lo= ac_hi=
+                        break
+                      fi
+                      ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_int=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5
+echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (int)); }
+unsigned long ulongval () { return (long) (sizeof (int)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (int))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (int))))
+       exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (int))))
+       exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_int=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_int=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
+echo "${ECHO_T}$ac_cv_sizeof_int" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+_ACEOF
+
+
+   echo "$as_me:$LINENO: checking for long" >&5
+echo $ECHO_N "checking for long... $ECHO_C" >&6
+if test "${ac_cv_type_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((long *) 0)
+  return 0;
+if (sizeof (long))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_long=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_long=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5
+echo "${ECHO_T}$ac_cv_type_long" >&6
+
+echo "$as_me:$LINENO: checking size of long" >&5
+echo $ECHO_N "checking size of long... $ECHO_C" >&6
+if test "${ac_cv_sizeof_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_long" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+                   if test $ac_lo -le $ac_mid; then
+                     ac_lo= ac_hi=
+                     break
+                   fi
+                   ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+                      if test $ac_mid -le $ac_hi; then
+                        ac_lo= ac_hi=
+                        break
+                      fi
+                      ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_long=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5
+echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (long)); }
+unsigned long ulongval () { return (long) (sizeof (long)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (long))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (long))))
+       exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (long))))
+       exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_long=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_long=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5
+echo "${ECHO_T}$ac_cv_sizeof_long" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+_ACEOF
+
+
+   echo "$as_me:$LINENO: checking for void*" >&5
+echo $ECHO_N "checking for void*... $ECHO_C" >&6
+if test "${ac_cv_type_voidp+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((void* *) 0)
+  return 0;
+if (sizeof (void*))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_voidp=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_voidp=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_voidp" >&5
+echo "${ECHO_T}$ac_cv_type_voidp" >&6
+
+echo "$as_me:$LINENO: checking size of void*" >&5
+echo $ECHO_N "checking size of void*... $ECHO_C" >&6
+if test "${ac_cv_sizeof_voidp+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_voidp" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (void*))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (void*))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+                   if test $ac_lo -le $ac_mid; then
+                     ac_lo= ac_hi=
+                     break
+                   fi
+                   ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (void*))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (void*))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+                      if test $ac_mid -le $ac_hi; then
+                        ac_lo= ac_hi=
+                        break
+                      fi
+                      ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (void*))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_voidp=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (void*), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (void*), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5
+echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (void*)); }
+unsigned long ulongval () { return (long) (sizeof (void*)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (void*))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (void*))))
+       exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (void*))))
+       exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_voidp=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (void*), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (void*), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_voidp=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_voidp" >&5
+echo "${ECHO_T}$ac_cv_sizeof_voidp" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_VOIDP $ac_cv_sizeof_voidp
+_ACEOF
+
+
+   ac_cv_char_data_model=""
+   ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_char"
+   ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_short"
+   ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_int"
+   ac_cv_long_data_model=""
+   ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_int"
+   ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_long"
+   ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_voidp"
+   echo "$as_me:$LINENO: checking data model" >&5
+echo $ECHO_N "checking data model... $ECHO_C" >&6
+   case "$ac_cv_char_data_model/$ac_cv_long_data_model" in
+    122/242)     ac_cv_data_model="IP16"  ; n="standard 16bit machine" ;;
+    122/244)     ac_cv_data_model="LP32"  ; n="standard 32bit machine" ;;
+    122/*)       ac_cv_data_model="i16"   ; n="unusual int16 model" ;;
+    124/444)     ac_cv_data_model="ILP32" ; n="standard 32bit unixish" ;;
+    124/488)     ac_cv_data_model="LP64"  ; n="standard 64bit unixish" ;;
+    124/448)     ac_cv_data_model="LLP64" ; n="unusual 64bit unixish" ;;
+    124/*)       ac_cv_data_model="i32"   ; n="unusual int32 model" ;;
+    128/888)     ac_cv_data_model="ILP64" ; n="unusual 64bit numeric" ;;
+    128/*)       ac_cv_data_model="i64"   ; n="unusual int64 model" ;;
+    222/*2)      ac_cv_data_model="DSP16" ; n="strict 16bit dsptype" ;;
+    333/*3)      ac_cv_data_model="DSP24" ; n="strict 24bit dsptype" ;;
+    444/*4)      ac_cv_data_model="DSP32" ; n="strict 32bit dsptype" ;;
+    666/*6)      ac_cv_data_model="DSP48" ; n="strict 48bit dsptype" ;;
+    888/*8)      ac_cv_data_model="DSP64" ; n="strict 64bit dsptype" ;;
+    222/*|333/*|444/*|666/*|888/*) :
+                 ac_cv_data_model="iDSP"  ; n="unusual dsptype" ;;
+     *)          ac_cv_data_model="none"  ; n="very unusual model" ;;
+   esac
+   echo "$as_me:$LINENO: result: $ac_cv_data_model ($ac_cv_long_data_model, $n)" >&5
+echo "${ECHO_T}$ac_cv_data_model ($ac_cv_long_data_model, $n)" >&6
+
+fi
+
+if test "_$ac_cv_header_stdint_x" != "_" ; then
+   ac_cv_header_stdint="$ac_cv_header_stdint_x"
+elif  test "_$ac_cv_header_stdint_o" != "_" ; then
+   ac_cv_header_stdint="$ac_cv_header_stdint_o"
+elif  test "_$ac_cv_header_stdint_u" != "_" ; then
+   ac_cv_header_stdint="$ac_cv_header_stdint_u"
+else
+   ac_cv_header_stdint="stddef.h"
+fi
+
+echo "$as_me:$LINENO: checking for extra inttypes in chosen header" >&5
+echo $ECHO_N "checking for extra inttypes in chosen header... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: ($ac_cv_header_stdint)" >&5
+echo "${ECHO_T}($ac_cv_header_stdint)" >&6
+unset ac_cv_type_int_least32_t
+unset ac_cv_type_int_fast32_t
+echo "$as_me:$LINENO: checking for int_least32_t" >&5
+echo $ECHO_N "checking for int_least32_t... $ECHO_C" >&6
+if test "${ac_cv_type_int_least32_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_cv_header_stdint>
+
+int
+main ()
+{
+if ((int_least32_t *) 0)
+  return 0;
+if (sizeof (int_least32_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_int_least32_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_int_least32_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_int_least32_t" >&5
+echo "${ECHO_T}$ac_cv_type_int_least32_t" >&6
+
+echo "$as_me:$LINENO: checking for int_fast32_t" >&5
+echo $ECHO_N "checking for int_fast32_t... $ECHO_C" >&6
+if test "${ac_cv_type_int_fast32_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include<$ac_cv_header_stdint>
+
+int
+main ()
+{
+if ((int_fast32_t *) 0)
+  return 0;
+if (sizeof (int_fast32_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_int_fast32_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_int_fast32_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_int_fast32_t" >&5
+echo "${ECHO_T}$ac_cv_type_int_fast32_t" >&6
+
+echo "$as_me:$LINENO: checking for intmax_t" >&5
+echo $ECHO_N "checking for intmax_t... $ECHO_C" >&6
+if test "${ac_cv_type_intmax_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_cv_header_stdint>
+
+int
+main ()
+{
+if ((intmax_t *) 0)
+  return 0;
+if (sizeof (intmax_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_intmax_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_intmax_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_intmax_t" >&5
+echo "${ECHO_T}$ac_cv_type_intmax_t" >&6
+
+
+fi # shortcircut to system "stdint.h"
+# ------------------ PREPARE VARIABLES ------------------------------
+if test "$GCC" = "yes" ; then
+ac_cv_stdint_message="using gnu compiler "`$CC --version | head -1`
+else
+ac_cv_stdint_message="using $CC"
+fi
+
+echo "$as_me:$LINENO: result: make use of $ac_cv_header_stdint in $ac_stdint_h $ac_cv_stdint_result" >&5
+echo "${ECHO_T}make use of $ac_cv_header_stdint in $ac_stdint_h $ac_cv_stdint_result" >&6
+
+# ----------------- DONE inttypes.h checks START header -------------
+          ac_config_commands="$ac_config_commands $ac_stdint_h"
+
+
+
+                                                                                                                                                                                                                                                                                                                                                    ac_config_files="$ac_config_files Makefile doc/Makefile doc/api/Makefile external/Makefile external/sax/Makefile external/w3c_dom/Makefile gnu/classpath/Configuration.java include/Makefile native/Makefile native/fdlibm/Makefile native/jawt/Makefile native/jni/Makefile native/jni/classpath/Makefile native/jni/java-io/Makefile native/jni/java-lang/Makefile native/jni/java-net/Makefile native/jni/java-nio/Makefile native/jni/java-util/Makefile native/jni/gtk-peer/Makefile native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile native/target/Makefile native/target/Linux/Makefile native/target/generic/Makefile resource/Makefile scripts/Makefile scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh examples/Makefile examples/Makefile.jawt"
+
+          ac_config_commands="$ac_config_commands gen-classlist"
+
+          ac_config_commands="$ac_config_commands copy-vmresources"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+  (set) 2>&1 |
+    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+       "s/'/'\\\\''/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;;
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n \
+       "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+} |
+  sed '
+     t clear
+     : clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     : end' >>confcache
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
+  if test -w $cache_file; then
+    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+    cat confcache >$cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[         ]*VPATH[        ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[    ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[      ]*$//;
+}'
+fi
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_i=`echo "$ac_i" |
+        sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+  # 2. Add them.
+  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${CREATE_JNI_LIBRARIES_TRUE}" && test -z "${CREATE_JNI_LIBRARIES_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"CREATE_JNI_LIBRARIES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"CREATE_JNI_LIBRARIES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${CREATE_CORE_JNI_LIBRARIES_TRUE}" && test -z "${CREATE_CORE_JNI_LIBRARIES_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"CREATE_CORE_JNI_LIBRARIES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"CREATE_CORE_JNI_LIBRARIES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${CREATE_XMLJ_LIBRARY_TRUE}" && test -z "${CREATE_XMLJ_LIBRARY_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"CREATE_XMLJ_LIBRARY\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
 echo "$as_me: error: conditional \"CREATE_XMLJ_LIBRARY\" was never defined.
@@ -14975,7 +17765,7 @@ _ASBOX
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by GNU Classpath $as_me 0.20-pre, which was
+This file was extended by GNU Classpath $as_me 0.20, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15041,7 +17831,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-GNU Classpath config.status 0.20-pre
+GNU Classpath config.status 0.20
 configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -15141,6 +17931,24 @@ cat >>$CONFIG_STATUS <<_ACEOF
 #
 
 AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+# variables for create stdint.h replacement
+PACKAGE="$PACKAGE"
+VERSION="$VERSION"
+ac_stdint_h="$ac_stdint_h"
+_ac_stdint_h=`echo "_$PACKAGE-$ac_stdint_h" | $as_tr_cpp`
+ac_cv_stdint_message="$ac_cv_stdint_message"
+ac_cv_header_stdint_t="$ac_cv_header_stdint_t"
+ac_cv_header_stdint_x="$ac_cv_header_stdint_x"
+ac_cv_header_stdint_o="$ac_cv_header_stdint_o"
+ac_cv_header_stdint_u="$ac_cv_header_stdint_u"
+ac_cv_type_uint64_t="$ac_cv_type_uint64_t"
+ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t"
+ac_cv_char_data_model="$ac_cv_char_data_model"
+ac_cv_long_data_model="$ac_cv_long_data_model"
+ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t"
+ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t"
+ac_cv_type_intmax_t="$ac_cv_type_intmax_t"
+
 
 _ACEOF
 
@@ -15187,6 +17995,7 @@ do
   "examples/Makefile.jawt" ) CONFIG_FILES="$CONFIG_FILES examples/Makefile.jawt" ;;
   "$ac_config_links_1" ) CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_1" ;;
   "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+  "$ac_stdint_h" ) CONFIG_COMMANDS="$CONFIG_COMMANDS $ac_stdint_h" ;;
   "gen-classlist" ) CONFIG_COMMANDS="$CONFIG_COMMANDS gen-classlist" ;;
   "copy-vmresources" ) CONFIG_COMMANDS="$CONFIG_COMMANDS copy-vmresources" ;;
   "include/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/config.h" ;;
@@ -15393,6 +18202,7 @@ s,@CLASSPATH_INCLUDES@,$CLASSPATH_INCLUDES,;t t
 s,@GCJ@,$GCJ,;t t
 s,@JIKES@,$JIKES,;t t
 s,@JIKESENCODING@,$JIKESENCODING,;t t
+s,@JIKESWARNINGS@,$JIKESWARNINGS,;t t
 s,@KJC@,$KJC,;t t
 s,@GCJX@,$GCJX,;t t
 s,@ECJ@,$ECJ,;t t
@@ -15604,11 +18414,6 @@ esac
   *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
   esac
 
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
   # Let's still pretend it is `configure' which instantiates (i.e., don't
   # use $as_me), people would be surprised to read:
   #    /* config.h.  Generated by config.status.  */
@@ -15647,6 +18452,12 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
         fi;;
       esac
     done` || { (exit 1); exit 1; }
+
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
   sed "$ac_vpsub
@@ -16257,6 +19068,483 @@ echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
     echo '# dummy' > "$dirpart/$file"
   done
 done
+ ;;
+    $ac_stdint_h )
+{ echo "$as_me:$LINENO: creating $ac_stdint_h : $_ac_stdint_h" >&5
+echo "$as_me: creating $ac_stdint_h : $_ac_stdint_h" >&6;}
+ac_stdint=$tmp/_stdint.h
+
+echo "#ifndef" $_ac_stdint_h >$ac_stdint
+echo "#define" $_ac_stdint_h "1" >>$ac_stdint
+echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint
+echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint
+echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint
+if test "_$ac_cv_header_stdint_t" != "_" ; then
+echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint
+echo "#include <stdint.h>" >>$ac_stdint
+echo "#endif" >>$ac_stdint
+echo "#endif" >>$ac_stdint
+else
+
+cat >>$ac_stdint <<STDINT_EOF
+
+/* ................... shortcircuit part ........................... */
+
+#if defined HAVE_STDINT_H || defined _STDINT_HAVE_STDINT_H
+#include <stdint.h>
+#else
+#include <stddef.h>
+
+/* .................... configured part ............................ */
+
+STDINT_EOF
+
+echo "/* whether we have a C99 compatible stdint header file */" >>$ac_stdint
+if test "_$ac_cv_header_stdint_x" != "_" ; then
+  ac_header="$ac_cv_header_stdint_x"
+  echo "#define _STDINT_HEADER_INTPTR" '"'"$ac_header"'"' >>$ac_stdint
+else
+  echo "/* #undef _STDINT_HEADER_INTPTR */" >>$ac_stdint
+fi
+
+echo "/* whether we have a C96 compatible inttypes header file */" >>$ac_stdint
+if  test "_$ac_cv_header_stdint_o" != "_" ; then
+  ac_header="$ac_cv_header_stdint_o"
+  echo "#define _STDINT_HEADER_UINT32" '"'"$ac_header"'"' >>$ac_stdint
+else
+  echo "/* #undef _STDINT_HEADER_UINT32 */" >>$ac_stdint
+fi
+
+echo "/* whether we have a BSD compatible inet types header */" >>$ac_stdint
+if  test "_$ac_cv_header_stdint_u" != "_" ; then
+  ac_header="$ac_cv_header_stdint_u"
+  echo "#define _STDINT_HEADER_U_INT32" '"'"$ac_header"'"' >>$ac_stdint
+else
+  echo "/* #undef _STDINT_HEADER_U_INT32 */" >>$ac_stdint
+fi
+
+echo "" >>$ac_stdint
+
+if test "_$ac_header" != "_" ; then if test "$ac_header" != "stddef.h" ; then
+  echo "#include <$ac_header>" >>$ac_stdint
+  echo "" >>$ac_stdint
+fi fi
+
+echo "/* which 64bit typedef has been found */" >>$ac_stdint
+if test "$ac_cv_type_uint64_t" = "yes" ; then
+echo "#define   _STDINT_HAVE_UINT64_T" "1"  >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_UINT64_T */" >>$ac_stdint
+fi
+if test "$ac_cv_type_u_int64_t" = "yes" ; then
+echo "#define   _STDINT_HAVE_U_INT64_T" "1"  >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_U_INT64_T */" >>$ac_stdint
+fi
+echo "" >>$ac_stdint
+
+echo "/* which type model has been detected */" >>$ac_stdint
+if test "_$ac_cv_char_data_model" != "_" ; then
+echo "#define   _STDINT_CHAR_MODEL" "$ac_cv_char_data_model" >>$ac_stdint
+echo "#define   _STDINT_LONG_MODEL" "$ac_cv_long_data_model" >>$ac_stdint
+else
+echo "/* #undef _STDINT_CHAR_MODEL // skipped */" >>$ac_stdint
+echo "/* #undef _STDINT_LONG_MODEL // skipped */" >>$ac_stdint
+fi
+echo "" >>$ac_stdint
+
+echo "/* whether int_least types were detected */" >>$ac_stdint
+if test "$ac_cv_type_int_least32_t" = "yes"; then
+echo "#define   _STDINT_HAVE_INT_LEAST32_T" "1"  >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_INT_LEAST32_T */" >>$ac_stdint
+fi
+echo "/* whether int_fast types were detected */" >>$ac_stdint
+if test "$ac_cv_type_int_fast32_t" = "yes"; then
+echo "#define   _STDINT_HAVE_INT_FAST32_T" "1" >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_INT_FAST32_T */" >>$ac_stdint
+fi
+echo "/* whether intmax_t type was detected */" >>$ac_stdint
+if test "$ac_cv_type_intmax_t" = "yes"; then
+echo "#define   _STDINT_HAVE_INTMAX_T" "1" >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_INTMAX_T */" >>$ac_stdint
+fi
+echo "" >>$ac_stdint
+
+  cat >>$ac_stdint <<STDINT_EOF
+/* .................... detections part ............................ */
+
+/* whether we need to define bitspecific types from compiler base types */
+#ifndef _STDINT_HEADER_INTPTR
+#ifndef _STDINT_HEADER_UINT32
+#ifndef _STDINT_HEADER_U_INT32
+#define _STDINT_NEED_INT_MODEL_T
+#else
+#define _STDINT_HAVE_U_INT_TYPES
+#endif
+#endif
+#endif
+
+#ifdef _STDINT_HAVE_U_INT_TYPES
+#undef _STDINT_NEED_INT_MODEL_T
+#endif
+
+#ifdef  _STDINT_CHAR_MODEL
+#if     _STDINT_CHAR_MODEL+0 == 122 || _STDINT_CHAR_MODEL+0 == 124
+#ifndef _STDINT_BYTE_MODEL
+#define _STDINT_BYTE_MODEL 12
+#endif
+#endif
+#endif
+
+#ifndef _STDINT_HAVE_INT_LEAST32_T
+#define _STDINT_NEED_INT_LEAST_T
+#endif
+
+#ifndef _STDINT_HAVE_INT_FAST32_T
+#define _STDINT_NEED_INT_FAST_T
+#endif
+
+#ifndef _STDINT_HEADER_INTPTR
+#define _STDINT_NEED_INTPTR_T
+#ifndef _STDINT_HAVE_INTMAX_T
+#define _STDINT_NEED_INTMAX_T
+#endif
+#endif
+
+
+/* .................... definition part ............................ */
+
+/* some system headers have good uint64_t */
+#ifndef _HAVE_UINT64_T
+#if     defined _STDINT_HAVE_UINT64_T  || defined HAVE_UINT64_T
+#define _HAVE_UINT64_T
+#elif   defined _STDINT_HAVE_U_INT64_T || defined HAVE_U_INT64_T
+#define _HAVE_UINT64_T
+typedef u_int64_t uint64_t;
+#endif
+#endif
+
+#ifndef _HAVE_UINT64_T
+/* .. here are some common heuristics using compiler runtime specifics */
+#if defined __STDC_VERSION__ && defined __STDC_VERSION__ >= 199901L
+#define _HAVE_UINT64_T
+#define _HAVE_LONGLONG_UINT64_T
+typedef long long int64_t;
+typedef unsigned long long uint64_t;
+
+#elif !defined __STRICT_ANSI__
+#if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__
+#define _HAVE_UINT64_T
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+
+#elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__
+/* note: all ELF-systems seem to have loff-support which needs 64-bit */
+#if !defined _NO_LONGLONG
+#define _HAVE_UINT64_T
+#define _HAVE_LONGLONG_UINT64_T
+typedef long long int64_t;
+typedef unsigned long long uint64_t;
+#endif
+
+#elif defined __alpha || (defined __mips && defined _ABIN32)
+#if !defined _NO_LONGLONG
+typedef long int64_t;
+typedef unsigned long uint64_t;
+#endif
+  /* compiler/cpu type to define int64_t */
+#endif
+#endif
+#endif
+
+#if defined _STDINT_HAVE_U_INT_TYPES
+/* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */
+typedef u_int8_t uint8_t;
+typedef u_int16_t uint16_t;
+typedef u_int32_t uint32_t;
+
+/* glibc compatibility */
+#ifndef __int8_t_defined
+#define __int8_t_defined
+#endif
+#endif
+
+#ifdef _STDINT_NEED_INT_MODEL_T
+/* we must guess all the basic types. Apart from byte-adressable system, */
+/* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */
+/* (btw, those nibble-addressable systems are way off, or so we assume) */
+
+
+#if defined _STDINT_BYTE_MODEL
+#if _STDINT_LONG_MODEL+0 == 242
+/* 2:4:2 =  IP16 = a normal 16-bit system                */
+typedef unsigned char   uint8_t;
+typedef unsigned short  uint16_t;
+typedef unsigned long   uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef          char    int8_t;
+typedef          short   int16_t;
+typedef          long    int32_t;
+#endif
+#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444
+/* 2:4:4 =  LP32 = a 32-bit system derived from a 16-bit */
+/* 4:4:4 = ILP32 = a normal 32-bit system                */
+typedef unsigned char   uint8_t;
+typedef unsigned short  uint16_t;
+typedef unsigned int    uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef          char    int8_t;
+typedef          short   int16_t;
+typedef          int     int32_t;
+#endif
+#elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488
+/* 4:8:4 =  IP32 = a 32-bit system prepared for 64-bit    */
+/* 4:8:8 =  LP64 = a normal 64-bit system                 */
+typedef unsigned char   uint8_t;
+typedef unsigned short  uint16_t;
+typedef unsigned int    uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef          char    int8_t;
+typedef          short   int16_t;
+typedef          int     int32_t;
+#endif
+/* this system has a "long" of 64bit */
+#ifndef _HAVE_UINT64_T
+#define _HAVE_UINT64_T
+typedef unsigned long   uint64_t;
+typedef          long    int64_t;
+#endif
+#elif _STDINT_LONG_MODEL+0 == 448
+/*      LLP64   a 64-bit system derived from a 32-bit system */
+typedef unsigned char   uint8_t;
+typedef unsigned short  uint16_t;
+typedef unsigned int    uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef          char    int8_t;
+typedef          short   int16_t;
+typedef          int     int32_t;
+#endif
+/* assuming the system has a "long long" */
+#ifndef _HAVE_UINT64_T
+#define _HAVE_UINT64_T
+#define _HAVE_LONGLONG_UINT64_T
+typedef unsigned long long uint64_t;
+typedef          long long  int64_t;
+#endif
+#else
+#define _STDINT_NO_INT32_T
+#endif
+#else
+#define _STDINT_NO_INT8_T
+#define _STDINT_NO_INT32_T
+#endif
+#endif
+
+/*
+ * quote from SunOS-5.8 sys/inttypes.h:
+ * Use at your own risk.  As of February 1996, the committee is squarely
+ * behind the fixed sized types; the "least" and "fast" types are still being
+ * discussed.  The probability that the "fast" types may be removed before
+ * the standard is finalized is high enough that they are not currently
+ * implemented.
+ */
+
+#if defined _STDINT_NEED_INT_LEAST_T
+typedef  int8_t    int_least8_t;
+typedef  int16_t   int_least16_t;
+typedef  int32_t   int_least32_t;
+#ifdef _HAVE_UINT64_T
+typedef  int64_t   int_least64_t;
+#endif
+
+typedef uint8_t   uint_least8_t;
+typedef uint16_t  uint_least16_t;
+typedef uint32_t  uint_least32_t;
+#ifdef _HAVE_UINT64_T
+typedef uint64_t  uint_least64_t;
+#endif
+  /* least types */
+#endif
+
+#if defined _STDINT_NEED_INT_FAST_T
+typedef  int8_t    int_fast8_t;
+typedef  int       int_fast16_t;
+typedef  int32_t   int_fast32_t;
+#ifdef _HAVE_UINT64_T
+typedef  int64_t   int_fast64_t;
+#endif
+
+typedef uint8_t   uint_fast8_t;
+typedef unsigned  uint_fast16_t;
+typedef uint32_t  uint_fast32_t;
+#ifdef _HAVE_UINT64_T
+typedef uint64_t  uint_fast64_t;
+#endif
+  /* fast types */
+#endif
+
+#ifdef _STDINT_NEED_INTMAX_T
+#ifdef _HAVE_UINT64_T
+typedef  int64_t       intmax_t;
+typedef uint64_t      uintmax_t;
+#else
+typedef          long  intmax_t;
+typedef unsigned long uintmax_t;
+#endif
+#endif
+
+#ifdef _STDINT_NEED_INTPTR_T
+#ifndef __intptr_t_defined
+#define __intptr_t_defined
+/* we encourage using "long" to store pointer values, never use "int" ! */
+#if   _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484
+typedef  unsigned int   uintptr_t;
+typedef           int    intptr_t;
+#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444
+typedef  unsigned long  uintptr_t;
+typedef           long   intptr_t;
+#elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T
+typedef        uint64_t uintptr_t;
+typedef         int64_t  intptr_t;
+#else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */
+typedef  unsigned long  uintptr_t;
+typedef           long   intptr_t;
+#endif
+#endif
+#endif
+
+/* The ISO C99 standard specifies that in C++ implementations these
+   should only be defined if explicitly requested.  */
+#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
+#ifndef UINT32_C
+
+/* Signed.  */
+# define INT8_C(c)      c
+# define INT16_C(c)     c
+# define INT32_C(c)     c
+# ifdef _HAVE_LONGLONG_UINT64_T
+#  define INT64_C(c)    c ## L
+# else
+#  define INT64_C(c)    c ## LL
+# endif
+
+/* Unsigned.  */
+# define UINT8_C(c)     c ## U
+# define UINT16_C(c)    c ## U
+# define UINT32_C(c)    c ## U
+# ifdef _HAVE_LONGLONG_UINT64_T
+#  define UINT64_C(c)   c ## UL
+# else
+#  define UINT64_C(c)   c ## ULL
+# endif
+
+/* Maximal type.  */
+# ifdef _HAVE_LONGLONG_UINT64_T
+#  define INTMAX_C(c)   c ## L
+#  define UINTMAX_C(c)  c ## UL
+# else
+#  define INTMAX_C(c)   c ## LL
+#  define UINTMAX_C(c)  c ## ULL
+# endif
+
+  /* literalnumbers */
+#endif
+#endif
+
+/* These limits are merily those of a two complement byte-oriented system */
+
+/* Minimum of signed integral types.  */
+# define INT8_MIN               (-128)
+# define INT16_MIN              (-32767-1)
+# define INT32_MIN              (-2147483647-1)
+# define INT64_MIN              (-__INT64_C(9223372036854775807)-1)
+/* Maximum of signed integral types.  */
+# define INT8_MAX               (127)
+# define INT16_MAX              (32767)
+# define INT32_MAX              (2147483647)
+# define INT64_MAX              (__INT64_C(9223372036854775807))
+
+/* Maximum of unsigned integral types.  */
+# define UINT8_MAX              (255)
+# define UINT16_MAX             (65535)
+# define UINT32_MAX             (4294967295U)
+# define UINT64_MAX             (__UINT64_C(18446744073709551615))
+
+/* Minimum of signed integral types having a minimum size.  */
+# define INT_LEAST8_MIN         INT8_MIN
+# define INT_LEAST16_MIN        INT16_MIN
+# define INT_LEAST32_MIN        INT32_MIN
+# define INT_LEAST64_MIN        INT64_MIN
+/* Maximum of signed integral types having a minimum size.  */
+# define INT_LEAST8_MAX         INT8_MAX
+# define INT_LEAST16_MAX        INT16_MAX
+# define INT_LEAST32_MAX        INT32_MAX
+# define INT_LEAST64_MAX        INT64_MAX
+
+/* Maximum of unsigned integral types having a minimum size.  */
+# define UINT_LEAST8_MAX        UINT8_MAX
+# define UINT_LEAST16_MAX       UINT16_MAX
+# define UINT_LEAST32_MAX       UINT32_MAX
+# define UINT_LEAST64_MAX       UINT64_MAX
+
+  /* shortcircuit*/
+#endif
+  /* once */
+#endif
+#endif
+STDINT_EOF
+fi
+    if cmp -s $ac_stdint_h $ac_stdint 2>/dev/null; then
+      { echo "$as_me:$LINENO: $ac_stdint_h is unchanged" >&5
+echo "$as_me: $ac_stdint_h is unchanged" >&6;}
+    else
+      ac_dir=`(dirname "$ac_stdint_h") 2>/dev/null ||
+$as_expr X"$ac_stdint_h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$ac_stdint_h" : 'X\(//\)[^/]' \| \
+        X"$ac_stdint_h" : 'X\(//\)$' \| \
+        X"$ac_stdint_h" : 'X\(/\)' \| \
+        .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_stdint_h" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+      { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| \
+        .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+      rm -f $ac_stdint_h
+      mv $ac_stdint $ac_stdint_h
+    fi
  ;;
     gen-classlist ) chmod 755 lib/gen-classlist.sh ;;
     copy-vmresources ) chmod 755 lib/copy-vmresources.sh ;;
index c7eacca087e92b4fa3e6c49b2e330e986fbe41f1..d9e442c15e4aacea0f144de0e40b721b40ebc714 100644 (file)
@@ -6,7 +6,7 @@ dnl -----------------------------------------------------------
 dnl define([AC_CACHE_LOAD], )dnl
 dnl define([AC_CACHE_SAVE], )dnl
 
-AC_INIT([GNU Classpath],[0.20-pre],[classpath@gnu.org],[classpath])
+AC_INIT([GNU Classpath],[0.20],[classpath@gnu.org],[classpath])
 AC_CONFIG_SRCDIR(java/lang/System.java)
 
 AC_CANONICAL_TARGET
@@ -274,7 +274,8 @@ if test "x${COMPILE_JNI}" = xyes; then
                  localtime_r \
                  strerror_r \
                   fcntl \
-                 mmap munmap mincore msync madvise getpagesize sysconf])
+                 mmap munmap mincore msync madvise getpagesize sysconf \
+                 isnan])
 
   AC_HEADER_TIME
   AC_STRUCT_TM
@@ -370,7 +371,7 @@ if test "x${COMPILE_JNI}" = xyes; then
 
   dnl Check for AWT related Qt4
   if test "x${COMPILE_QT_PEER}" = xyes; then
-    PKG_CHECK_MODULES(QT, QtGui >= 4.0.1, HAVE_QT4="yes", HAVE_QT4="no")
+    PKG_CHECK_MODULES(QT, QtCore QtGui >= 4.1.0, HAVE_QT4="yes", HAVE_QT4="no")
     if test "x$HAVE_QT4" = "xyes"; then
       dnl Check needed because in some cases the QtGui includedir
       dnl doesn't contain the subsystem dir.
@@ -560,6 +561,8 @@ AC_ARG_ENABLE([portable-native-sync],
               esac],
               [])
 
+AX_CREATE_STDINT_H([include/config-int.h])
+
 dnl -----------------------------------------------------------
 dnl output files
 dnl -----------------------------------------------------------
index 34bdbb19c164375419ea88db96e76f4ea96d1b19..77e60a9683ecb8e01a19e7a4e6af141cc3c3124d 100644 (file)
@@ -41,10 +41,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in texinfo.tex
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -149,6 +150,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index 12fd052781540b3b8ce486cc71c322bb0e297796..55a1df52ff1f96715fd146a16925b29e2f306134 100644 (file)
@@ -17,7 +17,7 @@ PACKAGES
 . gnu.xml.xpath.* ... JAXP XPath implementation
 . gnu.xml.transform.* ... JAXP XSL transformer implementation
 . gnu.xml.pipeline.* ... SAX2 event pipeline support
-. gnu.xml.stream.* ... StAX pull parser implementation
+. gnu.xml.stream.* ... StAX pull parser and SAX-over-StAX driver
 . gnu.xml.util.* ... various XML utility classes
 . gnu.xml.libxmlj.dom.* ... libxmlj DOM Level 3 Core and XPath
 . gnu.xml.libxmlj.sax.* ... libxmlj SAX parser
@@ -139,6 +139,9 @@ To enable the various GNU JAXP factories, set the following system properties
    -Djavax.xml.stream.XMLInputFactory=gnu.xml.stream.XMLInputFactoryImpl
    -Djavax.xml.stream.XMLOutputFactory=gnu.xml.stream.XMLOutputFactoryImpl
 
+  GNU SAX-over-StAX:
+   -Djavax.xml.parsers.SAXParserFactory=gnu.xml.stream.SAXParserFactory
+
   libxmlj SAX:
    -Djavax.xml.parsers.SAXParserFactory=gnu.xml.libxmlj.sax.GnomeSAXParserFactory
 
index dafdd41f5b516e545d47edc33f3c14ac0f07b3b3..e2e0a1a115ea7e5dcc08308102640f6e63f068d9 100644 (file)
@@ -42,10 +42,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -142,6 +143,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index e97116fd5fa02ad6c7b4622c2ec503e0b39db3d7..34b1099fdc482996afc5dacdc3d5d79805a0bb75 100644 (file)
@@ -83,6 +83,11 @@ Programming Standards
 
 Working on the code, Working with others
 
+* Branches::                    
+* Writing ChangeLogs::          
+
+Working with branches
+
 * Writing ChangeLogs::          
 
 Programming Goals
@@ -493,7 +498,7 @@ The following lists how code is formatted (and some other code
 conventions):
 
 
-@itemize
+@itemize @bullet
 
 @item
 Java source files in GNU Classpath are encoded using UTF-8.  However,
@@ -689,7 +694,7 @@ fail to compile the offending source code.
 
 Some things are the same as in the normal GNU Coding Standards:
 
-@itemize
+@itemize @bullet
 
 @item
 Unnecessary braces can be removed, one line after an if, for, while as
@@ -806,11 +811,71 @@ But don't just ignore the rules!  Other hackers depend on them being
 followed to be the most productive they can be (given the above
 constraints).
 
+@menu
+* Branches::                    
+* Writing ChangeLogs::          
+@end menu
+
+@node Branches, Writing ChangeLogs, Hacking Code, Hacking Code
+@comment node-name, next, previous, up
+@section Working with branches
+
+Sometimes it is necessary to create branch of the source for doing new
+work that is disruptive to the other hackers, or that needs new
+language or libraries not yet (easily) available.
+
+After discussing the need for a branch on the main mailinglist with
+the other hackers explaining the need of a branch and suggestion of
+the particular branch rules (what will be done on the branch, who will
+work on it, will there be different commit guidelines then for the
+mainline trunk and when is the branch estimated to be finished and
+merged back into the trunk) every GNU Classpath hacker with commit
+access should feel free to create a branch. There are however a couple
+of rules that every branch should follow:
+
+@itemize @bullet
+
+@item All branches ought to be documented in the developer wiki at
+@uref{http://developer.classpath.org/mediation/ClasspathBranches}, so
+we can know which are live, who owns them, and when they die.
+
+@item Some rules can be changed on a branch.  In particular the branch
+maintainer can change the review requirements, and the requirement of
+keeping things building, testing, etc, can also be lifted.  (These
+should be documented along with the branch name and owner if they
+differ from the trunk.)
+
+@item Requirements for patch email to classpath-patches and for paperwork
+@strong{cannot} be lifted. See @ref{Requirements}.
+
+@item A branch should not be seen as ``private'' or
+``may be completely broken''. It should be as much as possible
+something that you work on with a team (and if there is no team - yet
+- then there is nothing as bad as having a completely broken build to
+get others to help out). There can of course be occasional breakage, but
+it should be planned and explained. And you can certainly have a rule
+like ``please ask me before committing to this branch''.
+
+@item Merges from the trunk to a branch are at the discretion of the
+branch maintainer.
+
+@item A merge from a branch to the trunk is treated like any other patch.
+In particular, it has to go through review, it must satisfy all the
+trunk requirements (build, regression test, documentation).
+
+@item There may be additional timing requirements on merging a branch to
+the trunk depending on the release schedule, etc.  For instance we may
+not want to do a branch merge just before a release.
+
+@end itemize
+
+If any of these rules are unclear please discuss on the list first.
+
 @menu
 * Writing ChangeLogs::          
 @end menu
 
-@node Writing ChangeLogs,  , Hacking Code, Hacking Code
+@node Writing ChangeLogs,  , Branches, Hacking Code
 @comment node-name, next, previous, up
 @section Documenting what changed when with ChangeLog entries
 
@@ -828,7 +893,7 @@ A good ChangeLog entry guideline can be found in the Guile Manual at
 Here are some example to explain what should or shouldn't be in a
 ChangeLog entry (and the corresponding commit message):
 
-@itemize
+@itemize @bullet
 
 @item
 The first line of a ChangeLog entry should be:
index 81e9920d6a8f1e0073a60c8c159184ef36e4a4d9..fa5f747ffeae441e9d175f3e90f6d13754e18012 100644 (file)
@@ -226,6 +226,7 @@ become operable.
 * java.lang.VMRuntime::
 * java.lang.VMString::
 * java.lang.VMThread::
+* java.lang.VMInstrumentationImpl::
 @end menu
 
 @node java.lang.VMClass, java.lang.VMObject ,java.lang,java.lang
@@ -607,7 +608,7 @@ A new mapping is created for each new string being @code{intern}ed.
 A VM may implement this differently by implementing this method,
 which is @code{static} and the only one in @code{VMString}.
 
-@node java.lang.VMThread,, java.lang.VMString, java.lang
+@node java.lang.VMThread,java.lang.VMInstrumentationImpl, java.lang.VMString, java.lang
 @subsection @code{java.lang.VMThread}
 
 @code{VMThread} provides the link between Java's threads and the platform
@@ -683,6 +684,45 @@ having returned true, and is thus deprecated as a result.
 @end itemize
 @end itemize
 
+@node java.lang.VMInstrumentationImpl,, java.lang.VMThread, java.lang
+@subsection @code{java.lang.VMInstrumentationImpl}
+
+The @code{java.lang.VMInstrumentationImpl} and
+@code{java.lang.InstrumentationImpl} provides an implementation of the
+@code{java.lang.instrument.Instrument} interface. This interface is for java
+1.5 and is only in the generics branch.
+A @code{InstrumentationImpl} object should be given to any agent
+given in the command line (see the @code{java.lang.instrument} package
+documentation). A VM has to implement the static native methods of the
+@code{VMInstrumentationImpl} class.
+
+@itemize @bullet
+@item @code{isRedefineClassesSupported()} -- Returns true if the JVM supports
+class redefinition.
+@item @code{redefineClasses()} -- Gives a set of classes with new bytecodes.
+The VM must redefine the classes by reading the new bytecodes.
+@item @code{getAllLoadedClass()} -- Returns an array of all loaded classes.
+@item @code{getInitiatedClass()} -- Returns an array of all classes loaded
+by a specific class loader.
+@item @code{getObjectSize()} -- Gives the size of an object.
+@end itemize
+
+When agents are defined, the VM has to call transformers of the
+@code{InstrumentImpl} object each time a class is loaded, eg a call to
+@code{VMClassLoader.defineClass}. The @code{InstrumentationImpl} class defines
+a method that has to be called before reading a class file in the VM.
+
+@itemize @bullet
+@item @code{callTransformers} -- Calls each transformer registered to
+the @code{InstrumentationImpl} object and returns a new bytecode file.
+@end itemize
+
+No default implementation is provided in gnu classpath for the
+@code{VMInstrumentationImpl} methods. A default implementation will perhaps
+be written, but it might break the @code{ClassLoader/VMClassLoader} interface
+for calling the @code{InstrumentationImpl.callTransformers} when a class byte
+code is defined with @code{ClassLoader.defineClass}.
+
 @node gnu.classpath, java.util, java.lang, Classpath Hooks
 @section @code{gnu.classpath}
 
index 873d4fae1d597b8e742ddcab4494d3cbc6b47c51..7d9514bdf9d60dca51bf0a197748fb5c7aa7022a 100644 (file)
@@ -9,11 +9,7 @@
 <boxitem>
 <strong>Upcoming Events:</strong><br>
 <ul>
-<li>[1-5 Aug 2005] <a href="http://conferences.oreillynet.com/os2005/">OSCON</a>, Portland, Oregon - USA
-<ul>
-<li><a href="http://conferences.oreillynet.com/cs/os2005/view/e_sess/6730">The State of Free JVMs</a>
-Tom Tromey</li>
-</ul>
+<li>[25+26 Feb. 2006] FOSDEM'06 in Brussels, Belgium. [<createlink name="GNU Classpath and friends" url="events/fosdem06.html">]</li>
 </ul>
 </boxitem>
 
@@ -21,6 +17,13 @@ Tom Tromey</li>
 <strong>Past Events:</strong><br>
 <ul>
 
+<li>
+[1-5 Aug 2005] <a href="http://conferences.oreillynet.com/os2005/">OSCON</a>, Portland, Oregon - USA
+<ul>
+<li><a href="http://conferences.oreillynet.com/cs/os2005/view/e_sess/6730">The State of Free JVMs</a>
+Tom Tromey</li>
+</ul>
+
 <li>
 [29-31 May 2005] <a href="http://2005.guadec.org/">Guadec</a>, Stuttgart - Germany
 <ul>
diff --git a/libjava/classpath/doc/www.gnu.org/events/fosdem06.wml b/libjava/classpath/doc/www.gnu.org/events/fosdem06.wml
new file mode 100644 (file)
index 0000000..2623ef0
--- /dev/null
@@ -0,0 +1,191 @@
+#!wml --include=..
+
+#include "include/layout.wml"
+
+<set-var last-modified-author="mjw">
+<subject "GNU Classpath and friends @ Fosdem 2006">
+
+<box>
+<boxitem>
+<h2>GNU Classpath and friends meeting during Fosdem 2006</h2>
+
+<i>Fosdem, Saturday/Sunday 25/26 February 2006, Brussels, Belgium</i>
+<p>
+The various free software library, runtimes, compiler and tool
+projects around GNU Classpath will meet in Brussel to discuss what has
+happened in the last year in the Free Software community and what the
+next year will bring us during Fosdem.
+<p>
+The 6th edition of FOSDEM (Free and Opensource Software Developers'
+European Meeting) will take place on February 25+26 2006 in Brussels
+(Belgium), at the Solbosch Campus of the ULB (Free University of
+Brussels). FOSDEM is a free and non-commercial event for the community
+and organized by the community.
+See <a href="http://www.fosdem.org/">http://www.fosdem.org/</a>.
+</boxitem>
+
+<boxitem>
+  <h3>Saturday from 13:00 to 17:00 - "End-User talks"</h3>
+
+  <p>
+    Presentations that show what cool stuff can be done with the Free
+    Stack right now.
+  </p>
+
+    <p>
+    <b>Putting the 'Free' into JFreeChart</b>
+    <i>Dave Gilbert, JFreeChart Project Leader</i>
+      <p>
+       A review of the efforts to make JFreeChart work with GNU
+       Classpath-based runtimes, including a brief history, a demonstration
+       of the current state (using the java bindings for Cairo), and an
+       overview of the work that remains to be done.
+      </p>
+    </p>
+
+    <p>
+    <b>Using Eclipse for GNU Classpath development</b>
+    <i>Tom Tromey</i>
+      <p>
+       Learn how to setup a fully working development environment based
+       on GNU Classpath in Eclipse that can be used to bootstrap the full
+       free toolchain (and can be used to run Eclipse itself) in just 10
+       minutes.
+      </p>
+    </p>
+
+    <p>
+    <b>Eclipse RCP and GCJ/GIJ</b>
+    <i>Wayne Beaton</i>
+      <p>
+       Eclipse Rich Client Platform (RCP) is a runtime platform for
+       delivering your Java applications on multiple platforms. RCP is far
+       more than just a windowing toolkit; it is rich client "middleware"
+       that provides a comprehensive framework for building and deploying
+       applications that are modular, extensible, and updatable. The kinds
+       of applications you can build with Eclipse RCP are limited only by
+       your imagination. During this talk, we will discuss how the Eclipse
+       RCP can be used in conjunction with the Eclipse Eco-system and
+       GCJ/GIJ to build high quality applications.
+      </p>
+    </p>
+
+<p>
+</boxitem>
+
+<boxitem>
+  <h3>Sunday from 09:00 to 13:00 - "Developer talks"</h3>
+
+  <p>
+    Presentations of (core) libraries and runtimes that are in progress,
+    made a lot of progress in the last year and are in active development.
+  </p>
+
+    <p>
+    <b>Free Swing, past, present and future</b>
+    <i>Roman Kennke</i>
+      <p>
+       An overview of that state of Free Swing one year ago, what has been
+       done in the meantime, what still must be done and which applications
+       work now.
+      </p>
+    </p>
+
+    <p>
+    <b>The Free CORBA comes</b>
+    <i>Dr Audrius Meskauskas</i>
+      <p>
+    If the Free world does not want to step back in the battle, we need
+    a complete set of the Free tools for advanced communication over
+    the network. For our CORBA implementation we needed:
+    <p>
+    <ol>
+    <li> Free. No classes with restricted license.
+    <li> Fully workable, interoperable and pass tests, recognized by
+       the CORBA user community as serious (we needed to find a well
+       known Free testing suite).
+    <li> Properly commented, being ready for the long life in the Free
+       world.
+    <li> No pressure to use the outdated approaches.
+       CORBA 3.0.3 and jdk 1.5.
+    </ol>
+    <p>
+    To reach these goals, we have chosen for implementing a clean room
+    implementation, using the published standard specifications only.
+    During the recent year of the GNU Classpath development, this goal
+    is in large degree achieved. The important directions of future
+    development could be providing features that are outside the scope
+    of the both CORBA standard and Sun API, but included in the near all
+    proprietary implementations (SSH, HTTP and other bridges, get rid of
+    rmic code generator for RMI/IIOP, fault tolerant behavior, reduced
+    the footprint and others).
+      </p>
+    </p>
+
+    <p>
+      <b>The JamVM runtime</b>
+      <i>Robert Lougher</i>
+      <p>
+       An overview of the JamVM virtual machine, with comparisons to other
+       GNU Classpath runtimes, and a section on the VM interface.
+      </p>
+    </p>
+
+    <p>
+    <b>Integrating Vmgen-based interpreters</b>
+    <i>Christian Thalinger</i>
+      <p>
+       Vmgen is a tool for writing efficient interpreters. The Cacao
+       runtime recently added a Vmgen based interpreter in addition to
+       the JIT engine.
+      </p>
+    </p>
+
+<p>
+<boxitem>
+
+<boxitem>
+  <h3>Sunday from 14:00 to 17:30 - "The Future"</h3>
+
+   <p>
+     Interactive technical hacker discussions on how to integrate
+     the projects more and move forward in the next year.
+   </p>
+
+    <p>
+    <b>State of the world, beyond japi</b>
+    <i>Mark Wielaard, GNU Classpath Maintainer</i>
+      <p>
+       After a short overview of the various free stacks, libraries,
+       compilers, tools and runtimes this session is mostly open discussion
+       about what work remains to be done and how to integrate the various
+       efforts better. Ideas for work items welcome.
+      </p>
+    </p>
+
+<p>
+</boxitem>
+
+<boxitem>
+<b>Additional Resources:</b>
+<ul>
+<li><createlink name="Free But Shackled - The Java Trap"
+       url="http://www.gnu.org/philosophy/java-trap.html">
+       (by Richard Stallman)
+</li>
+<li><createlink name="Escaping the Java Trap: A practical road map to the Free Software and Open Source alternatives"
+       url="http://developer.classpath.org/support/">
+</li>
+</ul>
+<p>
+</boxitem>
+
+<boxitem>
+<b>Official links:</b>
+<ul>
+<li><createlink name="FOSDEM Homepage"
+       url="http://www.fosdem.org/">
+</li>
+</ul>
+</boxitem>
+</box>
index dbfcfd2ced94139d95ac1a7742cbdbf225a4dc06..97c14244e656c64a2d41c33db39aa3276939f342 100644 (file)
@@ -1,3 +1,8 @@
+<newsitem date="25/26 Feb 2006">
+<createlink name="GNU Classpath and friends meeting during Fosdem 2006"
+            url="events/fosdem06.html">
+</newsitem>
+
 <newsitem date="02 Nov 2005">
 <createlink name="GNU Classpath 0.19"
             url="announce/20051102.html">
index 341fc5e8e23eccffa9e9a7755fe3bb45fe92cb1c..db6cac0d6862d9a3b71708e548657d845d33625a 100644 (file)
@@ -53,25 +53,25 @@ install-data-local:
        for file in $(ALL_EXAMPLE_FILES); do \
          f=`echo $$file | cut -c$$srcdir_cnt-`; \
          fdir=`dirname $$f`; \
-         if test ! -d $(DESTDIR)/$(pkgdatadir)/examples/$$fdir; then \
-           echo "$(mkinstalldirs) $(DESTDIR)/$(pkgdatadir)/examples/$$fdir"; \
-           $(mkinstalldirs) $(DESTDIR)/$(pkgdatadir)/examples/$$fdir; \
+         if test ! -d $(DESTDIR)$(pkgdatadir)/examples/$$fdir; then \
+           echo "$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/examples/$$fdir"; \
+           $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/examples/$$fdir; \
          fi; \
-         echo "$(INSTALL_DATA) $$file $(DESTDIR)/$(pkgdatadir)/examples/$$f"; \
-         $(INSTALL_DATA) $$file $(DESTDIR)/$(pkgdatadir)/examples/$$f; \
+         echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdatadir)/examples/$$f"; \
+         $(INSTALL_DATA) $$file $(DESTDIR)$(pkgdatadir)/examples/$$f; \
        done
-       echo "$(INSTALL_DATA) Makefile.jawt $(DESTDIR)/$(pkgdatadir)/examples/"
-       $(INSTALL_DATA) Makefile.jawt $(DESTDIR)/$(pkgdatadir)/examples/
+       echo "$(INSTALL_DATA) Makefile.jawt $(DESTDIR)$(pkgdatadir)/examples/"
+       $(INSTALL_DATA) Makefile.jawt $(DESTDIR)$(pkgdatadir)/examples/
 
 uninstall-local:
        srcdir_cnt=`echo $(srcdir) | wc -c`; \
        for file in $(ALL_EXAMPLE_FILES); do \
          f=`echo $$file | cut -c$$srcdir_cnt-`; \
-         echo "rm -f $(DESTDIR)/$(pkgdatadir)/examples/$$f"; \
-         rm -f $(DESTDIR)/$(pkgdatadir)/examples/$$f; \
+         echo "rm -f $(DESTDIR)$(pkgdatadir)/examples/$$f"; \
+         rm -f $(DESTDIR)$(pkgdatadir)/examples/$$f; \
        done
-       echo "rm -f $(DESTDIR)/$(pkgdatadir)/examples/Makefile.jawt"
-       rm -f $(DESTDIR)/$(pkgdatadir)/examples/Makefile.jawt
+       echo "rm -f $(DESTDIR)$(pkgdatadir)/examples/Makefile.jawt"
+       rm -f $(DESTDIR)$(pkgdatadir)/examples/Makefile.jawt
 
 # Make sure everything is included in the distribution.
 EXTRA_DIST = README Makefile.jawt.in
index 5ba479cf5e220d93ea3c44a603c56b7079abf424..f554fd7c2fc629a18aca041dafd68ea8b7ab5d3c 100644 (file)
@@ -43,10 +43,11 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -151,6 +152,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -491,25 +493,25 @@ install-data-local:
        for file in $(ALL_EXAMPLE_FILES); do \
          f=`echo $$file | cut -c$$srcdir_cnt-`; \
          fdir=`dirname $$f`; \
-         if test ! -d $(DESTDIR)/$(pkgdatadir)/examples/$$fdir; then \
-           echo "$(mkinstalldirs) $(DESTDIR)/$(pkgdatadir)/examples/$$fdir"; \
-           $(mkinstalldirs) $(DESTDIR)/$(pkgdatadir)/examples/$$fdir; \
+         if test ! -d $(DESTDIR)$(pkgdatadir)/examples/$$fdir; then \
+           echo "$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/examples/$$fdir"; \
+           $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/examples/$$fdir; \
          fi; \
-         echo "$(INSTALL_DATA) $$file $(DESTDIR)/$(pkgdatadir)/examples/$$f"; \
-         $(INSTALL_DATA) $$file $(DESTDIR)/$(pkgdatadir)/examples/$$f; \
+         echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdatadir)/examples/$$f"; \
+         $(INSTALL_DATA) $$file $(DESTDIR)$(pkgdatadir)/examples/$$f; \
        done
-       echo "$(INSTALL_DATA) Makefile.jawt $(DESTDIR)/$(pkgdatadir)/examples/"
-       $(INSTALL_DATA) Makefile.jawt $(DESTDIR)/$(pkgdatadir)/examples/
+       echo "$(INSTALL_DATA) Makefile.jawt $(DESTDIR)$(pkgdatadir)/examples/"
+       $(INSTALL_DATA) Makefile.jawt $(DESTDIR)$(pkgdatadir)/examples/
 
 uninstall-local:
        srcdir_cnt=`echo $(srcdir) | wc -c`; \
        for file in $(ALL_EXAMPLE_FILES); do \
          f=`echo $$file | cut -c$$srcdir_cnt-`; \
-         echo "rm -f $(DESTDIR)/$(pkgdatadir)/examples/$$f"; \
-         rm -f $(DESTDIR)/$(pkgdatadir)/examples/$$f; \
+         echo "rm -f $(DESTDIR)$(pkgdatadir)/examples/$$f"; \
+         rm -f $(DESTDIR)$(pkgdatadir)/examples/$$f; \
        done
-       echo "rm -f $(DESTDIR)/$(pkgdatadir)/examples/Makefile.jawt"
-       rm -f $(DESTDIR)/$(pkgdatadir)/examples/Makefile.jawt
+       echo "rm -f $(DESTDIR)$(pkgdatadir)/examples/Makefile.jawt"
+       rm -f $(DESTDIR)$(pkgdatadir)/examples/Makefile.jawt
 dist-hook:
        srcdir_cnt=`echo $(srcdir) | wc -c`; \
        for file in $(ALL_EXAMPLE_FILES); do \
index f0d2a3b0d485796ab77bdb82071e983cee10cf9f..d3cbe2fb0aabdff6ab9f728b5d8177b00d83bee9 100644 (file)
@@ -41,10 +41,11 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -149,6 +150,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index 15c949d22531efa39cc7c5cbec79264600e6a017..0793c56e1ab95646ffdb30c0d76cea5c05b986b7 100644 (file)
@@ -41,10 +41,11 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -140,6 +141,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index 6305a265c5d4d893d6f62404ba81a27143c6d8fc..2e589749ff016b79674839a65c569a0ae5868510 100644 (file)
@@ -41,10 +41,11 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -140,6 +141,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index 9faf0883dedf17ff7bac868219c1d87242e36f64..70e787af15137e41f93ea1b27c18c19eeabf1066 100644 (file)
@@ -40,6 +40,8 @@ package gnu.CORBA.Poa;
 
 import gnu.CORBA.ByteArrayComparator;
 
+import org.omg.CORBA.portable.Delegate;
+import org.omg.CORBA.portable.ObjectImpl;
 import org.omg.PortableServer.Servant;
 
 import java.util.Iterator;
@@ -66,7 +68,7 @@ public class AOM
     /**
      * Create an initialised instance.
      */
-    Obj(org.omg.CORBA.Object _object, byte[] _key, Servant _servant, gnuPOA _poa)
+    Obj(gnuServantObject _object, byte[] _key, Servant _servant, gnuPOA _poa)
     {
       object = _object;
       key = _key;
@@ -77,7 +79,7 @@ public class AOM
     /**
      * The object.
      */
-    public final org.omg.CORBA.Object object;
+    public final gnuServantObject object;
 
     /**
      * The servant, serving the given object.
@@ -158,14 +160,13 @@ public class AOM
   Map objects = new TreeMap(new ByteArrayComparator());
 
   /**
-   * Get the record of the stored object. If the object is mapped
-   * several times under the different keys, one of the mappings
-   * is used.
-   *
+   * Get the record of the stored object. If the object is mapped several times
+   * under the different keys, one of the mappings is used.
+   * 
    * @param object the stored object
-   *
-   * @return the record about the stored object, null if
-   * this object is not stored here.
+   * 
+   * @return the record about the stored object, null if this object is not
+   * stored here.
    */
   public Obj findObject(org.omg.CORBA.Object stored_object)
   {
@@ -173,9 +174,33 @@ public class AOM
       return null;
 
     Map.Entry item;
-    Iterator iter = objects.entrySet().iterator();
+    Iterator iter;
     Obj ref;
 
+    if (stored_object instanceof ObjectImpl)
+      {
+        // If the delegate is available, search by delegate.
+        Delegate d = ((ObjectImpl) stored_object)._get_delegate();
+        Delegate d2;
+
+        if (d != null)
+          {
+            iter = objects.entrySet().iterator();
+            while (iter.hasNext())
+              {
+                item = (Map.Entry) iter.next();
+                ref = (Obj) item.getValue();
+                d2 = ref.object._get_delegate();
+
+                if (d == d2 || (d2 != null && d2.equals(d)))
+                  return ref;
+              }
+          }
+      }
+
+    // For other objects (or if not possible to get the delegate),
+    // search by .equals
+    iter = objects.entrySet().iterator();
     while (iter.hasNext())
       {
         item = (Map.Entry) iter.next();
@@ -187,12 +212,11 @@ public class AOM
   }
 
   /**
-   * Find the reference info for the given servant.
-   * If the servant is mapped to several objects, this
-   * returns the first found occurence.
-   *
+   * Find the reference info for the given servant. If the servant is mapped to
+   * several objects, this returns the first found occurence.
+   * 
    * @param servant a servant to find.
-   *
+   * 
    * @return the servant/object/POA binding or null if no such found.
    */
   public Obj findServant(Servant servant)
@@ -257,7 +281,7 @@ public class AOM
    *
    * @return the newly created object record.
    */
-  public Obj add(org.omg.CORBA.Object object, Servant servant, gnuPOA poa)
+  public Obj add(gnuServantObject object, Servant servant, gnuPOA poa)
   {
     return add(generateObjectKey(object), object, servant, poa);
   }
@@ -270,7 +294,7 @@ public class AOM
    * @param servant a servant, serving the given object.
    * @param poa the POA, where the object is connected.
    */
-  public Obj add(byte[] key, org.omg.CORBA.Object object, Servant servant,
+  public Obj add(byte[] key, gnuServantObject object, Servant servant,
                  gnuPOA poa
                 )
   {
index 6f2a019a3bbfee65a00853b41a6b0075155d6ef5..460a0a6029a071cca356159e2ae0e7ace466c523 100644 (file)
@@ -1052,12 +1052,12 @@ public class gnuPOA
 
   /**
    * Returns the servant that is serving this object.
-   *
-   * @return if the RETAIN policy applies and the object is in the Active
-   * Object Map, the method returns the servant, associated with this object.
+   * 
+   * @return if the RETAIN policy applies and the object is in the Active Object
+   * Map, the method returns the servant, associated with this object.
    * Otherwise, if the USE_DEFAULT_SERVANT policy applies, the method returns
    * the default servant (if one was set).
-   *
+   * 
    * @throws ObjectNotActive if none of the conditions above are satisfied.
    * @throws WrongAdapter if the object reference was not created with this POA.
    * @throws WrongPolicy. This method requires either RETAIN or
@@ -1065,14 +1065,26 @@ public class gnuPOA
    * apply to this POA.
    */
   public Servant reference_to_servant(org.omg.CORBA.Object the_Object)
-                               throws ObjectNotActive, WrongPolicy,
-                                      WrongAdapter
+    throws ObjectNotActive, WrongPolicy, WrongAdapter
   {
     if (applies(ServantRetentionPolicyValue.RETAIN))
       {
         AOM.Obj ref = aom.findObject(the_Object);
         if (ref == null)
-          throw new WrongAdapter();
+          {
+            String object;
+            if (the_Object == null)
+              object = "null passed"; 
+            else if (the_Object instanceof gnuServantObject)
+              {
+                gnuServantObject gs = (gnuServantObject) the_Object;
+                object = "Wrong owner POA " + gs.poa.the_name();
+              }
+            else
+              object = "Unknown " + the_Object.getClass().getName();
+
+            throw new WrongAdapter(object + " for '" + the_name() + "'");
+          }
         else if (ref.isDeactiveted() || ref.servant == null)
           {
             if (default_servant != null)
@@ -1092,32 +1104,30 @@ public class gnuPOA
   }
 
   /**
-  * Returns the id of the object, served by the given servant
-  * (assuming that the servant serves only one object).
-  * The id is found in one of the following ways.
-  * <ul>
-  * <li>If the POA has both the RETAIN and the UNIQUE_ID policy and
-  * the specified servant is active, the method return the Object Id associated
-  * with that servant.
-  * </li><li>
-  * If the POA has both the RETAIN and the IMPLICIT_ACTIVATION policy and
-  * either the POA has the MULTIPLE_ID policy or the specified servant is
-  * inactive, the method activates the servant using a POA-generated Object Id
-  * and the Interface Id associated with the servant, and returns that
-  * Object Id.
-  * </li>
-  * <li>If the POA has the USE_DEFAULT_SERVANT policy, the servant specified
-  * is the default servant, and the method is being invoked in the context of
-  * executing a request on the default servant, the method returns the
-  * ObjectId associated with the current invocation.
-  * </li>
-  * </ul>
-  * @throws ServantNotActive in all cases, not listed in the list above.
-  * @throws WrongPolicy The method requres USE_DEFAULT_SERVANT policy or
-  * a combination of the RETAIN policy and either the UNIQUE_ID or
-  * IMPLICIT_ACTIVATION policies and throws the WrongPolicy if these conditions
-  * are not satisfied.
-  */
+   * Returns the id of the object, served by the given servant (assuming that
+   * the servant serves only one object). The id is found in one of the
+   * following ways.
+   * <ul>
+   * <li>If the POA has both the RETAIN and the UNIQUE_ID policy and the
+   * specified servant is active, the method return the Object Id associated
+   * with that servant. </li>
+   * <li> If the POA has both the RETAIN and the IMPLICIT_ACTIVATION policy and
+   * either the POA has the MULTIPLE_ID policy or the specified servant is
+   * inactive, the method activates the servant using a POA-generated Object Id
+   * and the Interface Id associated with the servant, and returns that Object
+   * Id. </li>
+   * <li>If the POA has the USE_DEFAULT_SERVANT policy, the servant specified
+   * is the default servant, and the method is being invoked in the context of
+   * executing a request on the default servant, the method returns the ObjectId
+   * associated with the current invocation. </li>
+   * </ul>
+   * 
+   * @throws ServantNotActive in all cases, not listed in the list above.
+   * @throws WrongPolicy The method requres USE_DEFAULT_SERVANT policy or a
+   * combination of the RETAIN policy and either the UNIQUE_ID or
+   * IMPLICIT_ACTIVATION policies and throws the WrongPolicy if these conditions
+   * are not satisfied.
+   */
   public byte[] servant_to_id(Servant the_Servant)
                        throws ServantNotActive, WrongPolicy
   {
index bb8f60224ce9ddc5f20a27bab1ff317359042388..43a37de2435beb8fceb028c61124d06b89952019 100644 (file)
@@ -42,6 +42,7 @@ package gnu.classpath.jdwp;
 import gnu.classpath.jdwp.event.Event;
 import gnu.classpath.jdwp.event.EventManager;
 import gnu.classpath.jdwp.event.EventRequest;
+import gnu.classpath.jdwp.exception.JdwpException;
 import gnu.classpath.jdwp.id.ThreadId;
 import gnu.classpath.jdwp.processor.PacketProcessor;
 import gnu.classpath.jdwp.transport.ITransport;
@@ -206,7 +207,20 @@ public class Jdwp
        EventManager em = EventManager.getDefault ();
        EventRequest request = em.getEventRequest (event);
        if (request != null)
-         sendEvent (request, event);
+         {
+           try
+             {
+               System.out.println ("Jdwp.notify: sending event " + event);
+               sendEvent (request, event);
+               jdwp._enforceSuspendPolicy (request.getSuspendPolicy ());
+             }
+           catch (Exception e)
+             {
+               /* Really not much we can do. For now, just print out
+                  a warning to the user. */
+               System.out.println ("Jdwp.notify: caught exception: " + e);
+             }
+         }
       }
   }
   
@@ -217,32 +231,25 @@ public class Jdwp
    *
    * @param  request  the debugger request for the event
    * @param  event    the event to send
+   * @throws IOException if a communications failure occurs
    */
   public static void sendEvent (EventRequest request, Event event)
+      throws IOException
   {
     Jdwp jdwp = getDefault ();
     if (jdwp != null)
       {
-       try
-         {
-           // !! May need to implement send queue?
-           synchronized (jdwp._connection)
-             {
-               jdwp._connection.sendEvent (request, event);
-             }
-           
-           // Follow suspend policy
-           jdwp._enforceSuspendPolicy (request.getSuspendPolicy ());
-         }
-       catch (IOException ie)
+       // !! May need to implement send queue?
+       synchronized (jdwp._connection)
          {
-           System.out.println ("Jdwp.notify: caught exception: " + ie);
+           jdwp._connection.sendEvent (request, event);
          }
       }
   }
 
   // Helper function to enforce suspend policies on event notification
   private void _enforceSuspendPolicy (byte suspendPolicy)
+    throws JdwpException
   {
     switch (suspendPolicy)
       {
index 436a544eb3cdb86456412aec65f76e622cfc57ea..82d1d71e41e48dea537c46e8117ef27f314dde7e 100644 (file)
@@ -41,6 +41,7 @@ package gnu.classpath.jdwp.event;
 
 import gnu.classpath.jdwp.VMVirtualMachine;
 import gnu.classpath.jdwp.exception.InvalidEventTypeException;
+import gnu.classpath.jdwp.exception.JdwpException;
 
 import java.util.Collection;
 import java.util.Hashtable;
@@ -133,7 +134,7 @@ public class EventManager
                                        EventRequest.EVENT_VM_DEATH,
                                        EventRequest.SUSPEND_NONE));
       }
-    catch (InvalidEventTypeException e)
+    catch (JdwpException e)
       {
        // This can't happen
       }
@@ -187,9 +188,10 @@ public class EventManager
    *
    * @param request  the request to monitor
    * @throws InvalidEventTypeException for invalid event kind
+   * @throws JdwpException for other errors involving request
    */
   public void requestEvent (EventRequest request)
-    throws InvalidEventTypeException
+    throws JdwpException
   {
     // Add request to request list
     Hashtable requests;
@@ -212,8 +214,10 @@ public class EventManager
    * @param  kind  the event kind
    * @param  id    the ID of the request to delete
    * @throws IllegalArgumentException for invalid event kind
+   * @throws JdwpException for other errors deleting request
    */
   public void deleteRequest (byte kind, int id)
+    throws JdwpException
   {
     Hashtable requests;
     requests = (Hashtable) _requests.get (new Byte (kind));
@@ -237,8 +241,10 @@ public class EventManager
    *
    * @param  kind  the event kind
    * @throws IllegalArgumentException for invalid event kind
+   * @throws JdwpException for error clearing events
    */
   public void clearRequests (byte kind)
+    throws JdwpException
   {
     Hashtable requests = (Hashtable) _requests.get (new Byte (kind));
     if (requests == null)
index 141c8541794b0bdecd5efdb9f3f64d1ba1f0dbf3..8e8eecb25990410eb464f1beea5264e2b5e09e76 100644 (file)
@@ -40,6 +40,8 @@ package gnu.java.awt.image;
 import java.awt.image.ImageConsumer;
 import java.awt.image.ImageProducer;
 import java.io.ByteArrayInputStream;
+import java.io.DataInput;
+import java.io.EOFException;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -55,6 +57,7 @@ public abstract class ImageDecoder implements ImageProducer
   int offset;
   int length;
   InputStream input;
+  DataInput datainput;
 
   static
   {
@@ -79,6 +82,11 @@ public abstract class ImageDecoder implements ImageProducer
     this.input = is;
   }
 
+  public ImageDecoder (DataInput datainput)
+  {
+    this.datainput = datainput;
+  }
+
   public ImageDecoder (byte[] imagedata, int imageoffset, int imagelength)
   {
     data = imagedata;
@@ -119,6 +127,8 @@ public abstract class ImageDecoder implements ImageProducer
               {
                 if (url != null)
                   input = url.openStream();
+               else if (datainput != null)
+                 input = new DataInputStreamWrapper(datainput);
                 else
                   {
                     if (filename != null)
@@ -153,4 +163,26 @@ public abstract class ImageDecoder implements ImageProducer
   }
 
   public abstract void produce (Vector v, InputStream is) throws IOException;
+
+  private static class DataInputStreamWrapper extends InputStream
+  {
+    private final DataInput datainput;
+
+    DataInputStreamWrapper(DataInput datainput)
+    {
+      this.datainput = datainput;
+    }
+
+    public int read() throws IOException
+    {
+      try
+       {
+         return datainput.readByte() & 0xFF;
+       }
+      catch (EOFException eofe)
+       {
+         return -1;
+       }
+    }
+  }
 }
index d80306c8a82ab5983c476cef5e96f082d8def7eb..d7217aa7a3f7554cb958d6616d53791f888e1f9a 100644 (file)
@@ -48,7 +48,6 @@ import java.awt.Graphics;
 import java.awt.Image;
 import java.awt.Rectangle;
 import java.awt.Shape;
-import java.awt.SystemColor;
 import java.awt.image.ImageObserver;
 import java.text.AttributedCharacterIterator;
 
@@ -81,18 +80,23 @@ public class GdkGraphics extends Graphics
   native void initStateUnlocked (GtkComponentPeer component);
   native void initState (int width, int height);
   native void initFromImage (GtkImage image);
-  native void copyState (GdkGraphics g);
+  native void nativeCopyState (GdkGraphics g);
+
+  /**
+   * A cached instance that is used by {@link #create} in order to avoid
+   * massive allocation of graphics contexts.
+   */
+  GdkGraphics cached = null;
+
+  /**
+   * A link to the parent context. This is used in {@link #dispose} to put
+   * this graphics context into the cache.
+   */
+  GdkGraphics parent = null;
 
   GdkGraphics (GdkGraphics g)
   {
-    color = g.color;
-    xorColor = g.xorColor;
-    font = g.font;
-    if (font == null)
-      font = new Font ("Dialog", Font.PLAIN, 12);
-    clip = new Rectangle (g.clip);
-    component = g.component;
-
+    parent = g;
     copyState (g);
   }
 
@@ -162,12 +166,54 @@ public class GdkGraphics extends Graphics
   public native void copyArea(int x, int y, int width, int height, 
                              int dx, int dy);
 
-  public Graphics create ()
+  /**
+   * Creates a copy of this GdkGraphics instance. This implementation can
+   * reuse a cached instance to avoid massive instantiation of Graphics objects
+   * during painting.
+   *
+   * @return a copy of this graphics context
+   */
+  public Graphics create()
+  {
+    GdkGraphics copy = cached;
+    if (copy == null)
+      copy = new GdkGraphics(this);
+    else
+      {
+        copy.copyState(this);
+        cached = null;
+      }
+    return copy;
+  }
+
+  public native void nativeDispose();
+
+  /**
+   * Disposes this graphics object. This puts this graphics context into the
+   * cache of its parent graphics if there is one.
+   */
+  public void dispose()
   {
-    return new GdkGraphics (this);
+    if (parent != null)
+      {
+        parent.cached = this;
+        parent = null;
+      }
+    else
+      nativeDispose();
   }
 
-  public native void dispose();
+  /**
+   * This is called when this object gets finalized by the garbage collector.
+   * In addition to {@link Graphics#finalize()} this calls nativeDispose() to
+   * make sure the native resources are freed before the graphics context is
+   * thrown away.
+   */
+  public void finalize()
+  {
+    super.finalize();
+    nativeDispose();
+  }
 
   public boolean drawImage (Image img, int x, int y, 
                            Color bgcolor, ImageObserver observer)
@@ -248,9 +294,8 @@ public class GdkGraphics extends Graphics
   public void drawString (String str, int x, int y)
   {
     drawString(getFontPeer(), str, x, y);
-  }
+  }  
   
-
   public void drawString (AttributedCharacterIterator ci, int x, int y)
   {
     throw new Error ("not implemented");
@@ -419,4 +464,23 @@ public class GdkGraphics extends Graphics
 
     translateNative (x, y);
   }
+
+  /**
+   * Copies over the state of another GdkGraphics to this instance. This is
+   * used by the {@link #GdkGraphics(GdkGraphics)} constructor and the
+   * {@link #create()} method.
+   *
+   * @param g the GdkGraphics object to copy the state from
+   */
+  private void copyState(GdkGraphics g)
+  {
+    color = g.color;
+    xorColor = g.xorColor;
+    font = g.font;
+    if (font == null)
+      font = new Font ("Dialog", Font.PLAIN, 12);
+    clip = new Rectangle (g.clip);
+    component = g.component;
+    nativeCopyState(g);
+  }
 }
index c9ed3012658a9fe21bd18ad378a74c1cd66df1f9..195304dcee23d87c703290dc42cac49a2c057ec2 100644 (file)
@@ -180,11 +180,14 @@ public class GdkGraphics2D extends Graphics2D
     else
       fg = new Color(g.fg.getRGB());
 
-    if (g.bg.getAlpha() != -1)
-      bg = new Color(g.bg.getRed(), g.bg.getGreen(), g.bg.getBlue(),
-                     g.bg.getAlpha());
-    else
-      bg = new Color(g.bg.getRGB());
+    if (g.bg != null)
+      {
+        if (g.bg.getAlpha() != -1)
+          bg = new Color(g.bg.getRed(), g.bg.getGreen(), g.bg.getBlue(),
+                         g.bg.getAlpha());
+        else
+          bg = new Color(g.bg.getRGB());
+      }
 
     if (g.clip == null)
       clip = null;
@@ -1088,6 +1091,8 @@ public class GdkGraphics2D extends Graphics2D
 
   public void setBackground(Color c)
   {
+    if (c == null)
+      c = Color.WHITE;
     bg = c;
   }
 
index 85cb1e47a9e9e7083e205784b39716d054f36923..054ebaaaef39b0656649832919071e2ca8e07204 100644 (file)
@@ -47,6 +47,7 @@ import java.awt.image.ImageConsumer;
 import java.awt.image.ImageProducer;
 import java.awt.image.Raster;
 import java.awt.image.RenderedImage;
+import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 import java.io.InputStream;
@@ -102,6 +103,11 @@ public class GdkPixbufDecoder extends gnu.java.awt.image.ImageDecoder
                                                      0x00ff0000, 
                                                      0x0000ff00, 
                                                      0x000000ff);
+  public GdkPixbufDecoder (DataInput datainput)
+  {
+    super (datainput);
+  }
+
   public GdkPixbufDecoder (InputStream in)
   {
     super (in);
@@ -630,7 +636,14 @@ public class GdkPixbufDecoder extends gnu.java.awt.image.ImageDecoder
                          boolean ignoreMetadata)
     {
       super.setInput(input, seekForwardOnly, ignoreMetadata);
-      dec = new GdkPixbufDecoder((InputStream) getInput());
+      Object get = getInput();
+      if (get instanceof InputStream)
+        dec = new GdkPixbufDecoder((InputStream) get);
+      else if (get instanceof DataInput)
+        dec = new GdkPixbufDecoder((DataInput) get);
+      else
+       throw new IllegalArgumentException("input object not supported: "
+                                          + get);
     }
 
     public BufferedImage read(int imageIndex, ImageReadParam param)
diff --git a/libjava/classpath/gnu/java/beans/encoder/ArrayPersistenceDelegate.java b/libjava/classpath/gnu/java/beans/encoder/ArrayPersistenceDelegate.java
new file mode 100644 (file)
index 0000000..12d757e
--- /dev/null
@@ -0,0 +1,153 @@
+/* ArrayPersistenceDelegate.java - A PersistenceDelegate that handles arrays.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder;
+
+import java.beans.Encoder;
+import java.beans.Expression;
+import java.beans.PersistenceDelegate;
+import java.beans.Statement;
+
+import java.lang.reflect.Array;
+import java.util.HashMap;
+
+public class ArrayPersistenceDelegate extends PersistenceDelegate
+{
+  private static final HashMap NULL_VALUES = new HashMap();
+
+  static
+    {
+      NULL_VALUES.put(Boolean.TYPE, Boolean.FALSE);
+      NULL_VALUES.put(Byte.TYPE, Byte.valueOf((byte) 0));
+      NULL_VALUES.put(Short.TYPE, Short.valueOf((short) 0));
+      NULL_VALUES.put(Integer.TYPE, Integer.valueOf(0));
+      NULL_VALUES.put(Long.TYPE, Long.valueOf(0));
+      NULL_VALUES.put(Float.TYPE, Float.valueOf(0.0f));
+      NULL_VALUES.put(Double.TYPE, Double.valueOf(0.0));
+    }
+
+  protected Expression instantiate(Object oldInstance, Encoder out)
+  {
+    Class type = oldInstance.getClass().getComponentType();
+
+    // oldInstance is expected to be an array, then
+    // getClass().getComponentType() should lead
+    // to its component type.
+    assert (type != null);
+
+    // Not handling primitive types in a special way here
+    // causes that Class.forName("int") is built as an Expression
+    // later which would cause an exception if executed. A special
+    // handling to avoid the execution for primitive types can be
+    // java.beans.Encoder.writeExpression() .
+    return new Expression(
+                          oldInstance,
+                          Array.class,
+                          "newInstance",
+                          new Object[] {
+                            type,
+                            new Integer(Array.getLength(oldInstance)) });
+  }
+
+  protected void initialize(Class type, Object oldInstance, Object newInstance,
+                            Encoder out)
+  {
+    int length = Array.getLength(oldInstance);
+
+    // Compares the array value against a prototypical
+    // null value of the array's component type in order to skip
+    // writing the default values of an array.
+    
+    // Note: I have no idea why the persistence delegate for arrays writes
+    // an Expression that reads the value and then writes a Statement that sets
+    // the value. However it turned out that object arrays work better with the
+    // get-Expression and primitive array work fine with the set-Statement.
+    
+    type = type.getComponentType();
+    if (type.isPrimitive())
+      {
+        Object nullValue = NULL_VALUES.get(type);
+
+        for (int i = 0; i < length; i++)
+          {
+            Object oldValue = Array.get(oldInstance, i);
+
+            if (!oldValue.equals(nullValue))
+              {
+                out.writeExpression(new Expression(Array.class, "get",
+                                                   new Object[] { oldInstance,
+                                                                 Integer.valueOf(i),
+                                                                 }));
+                
+                out.writeStatement(new Statement(Array.class, "set",
+                                               new Object[] {
+                                                 oldInstance,
+                                                 Integer.valueOf(i),
+                                                 oldValue
+                                                 }));
+              }
+          }
+        
+      }
+    else
+      {
+
+        for (int i = 0; i < length; i++)
+          {
+            Object oldValue = Array.get(oldInstance, i);
+            
+            if (oldValue != null)
+              {
+                out.writeExpression(new Expression(Array.class, "get",
+                                                 new Object[] { oldInstance,
+                                                               Integer.valueOf(i),
+                                                               }));
+                
+                out.writeStatement(new Statement(Array.class, "set",
+                                                   new Object[] {
+                                                     oldInstance,
+                                                     Integer.valueOf(i),
+                                                     oldValue
+                                                     }));
+              }
+          }
+      }
+    
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/ClassPersistenceDelegate.java b/libjava/classpath/gnu/java/beans/encoder/ClassPersistenceDelegate.java
new file mode 100644 (file)
index 0000000..7b0656a
--- /dev/null
@@ -0,0 +1,80 @@
+/* ClassPersistenceDelegate.java - A PersistenceDelegate for the Class type.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.beans.encoder;
+
+import java.beans.Encoder;
+import java.beans.Expression;
+import java.beans.PersistenceDelegate;
+
+/** <p>The <code>ClassPersistenceDelegate</code> creates
+ * <code>Expression</code> instances which denote class resolutions.</p>
+ * 
+ * <p>The class resolution is always the last step when serializing a tree
+ * of objects. Due to the recursive nature of the algorithm we need a way
+ * to end the recursion. This is achieved by the implementation of this
+ * {@link instantiate} method. Arbitrary classes are described with a call
+ * to <code>Class.forName</code>. However for the <code>Class</code> class
+ * we call <code>getClass()</code> on a <code>String.class</code> instance.
+ * This in turn lead to the resolution of the String class which is always
+ * encoded as <code>"".getClass()</code>. Finally the <code>Encoder</code>
+ * treats strings in a special way so that the recursion ends here.  
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ */
+public class ClassPersistenceDelegate extends PersistenceDelegate
+{
+
+  protected Expression instantiate(Object oldInstance, Encoder out)
+  {
+    Class oldClass = (Class) oldInstance;
+    
+    // Due to the special handling of String instances in the Encoder
+    // this Expression does not lead to further class resolutions.
+    if (oldClass == String.class)
+      return new Expression(oldClass, "", "getClass", null);
+
+    // This Expression will lead to the class resolution of String.class.
+    if (oldClass == Class.class)
+      return new Expression(oldClass, String.class, "getClass", null);
+
+    // This Expression will lead to the class resolution of Class.class. 
+    return new Expression(oldClass, Class.class, "forName",
+                          new Object[] { oldClass.getName() });
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/CollectionPersistenceDelegate.java b/libjava/classpath/gnu/java/beans/encoder/CollectionPersistenceDelegate.java
new file mode 100644 (file)
index 0000000..f1375d2
--- /dev/null
@@ -0,0 +1,84 @@
+/* CollectionPersistenceDelegate.java - A PersistenceDelegate for Collection subclasses.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder;
+
+import java.util.Collection;
+import java.beans.Encoder;
+import java.beans.Expression;
+import java.beans.PersistenceDelegate;
+import java.beans.Statement;
+
+import java.util.Iterator;
+
+/** <p>A <code>PersistenceDelegate</code> implementation that calls
+ * the no-argument constructor to create the Collection instance and
+ * uses an iterator to add all the objects it reaches through it.</p>
+ * 
+ * <p>It is used for <code>Set</code> and <code>List</code>
+ * implementations.</p>
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ */
+public class CollectionPersistenceDelegate extends PersistenceDelegate
+{
+
+  protected Expression instantiate(Object oldInstance, Encoder out)
+  {
+    return new Expression(
+                          oldInstance,
+                          oldInstance.getClass(),
+                          "new",
+                          null);
+  }
+
+  protected void initialize(Class type, Object oldInstance, Object newInstance,
+                            Encoder out)
+  {
+    Iterator ite = ((Collection) oldInstance).iterator();
+
+    while (ite.hasNext())
+      {
+        out.writeStatement(new Statement(oldInstance, "add",
+                                         new Object[] { ite.next() }));
+
+      }
+
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/Context.java b/libjava/classpath/gnu/java/beans/encoder/Context.java
new file mode 100644 (file)
index 0000000..9126d49
--- /dev/null
@@ -0,0 +1,88 @@
+/* Context.java -- Provides calling context information to ScannerStates.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.beans.encoder;
+
+/** A <code>Contect</code> object describes the current state
+ * and the call number while processing the original object
+ * tree in the {@link ScanEngine}.
+ * 
+ * <p>The class allows to distinguish the different calling states
+ * and is neccessary for the child element skipping feature of
+ * the {@link GenericScannerState}.</p> 
+ *  
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public class Context
+{
+  private String state;
+  
+  private int call;
+  
+  Context(String newState, int newCall)
+  {
+    state = newState;
+    call = newCall;
+  }
+
+  public int hashCode()
+  {
+    int hc = 7;
+    hc = 31 * hc + state.hashCode();
+    hc = 31 * hc + call;
+    
+    return hc;
+  }
+  
+  public boolean equals(Object o)
+  {
+    if (!(o instanceof Context))
+      return false;
+    
+    Context that = (Context) o;
+    
+    return state.equals(that.state)
+      && call == that.call;
+  }
+  
+  public String toString()
+  {
+    return "Context [state=" + state + ", call=" + call + "]";
+  }
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/GenericScannerState.java b/libjava/classpath/gnu/java/beans/encoder/GenericScannerState.java
new file mode 100644 (file)
index 0000000..3c3f8a3
--- /dev/null
@@ -0,0 +1,257 @@
+/* GenericScannerState.java
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder;
+
+import java.util.HashMap;
+
+import gnu.java.beans.encoder.elements.ArrayInstantiation;
+import gnu.java.beans.encoder.elements.Array_Get;
+import gnu.java.beans.encoder.elements.Array_Set;
+import gnu.java.beans.encoder.elements.ClassResolution;
+import gnu.java.beans.encoder.elements.Element;
+import gnu.java.beans.encoder.elements.List_Get;
+import gnu.java.beans.encoder.elements.List_Set;
+import gnu.java.beans.encoder.elements.MethodInvocation;
+import gnu.java.beans.encoder.elements.NullObject;
+import gnu.java.beans.encoder.elements.ObjectInstantiation;
+import gnu.java.beans.encoder.elements.ObjectReference;
+import gnu.java.beans.encoder.elements.PrimitiveInstantiation;
+import gnu.java.beans.encoder.elements.StaticFieldAccess;
+import gnu.java.beans.encoder.elements.StaticMethodInvocation;
+import gnu.java.beans.encoder.elements.StringReference;
+
+/**
+ * This class is a {@link ScannerState} implementation that creates
+ * suitable {@link gnu.java.beans.encoder.elements.Element} instances
+ * for each transition variant.
+ * 
+ * <p>Furthermore it can optionally skip a certain number of child
+ * elements. The algorithm can cope with the fact that one 
+ * <code>GenericScannerState</code> instance may be called at
+ * different levels of recursions.</p>
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ */
+class GenericScannerState extends ScannerState
+{
+  private int skipElements, initialSkipElements;
+
+  final Root root;
+
+  HashMap skipValues;
+
+  GenericScannerState(Root newRoot)
+  {
+    root = newRoot;
+  }
+
+  GenericScannerState(Root root, int skipElements)
+  {
+    this(root);
+    this.skipElements = initialSkipElements = skipElements;
+
+    if (skipElements > 0)
+      skipValues = new HashMap();
+  }
+  
+  protected void enterImpl(Context ctx)
+  {
+    if (skipValues != null)
+      {
+        Integer skip = (Integer) skipValues.get(ctx);
+        
+        if (skip == null)
+          {
+            skip = Integer.valueOf(initialSkipElements);
+            skipValues.put(ctx, skip);
+          }
+        
+        skipElements = skip.intValue();
+      }
+  }
+
+  void methodInvocation(String methodName)
+  {
+    if (skipValues != null && skipElements > 0)
+      return;
+
+    root.addChild(new MethodInvocation(methodName));
+  }
+
+  void staticMethodInvocation(String className, String methodName)
+  {
+    if (skipValues != null && skipElements > 0)
+      return;
+
+    root.addChild(new StaticMethodInvocation(className, methodName));
+  }
+
+  void staticFieldAccess(String className, String fieldName)
+  {
+    if (skipValues != null && skipElements > 0)
+      return;
+
+    root.addChild(new StaticFieldAccess(className, fieldName));
+  }
+
+  void classResolution(String className)
+  {
+    if (skipValues != null && skipElements > 0)
+      return;
+
+    root.addChild(new ClassResolution(className));
+  }
+
+  void objectInstantiation(String className, ObjectId objectId)
+  {
+    if (skipValues != null && skipElements > 0)
+      return;
+
+    Element elem = new ObjectInstantiation(className);
+    elem.initId(objectId);
+
+    root.addChild(elem);
+  }
+
+  void primitiveInstantiation(String primitiveName, String valueAsString)
+  {
+    if (skipValues != null && skipElements > 0)
+      return;
+
+    root.addChild(new PrimitiveInstantiation(primitiveName, valueAsString));
+  }
+
+  void objectArrayInstantiation(String arrayClassName, String lengthAsString,
+                          ObjectId objectId)
+  {
+    if (skipValues != null && skipElements > 0)
+      return;
+
+    Element elem = new ArrayInstantiation(arrayClassName, lengthAsString);
+    elem.initId(objectId);
+
+    root.addChild(elem);
+  }
+
+  void primitiveArrayInstantiation(String arrayClassName, String lengthAsString,
+                                ObjectId objectId)
+  {
+    objectArrayInstantiation(arrayClassName, lengthAsString, objectId);
+  }
+
+  void arraySet(String indexAsString)
+  {
+    if (skipValues != null && skipElements > 0)
+      return;
+
+    root.addChild(new Array_Set(indexAsString));
+  }
+
+  void arrayGet(String indexAsString)
+  {
+    if (skipValues != null && skipElements > 0)
+      return;
+
+    root.addChild(new Array_Get(indexAsString));
+  }
+
+  void listGet()
+  {
+    if (skipValues != null && skipElements > 0)
+      return;
+
+    root.addChild(new List_Get());
+  }
+
+  void listSet()
+  {
+    if (skipValues != null && skipElements > 0)
+      return;
+
+    root.addChild(new List_Set());
+  }
+
+  void nullObject()
+  {
+    if (skipValues != null && skipElements > 0)
+      return;
+
+    root.addChild(new NullObject());
+  }
+
+  void stringReference(String string)
+  {
+    if (skipValues != null && skipElements > 0)
+      return;
+
+    root.addChild(new StringReference(string));
+  }
+
+  void objectReference(ObjectId id)
+  {
+    if (skipValues != null && skipElements > 0)
+      return;
+
+    root.addChild(new ObjectReference(id));
+  }
+
+  void end()
+  {
+    if (skipValues != null)
+      {
+        if (skipElements > 0)
+          skipElements--;
+        else
+          {
+            // Finishes the Element we are constructing.
+            root.end();
+          }
+        skipValues.put(context(), Integer.valueOf(skipElements));
+      }
+    else
+      root.end();
+
+  }
+
+  void enter()
+  {
+
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/IgnoringScannerState.java b/libjava/classpath/gnu/java/beans/encoder/IgnoringScannerState.java
new file mode 100644 (file)
index 0000000..054f1f0
--- /dev/null
@@ -0,0 +1,133 @@
+/* IgnoringScannerState.java -- A ScannerState that does nothing.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder;
+
+/** A special {@link ScannerState} implementation that ignores all child
+ * elements.
+ * 
+ * <p>Consider the call hierarchy:
+ * <code>
+ * methodInvocation
+ *   objectInstantiation
+ *     classResolution*
+ *       objectInstantiation
+ *         classResolution
+ * </code>
+ * </p>
+ * 
+ * <p>When the ignoring state is active one can filter the elements of
+ * one level. One has to set up the state machine that a transition
+ * via "class resolution" from a state that was reached via "object
+ * instantation" reaches an <code>IgnoringScannerState</code>.</p>
+ * 
+ * <p>Setting the default successor of a <code>IgnoringScannerState</code>
+ * to itself causes all elements of the call hierarchy to be skipped
+ * until another state is reached by going back.</p> 
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+class IgnoringScannerState extends ScannerState
+{
+
+  void methodInvocation(String methodName)
+  {
+  }
+
+  void staticMethodInvocation(String className, String methodName)
+  {
+  }
+
+  void staticFieldAccess(String className, String fieldName)
+  {
+  }
+
+  void classResolution(String className)
+  {
+  }
+
+  void objectInstantiation(String className, ObjectId objectId)
+  {
+  }
+
+  void primitiveInstantiation(String primitiveName, String valueAsString)
+  {
+  }
+
+  void objectArrayInstantiation(String arrayClassName, String lengthAsString, ObjectId objectId)
+  {
+  }
+
+  void primitiveArrayInstantiation(String arrayClassName, String lengthAsString, ObjectId objectId)
+  {
+  }
+
+  void arraySet(String indexAsString)
+  {
+  }
+
+  void arrayGet(String indexAsString)
+  {
+  }
+
+  void listGet()
+  {
+  }
+
+  void listSet()
+  {
+  }
+
+  void nullObject()
+  {
+  }
+
+  void stringReference(String string)
+  {
+  }
+
+  void objectReference(ObjectId id)
+  {
+  }
+  
+  void end()
+  {
+  }
+  
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/MapPersistenceDelegate.java b/libjava/classpath/gnu/java/beans/encoder/MapPersistenceDelegate.java
new file mode 100644 (file)
index 0000000..84cdce9
--- /dev/null
@@ -0,0 +1,81 @@
+/* MapPersistenceDelegate.java -- A PersistenceDelegate for Map subclasses.
+
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder;
+
+import java.util.Map;
+import java.beans.Encoder;
+import java.beans.Expression;
+import java.beans.PersistenceDelegate;
+import java.beans.Statement;
+
+import java.util.Iterator;
+
+/**
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ */
+public class MapPersistenceDelegate extends PersistenceDelegate
+{
+
+  protected Expression instantiate(Object oldInstance, Encoder out)
+  {
+    return new Expression(
+                          oldInstance,
+                          oldInstance.getClass(),
+                          "new",
+                          null);
+  }
+
+  protected void initialize(Class type, Object oldInstance, Object newInstance,
+                            Encoder out)
+  {
+    Map map = (Map) oldInstance;
+    Iterator ite = map.keySet().iterator();
+
+    while (ite.hasNext())
+      {
+        Object key = ite.next();
+        out.writeStatement(new Statement(oldInstance, "put",
+                                         new Object[] { key, map.get(key) }));
+
+      }
+
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/ObjectId.java b/libjava/classpath/gnu/java/beans/encoder/ObjectId.java
new file mode 100644 (file)
index 0000000..eca5c3d
--- /dev/null
@@ -0,0 +1,132 @@
+/* ObjectId.java -- Simple object identification mechanism for XML encoding.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder;
+
+import java.util.HashMap;
+
+/**
+ * <p>
+ * ObjectId provides an object identification mechanism which gives each object
+ * a name in the form <code>&lt;class&gt;&lt;Nameindex&gt;</code>.
+ * </p>
+ * 
+ * <p>
+ * Each id can be in an unused state which means that only one instance of the
+ * object is in use and a special id is not needed. Certain {@link
+ * gnu.java.beans.encoder.elements.Element} subclasses use this feature to find
+ * out whether they write the "id" attribute or not.
+ * </p>
+ * <p>
+ * An <code>ObjectId</code> instance is typically given to multiple objects.
+ * The second user should then invoke the {@link #init} method to generate the
+ * identification string and bring the id in the 'used' state.
+ * </p>
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ */
+public class ObjectId
+{
+  /**
+   * Stores the index an object of a specific type should be given.
+   */
+  private static HashMap nameIndices = new HashMap();
+
+  private String id;
+
+  private Class klass;
+
+  ObjectId(Class klass)
+  {
+    this.klass = klass;
+  }
+
+  public boolean isUnused()
+  {
+    return id == null;
+  }
+
+  public String toString()
+  {
+    return (id != null) ? id : "<unused id>";
+  }
+
+  /**
+   * <p>
+   * Generates a simple Id by concatenating a class name with a self-increasing
+   * number.
+   * </p>
+   */
+  public void init()
+  {
+    assert (klass != null);
+
+    if (id != null)
+      return;
+
+    Integer count = (Integer) nameIndices.get(klass);
+    if (count == null)
+      {
+        count = Integer.valueOf(0);
+      }
+
+    if (klass.isArray())
+      {
+        Class ct = klass.getComponentType();
+        if (ct == Boolean.TYPE)
+          id = "booleanArray" + count.intValue();
+        else if (ct == Byte.TYPE)
+          id = "byteArray" + count.intValue();
+        else if (ct == Short.TYPE)
+          id = "shortArray" + count.intValue();
+        else if (ct == Integer.TYPE)
+          id = "intArray" + count.intValue();
+        else if (ct == Long.TYPE)
+          id = "longArray" + count.intValue();
+        else if (ct == Float.TYPE)
+          id = "floatArray" + count.intValue();
+        else if (ct == Double.TYPE)
+          id = "doubleArray" + count.intValue();
+      }
+    else
+      id = klass.getName() + count.intValue();
+
+    nameIndices.put(klass, Integer.valueOf(count.intValue() + 1));
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/PrimitivePersistenceDelegate.java b/libjava/classpath/gnu/java/beans/encoder/PrimitivePersistenceDelegate.java
new file mode 100644 (file)
index 0000000..8cb3705
--- /dev/null
@@ -0,0 +1,74 @@
+/* PrimitivePersistenceDelegate.java
+ -- A PersistenceDelegate for primitive data types.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.beans.encoder;
+
+import java.beans.Encoder;
+import java.beans.Expression;
+import java.beans.PersistenceDelegate;
+
+/**
+ * A shared PersistenceDelegate implementation for all primitive types.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ */
+public class PrimitivePersistenceDelegate extends PersistenceDelegate
+{
+
+  protected Expression instantiate(Object oldInstance, Encoder out)
+  {
+    // The implementation relies on the fact that every primitive
+    // wrapper class has a constructor accepting a String argument.
+    // By using these constructors creating a primitive instance
+    // depends on the String class only.
+    return new Expression(oldInstance, oldInstance.getClass(), "new",
+                          new Object[] { oldInstance.toString() });
+  }
+
+  protected void initialize(Class type, Object oldInstance, Object newInstance, Encoder out)
+  {
+    // This is a hack to make serializing primitive arrays work correctly.
+    // Instead of modifying an existing primitive instance to make it equal
+    // with another instance (which is not possible because primitives are
+    // immutable) we create a new instance. This is against the specification
+    // of the initialize method but make things work fine.
+    out.writeExpression(new Expression(oldInstance, oldInstance.getClass(), "new",
+                          new Object[] { oldInstance.toString() }));
+  }
+  
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/ReportingScannerState.java b/libjava/classpath/gnu/java/beans/encoder/ReportingScannerState.java
new file mode 100644 (file)
index 0000000..fb6e061
--- /dev/null
@@ -0,0 +1,131 @@
+/* ReportingScannerState.java -- A state for debugging purposes.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder;
+
+/**
+ * A <code>ScannerState</code> implementation that prints useful details
+ * about its arguments. Use it when the XML encoding does not work correctly
+ * and you want to find out how things relate to each other.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ */
+class ReportingScannerState extends ScannerState
+{
+
+  void methodInvocation(String methodName)
+  {
+       System.out.println("methodInvocation: " + methodName + "()");
+  }
+
+  void staticMethodInvocation(String className, String methodName)
+  {
+       System.out.println("staticMethodInvocation: " + className + "." + methodName + "()");
+  }
+
+  void staticFieldAccess(String className, String fieldName)
+  {
+    System.out.println("staticFieldAccess: " + className + "." + fieldName);
+  }
+
+  void classResolution(String className)
+  {
+       System.out.println("classResolution: " + className);
+  }
+
+  void objectInstantiation(String className, ObjectId objectId)
+  {
+       System.out.println("objectInstantiation: " + className);
+  }
+
+  void primitiveInstantiation(String primitiveName, String valueAsString)
+  {
+       System.out.println("primitiveInstantiation: (" + primitiveName + ") " + valueAsString);
+  }
+
+  void objectArrayInstantiation(String arrayClassName, String lengthAsString, ObjectId objectId)
+  {
+    System.out.println("objectArrayInstantiation: new " + arrayClassName + "[" + lengthAsString + "]");
+  }
+
+  void primitiveArrayInstantiation(String arrayClassName, String lengthAsString, ObjectId objectId)
+  {
+    System.out.println("primitiveArrayInstantiation: new " + arrayClassName + "[" + lengthAsString + "]");
+  }
+
+  void arraySet(String indexAsString)
+  {
+       System.out.println("arraySet: " + indexAsString);
+  }
+
+  void arrayGet(String indexAsString)
+  {
+       System.out.println("arrayGet: " + indexAsString);
+  }
+
+  void listGet()
+  {
+       System.out.println("listGet");
+  }
+
+  void listSet()
+  {
+       System.out.println("listSet");
+  }
+
+  void nullObject()
+  {
+       System.out.println("nullObject");
+  }
+
+  void stringReference(String string)
+  {
+    System.out.println("stringReference: " + string);
+  }
+
+  void objectReference(ObjectId id)
+  {
+    System.out.println("objectReference: " + id);
+  }
+
+ void end()
+ {
+       System.out.println("-close");
+ }
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/Root.java b/libjava/classpath/gnu/java/beans/encoder/Root.java
new file mode 100644 (file)
index 0000000..f4eade1
--- /dev/null
@@ -0,0 +1,198 @@
+/* Root.java -- The root of an object tree.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder;
+
+import java.beans.XMLEncoder;
+import java.util.Iterator;
+import java.util.Stack;
+
+import gnu.java.beans.encoder.elements.Element;
+
+/** <p><code>Root</code> provides a simple interface to a tree of
+ * objects.</p>
+ * 
+ * <p>Using an instance of this class a logical representation of
+ * the real object tree that is serialized can be built. When the
+ * actual data should be written as XML <code>Root</code> and
+ * {@link gnu.java.beans.encoder.elements.Element} class can provide
+ * context information which is used to write the best fitting
+ * XML representation.</p>
+ *   
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ */
+public class Root
+{
+  private Stack parents = new Stack();
+
+  private Element rootElement, current;
+  
+  private boolean started;
+
+  public Root()
+  {
+    rootElement = current = new RootElement();
+  }
+
+  /** <p>Adds another child element to the tree.</p>
+   * 
+   * <p>The new element automatically becomes the current
+   * element.</p>
+   * 
+   * @param elem The new child element.
+   */
+  public void addChild(Element elem)
+  {
+    current.addChild(elem);
+
+    parents.push(current);
+    current = elem;
+  }
+
+  /**
+   * <p>Marks that the end of the current element
+   * is reached and that no more childs are added to
+   * it.</p>
+   * 
+   * <p>The behavior is to return to the nearest parent
+   * element.</p>
+   */
+  public void end()
+  {
+    current = (Element) parents.pop();
+  }
+
+  /**
+   * <p>Goes back to the nearest parent element but
+   * deletes the just created child.</p>
+   * 
+   * <p>This is used if something went wrong while
+   * processing the child element's {@link java.beans.Expression}
+   * or {@link java.beans.Statement}.</p>
+   *
+   */
+  public void deleteLast()
+  {
+    current = (Element) parents.pop();
+
+    current.removeLast();
+  }
+
+  /**
+   * <p>Traverses the elements in the object tree
+   * and creates their XML representation in the output
+   * stream of the given {@link Writer}.</p>
+   * 
+   * <p>Finally the <code>Writer</code> is flushed.</p>
+   *  
+   * @param writer The Writer instance that generates the XML representation.
+   */
+  public void traverse(Writer writer)
+  {
+    if (!started)
+      {
+        writer.writePreamble();
+        rootElement.writeStart(writer);
+      }
+    started = true;
+    
+    traverse(writer, rootElement.iterator());
+    
+    rootElement.clear();
+    
+    writer.flush();
+  }
+
+  /** Writes the closing element and closes the {@link Writer}
+   * 
+   * @param writer The Writer instance that generates the XML representation.
+   */
+  public void close(Writer writer)
+  {
+    rootElement.writeEnd(writer);
+    writer.close();
+  }
+
+  /** Recursively traverses the object tree.
+   * 
+   * @param writer The Writer instance that generates the XML representation.
+   * @param ite An Iterator returning Element instances.
+   */
+  private void traverse(Writer writer, Iterator ite)
+  {
+    while (ite.hasNext())
+      {
+        Element e = (Element) ite.next();
+        e.writeStart(writer);
+
+        traverse(writer, e.iterator());
+
+        e.writeEnd(writer);
+        
+        e.clear();
+      }
+  }
+
+  /** <p>A special Element implementation that represents the
+   * encoder's context.</p>
+   * 
+   * <p>This element is written only once per Writer.</p>
+   * 
+   * <p>It is assumed that this element is never empty to simplify
+   * the implementation.</p>
+   * 
+   * @author Robert Schuster (robertschuster@fsfe.org);
+   *
+   */
+  static class RootElement extends Element
+  {
+    public void writeStart(Writer writer)
+    {
+      writer.write("java", new String[] { "version", "class" },
+                   new String[] { System.getProperty("java.version"),
+                                 XMLEncoder.class.getName() }, false);
+    }
+    
+    public void writeEnd(Writer writer)
+    {
+      writer.writeEnd(false);
+    }
+
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/ScanEngine.java b/libjava/classpath/gnu/java/beans/encoder/ScanEngine.java
new file mode 100644 (file)
index 0000000..edf07d7
--- /dev/null
@@ -0,0 +1,860 @@
+/* ScanEngine.java 
+ -- Scans the input and generates an object tree that can be written as XML.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder;
+
+import java.beans.Expression;
+import java.beans.Statement;
+import java.io.OutputStream;
+import java.lang.reflect.Array;
+import java.util.HashMap;
+import java.util.IdentityHashMap;
+import java.util.List;
+import java.util.Stack;
+
+/** <p>The <code>ScanEngine</code> is the main class of the backend of the
+ * XML persistence algorithm. It scans {@link java.beans.Expression} and
+ * {@link java.beans.Statement} instances and some raw objects via the
+ * {@link #writeObject} method and feeds it to a state machine. The
+ * state machine then constructs and object tree which is finally
+ * written as XML by a {@link Writer} implementation.</p>
+ * 
+ * <p>How does it work?</p>
+ * <p>The <code>ScanEngine</code> sits below the {@link java.beans.XMLEncoder}
+ * class and is called by it exclusively. The <code>XMLEncoder</code> sends
+ * interpretive data by invoking {@link #writeExpression}, {@link #writeStatement}
+ * and {@link #writeObject}. The invocations of <code>writeExpression</code> and
+ * <code>writeStatement</code> are usually nested into each other and provide
+ * more information then necessary to generate the XML representation.
+ * Furthermore the meaning of certain <code>Expressions</code> differs
+ * depending on the enclosing elements or the inner elements have to be
+ * simply discarded.</p>
+ * 
+ * <p>To cope with this state dependant nature the <code>ScanEngine</code>
+ * contains a state machine which is programmed statically (no adjustments are
+ * needed, all <code>ScanEngine</code> engines use the same setup). The
+ * <code>ScanEngine</code>'s job is to decode the <code>Expression</code>s,
+ * <code>Statement</code>s and certain objects (namely <code>String</code>,
+ * <code>null</code> objects and instances which are repeatedly provided to
+ * the encoder) into 13 low-level (event) methods, which denote the meaning of the
+ * argument. For example an <code>Expression</code> can be an array
+ * instantiation which provokes a call to {@link arrayInstantiation} or
+ * it can be a class resolution leading to a call to {@link #classResolution}.
+ * For the state machione the 13 methods are the distinct way to transit
+ * from one state to another. Whenever the <code>ScanEngine</code> calls
+ * one of the event methods the current's state successor for that event
+ * is fetched from the state machine configuration, the successpr becomes
+ * the current state and then the event method is called in the new current
+ * state. The last step allows the state instance to do something meaningful
+ * to the object tree.</p>
+ * 
+ * <p>The state machine knows the concept of returning to the previous
+ * state. This is done using a stack of states which is popped every
+ * time a call to <code>writeStatement</code>, <code>writeExpression</code>
+ * in the <code>XMLEncoder</code> ends by calling the {@link #end} method.
+ * Note that due to the inheritance relationship of <code>Encoder</code>
+ * and <code>XMLEncoder</code> it is impossible for the
+ * <code>ScanEngine</code> itself to decide when an expression or statement
+ * ended. This can only be done in case of {@link #writeObject} calls because
+ * they are not nested.</p>
+ * 
+ * <p>When the XML persistence mechanism reaches an object twice (and more)
+ * it should generate an XML element using the "idref" attribute and add
+ * an "id" attribute to its first instantiation. This complicates things a bit
+ * because the first instantiation will always be part of the object tree
+ * as some {@link gnu.java.beans.encoder.elements.Element} subclass instance when the
+ * second and further objects accesses are written. Therefore the {@link ObjectId}
+ * class was introduced which is shared between all the object tree elements
+ * and has the notion of an "unused" state meaning that no identification
+ * is needed. The relationship between an object and its <code>ObjectId</code>
+ * instance is stored in the <code>ScanEngine</code> and gets cleared whenever
+ * the {@link #flush} method is called. This method also writes the currently
+ * built object tree and generates the XML representation.</p>
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ */
+public class ScanEngine
+{
+  
+  /** Change this to true to let the ScanEngine print state transition
+   * information.
+   */
+  boolean DEBUG = false;
+
+  /**
+   * Stores the scanner engine states as values and their names as keys.
+   */
+  HashMap states = new HashMap();
+
+  /**
+   * Stores former scanner state and makes it possible to come back to them.
+   */
+  Stack parents = new Stack();
+
+  /**
+   * The currently active scanner state.
+   */
+  ScannerState current;
+
+  /**
+   * The root of an object tree that is later written to XML.
+   */
+  Root root;
+
+  /**
+   * The Writer used to generate the XML output.
+   */
+  Writer writer;
+
+  /** Stores the relationship between objects and their {@link ObjectId} instance.
+   */
+  IdentityHashMap objects = new IdentityHashMap();
+  
+  public ScanEngine(OutputStream os)
+  {
+    // TODO: Provide another Writer implementation (e.g. one that does not use
+    // the XML APIs at all).
+    writer = new StAXWriter(os);
+    root = new Root();
+
+    final ScannerState start = current = new GenericScannerState(root);;
+    ScannerState conf;
+
+    // Use the ReportingScannerState to debug serialization issues.
+    register(ScannerState.DEFAULT_STATE_NAME, new IgnoringScannerState());
+
+    register("start", start);
+
+    // Special dead-end state where all transitions are ignored.
+    register("ignoreAll", new IgnoringScannerState())
+      .setDefaultSuccessor("ignoreAll");
+
+    // Object reference, string reference, null object
+    start.putSuccessor(ScannerState.TRANSITION_OBJECT_REFERENCE, "simple");
+    start.putSuccessor(ScannerState.TRANSITION_STRING_REFERENCE, "simple");
+    start.putSuccessor(ScannerState.TRANSITION_NULL_OBJECT, "simple");
+    register("simple", new GenericScannerState(root))
+      .setDefaultSuccessor("ignoreAll");
+
+    // Class resolution.
+    start.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "classRes0");
+    register("classRes0",
+             new GenericScannerState(root)).setDefaultSuccessor("ignoreAll");
+
+    // Object instantiation.
+    start.putSuccessor(ScannerState.TRANSITION_OBJECT_INSTANTIATION,
+                       "newObj0");
+    conf = register("newObj0", new GenericScannerState(root));
+    conf.setDefaultSuccessor("ignoreAll");
+    
+    // Simply use the start state to encode method invocations inside of
+    // objects.
+    conf.putSuccessor(ScannerState.TRANSITION_METHOD_INVOCATION, "start");
+
+    // Primitive instantiations.
+    start.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION,
+                       "newPrimitive0");
+    register("newPrimitive0",
+             new GenericScannerState(root)).setDefaultSuccessor("ignoreAll");
+
+    // Object arrays use the ARRAY_GET transition to create setting the
+    // array values.
+    start.putSuccessor(ScannerState.TRANSITION_OBJECT_ARRAY_INSTANTIATION,
+                       "newObjectArray");
+    conf = register("newObjectArray", new GenericScannerState(root));
+    conf.putSuccessor(ScannerState.TRANSITION_ARRAY_GET, "newOArrayGet");
+    conf.putSuccessor(ScannerState.TRANSITION_ARRAY_SET, "ignoreAll");
+    conf.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "ignoreAll");
+    conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION,
+                      "ignoreAll");
+    
+    // Get here when a value is set in the array.
+    register("newOArrayGet",
+             conf = new GenericScannerState(root));
+    
+    conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION,
+                      "newOArrayGet_ignoreFirstInteger");
+    
+    // "newArrayGet_ignoreFirstInteger" is set up mostly identical like the "start"
+    // state. Otherwise things would not behave the same when done inside
+    // arrays.
+    conf.putSuccessor(ScannerState.TRANSITION_OBJECT_REFERENCE, "simple");
+    conf.putSuccessor(ScannerState.TRANSITION_STRING_REFERENCE, "simple");
+    conf.putSuccessor(ScannerState.TRANSITION_NULL_OBJECT, "simple");
+    conf.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "classRes0");
+    conf.putSuccessor(ScannerState.TRANSITION_OBJECT_INSTANTIATION, "newObj0");
+    conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_ARRAY_INSTANTIATION,
+                      "newPrimitiveArray");
+    conf.putSuccessor(ScannerState.TRANSITION_OBJECT_ARRAY_INSTANTIATION,
+                      "newObjectArray");
+    
+    conf = register("newOArrayGet_ignoreFirstInteger",
+                    new GenericScannerState(root, 1));
+    
+    // In non-int primitive arrays class resolutions can happen
+    // but they should be ignored.
+    conf.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "ignoreAll");
+    
+    // Spurious object and string references occur when setting array
+    // elements. This suppresses them.
+    conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION,
+                      "ignoreAll");
+    conf.putSuccessor(ScannerState.TRANSITION_OBJECT_REFERENCE, "ignoreAll");
+    conf.putSuccessor(ScannerState.TRANSITION_STRING_REFERENCE, "ignoreAll");
+    
+    conf.setDefaultSuccessor("start");
+
+    // Primitive arrays use the ARRAY_SET transition to create setting the
+    // array values. This turned out to be the only working solution.
+    // When primitive arrays were handled by ARRAY_GET the values in boolean
+    // arrays were always skipped.
+    start.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_ARRAY_INSTANTIATION,
+                       "newPrimitiveArray");
+    conf = register("newPrimitiveArray", new GenericScannerState(root));
+    conf.putSuccessor(ScannerState.TRANSITION_ARRAY_GET, "ignoreAll");
+    conf.putSuccessor(ScannerState.TRANSITION_ARRAY_SET, "newPArraySet");
+    conf.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "ignoreAll");
+    conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION,
+                      "ignoreAll");
+    
+    conf = register("newPArraySet", new GenericScannerState(root));
+    conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION,
+                      "newPArraySet_ignoreFirstInteger");
+    
+    // Primitive arrays ignore all kinds of non-primitive object information.
+    conf.putSuccessor(ScannerState.TRANSITION_OBJECT_REFERENCE,
+                      "ignoreAll");
+    conf.putSuccessor(ScannerState.TRANSITION_STRING_REFERENCE, "ignoreAll");
+    conf.putSuccessor(ScannerState.TRANSITION_NULL_OBJECT, "ignoreAll");
+    conf.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "ingoreAll");
+    conf.putSuccessor(ScannerState.TRANSITION_OBJECT_INSTANTIATION, "ignoreAll");
+    conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_ARRAY_INSTANTIATION,
+                      "ignoreAll");
+    conf.putSuccessor(ScannerState.TRANSITION_OBJECT_ARRAY_INSTANTIATION,
+                      "ignoreAll");
+
+    conf = register("newPArraySet_ignoreFirstInteger",
+                    new GenericScannerState(root, 1));
+    
+    // In non-int primitive arrays class resolutions can happen
+    // but they should be ignored.
+    conf.putSuccessor(ScannerState.TRANSITION_CLASS_RESOLUTION, "ignoreAll");
+    
+    // Spurious object and string references occur when setting array
+    // elements. This suppresses them.
+    conf.putSuccessor(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION,
+                      "ignoreAll");
+    conf.putSuccessor(ScannerState.TRANSITION_OBJECT_REFERENCE, "ignoreAll");
+    conf.putSuccessor(ScannerState.TRANSITION_STRING_REFERENCE, "ignoreAll");
+    conf.setDefaultSuccessor("start");
+
+  }
+
+  /** Registers a <code>ScannerState</code> under a certain name.
+   * 
+   * @param name Name of the state
+   * @param state The <code>ScannerState</code> instance.
+   * @return The second argument.
+   */
+  private ScannerState register(String name, ScannerState state)
+  {
+    state.init(name);
+    
+    states.put(name, state);
+
+    return state;
+  }
+  
+  /** Generates or returns an id for the given object which can be activated
+   * later if the object is suitable.
+   * 
+   * <p>Objects are unsuitable if they are an instance of a primitive wrapper
+   * or String.</p>
+   * 
+   * @param value The object to retrieve an id for. 
+   * @return The id for the object or <code>null</code>.
+   */
+  private ObjectId retrieveId(Object value)
+  {
+    Class valueClass = value.getClass();
+    ObjectId id = null;
+    
+    // Although multiple accesses to Class objects are not handled
+    // through ids we generate one for them, too. This allows us to detect
+    // second time references to such objects in the writeObject method
+    // and handle them in a special way.
+    if (valueClass != String.class
+        && valueClass.getSuperclass() != Number.class
+        && valueClass != Boolean.class)
+      {
+        if ((id = (ObjectId) objects.get(value)) == null)
+          {
+            id = new ObjectId(valueClass);
+            objects.put(value, id);
+          }
+      }
+    
+    return id;
+  }
+
+  /** Scans the argument and calls one of event methods. See
+   * the introduction of this class for details.
+   * 
+   * @param expr The expression to serialize.
+   */
+  public void writeExpression(Expression expr)
+  {
+    String methodName = expr.getMethodName();
+    Object[] args = expr.getArguments();
+    Object target = expr.getTarget();
+    Object value = null;
+    
+    try
+      {
+        value = expr.getValue();
+      }
+    catch (Exception e)
+      {
+        throw (InternalError)
+          new InternalError(
+          "The Expression's value should be available at this point.")
+          .initCause(e);
+      }
+
+    // TODO: What if the value is null?
+    ObjectId id;
+    Class valueClass = value.getClass();
+
+    if (target == Array.class)
+      {
+        if (methodName.equals("newInstance"))
+          {
+            id = retrieveId(value);
+            
+            Class ct = (Class) args[0];
+            
+            if (ct.isPrimitive() || ct == Boolean.class || ct == Byte.class
+                || ct == Short.class || ct == Integer.class || ct == Long.class
+                || ct == Float.class || ct == Double.class)
+              primitiveArrayInstantiation(ct.getName(),
+                                          args[1].toString(),
+                                          id);
+            else
+              objectArrayInstantiation(ct.getName(),
+                                       args[1].toString(),
+                                       id);
+            
+            return;
+          }
+        else if (methodName.equals("get"))
+          {
+            arrayGet(args[1].toString());
+
+            // The encoder does not call the ScanEngine
+            // when an object is serialized that we already know.
+            // We test for this situation and insert the object reference
+            // manually.
+            // Since there is already a workaround for the Class class
+            // in writeObject we have to except it from this behavior.
+            id = (ObjectId) objects.get(value);
+            if (id != null && valueClass != Class.class)
+              {
+                objectReference(id);
+                end();
+              }
+            
+            return;
+          }
+        else if (methodName.equals("set"))
+          {
+            arraySet(args[1].toString());
+            return;
+          }
+      }
+    
+    id = retrieveId(value);
+
+    if (target instanceof Class)
+      {
+        if (methodName.equals("new"))
+          {
+            Class targetClass = (Class) target;
+
+            // All primitive types have short-hand forms for their
+            // constructors.
+            if (valueClass == Boolean.class)
+              primitiveInstantiation("boolean", args[0].toString());
+            else if (valueClass == Byte.class)
+              primitiveInstantiation("byte", args[0].toString());
+            else if (valueClass == Short.class)
+              primitiveInstantiation("short", args[0].toString());
+            else if (valueClass == Integer.class)
+              primitiveInstantiation("int", args[0].toString());
+            else if (valueClass == Long.class)
+              primitiveInstantiation("long", args[0].toString());
+            else if (valueClass == Float.class)
+              primitiveInstantiation("float", args[0].toString());
+            else if (valueClass == Double.class)
+              primitiveInstantiation("double", args[0].toString());
+            else
+              objectInstantiation(targetClass.getName(), id);
+
+            return;
+          }
+        else if (value instanceof Class)
+          {
+            String className = ((Class) value).getName();
+
+            // At this point we know that some *static* method will be called.
+
+            if (methodName.equals("forName"))
+              {
+                // However "Class.forName" represents class resolution and has a
+                // special syntax.
+                classResolution(className);
+                return;
+              }
+            else if (methodName.equals("getField"))
+              {
+                // The same goes for "Class.getField".
+                // Note: The name of the wanted field is given in
+                // the argument array.
+                staticFieldAccess(className, args[0].toString());
+                return;
+              }
+            else
+              {
+                // If nothing fits it is just a static method
+                // invocation which we decode as such.
+                staticMethodInvocation(className, methodName);
+                return;
+              }
+          }
+      }
+    else if (target instanceof List)
+      {
+        // Special behavior for indexed get and set method for list-style
+        // classes.
+        // The arguments are in the args array but we need them as subelements.
+        if (methodName.equals("get"))
+          {
+            listGet();
+            return;
+          }
+        else if (methodName.equals("set"))
+          {
+            listSet();
+            return;
+          }
+      }
+
+    // If nothing else could be used then this is a normal
+    // method invocation.
+    methodInvocation(methodName);
+  }
+
+  /**
+   * Ends the current state and returns to the last one.
+   */
+  public void end()
+  {
+    current.end();
+
+    if (DEBUG) System.err.print("back from " + current.getName());
+
+    ScannerState oldCurrent = current;
+    current = (ScannerState) parents.pop();
+
+    if (DEBUG) System.err.println(" to " + current.getName());
+  }
+
+  /**
+   * Returns to the last state and deletes the last element in the object tree.
+   */
+  public void revoke()
+  {
+    ScannerState oldCurrent = current;
+    current = (ScannerState) parents.pop();
+
+    root.deleteLast();
+  }
+
+  /** Scans the argument and calls one of event methods. See
+   * the introduction of this class for details.
+   * 
+   * @param stmt The statement to serialize.
+   */
+  public void writeStatement(Statement stmt)
+  {
+    // This is a simplified version of writeExpression. Everything
+    // that would not create something that is embedded in a <void> tag
+    // is left out (instantiation, getters, ...).
+    // TODO: Is this the right thing to do?
+
+    String methodName = stmt.getMethodName();
+    Object target = stmt.getTarget();
+    Object[] args = stmt.getArguments();
+
+    if (target == Array.class && methodName.equals("set"))
+      {
+        arraySet(args[1].toString());
+        return;
+      }
+
+    if (target instanceof List)
+      {
+        if (methodName.equals("set"))
+          {
+            listSet();
+            return;
+          }
+      }
+
+    // If nothing else could be used then this is a normal
+    // method invocation.
+    methodInvocation(methodName);
+  }
+
+  /** Scans the argument and calls one of event methods. See
+   * the introduction of this class for details.
+   * 
+   * @param o The object to serialize.
+   */
+  public boolean writeObject(Object o)
+  {
+    ObjectId id = null;
+
+    if (o == null)
+      {
+        // Handle null objects which have a special syntax.
+        nullObject();
+        end();
+      }
+    else if (o.getClass() == String.class)
+      {
+        // Handle strings which are treated extremely special
+        // in the encoder (they are never converted into a
+        // Expression).
+        stringReference((String) o);
+        end();
+      }
+    else if ((id = (ObjectId) objects.get(o)) != null)
+      {
+        // Multiple references to a Class object do not generate
+        // an object reference but we use the id to detect that
+        // situation.
+        if (o.getClass() == Class.class)
+          {
+            classResolution(((Class) o).getName());
+            end();
+            return false;
+          }
+        
+        // If our object has a corresponding ObjectId instance
+        // then generate an objectReference. This will 
+        // initialize the id (= brings it in the "used" state)
+        // when this is the first referal.
+        objectReference(id);
+        end();
+        return false;
+      }
+
+    return true;
+  }
+
+  /**
+   * Writes the currently constructed object tree out as
+   * XML and clears the object to {@link ObjectId} relations.
+   */
+  public void flush()
+  {
+    // Make all references unreachable. That means we have to generate
+    // new object ids.
+    objects.clear();
+
+    root.traverse(writer);
+  }
+
+  /** Writes the final bits if the object tree and closes the stream
+   * afterwards.
+   */
+  public void close()
+  {
+    flush();
+    root.close(writer);
+  }
+
+  /**
+   * Does a transition from one state to another using the given event.
+   * 
+   * <p>This involves saving the current state, retrieving it's
+   * successor and setting it as the current state.</p>
+   * 
+   * @param transition One of {@link ScannerStates]'s transition constants.
+   */
+  private void transition(int transition)
+  {
+    parents.push(current);
+
+    String stateName = current.getSuccessor(transition);
+    
+    if (DEBUG)
+      {
+        System.err.println("from state: " + current.getName() + "\n\troute: "
+                           + ScannerState.transitionNames[transition]
+                           + "\n\t\tto state: "
+                           + stateName);
+      }
+    
+    ScannerState newState = (ScannerState) states.get(stateName);
+    
+    newState.enter(new Context(current.getName(), current.getCalls()));
+
+    assert (newState != null) : "State '" + stateName + "' was not defined.";
+
+    current = newState;
+  }
+
+  /** Event method that denotes a (non-static) method invocation.
+   *
+   * <p>More details about this method can be found in this
+   * class' introduction.</p>
+   * 
+   * @param methodName The name of the method which is called.
+   */
+  void methodInvocation(String methodName)
+  {
+    transition(ScannerState.TRANSITION_METHOD_INVOCATION);
+
+    current.methodInvocation(methodName);
+  }
+
+  /** Event method that denotes a static method invocation.
+  *
+  * <p>More details about this method can be found in this
+  * class' introduction.</p>
+  * 
+  * @param methodName The name of the method which is called.
+  * @param className The name of the class in which the method is called.
+  */
+  void staticMethodInvocation(String className, String methodName)
+  {
+    transition(ScannerState.TRANSITION_STATIC_METHOD_INVOCATION);
+
+    current.staticMethodInvocation(className, methodName);
+  }
+
+  /** Event method that denotes the retrieval of a static field's value.
+  *
+  * <p>More details about this method can be found in this
+  * class' introduction.</p>
+  * 
+  * @param fieldName The name of the field whose value is retrieved.
+  * @param className The name of the class in which the method is called.
+  */
+  void staticFieldAccess(String className, String fieldName)
+  {
+    transition(ScannerState.TRANSITION_STATIC_FIELD_ACCESS);
+
+    current.staticFieldAccess(className, fieldName);
+  }
+
+  /** Event method that denotes the resolution of a class.
+  *
+  * <p>More details about this method can be found in this
+  * class' introduction.</p>
+  * 
+  * @param className The name of the class in which the method is called.
+  */
+  void classResolution(String className)
+  {
+    transition(ScannerState.TRANSITION_CLASS_RESOLUTION);
+
+    current.classResolution(className);
+  }
+
+  /** Event method that denotes the instantiation of an object.
+  *
+  * <p>More details about this method can be found in this
+  * class' introduction.</p>
+  * 
+  * @param className The name of the class in which the method is called.
+  * @param objectId An ObjectId instance which can be activated later.
+  */
+  void objectInstantiation(String className, ObjectId objectId)
+  {
+    transition(ScannerState.TRANSITION_OBJECT_INSTANTIATION);
+
+    current.objectInstantiation(className, objectId);
+  }
+
+  /** Event method that denotes the instantiation of a primitive.
+  *
+  * <p>More details about this method can be found in this
+  * class' introduction.</p>
+  * 
+  * @param primitiveName One of "boolean, "byte", "short", "int", "long"
+  * , "float" or "double"
+  * @param valueAsString The value of the primitive as a String.
+  */
+  void primitiveInstantiation(String primitiveName, String valueAsString)
+  {
+    transition(ScannerState.TRANSITION_PRIMITIVE_INSTANTIATION);
+
+    current.primitiveInstantiation(primitiveName, valueAsString);
+  }
+
+  /** Event method that denotes the instantiation of an object array.
+  *
+  * <p>More details about this method can be found in this
+  * class' introduction.</p>
+  * 
+  * @param arrayClassName The array's class name.
+  * @param objectId An ObjectId instance which can be activated later.
+  * @param lengthAsString The array's length as String.
+  */
+  void objectArrayInstantiation(String arrayClassName, String lengthAsString,
+                          ObjectId objectId)
+  {
+    transition(ScannerState.TRANSITION_OBJECT_ARRAY_INSTANTIATION);
+
+    current.objectArrayInstantiation(arrayClassName, lengthAsString, objectId);
+  }
+
+  /** Event method that denotes the instantiation of a primitive array.
+  *
+  * <p>More details about this method can be found in this
+  * class' introduction.</p>
+  * 
+  * @param arrayClassName The array's class name.
+  * @param objectId An ObjectId instance which can be activated later.
+  * @param lengthAsString The array's length as String.
+  */
+  void primitiveArrayInstantiation(String arrayClassName, String lengthAsString,
+                                ObjectId objectId)
+  {
+    transition(ScannerState.TRANSITION_PRIMITIVE_ARRAY_INSTANTIATION);
+
+    current.objectArrayInstantiation(arrayClassName, lengthAsString, objectId);
+  }
+  
+  /** Event method that denotes the setting of a value in an array.
+  *
+  * <p>More details about this method can be found in this
+  * class' introduction.</p>
+  * 
+  * @param indexAsString The index to as a String.
+  */
+  void arraySet(String indexAsString)
+  {
+    transition(ScannerState.TRANSITION_ARRAY_SET);
+
+    current.arraySet(indexAsString);
+  }
+
+  /** Event method that denotes the retrieval of a value in an array.
+  *
+  * <p>More details about this method can be found in this
+  * class' introduction.</p>
+  * 
+  * @param indexAsString The index to as a String.
+  */
+  void arrayGet(String indexAsString)
+  {
+    transition(ScannerState.TRANSITION_ARRAY_GET);
+
+    current.arrayGet(indexAsString);
+  }
+
+  /** Event method that denotes the setting of a value in a list.
+  *
+  * <p>More details about this method can be found in this
+  * class' introduction.</p>
+  */
+  void listSet()
+  {
+    transition(ScannerState.TRANSITION_LIST_SET);
+
+    current.listSet();
+  }
+
+  /** Event method that denotes the retrieval of a value in a list.
+  *
+  * <p>More details about this method can be found in this
+  * class' introduction.</p>
+  */
+  void listGet()
+  {
+    transition(ScannerState.TRANSITION_LIST_GET);
+
+    current.listGet();
+  }
+
+  /** Event method that denotes the null value.
+  */
+  void nullObject()
+  {
+    transition(ScannerState.TRANSITION_NULL_OBJECT);
+
+    current.nullObject();
+  }
+
+  /** Event method that denotes a string.
+   * 
+   * @param string The string that should be written.
+   */
+  void stringReference(String string)
+  {
+    transition(ScannerState.TRANSITION_STRING_REFERENCE);
+
+    current.stringReference(string);
+  }
+
+  /** Event method that denotes a reference to an existing object.
+   * 
+   * @param id The ObjectId to be used.
+   */
+  void objectReference(ObjectId id)
+  {
+    transition(ScannerState.TRANSITION_OBJECT_REFERENCE);
+
+    current.objectReference(id);
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/ScannerState.java b/libjava/classpath/gnu/java/beans/encoder/ScannerState.java
new file mode 100644 (file)
index 0000000..888478a
--- /dev/null
@@ -0,0 +1,236 @@
+/* ScannerState.java
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder;
+
+import java.util.HashMap;
+
+/** <p>Provides the infrastructure for the state machine and the transition
+ * mechanism.</p>
+ * 
+ * <p>Each states knows a set of successor. There can be one successor for
+ * every transition variant. Furthermore a state knows about a default
+ * successor which is taken when there is no special setup for a
+ * transition.</p>
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public abstract class ScannerState
+{
+
+  static final int TRANSITION_METHOD_INVOCATION = 0;
+
+  static final int TRANSITION_STATIC_METHOD_INVOCATION = 1;
+
+  static final int TRANSITION_STATIC_FIELD_ACCESS = 2;
+
+  static final int TRANSITION_CLASS_RESOLUTION = 3;
+
+  static final int TRANSITION_OBJECT_INSTANTIATION = 4;
+
+  static final int TRANSITION_PRIMITIVE_INSTANTIATION = 5;
+
+  static final int TRANSITION_OBJECT_ARRAY_INSTANTIATION = 6;
+
+  static final int TRANSITION_PRIMITIVE_ARRAY_INSTANTIATION = 7;
+
+  static final int TRANSITION_ARRAY_SET = 8;
+
+  static final int TRANSITION_ARRAY_GET = 9;
+
+  static final int TRANSITION_LIST_SET = 10;
+
+  static final int TRANSITION_LIST_GET = 11;
+
+  static final int TRANSITION_NULL_OBJECT = 12;
+
+  static final int TRANSITION_STRING_REFERENCE = 13;
+
+  static final int TRANSITION_OBJECT_REFERENCE = 14;
+
+  static final int TRANSITION_FIRST = 0;
+
+  static final int TRANSITION_LAST = 14;
+
+  static final String DEFAULT_STATE_NAME = "default";
+
+  String defaultSuccessor = DEFAULT_STATE_NAME;
+
+  static String[] transitionNames = { "METHOD_INVOCATION", "STATIC_METHOD_INVOCATION",
+                              "STATIC_FIELD_ACCESS", "CLASS_RESOLUTION",
+                              "OBJECT_INSTANTIATION",
+                              "PRIMITIVE_INSTANTIATION", "OBJECT_ARRAY_INSTANTIATION",
+                              "PRIMITIVE_ARRAY_INSTANTIATION",
+                              "ARRAY_SET", "ARRAY_GET", "LIST_SET", "LIST_GET",
+                              "NULL_OBJECT", "STRING_REFERENCE", "OBJECT_REFERENCE" };
+
+  /**
+   * Stores the transition setup as the relation
+   * transition->successor's state name.
+   */
+  HashMap transitions = new HashMap();
+  
+  int calls;
+  
+  Context context;
+  
+  String name;
+  
+  final void init(String newName)
+  {
+    assert (name == null);
+    
+    name = newName;
+  }
+  
+  final String getName()
+  {
+    return name;
+  }
+  
+  final void enter(Context ctx)
+  {
+    calls++;
+    context = ctx;
+    
+    enterImpl(ctx);
+  }
+  
+  protected void enterImpl(Context ctx)
+  {
+  }
+  
+  final Context context()
+  {
+    return context;
+  }
+  
+  final int getCalls()
+  {
+    return calls;
+  }
+
+  /**
+   * <p>Stores a successor's state name for a certain transition.</p>
+   * 
+   * <p>This method is only used at the configuration time of the state
+   * machine.</p>
+   * 
+   * @param transition One of the transition constants.
+   * @param stateName The state name of the successor.
+   */
+  final void putSuccessor(int transition, String stateName)
+  {
+    assert (transition >= TRANSITION_FIRST && transition <= TRANSITION_LAST) :
+      "Transition identifier '" + transition + "' is unknown.";
+
+    transitions.put(new Integer(transition), stateName);
+  }
+
+  /** <p>Retrieves a the state name of a successor for the given transition
+   * constant.</p>
+   * 
+   * <p>Returns the default successor's state name if no special setup was
+   * prepared.</p>
+   * 
+   * @param transition One of the transition constants.
+   * @return The state name of the successor.
+   */
+  final String getSuccessor(int transition)
+  {
+    String state = (String) transitions.get(new Integer(transition));
+
+    return (state == null) ? defaultSuccessor : state;
+  }
+
+  /**
+   * Sets the name for the default successor state.
+   * 
+   * @param newDefaultSuccessor The default successor's state name.
+   */
+  final void setDefaultSuccessor(String newDefaultSuccessor)
+  {
+    defaultSuccessor = newDefaultSuccessor;
+  }
+
+  abstract void methodInvocation(String methodName);
+
+  abstract void staticMethodInvocation(String className, String methodName);
+
+  abstract void staticFieldAccess(String className, String fieldName);
+
+  abstract void classResolution(String className);
+
+  abstract void objectInstantiation(String className, ObjectId objectId);
+
+  abstract void primitiveInstantiation(String primitiveName,
+                                       String valueAsString);
+
+  abstract void objectArrayInstantiation(String arrayClassName, String lengthAsString, ObjectId objectId);
+  
+  abstract void primitiveArrayInstantiation(String arrayClassName, String lengthAsString, ObjectId objectId);
+
+  abstract void arraySet(String indexAsString);
+
+  abstract void arrayGet(String indexAsString);
+
+  abstract void listGet();
+
+  abstract void listSet();
+
+  abstract void nullObject();
+
+  abstract void stringReference(String string);
+
+  abstract void objectReference(ObjectId id);
+
+  /**
+   * <p>A special event that does not provoke a direct transition.</p>
+   * 
+   * <p>Instead the transition is done by the <code>ScanEngine</code>: It goes
+   * back to the previous state and just uses this method to inform the state
+   * about this happening.</p>
+   */
+  abstract void end();
+
+  void enter()
+  {
+  }
+  
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/StAXWriter.java b/libjava/classpath/gnu/java/beans/encoder/StAXWriter.java
new file mode 100644 (file)
index 0000000..fdb5f7d
--- /dev/null
@@ -0,0 +1,233 @@
+/* StAXWriter.java
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder;
+
+import java.io.OutputStream;
+
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+/** A {@link Writer} implementation based on the StAX API.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public class StAXWriter implements Writer
+{
+  XMLStreamWriter writer;
+
+  int indent = 0;
+  
+  public StAXWriter(OutputStream os)
+  {
+    try
+      {
+        XMLOutputFactory factory = XMLOutputFactory.newInstance();
+        writer = factory.createXMLStreamWriter(os);
+      }
+    catch (XMLStreamException se)
+      {
+        throw (InternalError)
+          new InternalError(
+          "Could not instantiate a streaming XML writer.")
+          .initCause(se);
+      }
+
+  }
+  
+  public void flush()
+  {
+    if (writer != null)
+      {
+        try
+          {
+            writer.flush();
+          }
+        catch (XMLStreamException xse)
+          {
+            // TODO: find out
+          }
+      }
+
+  }
+
+  public void close()
+  {
+    if (writer != null)
+      {
+        try
+          {
+            writer.close();
+          }
+        catch (XMLStreamException xse)
+          {
+            // TODO: find out
+          }
+        writer = null;
+      }
+
+  }
+
+  public void writePreamble()
+  {
+    try
+      {
+        writer.writeStartDocument("UTF-8", "1.0");
+      }
+    catch (XMLStreamException xmlse)
+      {
+
+      }
+  }
+
+  public void writeEnd(boolean wasEmpty)
+  {
+    try
+      {
+        indent -= 2;
+
+        if (wasEmpty)
+          return;
+
+        for (int i = 0; i < indent; i++)
+          writer.writeCharacters(" ");
+
+        writer.writeEndElement();
+
+        writer.writeCharacters("\n");
+      }
+    catch (XMLStreamException xmlse)
+      {
+
+      }
+  }
+  
+  public void writeEndNoChildren()
+  {
+    try
+      {
+        writer.writeEndElement();
+        writer.writeCharacters("\n");
+      }
+    catch (XMLStreamException xmlse)
+      {
+
+      }
+  }
+
+  public void write(String tagName, boolean empty)
+  {
+    write(tagName, null, null, null, empty);
+  }
+
+  public void write(String tagName, String value)
+  {
+    write(tagName, value, null, null, value == null);
+  }
+
+  public void writeNoChildren(String tagName, String value)
+  {
+    try
+      {
+        for (int i = 0; i < indent; i++)
+          writer.writeCharacters(" ");
+
+        writer.writeStartElement(tagName);
+
+        writer.writeCharacters(value);
+      }
+    catch (XMLStreamException xmlse)
+      {
+
+      }
+  }
+
+  public void write(String tagName, String attributeName,
+                    String attributeValue, boolean empty)
+  {
+    write(tagName, null, new String[] { attributeName },
+          new String[] { attributeValue }, empty);
+  }
+
+  public void write(String tagName, String value, String[] attributeNames,
+                    String[] attributeValues, boolean empty)
+  {
+    try
+      {
+        for (int i = 0; i < indent; i++)
+
+          writer.writeCharacters(" ");
+
+        if (empty)
+          writer.writeEmptyElement(tagName);
+        else
+          writer.writeStartElement(tagName);
+
+        if (attributeNames != null)
+          for (int i = 0; i < attributeNames.length; i++)
+            writer.writeAttribute(attributeNames[i], attributeValues[i]);
+
+        writer.writeCharacters("\n");
+
+        indent += 2;
+
+        if (value != null)
+          {
+            for (int i = 0; i < indent; i++)
+              writer.writeCharacters(" ");
+
+            writer.writeCharacters(value);
+
+            writer.writeCharacters("\n");
+          }
+      }
+    catch (XMLStreamException xmlse)
+      {
+
+      }
+  }
+
+  public void write(String tagName, String[] attributeNames,
+                    String[] attributeValues, boolean empty)
+  {
+    write(tagName, null, attributeNames, attributeValues, empty);
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/Writer.java b/libjava/classpath/gnu/java/beans/encoder/Writer.java
new file mode 100644 (file)
index 0000000..57203d2
--- /dev/null
@@ -0,0 +1,174 @@
+/* Writer.java -- Writing interface for XML persistence.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder;
+
+/** A <code>Writer</code> represents a simplified interface to an XML
+ * writer that is used for the XML persistence mechanism.
+ * 
+ * <p>Its sole purpose is to allow multiple backends which may remove
+ * the need to have certain APIs in the classpath. Eg. it is possible
+ * to write a stripped down XML Writer that does not rely on SAX, StAX
+ * or DOM APIs.</p>
+ * 
+ * <p>The caller may assume that every action is done immediately. However
+ * it is possible that the underlying implementation uses buffering streams.
+ * To make sure the data is written call the {@link flush} method.</p>
+ * 
+ * <p>The <code>Writer</code> implementation should care about the formatting
+ * of the XML stream making it possible to generate three types of formats using
+ * a special method invocation chain.</p>
+ * 
+ * <p>Write
+ * <code>
+ * &lt;element/&gt;
+ * </code>
+ * by issuing <code>write("element", true)</code> (or any of the other
+ * write-variants that allows specifying the <code>isEmpty</code> argument)
+ * and <code>writeEnd(true)</code>.</p>
+ * 
+ * <p>Write
+ * <code>
+ * &lt;element&gt;body&lt;/element&gt;
+ * </code>
+ * by issuing <code>writeNoChildren("element", "body")</code> and <code>writeNoChildrenEnd()</code>.</p>
+ * 
+ * <p>
+ * Write
+ * <code>
+ * &lt;element&gt;
+ *   &lt;child1/&gt;
+ *   &lt;child2/&gt;
+ *   ...
+ * &lt;element/&gt;
+ * </code>
+ * by issuing <code>write("element", false)</code> (or any of the other
+ * write-variants that allows specifying the <code>isEmpty</code> argument)
+ * and <code>writeEnd(false)</code>.</p>
+ * 
+ * <p>Note: It is important that the values of <code>isEmpty</code> and
+ * <code>wasEmpty</code> match. Otherwise strange things might happen to
+ * the layout.</p>
+ *
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public interface Writer
+{
+  // TODO: This interface's design is not the best. Feel free to 
+  // improve it as you like.
+
+  /** Writes the XML preamble. */
+  void writePreamble();
+
+  /** Writes the end of an XML tag.
+   * 
+   * <p>If your tag has not generated any body text or child
+   * elements provide <code>true</code> as the argument to generate
+   * more space efficient variant of the tag.>/p> 
+   * 
+   * @param wasEmpty Whether the tag was empty or not.
+   */
+  void writeEnd(boolean wasEmpty);
+
+  /** Writes an XML tag without any attributes. 
+   * 
+   * @param tagName The name of the tag to write.
+   * @param empty Whether the element has child elements.
+   */
+  void write(String tagName, boolean empty);
+
+  /** Writes an XML tag with one attribute name and value.
+   * 
+   * @param tagName The name of the tag to write.
+   * @param attributeName The name of attribute. 
+   * @param attributeValue The attribute's value.
+   * @param empty Whether the element has child elements.
+   */
+  void write(String tagName, String attributeName, String attributeValue, boolean empty);
+
+  /** Writes an XML tag with multiple attributes and a body text.
+   * 
+   * @param tagName The name of the tag to write.
+   * @param value The element's body content.
+   * @param attributeNames A set of attribute names.
+   * @param attributeValues A set of attribute values.
+   * @param empty Whether the element has child elements.
+   */
+  void write(String tagName, String value, String[] attributeNames,
+             String[] attributeValues, boolean empty);
+
+  /** Writes an XML tag with multiple attributes without a body text.
+   * 
+   * @param tagName The name of the tag to write.
+   * @param attributeNames A set of attribute names.
+   * @param attributeValues A set of attribute values.
+   * @param empty Whether the element has child elements.
+   */
+  void write(String tagName, String[] attributeNames, String[] attributeValues, boolean empty);
+
+  /** Writes an XML tag with no attributes but with a body text
+   * that may have child elements.
+   * 
+   * @param tagName The name of the tag to write.
+   * @param value The element's body content.
+   */
+  void write(String tagName, String value);
+
+  /** Writes an XML tag with no attributes but with a body text
+   * that does not have child elements.
+   * 
+   * @param tagName The name of the tag to write.
+   * @param value The element's body content.
+   */
+  void writeNoChildren(String tagName, String value);
+  
+  /** Writes the end of an XML tag that has no child elements.
+   * 
+   * <p>Must be used in combination with {@link writeNoChildren} only.</p>
+   */
+  void writeEndNoChildren();
+
+  /** Forces the implementation to write some data.
+   */
+  void flush();
+
+  /** Closes the writer.
+   */
+  void close();
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/ArrayInstantiation.java b/libjava/classpath/gnu/java/beans/encoder/elements/ArrayInstantiation.java
new file mode 100644 (file)
index 0000000..a9aef89
--- /dev/null
@@ -0,0 +1,74 @@
+/* ArrayInstantiation.java
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import gnu.java.beans.encoder.ObjectId;
+import gnu.java.beans.encoder.Writer;
+
+/** Generates an XML element denoting the instantiation of an array.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public class ArrayInstantiation extends Element
+{
+  final String className;
+
+  final String lengthAsString;
+
+  public ArrayInstantiation(String newClassName, String newLengthAsString)
+  {
+    className = newClassName;
+    lengthAsString = newLengthAsString;
+  }
+
+  public void writeStart(Writer writer)
+  {
+    ObjectId objectId = getId();
+    if (objectId.isUnused())
+      writer.write("array", new String[] { "class", "length" },
+                   new String[] { className, lengthAsString }, isEmpty());
+    else
+      writer.write("array", new String[] { "id", "class", "length" },
+                   new String[] { objectId.toString(), className,
+                                 lengthAsString }, isEmpty());
+
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/Array_Get.java b/libjava/classpath/gnu/java/beans/encoder/elements/Array_Get.java
new file mode 100644 (file)
index 0000000..ca2ce0f
--- /dev/null
@@ -0,0 +1,62 @@
+/* Array_Get.java
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import gnu.java.beans.encoder.Writer;
+
+/**
+ * Generates an XML element denoting the retrieval of an array value.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ */
+public class Array_Get extends Element
+{
+  final String indexAsString;
+
+  public Array_Get(String newIndexAsString)
+  {
+    indexAsString = newIndexAsString;
+  }
+
+  public void writeStart(Writer writer)
+  {
+    writer.write("void", "index", indexAsString, isEmpty());
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/Array_Set.java b/libjava/classpath/gnu/java/beans/encoder/elements/Array_Set.java
new file mode 100644 (file)
index 0000000..0962320
--- /dev/null
@@ -0,0 +1,57 @@
+/* Array_Set.java -- FIXME: briefly describe file purpose
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import gnu.java.beans.encoder.Writer;
+
+public class Array_Set extends Element
+{
+  final String indexAsString;
+
+  public Array_Set(String newIndexAsString)
+  {
+    indexAsString = newIndexAsString;
+  }
+
+  public void writeStart(Writer writer)
+  {
+    writer.write("void", "index", indexAsString, isEmpty());
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/ClassResolution.java b/libjava/classpath/gnu/java/beans/encoder/elements/ClassResolution.java
new file mode 100644 (file)
index 0000000..8e640d1
--- /dev/null
@@ -0,0 +1,67 @@
+/* ClassResolution.java
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import gnu.java.beans.encoder.Writer;
+
+/** Generates an XML element denoting the resolution of a class.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public class ClassResolution extends Element
+{
+  final String className;
+
+  public ClassResolution(String newClassName)
+  {
+    className = newClassName;
+  }
+
+  public void writeStart(Writer writer)
+  {
+    writer.writeNoChildren("class", className);
+  }
+  
+  public void writeEnd(Writer writer)
+  {
+    writer.writeEndNoChildren();
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/Element.java b/libjava/classpath/gnu/java/beans/encoder/elements/Element.java
new file mode 100644 (file)
index 0000000..5681d2b
--- /dev/null
@@ -0,0 +1,157 @@
+/* Element.java -- Base class for object tree elements.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+
+import gnu.java.beans.encoder.ObjectId;
+import gnu.java.beans.encoder.Writer;
+
+/** <code>Element</code> is the base class for the object tree elements.
+ * 
+ * <p>It provides the neccessary infrastructure every element subclass
+ * needs in order to interact with the {@link gnu.java.beans.encoder.Root}
+ * class.</p>
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ */
+public abstract class Element
+{
+  /**
+   * Stores the child elements.
+   */
+  private LinkedList children = new LinkedList();
+  
+  /**
+   * An optional ObjectId instance which is needed for certain subclasses
+   * only.
+   */
+  private ObjectId objectId;
+  
+  /** Sets an {@link gnu.java.beans.encoder.ObjectId} instance in this
+   * <code>Element</code>.
+   * 
+   * <p>This can only be done once.</p>
+   * 
+   * @param objectId An ObjectId instance.
+   */
+  public final void initId(ObjectId objectId)
+  {
+    assert (this.objectId == null);
+    assert (objectId != null);
+    
+    this.objectId = objectId;
+  }
+
+  /** Adds a child element to this <code>Element</code>.
+   * 
+   * @param elem The new child.
+   */
+  public final void addChild(Element elem)
+  {
+    children.add(elem);
+  }
+  
+  /** Removes the child element added last.
+   */
+  public final void removeLast()
+  {
+    children.removeLast();
+  }
+  
+  /** Provides access to the child elements via an iterator.
+   * 
+   * @return An iterator for the child elements.
+   */
+  public final Iterator iterator(){
+    return children.iterator();
+  }
+  
+  /** Clears all the stored child elements.
+   * 
+   */
+  public final void clear()
+  {
+   children.clear(); 
+  }
+  
+  /** Returns whether this element contains child elements.
+   * 
+   * <p>This method is useful to decide which formatting variant
+   * for the XML element can be chosen.</p>
+   * 
+   * @return Whether the element has child elements.
+   */
+  public final boolean isEmpty()
+  {
+    return children.isEmpty(); 
+  }
+  
+  /** Retrieves the element's {@link gnu.java.beans.encoder.ObjectId} instance
+   * if it has one.
+   * 
+   * @return The ObjectId instance or <code>null</code>.
+   */
+  public final ObjectId getId()
+  {
+    return objectId;
+  }
+  
+  /** Writes the opening XML tag.
+   * 
+   * @param writer The writer to be used for XML writing.
+   */
+  public abstract void writeStart(Writer writer);
+  
+  /** Writes the closing XML tag.
+   * 
+   * <p>By default this does <code>writer.writeEnd(children.isEmpty())</code>.
+   * Override if neccessary, for example when using the
+   * {@link gnu.java.beans.encoder.Writer#writeNoChildren}</code> method
+   * variants. 
+   * 
+   * @param writer The writer to be used for XML writing.
+   */
+  public void writeEnd(Writer writer)
+  {
+    writer.writeEnd(children.isEmpty());
+  }
+  
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/List_Get.java b/libjava/classpath/gnu/java/beans/encoder/elements/List_Get.java
new file mode 100644 (file)
index 0000000..e73afa8
--- /dev/null
@@ -0,0 +1,56 @@
+/* List_Get.java
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import gnu.java.beans.encoder.Writer;
+
+/** Generates an XML element denoting the retrieval of a list's element.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public class List_Get extends Element
+{
+
+  public void writeStart(Writer writer)
+  {
+    writer.write("object", "get");
+  }
+  
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/List_Set.java b/libjava/classpath/gnu/java/beans/encoder/elements/List_Set.java
new file mode 100644 (file)
index 0000000..03c73fd
--- /dev/null
@@ -0,0 +1,56 @@
+/* List_Set.java
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import gnu.java.beans.encoder.Writer;
+
+/** Generates an XML element denoting the setting of a list's element.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public class List_Set extends Element
+{
+
+  public void writeStart(Writer writer)
+  {
+    writer.write("object", "set");
+  }
+  
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/MethodInvocation.java b/libjava/classpath/gnu/java/beans/encoder/elements/MethodInvocation.java
new file mode 100644 (file)
index 0000000..d5b3174
--- /dev/null
@@ -0,0 +1,62 @@
+/* MethodCall.java
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import gnu.java.beans.encoder.Writer;
+
+/** Generates an XML element denoting a non-static method call.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public class MethodInvocation extends Element
+{
+  final String methodName;
+  
+  public MethodInvocation(String newMethodName)
+  {
+    methodName = newMethodName;
+  }
+  
+  public void writeStart(Writer writer)
+  {
+    writer.write("void", "method", methodName, isEmpty());
+  }
+  
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/NullObject.java b/libjava/classpath/gnu/java/beans/encoder/elements/NullObject.java
new file mode 100644 (file)
index 0000000..599c4d8
--- /dev/null
@@ -0,0 +1,61 @@
+/* NullObject.java
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import gnu.java.beans.encoder.Writer;
+
+/** Generates an XML element denoting the <code>null</code> value.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public class NullObject extends Element
+{
+
+  public void writeStart(Writer writer)
+  {
+    writer.write("null", true);
+  }
+
+  public void writeEnd(Writer writer)
+  {
+    writer.writeEnd(true);
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/ObjectInstantiation.java b/libjava/classpath/gnu/java/beans/encoder/elements/ObjectInstantiation.java
new file mode 100644 (file)
index 0000000..692227d
--- /dev/null
@@ -0,0 +1,68 @@
+/* ObjectInstantiation.java
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import gnu.java.beans.encoder.ObjectId;
+import gnu.java.beans.encoder.Writer;
+
+/** Generates an XML element denoting the instantiation of an object.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public class ObjectInstantiation extends Element
+{
+  final String className;
+
+  public ObjectInstantiation(String newClassName)
+  {
+    className = newClassName;
+  }
+
+  public void writeStart(Writer writer)
+  {
+    ObjectId objectId = getId();
+    if (objectId.isUnused())
+      writer.write("object", "class", className, isEmpty());
+    else
+      writer.write("object", new String[] { "id", "class" },
+                   new String[] { objectId.toString(), className }, isEmpty());
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/ObjectReference.java b/libjava/classpath/gnu/java/beans/encoder/elements/ObjectReference.java
new file mode 100644 (file)
index 0000000..a44c2ee
--- /dev/null
@@ -0,0 +1,68 @@
+/* StringInstantiation.java
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import gnu.java.beans.encoder.ObjectId;
+import gnu.java.beans.encoder.Writer;
+
+/** Generates an XML element denoting referencing an existing object.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public class ObjectReference extends Element
+{
+  final ObjectId id;
+
+  public ObjectReference(ObjectId newId)
+  {
+    id = newId;
+    
+    // Initializing the Id here is making sure it gets
+    // actually used. This step modifies the Id instance
+    // in other elements.
+    id.init();
+  }
+
+  public void writeStart(Writer writer)
+  {
+    writer.write("object", "idref", id.toString(), isEmpty());
+  }
+  
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/PrimitiveInstantiation.java b/libjava/classpath/gnu/java/beans/encoder/elements/PrimitiveInstantiation.java
new file mode 100644 (file)
index 0000000..db08edb
--- /dev/null
@@ -0,0 +1,69 @@
+/* PrimitiveInstantiation.java
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import gnu.java.beans.encoder.Writer;
+
+/** Generates an XML element denoting a primitive data value.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public class PrimitiveInstantiation extends Element
+{
+  final String primitiveName;
+
+  final String valueAsString;
+
+  public PrimitiveInstantiation(String newPrimitiveName, String newValueAsString)
+  {
+    primitiveName = newPrimitiveName;
+    valueAsString = newValueAsString;
+  }
+
+  public void writeStart(Writer writer)
+  {
+    writer.writeNoChildren(primitiveName, valueAsString);
+  }
+
+  public void writeEnd(Writer writer)
+  {
+    writer.writeEndNoChildren();
+  }
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/StaticFieldAccess.java b/libjava/classpath/gnu/java/beans/encoder/elements/StaticFieldAccess.java
new file mode 100644 (file)
index 0000000..7ed935d
--- /dev/null
@@ -0,0 +1,66 @@
+/* StaticFieldAccess.java
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import gnu.java.beans.encoder.Writer;
+
+/** Generates an XML element denoting a static method call.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public class StaticFieldAccess extends Element
+{
+  final String className;
+
+  final String fieldName;
+
+  public StaticFieldAccess(String newClassName, String newFieldName)
+  {
+    className = newClassName;
+    fieldName = newFieldName;
+  }
+
+  public void writeStart(Writer writer)
+  {
+    writer.write("object", new String[] { "class", "field" },
+                 new String[] { className, fieldName }, isEmpty());
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/StaticMethodInvocation.java b/libjava/classpath/gnu/java/beans/encoder/elements/StaticMethodInvocation.java
new file mode 100644 (file)
index 0000000..40c46a5
--- /dev/null
@@ -0,0 +1,67 @@
+/* StaticMethodCall.java
+  -- A class denoting an XML element which makes up a static method call.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import gnu.java.beans.encoder.Writer;
+
+/**
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ *
+ */
+public class StaticMethodInvocation extends Element
+{
+  final String className;
+  
+  final String methodName;
+  
+  public StaticMethodInvocation(String newClassName, String newMethodName)
+  {
+    className = newClassName;
+    methodName = newMethodName;
+  }
+  
+  public void writeStart(Writer writer)
+  {
+    writer.write("void", new String[] { "class", "method" },
+                 new String[] { className, methodName }, isEmpty());
+  }
+  
+}
diff --git a/libjava/classpath/gnu/java/beans/encoder/elements/StringReference.java b/libjava/classpath/gnu/java/beans/encoder/elements/StringReference.java
new file mode 100644 (file)
index 0000000..c368e65
--- /dev/null
@@ -0,0 +1,63 @@
+/* StringInstantiation.java
+  -- A class denoting an XML element which retrieves an array element.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package gnu.java.beans.encoder.elements;
+
+import gnu.java.beans.encoder.Writer;
+
+public class StringReference extends Element
+{
+  final String string;
+
+  public StringReference(String newString)
+  {
+    string = newString;
+  }
+
+  public void writeStart(Writer writer)
+  {
+    writer.writeNoChildren("string", string);
+  }
+  
+  public void writeEnd(Writer writer)
+  {
+    writer.writeEndNoChildren();
+  }
+
+}
index d0f9e8c41302d7cc8c55d64dde50e8e20db5e30d..91fd840b862e2ee21a2a686aa2ec80bed03c68f0 100644 (file)
@@ -128,7 +128,7 @@ public class CRLFInputStream
             in.reset();
             if (i != -1)
               {
-                l = in.read(b, off, i + 1); // read to CR
+                l = in.read(b, off, (i + 1) - off); // read to CR
                 in.read(); // skip LF
                 b[i] = LF; // fix CR as LF
               }
index 339b5561cf29515c161eef5c8ece1828e43477bf..0fcd780dfb9c69b7d7855f8c0b43a967d2cdee57 100644 (file)
@@ -38,8 +38,6 @@ exception statement from your version. */
 
 package gnu.java.net;
 
-import gnu.classpath.Configuration;
-
 import java.io.IOException;
 import java.net.DatagramPacket;
 import java.net.DatagramSocketImpl;
@@ -64,20 +62,7 @@ import java.net.SocketException;
  */
 public final class PlainDatagramSocketImpl extends DatagramSocketImpl
 {
-  // Static initializer to load native library
-  static
-  {
-    if (Configuration.INIT_LOAD_LIBRARY)
-      {
-        System.loadLibrary("javanet");
-      }
-  }
-  
-  /**
-   * Option id for the IP_TTL (time to live) value.
-   */
-  private static final int IP_TTL = 0x1E61; // 7777
-
+   
   /**
    * This is the actual underlying file descriptor
    */
@@ -98,6 +83,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
    */
   public PlainDatagramSocketImpl()
   {
+    // Nothing to do here.
   }
 
   protected void finalize() throws Throwable
@@ -123,15 +109,48 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
    *
    * @exception SocketException If an error occurs
    */
-  protected synchronized native void bind(int port, InetAddress addr)
-    throws SocketException;
+  protected  synchronized void bind(int port, InetAddress addr)
+    throws SocketException
+    {
+      VMPlainDatagramSocketImpl.bind(this, port, addr);
+    }
 
   /**
    * Creates a new datagram socket
    *
    * @exception SocketException If an error occurs
    */
-  protected synchronized native void create() throws SocketException;
+  protected  synchronized void create() throws SocketException
+  {
+    VMPlainDatagramSocketImpl.create(this);
+  }
+
+  /**
+   * Connects to the remote address and port specified as arguments.
+   *
+   * @param addr The remote address to connect to
+   * @param port The remote port to connect to
+   *
+   * @exception SocketException If an error occurs
+   */
+  protected void connect(InetAddress addr, int port) throws SocketException
+  {
+    VMPlainDatagramSocketImpl.connect(this, addr, port);
+  }
+
+  /**
+   * Disconnects the socket.
+   *
+   * @since 1.4
+   */
+  protected void disconnect()
+  {
+    synchronized (this)
+      {
+       if (native_fd != -1)
+         close();
+      }
+  }
 
   /**
    * Sets the Time to Live value for the socket
@@ -142,7 +161,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
    */
   protected synchronized void setTimeToLive(int ttl) throws IOException
   {
-    setOption(IP_TTL, new Integer(ttl));
+    setOption(VMPlainDatagramSocketImpl.IP_TTL, new Integer(ttl));
   }
 
   /**
@@ -154,7 +173,7 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
    */
   protected synchronized int getTimeToLive() throws IOException
   {
-    Object obj = getOption(IP_TTL);
+    Object obj = getOption(VMPlainDatagramSocketImpl.IP_TTL);
 
     if (! (obj instanceof Integer))
       throw new IOException("Internal Error");
@@ -162,20 +181,6 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
     return ((Integer) obj).intValue();
   }
 
-  /**
-   * Sends a packet of data to a remote host
-   *
-   * @param addr The address to send to
-   * @param port The port to send to 
-   * @param buf The buffer to send
-   * @param offset The offset of the data in the buffer to send
-   * @param len The length of the data to send
-   *
-   * @exception IOException If an error occurs
-   */
-  private native void sendto (InetAddress addr, int port,
-                              byte[] buf, int offset, int len)
-    throws IOException;
 
   /**
    * Sends a packet of data to a remote host
@@ -186,12 +191,13 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
    */
   protected void send(DatagramPacket packet) throws IOException
   {
-    synchronized(SEND_LOCK)
+    if (native_fd != -1)
       {
-      sendto(packet.getAddress(), packet.getPort(), packet.getData(), 
-             packet.getOffset(), packet.getLength());
-      }
-    
+        synchronized(SEND_LOCK)
+          {
+            VMPlainDatagramSocketImpl.send(this, packet);
+          }
+      }    
   }
 
   /**
@@ -206,18 +212,10 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
   {
       synchronized(RECEIVE_LOCK)
         {
-        receive0(packet);              
+          VMPlainDatagramSocketImpl.receive(this, packet);     
         }
   }
 
-  /**
-   * Native call to receive a UDP packet from the network
-   * 
-   * @param packet The packet to fill in with the data received
-   *
-   * @exception IOException IOException If an error occurs
-   */
-  private native void receive0(DatagramPacket packet) throws IOException;
 
   /**
    * Sets the value of an option on the socket
@@ -227,8 +225,11 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
    *
    * @exception SocketException If an error occurs
    */
-  public synchronized native void setOption(int option_id, Object val)
-    throws SocketException;
+  public synchronized void setOption(int option_id, Object val)
+    throws SocketException
+    {
+      VMPlainDatagramSocketImpl.setOption(this, option_id, val);
+    }
 
   /**
    * Retrieves the value of an option on the socket
@@ -239,13 +240,19 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
    *
    * @exception SocketException If an error occurs
    */
-  public synchronized native Object getOption(int option_id)
-    throws SocketException;
+  public synchronized Object getOption(int option_id)
+    throws SocketException
+    {
+      return VMPlainDatagramSocketImpl.getOption(this, option_id);
+    }
 
   /**
    * Closes the socket
    */
-  protected synchronized native void close();
+  protected synchronized void close()
+  {
+    VMPlainDatagramSocketImpl.close(this);
+  }
 
   /**
    * Gets the Time to Live value for the socket
@@ -282,7 +289,10 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
    *
    * @exception IOException If an error occurs
    */
-  protected synchronized native void join(InetAddress addr) throws IOException;
+  protected synchronized void join(InetAddress addr) throws IOException
+  {
+    VMPlainDatagramSocketImpl.join(this,addr);
+  }
 
   /**
    * Leaves a multicast group
@@ -291,7 +301,10 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
    *
    * @exception IOException If an error occurs
    */
-  protected synchronized native void leave(InetAddress addr) throws IOException;
+  protected synchronized void leave(InetAddress addr) throws IOException
+  {
+    VMPlainDatagramSocketImpl.leave(this, addr);
+  }
 
   /**
    * What does this method really do?
@@ -308,14 +321,14 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl
   }
 
   public void joinGroup(SocketAddress address, NetworkInterface netIf)
+    throws IOException
   {
-    throw new InternalError
-      ("PlainDatagramSocketImpl::joinGroup is not implemented");
+    VMPlainDatagramSocketImpl.joinGroup(this, address, netIf);
   }
 
   public void leaveGroup(SocketAddress address, NetworkInterface netIf)
+    throws IOException
   {
-    throw new InternalError
-      ("PlainDatagramSocketImpl::leaveGroup is not implemented");
+    VMPlainDatagramSocketImpl.leaveGroup(this, address, netIf);
   }
 }
index 05221ff88e98599fe818babebb357b2f5bbda414..47d05aa410d850cc6ece2cbb51a5438ceeb154ab 100644 (file)
@@ -39,17 +39,13 @@ exception statement from your version. */
 
 package gnu.java.net;
 
-import gnu.classpath.Configuration;
-
-import java.io.IOException;
 import java.io.InputStream;
+import java.io.IOException;
 import java.io.OutputStream;
 import java.net.InetAddress;
-import java.net.InetSocketAddress;
 import java.net.SocketAddress;
 import java.net.SocketException;
 import java.net.SocketImpl;
-import java.net.SocketOptions;
 
 /**
  * Written using on-line Java Platform 1.2 API Specification, as well
@@ -69,14 +65,6 @@ import java.net.SocketOptions;
  */
 public final class PlainSocketImpl extends SocketImpl
 {
-  // Static initializer to load native library.
-  static
-    {
-      if (Configuration.INIT_LOAD_LIBRARY)
-        {
-          System.loadLibrary("javanet");
-        }
-    }
 
   /**
    * The OS file handle representing the socket.
@@ -125,10 +113,11 @@ public final class PlainSocketImpl extends SocketImpl
   }
  
   /**
-   * Default do nothing constructor
+   * Default do nothing constructor.
    */
   public PlainSocketImpl()
   {
+    // Nothing to do here.
   }
   
   protected void finalize() throws Throwable
@@ -142,6 +131,7 @@ public final class PlainSocketImpl extends SocketImpl
            }
          catch (IOException ex)
            {
+          // Nothing we can do about it.
            }
       }
     super.finalize();
@@ -158,121 +148,111 @@ public final class PlainSocketImpl extends SocketImpl
    * Integer.  The option_id parameter is one of the defined constants in
    * this interface.
    *
-   * @param option_id The identifier of the option
-   * @param val The value to set the option to
+   * @param optionId The identifier of the option
+   * @param value The value to set the option to
    *
-   * @exception SocketException If an error occurs
+   * @throws SocketException if an error occurs
    */
-  public native void setOption(int optID, Object value) throws SocketException;
+  public void setOption(int optionId, Object value) throws SocketException
+  {
+    VMPlainSocketImpl.setOption(this, optionId, value);
+  }
 
   /**
    * Returns the current setting of the specified option.  The Object returned
    * will be an Integer for options that have integer values.  The option_id
    * is one of the defined constants in this interface.
    *
-   * @param option_id The option identifier
+   * @param optionId the option identifier
    *
-   * @return The current value of the option
+   * @return the current value of the option
    *
-   * @exception SocketException If an error occurs
+   * @throws SocketException if an error occurs
    */
-  public native Object getOption(int optID) throws SocketException;
+  public Object getOption(int optionId) throws SocketException
+  {
+    return VMPlainSocketImpl.getOption(this, optionId);
+  }
 
-  /**
-   * Flushes the input stream and closes it. If you read from the input stream
-   * after calling this method a <code>IOException</code> will be thrown.
-   * 
-   * @throws IOException if an error occurs
-   */
-  public native void shutdownInput() throws IOException;
+  public void shutdownInput() throws IOException
+  {
+    VMPlainSocketImpl.shutdownInput(this);
+  }
 
-  /**
-   * Flushes the output stream and closes it. If you write to the output stream
-   * after calling this method a <code>IOException</code> will be thrown.
-   * 
-   * @throws IOException if an error occurs
-   */
-  public native void shutdownOutput() throws IOException;
+  public void shutdownOutput() throws IOException
+  {
+    VMPlainSocketImpl.shutdownOutput(this);
+  }
 
   /**
    * Creates a new socket that is not bound to any local address/port and
-   * is not connected to any remote address/port.  This will be created as
-   * a stream socket if the stream parameter is true, or a datagram socket
-   * if the stream parameter is false.
+   * is not connected to any remote address/port.  The stream parameter will be
+   * ignored since PlainSocketImpl always is a stream socket. Datagram sockets
+   * are handled by PlainDatagramSocketImpl.
    *
-   * @param stream true for a stream socket, false for a datagram socket
+   * @param stream <code>true</code> for stream sockets, <code>false</code> for
+   *        datagram sockets
    */
-  protected synchronized native void create(boolean stream) throws IOException;
+  protected synchronized void create(boolean stream) throws IOException
+  {
+    VMPlainSocketImpl.create(this);
+  }
 
   /**
    * Connects to the remote hostname and port specified as arguments.
    *
-   * @param hostname The remote hostname to connect to
-   * @param port The remote port to connect to
+   * @param hostname the remote hostname to connect to
+   * @param port the remote port to connect to
    *
-   * @exception IOException If an error occurs
+   * @throws IOException If an error occurs
    */
-  protected synchronized void connect(String host, int port) throws IOException
+  protected synchronized void connect(String hostname, int port)
+    throws IOException
   {
-    connect(InetAddress.getByName(host), port);
+    connect(InetAddress.getByName(hostname), port);
   }
 
   /**
    * Connects to the remote address and port specified as arguments.
    *
-   * @param addr The remote address to connect to
-   * @param port The remote port to connect to
+   * @param addr the remote address to connect to
+   * @param port the remote port to connect to
    *
-   * @exception IOException If an error occurs
+   * @throws IOException If an error occurs
    */
-  protected native void connect(InetAddress addr, int port) throws IOException;
+  protected void connect(InetAddress addr, int port) throws IOException
+  {
+    VMPlainSocketImpl.connect(this, addr, port);
+  }
 
   /**
    * Connects to the remote socket address with a specified timeout.
    *
-   * @param timeout The timeout to use for this connect, 0 means infinite.
+   * @param address the remote address to connect to
+   * @param timeout the timeout to use for this connect, 0 means infinite.
    *
-   * @exception IOException If an error occurs
+   * @throws IOException If an error occurs
    */
-  protected synchronized void connect(SocketAddress address, int timeout) throws IOException
+  protected synchronized void connect(SocketAddress address, int timeout)
+    throws IOException
   {
-    InetSocketAddress sockAddr = (InetSocketAddress) address;
-    InetAddress addr = sockAddr.getAddress();
-
-    if (addr == null)
-      throw new IllegalArgumentException("address is unresolved: " + sockAddr);
-
-    int port = sockAddr.getPort();
-    
-    if (timeout < 0)
-      throw new IllegalArgumentException("negative timeout");
-
-    Object oldTimeoutObj = null;
-    
-    try
-      {
-       oldTimeoutObj = this.getOption (SocketOptions.SO_TIMEOUT);
-       this.setOption (SocketOptions.SO_TIMEOUT, new Integer (timeout));
-       connect (addr, port);
-      }
-    finally
-      {
-       if (oldTimeoutObj != null)
-         this.setOption (SocketOptions.SO_TIMEOUT, oldTimeoutObj);
-      }
+    VMPlainSocketImpl.connect(this, address, timeout);
   }
 
   /**
    * Binds to the specified port on the specified addr.  Note that this addr
    * must represent a local IP address.  **** How bind to INADDR_ANY? ****
    *
-   * @param addr The address to bind to
-   * @param port The port number to bind to
+   * @param addr the address to bind to
+   * @param port the port number to bind to
    *
-   * @exception IOException If an error occurs
+   * @throws IOException if an error occurs
    */
-  protected synchronized native void bind(InetAddress addr, int port)
-    throws IOException;
+  protected synchronized void bind(InetAddress addr, int port)
+    throws IOException
+  {
+    VMPlainSocketImpl.bind(this, addr, port);
+  }
 
   /**
    * Starts listening for connections on a socket. The queuelen parameter
@@ -282,10 +262,13 @@ public final class PlainSocketImpl extends SocketImpl
    *
    * @param queuelen The length of the pending connection queue
    * 
-   * @exception IOException If an error occurs
+   * @throws IOException If an error occurs
    */
-  protected synchronized native void listen(int queuelen)
-    throws IOException;
+  protected synchronized void listen(int queuelen)
+    throws IOException
+  {
+    VMPlainSocketImpl.listen(this, queuelen);
+  }
 
   /**
    * Accepts a new connection on this socket and returns in in the 
@@ -293,33 +276,44 @@ public final class PlainSocketImpl extends SocketImpl
    *
    * @param impl The SocketImpl object to accept this connection.
    */
-  protected synchronized native void accept(SocketImpl impl)
-    throws IOException;
+  protected synchronized void accept(SocketImpl impl)
+    throws IOException
+  {
+    VMPlainSocketImpl.accept(this, impl);
+  }
 
   /**
    * Returns the number of bytes that the caller can read from this socket
    * without blocking. 
    *
-   * @return The number of readable bytes before blocking
+   * @return the number of readable bytes before blocking
    *
-   * @exception IOException If an error occurs
+   * @throws IOException if an error occurs
    */
-  protected native int available() throws IOException;
+  protected int available() throws IOException
+  {
+    return VMPlainSocketImpl.available(this);
+  }
 
   /**
    * Closes the socket.  This will cause any InputStream or OutputStream
    * objects for this Socket to be closed as well.
+   *
    * <p>
    * Note that if the SO_LINGER option is set on this socket, then the
    * operation could block.
+   * </p>
    *
-   * @exception IOException If an error occurs
+   * @throws IOException if an error occurs
    */
-  protected native void close() throws IOException;
+  protected void close() throws IOException
+  {
+    VMPlainSocketImpl.close(this);
+  }
 
   public void sendUrgentData(int data)
   {
-    throw new InternalError ("PlainSocketImpl::sendUrgentData not implemented");
+    VMPlainSocketImpl.sendUrgendData(this, data);
   }
 
   /**
@@ -327,22 +321,53 @@ public final class PlainSocketImpl extends SocketImpl
    * the connection.  Reads up to len bytes of data into the buffer
    * buf starting at offset bytes into the buffer.
    *
-   * @return The actual number of bytes read or -1 if end of stream.
+   * @return the actual number of bytes read or -1 if end of stream.
    *
-   * @exception IOException If an error occurs
+   * @throws IOException if an error occurs
+   */
+  protected int read(byte[] buf, int offset, int len)
+    throws IOException
+  {
+    return VMPlainSocketImpl.read(this, buf, offset, len);
+  }
+
+  /**
+   * Internal method used by SocketInputStream for reading data from
+   * the connection.  Reads and returns one byte of data.
+   *
+   * @return the read byte
+   *
+   * @throws IOException if an error occurs
    */
-  protected native int read(byte[] buf, int offset, int len)
-    throws IOException;
+  protected int read()
+    throws IOException
+  {
+    return VMPlainSocketImpl.read(this);
+  }
 
   /**
    * Internal method used by SocketOuputStream for writing data to
    * the connection.  Writes up to len bytes of data from the buffer
    * buf starting at offset bytes into the buffer.
    *
-   * @exception IOException If an error occurs
+   * @throws IOException If an error occurs
+   */
+  protected void write(byte[] buf, int offset, int len)
+    throws IOException
+  {
+    VMPlainSocketImpl.write(this, buf, offset, len);
+  }
+
+  /**
+   * Internal method used by SocketOuputStream for writing data to
+   * the connection.  Writes up one byte to the socket.
+   *
+   * @throws IOException If an error occurs
    */
-  protected native void write(byte[] buf, int offset, int len)
-    throws IOException;
+  protected void write(int data) throws IOException
+  {
+    VMPlainSocketImpl.write(this, data);
+  }
 
   /**
    * Returns an InputStream object for reading from this socket.  This will
@@ -356,7 +381,7 @@ public final class PlainSocketImpl extends SocketImpl
   {
     if (in == null)
       in = new SocketInputStream();
-    
+
     return in;
   }
 
@@ -372,7 +397,7 @@ public final class PlainSocketImpl extends SocketImpl
   {
     if (out == null)
       out = new SocketOutputStream();
-    
+
     return out;
   }
 
@@ -380,7 +405,7 @@ public final class PlainSocketImpl extends SocketImpl
    * This class contains an implementation of <code>InputStream</code> for 
    * sockets.  It in an internal only class used by <code>PlainSocketImpl</code>.
    *
-   * @author Nic Ferrier (nferrier@tapsellferrier.co.uk)
+   * @author Nic Ferrier <nferrier@tapsellferrier.co.uk>
    */
   final class SocketInputStream
     extends InputStream
@@ -412,13 +437,7 @@ public final class PlainSocketImpl extends SocketImpl
      */
     public int read() throws IOException
     {
-      byte buf[] = new byte [1];
-      int bytes_read = read(buf, 0, 1);
-      if (bytes_read == -1)
-        return -1;
-
-      return buf[0] & 0xFF;
+      return PlainSocketImpl.this.read();
     }
 
     /**
@@ -450,7 +469,7 @@ public final class PlainSocketImpl extends SocketImpl
    * <code>getOutputStream method</code>.  It expects only to  be used in that
    * context.
    *
-   * @author Nic Ferrier (nferrier@tapsellferrier.co.uk)
+   * @author Nic Ferrier  <nferrier@tapsellferrier.co.uk>
    */
   final class SocketOutputStream
     extends OutputStream
@@ -476,8 +495,7 @@ public final class PlainSocketImpl extends SocketImpl
      */
     public void write(int b) throws IOException
     {
-      byte buf[] = { (byte) b };
-      write(buf, 0, 1);
+      PlainSocketImpl.this.write(b);
     }
 
     /**
index 466f3dd558758983164494a29d2502965741e647..a557c7d3ba602293efa5efa15ac7e3b90bca83b6 100644 (file)
@@ -1,5 +1,5 @@
 /* FileChannelImpl.java -- 
-   Copyright (C) 2002, 2004, 2005  Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2005, 2006  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -301,8 +301,10 @@ public final class FileChannelImpl extends FileChannel
     else if (mode == MapMode.READ_WRITE || mode == MapMode.PRIVATE)
       {
        nmode = mode == MapMode.READ_WRITE ? '+' : 'c';
-       if ((this.mode & (READ|WRITE)) != (READ|WRITE))
+       if ((this.mode & WRITE) != WRITE)
          throw new NonWritableChannelException();
+       if ((this.mode & READ) != READ)
+         throw new NonReadableChannelException();
       }
     else
       throw new IllegalArgumentException ("mode: " + mode);
index 3f25c598851890e38243ad714e4ec8fa1848270f..01c2650a81b7c56d949a059a38e238a981de4000 100644 (file)
@@ -1,5 +1,5 @@
 /* Provider.java -- 
-   Copyright (C) 2002, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -39,6 +39,8 @@ package gnu.java.nio.charset;
 
 import java.nio.charset.Charset;
 import java.nio.charset.spi.CharsetProvider;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -47,6 +49,11 @@ import java.util.Iterator;
  * Charset provider for the required charsets.  Used by
  * {@link Charset#charsetForName} and * {@link Charset#availableCharsets}.
  *
+ * Note: This class is a privileged class, because it can be instantiated without
+ * requiring the RuntimePermission("charsetProvider"). There is a check in
+ * java.nio.charset.spi.CharsetProvider to skip the security check if the provider
+ * is an instance of this class.
+ *
  * @author Jesse Rosenstock
  * @author Robert Schuster (thebohemian@gmx.net)
  * @see Charset
@@ -55,14 +62,6 @@ public final class Provider extends CharsetProvider
 {
   private static Provider singleton;
 
-  static
-  {
-    synchronized (Provider.class)
-      {
-        singleton = null;
-      }
-  }
-
   /**
    * Map from charset name to charset canonical name. The strings
    * are all lower-case to allow case-insensitive retrieval of
@@ -232,8 +231,16 @@ public final class Provider extends CharsetProvider
 
   public static synchronized Provider provider ()
   {
+    // The default provider is safe to instantiate.
     if (singleton == null)
-      singleton = new Provider ();
+      singleton = (Provider) AccessController.doPrivileged
+       (new PrivilegedAction()
+         {
+           public Object run()
+           {
+             return new Provider();
+           }
+         });
     return singleton;
   }
 }
index 873e9ecda419526e4d8f3825de2738e266bee8f5..6fd8b7440823a9783ca6a464f3b9d0865d57f574 100644 (file)
@@ -1,5 +1,5 @@
 /* IconvProvider.java --
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -48,20 +48,17 @@ import java.util.Vector;
 /**
  * Charset provider wrapping iconv.
  *
+ * Note: This class is a privileged class, because it can be instantiated without
+ * requiring the RuntimePermission("charsetProvider"). There is a check in
+ * java.nio.charset.spi.CharsetProvider to skip the security check if the provider
+ * is an instance of this class.
+ *
  * @author Sven de Marothy
  */
 public final class IconvProvider extends CharsetProvider
 {
   private static IconvProvider singleton;
 
-  static
-    {
-      synchronized (IconvProvider.class)
-        {
-         singleton = null;
-        }
-    }
-
   // Declaring the construtor public may violate the use of singleton.
   // But it must be public so that an instance of this class can be
   // created by Class.newInstance(), which is the case when this provider is
index c1b871fb8e5c63b5efaa849cbce598f3328c4a18..8097a04663c990bdf6d36e1af20830ec93879354 100644 (file)
@@ -47,6 +47,7 @@ import java.io.ObjectOutput;
 import java.io.ObjectOutputStream;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.rmi.ConnectException;
 import java.rmi.Remote;
 import java.rmi.RemoteException;
 import java.rmi.server.ObjID;
@@ -195,7 +196,7 @@ public RemoteCall newCall(RemoteObject obj, Operation[] op, int opnum, long hash
                conn = manager.getConnection();
        }
        catch (IOException e1) {
-               throw new RemoteException("connection failed to host: " + manager.serverName, e1);
+               throw new ConnectException("connection failed to host: " + manager.serverName, e1);
        }
 
     //obj: useless?
index b75de5caa952a2cbf7b466b9b19bc0b7929289cb..4b6bd10d9dd52e3990b591649dc3cfc6cea1dafc 100644 (file)
@@ -1,5 +1,5 @@
 /* Engine -- generic getInstance method.
-   Copyright (C) 2003  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -130,7 +130,14 @@ public final class Engine
                                    Provider provider, Object[] initArgs)
     throws InvocationTargetException, NoSuchAlgorithmException
   {
-    if (service == null || algorithm == null
+    if (service != null)
+      service = service.trim();
+
+    if (algorithm != null)
+      algorithm = algorithm.trim();
+
+    if (service == null || service.length() == 0
+        || algorithm == null || algorithm.length() == 0
         || provider == null || initArgs == null)
       throw new IllegalArgumentException();
 
diff --git a/libjava/classpath/gnu/java/util/WeakIdentityHashMap.java b/libjava/classpath/gnu/java/util/WeakIdentityHashMap.java
new file mode 100644 (file)
index 0000000..210a3d8
--- /dev/null
@@ -0,0 +1,862 @@
+/* WeakIdentityHashMap -- an identity hashtable that keeps only weak references
+   to its keys, allowing the virtual machine to reclaim them
+   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.util;
+
+import java.lang.ref.ReferenceQueue;
+import java.lang.ref.WeakReference;
+import java.util.AbstractMap;
+import java.util.AbstractSet;
+import java.util.Collection;
+import java.util.ConcurrentModificationException;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Set;
+
+/**
+ * A weak hash map has only weak references to the key. This means that it
+ * allows the key to be garbage collected if it is not used otherwise. If
+ * this happens, the entry will eventually disappear from the map,
+ * asynchronously.
+ *
+ * <p>Other strange behaviors to be aware of: The size of this map may
+ * spontaneously shrink (even if you use a synchronized map and synchronize
+ * it); it behaves as if another thread removes entries from this table
+ * without synchronization.  The entry set returned by <code>entrySet</code>
+ * has similar phenomenons: The size may spontaneously shrink, or an
+ * entry, that was in the set before, suddenly disappears.
+ *
+ * <p>A weak hash map is not meant for caches; use a normal map, with
+ * soft references as values instead, or try {@link LinkedHashMap}.
+ *
+ * <p>The weak hash map supports null values and null keys.  The null key
+ * is never deleted from the map (except explictly of course). The
+ * performance of the methods are similar to that of a hash map.
+ *
+ * <p>The value objects are strongly referenced by this table.  So if a
+ * value object maintains a strong reference to the key (either direct
+ * or indirect) the key will never be removed from this map.  According
+ * to Sun, this problem may be fixed in a future release.  It is not
+ * possible to do it with the jdk 1.2 reference model, though.
+ *
+ * @author Jochen Hoenicke
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @author Jeroen Frijters
+ *
+ * @see HashMap
+ * @see WeakReference
+ * @see WeakHashMap
+ * @see IdentityHashMap
+ * @see LinkedHashMap
+ */
+public class WeakIdentityHashMap extends AbstractMap implements Map
+{
+  /**
+   * The default capacity for an instance of HashMap.
+   * Sun's documentation mildly suggests that this (11) is the correct
+   * value.
+   */
+  private static final int DEFAULT_CAPACITY = 11;
+
+  /**
+   * The default load factor of a HashMap.
+   */
+  private static final float DEFAULT_LOAD_FACTOR = 0.75F;
+
+  /**
+   * This is used instead of the key value <i>null</i>.  It is needed
+   * to distinguish between an null key and a removed key.
+   */
+  // Package visible for use by nested classes.
+  static final Object NULL_KEY = new Object();
+
+  /**
+   * The reference queue where our buckets (which are WeakReferences) are
+   * registered to.
+   */
+  private final ReferenceQueue queue;
+
+  /**
+   * The number of entries in this hash map.
+   */
+  // Package visible for use by nested classes.
+  int size;
+
+  /**
+   * The load factor of this WeakIdentityHashMap.  This is the maximum ratio of
+   * size versus number of buckets.  If size grows the number of buckets
+   * must grow, too.
+   */
+  private float loadFactor;
+
+  /**
+   * The rounded product of the capacity (i.e. number of buckets) and
+   * the load factor. When the number of elements exceeds the
+   * threshold, the HashMap calls <code>rehash()</code>.
+   */
+  private int threshold;
+
+  /**
+   * The number of structural modifications.  This is used by
+   * iterators, to see if they should fail.  This doesn't count
+   * the silent key removals, when a weak reference is cleared
+   * by the garbage collection.  Instead the iterators must make
+   * sure to have strong references to the entries they rely on.
+   */
+  // Package visible for use by nested classes.
+  int modCount;
+
+  /**
+   * The entry set.  There is only one instance per hashmap, namely
+   * theEntrySet.  Note that the entry set may silently shrink, just
+   * like the WeakIdentityHashMap.
+   */
+  private final class WeakEntrySet extends AbstractSet
+  {
+    /**
+     * Non-private constructor to reduce bytecode emitted.
+     */
+    WeakEntrySet()
+    {
+    }
+
+    /**
+     * Returns the size of this set.
+     *
+     * @return the set size
+     */
+    public int size()
+    {
+      return size;
+    }
+
+    /**
+     * Returns an iterator for all entries.
+     *
+     * @return an Entry iterator
+     */
+    public Iterator iterator()
+    {
+      return new Iterator()
+      {
+        /**
+         * The entry that was returned by the last
+         * <code>next()</code> call.  This is also the entry whose
+         * bucket should be removed by the <code>remove</code> call. <br>
+         *
+         * It is null, if the <code>next</code> method wasn't
+         * called yet, or if the entry was already removed.  <br>
+         *
+         * Remembering this entry here will also prevent it from
+         * being removed under us, since the entry strongly refers
+         * to the key.
+         */
+        WeakBucket.WeakEntry lastEntry;
+
+        /**
+         * The entry that will be returned by the next
+         * <code>next()</code> call.  It is <code>null</code> if there
+         * is no further entry. <br>
+         *
+         * Remembering this entry here will also prevent it from
+         * being removed under us, since the entry strongly refers
+         * to the key.
+         */
+        WeakBucket.WeakEntry nextEntry = findNext(null);
+
+        /**
+         * The known number of modification to the list, if it differs
+         * from the real number, we throw an exception.
+         */
+        int knownMod = modCount;
+
+        /**
+         * Check the known number of modification to the number of
+         * modifications of the table.  If it differs from the real
+         * number, we throw an exception.
+         * @throws ConcurrentModificationException if the number
+         *         of modifications doesn't match.
+         */
+        private void checkMod()
+        {
+          // This method will get inlined.
+          cleanQueue();
+          if (knownMod != modCount)
+            throw new ConcurrentModificationException(knownMod + " != "
+                                                      + modCount);
+        }
+
+        /**
+         * Get a strong reference to the next entry after
+         * lastBucket.
+         * @param lastEntry the previous bucket, or null if we should
+         * get the first entry.
+         * @return the next entry.
+         */
+        private WeakBucket.WeakEntry findNext(WeakBucket.WeakEntry lastEntry)
+        {
+          int slot;
+          WeakBucket nextBucket;
+          if (lastEntry != null)
+            {
+              nextBucket = lastEntry.getBucket().next;
+              slot = lastEntry.getBucket().slot;
+            }
+          else
+            {
+              nextBucket = buckets[0];
+              slot = 0;
+            }
+
+          while (true)
+            {
+              while (nextBucket != null)
+                {
+                  WeakBucket.WeakEntry entry = nextBucket.getEntry();
+                  if (entry != null)
+                    // This is the next entry.
+                    return entry;
+
+                  // Entry was cleared, try next.
+                  nextBucket = nextBucket.next;
+                }
+
+              slot++;
+              if (slot == buckets.length)
+                // No more buckets, we are through.
+                return null;
+
+              nextBucket = buckets[slot];
+            }
+        }
+
+        /**
+         * Checks if there are more entries.
+         * @return true, iff there are more elements.
+         * @throws ConcurrentModificationException if the hash map was
+         *         modified.
+         */
+        public boolean hasNext()
+        {
+          checkMod();
+          return nextEntry != null;
+        }
+
+        /**
+         * Returns the next entry.
+         * @return the next entry.
+         * @throws ConcurrentModificationException if the hash map was
+         *         modified.
+         * @throws NoSuchElementException if there is no entry.
+         */
+        public Object next()
+        {
+          checkMod();
+          if (nextEntry == null)
+            throw new NoSuchElementException();
+          lastEntry = nextEntry;
+          nextEntry = findNext(lastEntry);
+          return lastEntry;
+        }
+
+        /**
+         * Removes the last returned entry from this set.  This will
+         * also remove the bucket of the underlying weak hash map.
+         * @throws ConcurrentModificationException if the hash map was
+         *         modified.
+         * @throws IllegalStateException if <code>next()</code> was
+         *         never called or the element was already removed.
+         */
+        public void remove()
+        {
+          checkMod();
+          if (lastEntry == null)
+            throw new IllegalStateException();
+          modCount++;
+          internalRemove(lastEntry.getBucket());
+          lastEntry = null;
+          knownMod++;
+        }
+      };
+    }
+  }
+
+  /**
+   * A bucket is a weak reference to the key, that contains a strong
+   * reference to the value, a pointer to the next bucket and its slot
+   * number. <br>
+   *
+   * It would be cleaner to have a WeakReference as field, instead of
+   * extending it, but if a weak reference gets cleared, we only get
+   * the weak reference (by queue.poll) and wouldn't know where to
+   * look for this reference in the hashtable, to remove that entry.
+   *
+   * @author Jochen Hoenicke
+   */
+  private static class WeakBucket extends WeakReference
+  {
+    /**
+     * The value of this entry.  The key is stored in the weak
+     * reference that we extend.
+     */
+    Object value;
+
+    /**
+     * The next bucket describing another entry that uses the same
+     * slot.
+     */
+    WeakBucket next;
+
+    /**
+     * The slot of this entry. This should be
+     * <code>Math.abs(key.hashCode() % buckets.length)</code>.
+     *
+     * But since the key may be silently removed we have to remember
+     * the slot number.
+     *
+     * If this bucket was removed the slot is -1.  This marker will
+     * prevent the bucket from being removed twice.
+     */
+    int slot;
+
+    /**
+     * Creates a new bucket for the given key/value pair and the specified
+     * slot.
+     * @param key the key
+     * @param queue the queue the weak reference belongs to
+     * @param value the value
+     * @param slot the slot.  This must match the slot where this bucket
+     *        will be enqueued.
+     */
+    public WeakBucket(Object key, ReferenceQueue queue, Object value,
+                      int slot)
+    {
+      super(key, queue);
+      this.value = value;
+      this.slot = slot;
+    }
+
+    /**
+     * This class gives the <code>Entry</code> representation of the
+     * current bucket.  It also keeps a strong reference to the
+     * key; bad things may happen otherwise.
+     */
+    class WeakEntry implements Map.Entry
+    {
+      /**
+       * The strong ref to the key.
+       */
+      Object key;
+
+      /**
+       * Creates a new entry for the key.
+       * @param key the key
+       */
+      public WeakEntry(Object key)
+      {
+        this.key = key;
+      }
+
+      /**
+       * Returns the underlying bucket.
+       * @return the owning bucket
+       */
+      public WeakBucket getBucket()
+      {
+        return WeakBucket.this;
+      }
+
+      /**
+       * Returns the key.
+       * @return the key
+       */
+      public Object getKey()
+      {
+        return key == NULL_KEY ? null : key;
+      }
+
+      /**
+       * Returns the value.
+       * @return the value
+       */
+      public Object getValue()
+      {
+        return value;
+      }
+
+      /**
+       * This changes the value.  This change takes place in
+       * the underlying hash map.
+       * @param newVal the new value
+       * @return the old value
+       */
+      public Object setValue(Object newVal)
+      {
+        Object oldVal = value;
+        value = newVal;
+        return oldVal;
+      }
+
+      /**
+       * The hashCode as specified in the Entry interface.
+       * @return the hash code
+       */
+      public int hashCode()
+      {
+        return System.identityHashCode(key)
+            ^ (value == null ? 0 : value.hashCode());
+      }
+
+      /**
+       * The equals method as specified in the Entry interface.
+       * @param o the object to compare to
+       * @return true iff o represents the same key/value pair
+       */
+      public boolean equals(Object o)
+      {
+        if (o instanceof Map.Entry)
+          {
+            Map.Entry e = (Map.Entry) o;
+            return getKey() == e.getKey()
+              && (value == null ? e.getValue() == null
+                                : value.equals(e.getValue()));
+          }
+        return false;
+      }
+
+      public String toString()
+      {
+        return getKey() + "=" + value;
+      }
+    }
+
+    /**
+     * This returns the entry stored in this bucket, or null, if the
+     * bucket got cleared in the mean time.
+     * @return the Entry for this bucket, if it exists
+     */
+    WeakEntry getEntry()
+    {
+      final Object key = this.get();
+      if (key == null)
+        return null;
+      return new WeakEntry(key);
+    }
+  }
+
+  /**
+   * The entry set returned by <code>entrySet()</code>.
+   */
+  private final WeakEntrySet theEntrySet;
+
+  /**
+   * The hash buckets.  These are linked lists. Package visible for use in
+   * nested classes.
+   */
+  WeakBucket[] buckets;
+
+  /**
+   * Creates a new weak hash map with default load factor and default
+   * capacity.
+   */
+  public WeakIdentityHashMap()
+  {
+    this(DEFAULT_CAPACITY, DEFAULT_LOAD_FACTOR);
+  }
+
+  /**
+   * Creates a new weak hash map with default load factor and the given
+   * capacity.
+   * @param initialCapacity the initial capacity
+   * @throws IllegalArgumentException if initialCapacity is negative
+   */
+  public WeakIdentityHashMap(int initialCapacity)
+  {
+    this(initialCapacity, DEFAULT_LOAD_FACTOR);
+  }
+
+  /**
+   * Creates a new weak hash map with the given initial capacity and
+   * load factor.
+   * @param initialCapacity the initial capacity.
+   * @param loadFactor the load factor (see class description of HashMap).
+   * @throws IllegalArgumentException if initialCapacity is negative, or
+   *         loadFactor is non-positive
+   */
+  public WeakIdentityHashMap(int initialCapacity, float loadFactor)
+  {
+    // Check loadFactor for NaN as well.
+    if (initialCapacity < 0 || ! (loadFactor > 0))
+      throw new IllegalArgumentException();
+    if (initialCapacity == 0)
+      initialCapacity = 1;
+    this.loadFactor = loadFactor;
+    threshold = (int) (initialCapacity * loadFactor);
+    theEntrySet = new WeakEntrySet();
+    queue = new ReferenceQueue();
+    buckets = new WeakBucket[initialCapacity];
+  }
+
+  /**
+   * Construct a new WeakIdentityHashMap with the same mappings as the given map.
+   * The WeakIdentityHashMap has a default load factor of 0.75.
+   *
+   * @param m the map to copy
+   * @throws NullPointerException if m is null
+   * @since 1.3
+   */
+  public WeakIdentityHashMap(Map m)
+  {
+    this(m.size(), DEFAULT_LOAD_FACTOR);
+    putAll(m);
+  }
+
+  /**
+   * Simply hashes a non-null Object to its array index.
+   * @param key the key to hash
+   * @return its slot number
+   */
+  private int hash(Object key)
+  {
+    return Math.abs(System.identityHashCode(key) % buckets.length);
+  }
+
+  /**
+   * Cleans the reference queue.  This will poll all references (which
+   * are WeakBuckets) from the queue and remove them from this map.
+   * This will not change modCount, even if it modifies the map.  The
+   * iterators have to make sure that nothing bad happens.  <br>
+   *
+   * Currently the iterator maintains a strong reference to the key, so
+   * that is no problem.
+   */
+  // Package visible for use by nested classes.
+  void cleanQueue()
+  {
+    Object bucket = queue.poll();
+    while (bucket != null)
+      {
+        internalRemove((WeakBucket) bucket);
+        bucket = queue.poll();
+      }
+  }
+
+  /**
+   * Rehashes this hashtable.  This will be called by the
+   * <code>add()</code> method if the size grows beyond the threshold.
+   * It will grow the bucket size at least by factor two and allocates
+   * new buckets.
+   */
+  private void rehash()
+  {
+    WeakBucket[] oldBuckets = buckets;
+    int newsize = buckets.length * 2 + 1; // XXX should be prime.
+    threshold = (int) (newsize * loadFactor);
+    buckets = new WeakBucket[newsize];
+
+    // Now we have to insert the buckets again.
+    for (int i = 0; i < oldBuckets.length; i++)
+      {
+        WeakBucket bucket = oldBuckets[i];
+        WeakBucket nextBucket;
+        while (bucket != null)
+          {
+            nextBucket = bucket.next;
+
+            Object key = bucket.get();
+            if (key == null)
+              {
+                // This bucket should be removed; it is probably
+                // already on the reference queue.  We don't insert it
+                // at all, and mark it as cleared.
+                bucket.slot = -1;
+                size--;
+              }
+            else
+              {
+                // Add this bucket to its new slot.
+                int slot = hash(key);
+                bucket.slot = slot;
+                bucket.next = buckets[slot];
+                buckets[slot] = bucket;
+              }
+            bucket = nextBucket;
+          }
+      }
+  }
+
+  /**
+   * Finds the entry corresponding to key.  Since it returns an Entry
+   * it will also prevent the key from being removed under us.
+   * @param key the key, may be null
+   * @return The WeakBucket.WeakEntry or null, if the key wasn't found.
+   */
+  private WeakBucket.WeakEntry internalGet(Object key)
+  {
+    if (key == null)
+      key = NULL_KEY;
+    int slot = hash(key);
+    WeakBucket bucket = buckets[slot];
+    while (bucket != null)
+      {
+        WeakBucket.WeakEntry entry = bucket.getEntry();
+        if (entry != null && key == entry.key)
+          return entry;
+
+        bucket = bucket.next;
+      }
+    return null;
+  }
+
+  /**
+   * Adds a new key/value pair to the hash map.
+   * @param key the key. This mustn't exists in the map. It may be null.
+   * @param value the value.
+   */
+  private void internalAdd(Object key, Object value)
+  {
+    if (key == null)
+      key = NULL_KEY;
+    int slot = hash(key);
+    WeakBucket bucket = new WeakBucket(key, queue, value, slot);
+    bucket.next = buckets[slot];
+    buckets[slot] = bucket;
+    size++;
+  }
+
+  /**
+   * Removes a bucket from this hash map, if it wasn't removed before
+   * (e.g. one time through rehashing and one time through reference queue).
+   * Package visible for use in nested classes.
+   *
+   * @param bucket the bucket to remove.
+   */
+  void internalRemove(WeakBucket bucket)
+  {
+    int slot = bucket.slot;
+    if (slot == -1)
+      // This bucket was already removed.
+      return;
+
+    // Mark the bucket as removed.  This is necessary, since the
+    // bucket may be enqueued later by the garbage collection, and
+    // internalRemove will be called a second time.
+    bucket.slot = -1;
+
+    WeakBucket prev = null;
+    WeakBucket next = buckets[slot];
+    while (next != bucket)
+      {
+         if (next == null)
+            throw new InternalError("WeakIdentityHashMap in inconsistent state");
+         prev = next; 
+         next = prev.next;
+      }
+    if (prev == null)
+      buckets[slot] = bucket.next;
+    else 
+      prev.next = bucket.next;
+
+    size--;
+  }
+
+  /**
+   * Returns the size of this hash map.  Note that the size() may shrink
+   * spontaneously, if the some of the keys were only weakly reachable.
+   * @return the number of entries in this hash map.
+   */
+  public int size()
+  {
+    cleanQueue();
+    return size;
+  }
+
+  /**
+   * Tells if the map is empty.  Note that the result may change
+   * spontanously, if all of the keys were only weakly reachable.
+   * @return true, iff the map is empty.
+   */
+  public boolean isEmpty()
+  {
+    cleanQueue();
+    return size == 0;
+  }
+
+  /**
+   * Tells if the map contains the given key.  Note that the result
+   * may change spontanously, if the key was only weakly
+   * reachable.
+   * @param key the key to look for
+   * @return true, iff the map contains an entry for the given key.
+   */
+  public boolean containsKey(Object key)
+  {
+    cleanQueue();
+    return internalGet(key) != null;
+  }
+
+  /**
+   * Gets the value the key is mapped to.
+   * @return the value the key was mapped to.  It returns null if
+   *         the key wasn't in this map, or if the mapped value was
+   *         explicitly set to null.
+   */
+  public Object get(Object key)
+  {
+    cleanQueue();
+    WeakBucket.WeakEntry entry = internalGet(key);
+    return entry == null ? null : entry.getValue();
+  }
+
+  /**
+   * Adds a new key/value mapping to this map.
+   * @param key the key, may be null
+   * @param value the value, may be null
+   * @return the value the key was mapped to previously.  It returns
+   *         null if the key wasn't in this map, or if the mapped value
+   *         was explicitly set to null.
+   */
+  public Object put(Object key, Object value)
+  {
+    cleanQueue();
+    WeakBucket.WeakEntry entry = internalGet(key);
+    if (entry != null)
+      return entry.setValue(value);
+
+    modCount++;
+    if (size >= threshold)
+      rehash();
+
+    internalAdd(key, value);
+    return null;
+  }
+
+  /**
+   * Removes the key and the corresponding value from this map.
+   * @param key the key. This may be null.
+   * @return the value the key was mapped to previously.  It returns
+   *         null if the key wasn't in this map, or if the mapped value was
+   *         explicitly set to null.
+   */
+  public Object remove(Object key)
+  {
+    cleanQueue();
+    WeakBucket.WeakEntry entry = internalGet(key);
+    if (entry == null)
+      return null;
+
+    modCount++;
+    internalRemove(entry.getBucket());
+    return entry.getValue();
+  }
+
+  /**
+   * Returns a set representation of the entries in this map.  This
+   * set will not have strong references to the keys, so they can be
+   * silently removed.  The returned set has therefore the same
+   * strange behaviour (shrinking size(), disappearing entries) as
+   * this weak hash map.
+   * @return a set representation of the entries.
+   */
+  public Set entrySet()
+  {
+    cleanQueue();
+    return theEntrySet;
+  }
+
+  /**
+   * Clears all entries from this map.
+   */
+  public void clear()
+  {
+    super.clear();
+  }
+
+  /**
+   * Returns true if the map contains at least one key which points to
+   * the specified object as a value.  Note that the result
+   * may change spontanously, if its key was only weakly reachable.
+   * @param value the value to search for
+   * @return true if it is found in the set.
+   */
+  public boolean containsValue(Object value)
+  {
+    cleanQueue();
+    return super.containsValue(value);
+  }
+
+  /**
+   * Returns a set representation of the keys in this map.  This
+   * set will not have strong references to the keys, so they can be
+   * silently removed.  The returned set has therefore the same
+   * strange behaviour (shrinking size(), disappearing entries) as
+   * this weak hash map.
+   * @return a set representation of the keys.
+   */
+  public Set keySet()
+  {
+    cleanQueue();
+    return super.keySet();
+  }
+
+  /**
+   * Puts all of the mappings from the given map into this one. If the
+   * key already exists in this map, its value is replaced.
+   * @param m the map to copy in
+   */
+  public void putAll(Map m)
+  {
+    super.putAll(m);
+  }
+
+  /**
+   * Returns a collection representation of the values in this map.  This
+   * collection will not have strong references to the keys, so mappings
+   * can be silently removed.  The returned collection has therefore the same
+   * strange behaviour (shrinking size(), disappearing entries) as
+   * this weak hash map.
+   * @return a collection representation of the values.
+   */
+  public Collection values()
+  {
+    cleanQueue();
+    return super.values();
+  }
+} // class WeakIdentityHashMap
index 16427c7566da471ea0ff9d0843a319a5c80f54fe..9ac9b53d1a9c7a20d8ab558acf21cad8528c4f2f 100644 (file)
@@ -374,6 +374,9 @@ public class RE extends REToken {
       //
       // OPEN QUESTION: 
       //  what is proper interpretation of '{' at start of string?
+      //
+      // This method used to check "repeat.empty.token" to avoid such regexp
+      // as "(a*){2,}", but now "repeat.empty.token" is allowed.
 
       else if ((unit.ch == '{') && syntax.get(RESyntax.RE_INTERVALS) && (syntax.get(RESyntax.RE_NO_BK_BRACES) ^ (unit.bk || quot))) {
        int newIndex = getMinMax(pattern,index,minMax,syntax);
@@ -386,8 +389,6 @@ public class RE extends REToken {
             throw new REException(getLocalizedMessage("repeat.chained"),REException.REG_BADRPT,newIndex);
           if (currentToken instanceof RETokenWordBoundary || currentToken instanceof RETokenWordBoundary)
             throw new REException(getLocalizedMessage("repeat.assertion"),REException.REG_BADRPT,newIndex);
-          if ((currentToken.getMinimumLength() == 0) && (minMax.second == Integer.MAX_VALUE))
-            throw new REException(getLocalizedMessage("repeat.empty.token"),REException.REG_BADRPT,newIndex);
           index = newIndex;
           currentToken = setRepeated(currentToken,minMax.first,minMax.second,index); 
         }
@@ -550,13 +551,50 @@ public class RE extends REToken {
        int nested = 0;
 
        while ( ((nextIndex = getCharUnit(pattern,endIndex,unit,false)) > 0)
-               && !(nested == 0 && (unit.ch == ')') && (syntax.get(RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot))) )
+               && !(nested == 0 && (unit.ch == ')') && (syntax.get(RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot))) ) {
          if ((endIndex = nextIndex) >= pLength)
            throw new REException(getLocalizedMessage("subexpr.no.end"),REException.REG_ESUBREG,nextIndex);
+         else if ((unit.ch == '[') && !(unit.bk || quot)) {
+           // I hate to do something similar to the LIST OPERATOR matters
+           // above, but ...
+           int listIndex = nextIndex;
+           if (listIndex < pLength && pattern[listIndex] == '^') listIndex++;
+           if (listIndex < pLength && pattern[listIndex] == ']') listIndex++;
+           int listEndIndex = -1;
+           int listNest = 0;
+           while (listIndex < pLength && listEndIndex < 0) {
+             switch(pattern[listIndex++]) {
+               case '\\':
+                 listIndex++;
+                 break;
+               case '[':
+                 // Sun's API document says that regexp like "[a-d[m-p]]"
+                 // is legal. Even something like "[[[^]]]]" is accepted.
+                 listNest++;
+                 if (listIndex < pLength && pattern[listIndex] == '^') listIndex++;
+                 if (listIndex < pLength && pattern[listIndex] == ']') listIndex++;
+                 break;
+               case ']':
+                 if (listNest == 0)
+                   listEndIndex = listIndex;
+                 listNest--;
+                 break;
+             }
+           }
+           if (listEndIndex >= 0) {
+             nextIndex = listEndIndex;
+             if ((endIndex = nextIndex) >= pLength)
+               throw new REException(getLocalizedMessage("subexpr.no.end"),REException.REG_ESUBREG,nextIndex);
+             else
+               continue;
+           }
+           throw new REException(getLocalizedMessage("subexpr.no.end"),REException.REG_ESUBREG,nextIndex);
+         }
          else if (unit.ch == '(' && (syntax.get(RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot)))
            nested++;
          else if (unit.ch == ')' && (syntax.get(RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot)))
            nested--;
+       }
 
        // endIndex is now position at a ')','\)' 
        // nextIndex is end of string or position after ')' or '\)'
@@ -616,6 +654,9 @@ public class RE extends REToken {
 
       // ZERO-OR-MORE REPEAT OPERATOR
       //  *
+      //
+      // This method used to check "repeat.empty.token" to avoid such regexp
+      // as "(a*)*", but now "repeat.empty.token" is allowed.
 
       else if ((unit.ch == '*') && !(unit.bk || quot)) {
        if (currentToken == null)
@@ -624,14 +665,15 @@ public class RE extends REToken {
           throw new REException(getLocalizedMessage("repeat.chained"),REException.REG_BADRPT,index);
        if (currentToken instanceof RETokenWordBoundary || currentToken instanceof RETokenWordBoundary)
          throw new REException(getLocalizedMessage("repeat.assertion"),REException.REG_BADRPT,index);
-       if (currentToken.getMinimumLength() == 0)
-         throw new REException(getLocalizedMessage("repeat.empty.token"),REException.REG_BADRPT,index);
        currentToken = setRepeated(currentToken,0,Integer.MAX_VALUE,index);
       }
 
       // ONE-OR-MORE REPEAT OPERATOR / POSSESSIVE MATCHING OPERATOR
       //  + | \+ depending on RE_BK_PLUS_QM
       //  not available if RE_LIMITED_OPS is set
+      //
+      // This method used to check "repeat.empty.token" to avoid such regexp
+      // as "(a*)+", but now "repeat.empty.token" is allowed.
 
       else if ((unit.ch == '+') && !syntax.get(RESyntax.RE_LIMITED_OPS) && (!syntax.get(RESyntax.RE_BK_PLUS_QM) ^ (unit.bk || quot))) {
        if (currentToken == null)
@@ -648,8 +690,6 @@ public class RE extends REToken {
        }
        else if (currentToken instanceof RETokenWordBoundary || currentToken instanceof RETokenWordBoundary)
          throw new REException(getLocalizedMessage("repeat.assertion"),REException.REG_BADRPT,index);
-       else if (currentToken.getMinimumLength() == 0)
-         throw new REException(getLocalizedMessage("repeat.empty.token"),REException.REG_BADRPT,index);
        else
          currentToken = setRepeated(currentToken,1,Integer.MAX_VALUE,index);
       }
index 3165a6f1654794f25447c9cf17e1a52c3f518817..6291a3c39609e294b2d9a1f9dedac71976153a28 100644 (file)
@@ -108,6 +108,7 @@ final class RETokenRepeated extends REToken {
        REMatch doables;
        REMatch doablesLast;
        REMatch recurrent;
+       int lastIndex = mymatch.index;
 
        do {
            // Check for stingy match for each possibility.
@@ -151,6 +152,15 @@ final class RETokenRepeated extends REToken {
            ++numRepeats;
            
            positions.addElement(newMatch);
+
+           // doables.index == lastIndex means an empty string
+           // was the longest that matched this token.
+           // We break here, otherwise we will fall into an endless loop.
+           if (doables.index == lastIndex) {
+               if (numRepeats < min) numRepeats = min;
+               break;
+           }           
+           lastIndex = doables.index;
        } while (numRepeats < max);
        
        // If there aren't enough repeats, then fail
@@ -165,7 +175,16 @@ final class RETokenRepeated extends REToken {
        REMatch allResultsLast = null;
 
        REMatch results = null;
-       while (--posIndex >= min) {
+       int indexCount = posIndex - min;
+       if (indexCount <= 0) {
+           // This case occurs when we exited the previous do loop before
+           // numRepeats >= min because an empty string matched the token.
+           // In this case, an empty string can match as many times as
+           // desired.
+           indexCount = 1;
+       }
+       while (indexCount-- > 0) {
+           --posIndex;
            newMatch = (REMatch) positions.elementAt(posIndex);
            results = matchRest(input, newMatch);
            if (results != null) {
diff --git a/libjava/classpath/gnu/xml/aelfred2/ContentHandler2.java b/libjava/classpath/gnu/xml/aelfred2/ContentHandler2.java
deleted file mode 100644 (file)
index 1516138..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/* ContentHandler2.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-package gnu.xml.aelfred2;
-
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXException;
-
-/**
- * Extension to the SAX ContentHandler interface to report parsing events
- * and parameters required by DOM Level 3 but not supported by SAX.
- *
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
- */
-public interface ContentHandler2
-  extends ContentHandler
-{
-
-  /**
-   * Reports the XML declaration.
-   * @param version the value of the version attribute in the XML
-   * declaration
-   * @param encoding the encoding specified in the XML declaration, if any
-   * @param standalone the standalone attribute from the XML declaration
-   * @param inputEncoding the encoding of the XML input
-   */
-  void xmlDecl(String version, String encoding, boolean standalone,
-               String inputEncoding)
-    throws SAXException;
-  
-}
index 6864ff659711587f0b6c393b4d8a460752cf9625..e7c4d5a3f643353feece4122a5cd36ae37508882 100644 (file)
@@ -655,21 +655,6 @@ final public class SAXDriver
     attributesList.clear();
   }
 
-  void xmlDecl(String version,
-               String encoding,
-               boolean standalone,
-               String inputEncoding)
-    throws SAXException
-  {
-    if (contentHandler instanceof ContentHandler2)
-      {
-        ((ContentHandler2) contentHandler).xmlDecl(version,
-                                                   encoding,
-                                                   standalone,
-                                                   inputEncoding);
-      }
-  }
-
   void skippedEntity(String name)
     throws SAXException
   {
index f2abb8896668246c08b26319f2eee56fc052426f..ab2ed16f94688de93776e20cdbc1a1a41b3a4dd7 100644 (file)
@@ -841,9 +841,6 @@ final class XmlParser
       {
         inputEncoding = encodingName;
       }
-    handler.xmlDecl(version, encodingName, docIsStandalone,
-                    inputEncoding);
-    
     return encodingName;
   }
 
index f99e221e998a21ea65dccfdfc5c52ae7862c75d0..026e2754ef951ff9d00472288060105333015c27 100644 (file)
@@ -301,22 +301,6 @@ public class Consumer extends DomConsumer
             doc.setBuilding(true);
        }
 
-        /**
-         * Required by DOM Level 3 to report document parameters
-         */
-        public void xmlDecl(String version,
-                            String encoding,
-                            boolean standalone,
-                            String inputEncoding)
-          throws SAXException
-        {
-          super.xmlDecl(version, encoding, standalone, inputEncoding);
-
-          DomDocument doc = (DomDocument) getDocument();
-          doc.setXmlEncoding(encoding);
-          doc.setInputEncoding(inputEncoding);
-        }
-
        public void endDocument ()
        throws SAXException
        {
index 29b8dc72e536b91fec1aba7f73459746e11c3af8..900d03ac3dcea866bf60d6b38c807641bfe8afac 100644 (file)
@@ -1313,6 +1313,31 @@ public class DomDocument
     return config;
   }
 
+  public boolean isEqualNode(Node arg)
+  {
+    if (!super.isEqualNode(arg))
+      return false;
+    Document d = (Document) arg;
+    String dversion = d.getXmlVersion();
+    if (dversion == null || !dversion.equals(version))
+      return false;
+    boolean dstandalone = d.getXmlStandalone();
+    if (dstandalone != standalone)
+      return false;
+    String dencoding = d.getXmlEncoding();
+    if (dencoding == null || dencoding.equalsIgnoreCase("UTF-8"))
+      {
+        if (encoding != null && !encoding.equalsIgnoreCase("UTF-8"))
+          return false;
+      }
+    else
+      {
+        if (!dencoding.equals(encoding))
+          return false;
+      }
+    return true;
+  }
+
   public void normalizeDocument()
   {
     boolean save = building;
index 34509f647bc40efb3b888188e1acd68531ace995..f55b084cc944039dcfb395aa6d1001e5598e85e6 100644 (file)
@@ -519,5 +519,38 @@ public class DomElement
     Attr attr = (Attr) attrs.getNamedItemNS(namespaceURI, localName);
     setIdAttributeNode(attr, isId);
   }
+
+  public boolean isEqualNode(Node arg)
+  {
+    if (!super.isEqualNode(arg))
+      return false;
+    getAttributes();
+    NamedNodeMap argAttrs = arg.getAttributes();
+    int len = argAttrs.getLength();
+    if (argAttrs == null || (len != attributes.length))
+      return false;
+    for (int i = 0; i < len; i++)
+      {
+        Node argCtx = argAttrs.item(i);
+        // Don't compare namespace nodes
+        if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI
+            .equals(argCtx.getNamespaceURI()))
+          continue;
+        // Find corresponding attribute node
+        DomNode ctx = attributes.first;
+        for (; ctx != null; ctx = ctx.next)
+          {
+            if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI
+                .equals(ctx.getNamespaceURI()))
+              continue;
+            if (!ctx.isEqualNode(argCtx))
+              continue;
+            break;
+          }
+        if (ctx == null)
+          return false; // not found
+      }
+    return true;
+  }
   
 }
index 6f224029ac3013c80e80df4e5b88def9c9c55f09..e3f08e4b4b78f1a1045182014f6716c84ddcd9ee 100644 (file)
@@ -319,7 +319,7 @@ public class DomNamedNodeMap
         if (ns)
           {
             String tln = ctx.getLocalName();
-            if (tln.equals(name))
+            if (name != null && name.equals(tln))
               {
                 String tu = ctx.getNamespaceURI();
                 if ((tu == null && uri == null) ||
index 3f29fb1283dcb9d07affdbddf6c0ba77114dada3..93f7c6f64f3818f84a9e5d985b5470b5a94140a7 100644 (file)
@@ -38,6 +38,7 @@ exception statement from your version. */
 package gnu.xml.dom;
 
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Map;
 
@@ -149,7 +150,7 @@ public abstract class DomNode
   boolean readonly;
 
   // event registrations
-  private ListenerRecord[] listeners;
+  private HashSet listeners;
   private int nListeners;
 
   // DOM Level 3 userData dictionary.
@@ -167,19 +168,6 @@ public abstract class DomNode
    */
   public void compact()
   {
-    if (listeners != null && listeners.length != nListeners)
-      {
-        if (nListeners == 0)
-          {
-            listeners = null;
-          }
-        else
-          {
-            ListenerRecord[] l = new ListenerRecord[nListeners];
-            System.arraycopy(listeners, 0, l, 0, nListeners);
-            listeners = l;
-          }
-      }
   }
 
   /**
@@ -201,6 +189,7 @@ public abstract class DomNode
           }
       }
     this.owner = owner;
+    this.listeners = new HashSet();
   }
   
 
@@ -372,6 +361,16 @@ public abstract class DomNode
             return;
           }
         break;
+      case DOCUMENT_TYPE_NODE:
+        if (!owner.building)
+          break;
+        switch (childNodeType)
+          {
+          case COMMENT_NODE:
+          case PROCESSING_INSTRUCTION_NODE:
+            return;
+          }
+        break;
       }
     if (owner.checkingWellformedness)
       {
@@ -960,12 +959,6 @@ public abstract class DomNode
    */
   public void trimToSize()
   {
-    if (listeners != null && listeners.length != nListeners)
-      {
-        ListenerRecord[] newKids = new ListenerRecord[length];
-        System.arraycopy(listeners, 0, newKids, 0, nListeners);
-        listeners = newKids;
-      }
   }
 
   /**
@@ -1175,7 +1168,7 @@ public abstract class DomNode
         node.next = null;
         
         node.readonly = false;
-        node.listeners = null;
+        node.listeners = new HashSet();
         node.nListeners = 0;
         return node;
 
@@ -1264,16 +1257,17 @@ public abstract class DomNode
       elementName = name;
       matchAnyURI = "*".equals(uri);
       matchAnyName = "*".equals(name);
-      
+
       DomNode.this.addEventListener("DOMNodeInserted", this, true);
       DomNode.this.addEventListener("DOMNodeRemoved", this, true);
     }
 
     void detach()
     {
-      current.detach();
+      if (current != null)
+        current.detach();
       current = null;
-      
+
       DomNode.this.removeEventListener("DOMNodeInserted", this, true);
       DomNode.this.removeEventListener("DOMNodeRemoved", this, true);
     }
@@ -1336,6 +1330,8 @@ public abstract class DomNode
           return;
         }
       
+      if (current != null)
+       current.detach();
       current = null;
     }
 
@@ -1354,6 +1350,7 @@ public abstract class DomNode
           lastIndex--;
         }
         Node ret = current.previousNode ();
+       current.detach();
         current = null;
         return ret;
       } 
@@ -1361,9 +1358,11 @@ public abstract class DomNode
       // somewhere after last node
       while (++lastIndex != index)
         current.nextNode ();
-        Node ret = current.nextNode ();
-        current = null;
-        return ret;
+
+      Node ret = current.nextNode ();
+      current.detach();
+      current = null;
+      return ret;
     }
     
     public int getLength()
@@ -1375,7 +1374,7 @@ public abstract class DomNode
         {
           retval++;
         }
-      current = null;
+      iter.detach();
       return retval;
     }
     
@@ -1403,13 +1402,18 @@ public abstract class DomNode
       this.useCapture = useCapture;
     }
 
-    boolean equals(ListenerRecord rec)
+    public boolean equals(Object o)
     {
+      ListenerRecord rec = (ListenerRecord)o;
       return listener == rec.listener
         && useCapture == rec.useCapture
         && type == rec.type;
     }
     
+    public int hashCode()
+    {
+       return listener.hashCode() ^ type.hashCode();
+    }
   }
 
   /**
@@ -1464,30 +1468,12 @@ public abstract class DomNode
                                      EventListener listener,
                                      boolean useCapture)
   {
-    if (listeners == null)
-      {
-        listeners = new ListenerRecord[1];
-      }
-    else if (nListeners == listeners.length)
-      {
-        ListenerRecord[] newListeners =
-          new ListenerRecord[listeners.length + NKIDS_DELTA];
-        System.arraycopy(listeners, 0, newListeners, 0, nListeners);
-        listeners = newListeners;
-      }
-
     // prune duplicates
     ListenerRecord record;
 
     record = new ListenerRecord(type, listener, useCapture);
-    for (int i = 0; i < nListeners; i++)
-      {
-        if (record.equals(listeners[i]))
-          {
-            return;
-          }
-      }
-    listeners [nListeners++] = record;
+    listeners.add(record);
+    nListeners = listeners.size();
   }
 
   // XXX this exception should be discarded from DOM
@@ -1672,11 +1658,14 @@ public abstract class DomNode
                           ListenerRecord[] notificationSet)
   {
     int count = 0;
+    Iterator iter;
+
+    iter = current.listeners.iterator();
 
     // do any of this set of listeners get notified?
-    for (int i = 0; i < current.nListeners; i++)
+    while (iter.hasNext())
       {
-        ListenerRecord rec = current.listeners[i];
+        ListenerRecord rec = (ListenerRecord)iter.next();
 
         if (rec.useCapture != capture)
           {
@@ -1697,6 +1686,7 @@ public abstract class DomNode
           }
         notificationSet[count++] = rec;
       }
+    iter = null;
 
     // Notify just those listeners
     e.currentNode = current; 
@@ -1704,18 +1694,21 @@ public abstract class DomNode
       {
         try
           {
+           iter = current.listeners.iterator();
             // Late in the DOM CR process (3rd or 4th CR?) the
             // removeEventListener spec became asymmetric with respect
             // to addEventListener ... effect is now immediate.
-            for (int j = 0; j < current.nListeners; j++)
+           while (iter.hasNext())
               {
-                if (current.listeners[j].equals(notificationSet[i]))
+               ListenerRecord rec = (ListenerRecord)iter.next();
+
+                if (rec.equals(notificationSet[i]))
                   {
                     notificationSet[i].listener.handleEvent(e);
                     break;
                   }
               }
-            
+            iter = null;
           }
         catch (Exception x)
           {
@@ -1733,36 +1726,8 @@ public abstract class DomNode
                                         EventListener listener,
                                         boolean useCapture)
   {
-    for (int i = 0; i < nListeners; i++)
-      {
-        if (listeners[i].listener != listener)
-          {
-            continue;
-          }
-        if (listeners[i].useCapture != useCapture)
-          {
-            continue;
-          }
-        if (!listeners[i].type.equals(type))
-          {
-            continue;
-          }
-
-        if (nListeners == 1)
-          {
-            listeners = null;
-            nListeners = 0;
-          }
-        else
-          {
-            for (int j = i + 1; j < nListeners; j++)
-              {
-                listeners[i++] = listeners[j++];
-              }
-            listeners[--nListeners] = null;
-          }
-        break;
-      }
+    listeners.remove(new ListenerRecord(type, listener, useCapture));
+    nListeners = listeners.size();
     // no exceptions reported
   }
 
@@ -1779,10 +1744,15 @@ public abstract class DomNode
     readonly = false;
     for (DomNode ctx = first; ctx != null; ctx = ctx.next)
       {
+        boolean saved2 = ctx.readonly;
+        ctx.readonly = false;
         switch (ctx.nodeType)
           {
           case TEXT_NODE:
-            while (ctx.next != null && ctx.next.nodeType == TEXT_NODE)
+          case CDATA_SECTION_NODE:
+            while (ctx.next != null &&
+                   (ctx.next.nodeType == TEXT_NODE ||
+                    ctx.next.nodeType == CDATA_SECTION_NODE))
               {
                 Text text = (Text) ctx;
                 text.appendData(ctx.next.getNodeValue());
@@ -1794,7 +1764,11 @@ public abstract class DomNode
             int len = attrs.getLength();
             for (int i = 0; i < len; i++)
               {
-                attrs.item(i).normalize();
+                DomNode attr = (DomNode) attrs.item(i);
+                boolean saved3 = attr.readonly;
+                attr.readonly = false;
+                attr.normalize();
+                attr.readonly = saved3;
               }
             // Fall through
           case DOCUMENT_NODE:
@@ -1804,6 +1778,7 @@ public abstract class DomNode
             ctx.normalize();
             break;
           }
+        ctx.readonly = saved2;
       }
     readonly = saved;
   }
@@ -2017,39 +1992,56 @@ public abstract class DomNode
   public boolean isEqualNode(Node arg)
   {
     if (this == arg)
-      {
-        return true;
-      }
+      return true;
     if (arg == null)
+      return false;
+    if (nodeType != arg.getNodeType())
+      return false;
+    switch (nodeType)
       {
-        return false;
-      }
-    if (nodeType != arg.getNodeType() ||
-        !equal(getNodeName(), arg.getNodeName()) ||
-        !equal(getLocalName(), arg.getLocalName()) ||
-        !equal(getNamespaceURI(), arg.getNamespaceURI()) ||
-        !equal(getPrefix(), arg.getPrefix()) ||
-        !equal(getNodeValue(), arg.getNodeValue()))
-      {
-        return false;
+      case ELEMENT_NODE:
+      case ATTRIBUTE_NODE:
+        if (!equal(getLocalName(), arg.getLocalName()) ||
+            !equal(getNamespaceURI(), arg.getNamespaceURI()))
+          return false;
+        break;
+      case PROCESSING_INSTRUCTION_NODE:
+        if (!equal(getNodeName(), arg.getNodeName()) ||
+            !equal(getNodeValue(), arg.getNodeValue()))
+          return false;
+        break;
+      case COMMENT_NODE:
+      case TEXT_NODE:
+      case CDATA_SECTION_NODE:
+        if (!equal(getNodeValue(), arg.getNodeValue()))
+          return false;
+        break;
       }
     // Children
     Node argCtx = arg.getFirstChild();
     getFirstChild(); // because of DomAttr lazy children
-    for (DomNode ctx = first; ctx != null; ctx = ctx.next)
+    DomNode ctx = first;
+    for (; ctx != null && argCtx != null; ctx = ctx.next)
       {
-        if (!ctx.isEqualNode(argCtx))
+        if (nodeType == DOCUMENT_NODE)
           {
-            return false;
+            // Ignore whitespace outside document element
+            while (ctx != null && ctx.nodeType == TEXT_NODE)
+              ctx = ctx.next;
+            while (argCtx != null && ctx.getNodeType() == TEXT_NODE)
+              argCtx = argCtx.getNextSibling();
+            if (ctx == null && argCtx != null)
+              return false;
+            else if (argCtx == null && ctx != null)
+              return false;
           }
+        if (!ctx.isEqualNode(argCtx))
+          return false;
         argCtx = argCtx.getNextSibling();
       }
-    if (argCtx != null)
-      {
-        return false;
-      }
+    if (ctx != null || argCtx != null)
+      return false;
     
-    // TODO Attr NamedNodeMap
     // TODO DocumentType
     return true;
   }
@@ -2185,5 +2177,14 @@ public abstract class DomNode
       }
   }
 
+  public void list(java.io.PrintStream out, int indent)
+  {
+    for (int i = 0; i < indent; i++)
+      out.print(" ");
+    out.println(toString());
+    for (DomNode ctx = first; ctx != null; ctx = ctx.next)
+      ctx.list(out, indent + 1);
+  }
+
 }
 
index eb7c1c49f3a8b4a99c256d106280feae1c79fec1..7ac4cc749fc5ff32b47296763f2d712d819e8f73 100644 (file)
@@ -260,6 +260,7 @@ public class DomLSParser
     eventSink.coalescing = coalescing;
     // get and configure reader
     XMLReader reader = getXMLReader();
+    eventSink.reader = reader;
     try
       {
         reader.setContentHandler(eventSink);
index a850460b1e23f49b11e5bd542f8e42443d721f79..aad5ac76e701e2e6f0eaae5c62b7f0ca098dca98 100644 (file)
@@ -37,6 +37,7 @@ exception statement from your version. */
 
 package gnu.xml.dom.ls;
 
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
@@ -45,20 +46,26 @@ import org.w3c.dom.Attr;
 import org.w3c.dom.DocumentType;
 import org.w3c.dom.Element;
 import org.w3c.dom.Entity;
+import org.w3c.dom.EntityReference;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 import org.w3c.dom.Text;
 import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
 import org.xml.sax.DTDHandler;
 import org.xml.sax.Locator;
 import org.xml.sax.SAXException;
+import org.xml.sax.SAXNotRecognizedException;
+import org.xml.sax.SAXNotSupportedException;
+import org.xml.sax.XMLReader;
 import org.xml.sax.ext.Attributes2;
 import org.xml.sax.ext.DeclHandler;
 import org.xml.sax.ext.LexicalHandler;
-import gnu.xml.aelfred2.ContentHandler2;
+import org.xml.sax.ext.Locator2;
 import gnu.xml.dom.DomAttr;
 import gnu.xml.dom.DomDocument;
 import gnu.xml.dom.DomDoctype;
+import gnu.xml.dom.DomNode;
 
 /**
  * A SAX content and lexical handler used to construct a DOM document.
@@ -66,17 +73,28 @@ import gnu.xml.dom.DomDoctype;
  * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
  */
 class SAXEventSink
-  implements ContentHandler2, LexicalHandler, DTDHandler, DeclHandler
+  implements ContentHandler, LexicalHandler, DTDHandler, DeclHandler
 {
 
   private static final String XMLNS_URI = XMLConstants.XMLNS_ATTRIBUTE_NS_URI;
   private static final String XMLNS_PREFIX = XMLConstants.XMLNS_ATTRIBUTE;
+  private static final HashSet PREDEFINED_ENTITIES = new HashSet();
+  static
+  {
+    PREDEFINED_ENTITIES.add("amp");
+    PREDEFINED_ENTITIES.add("lt");
+    PREDEFINED_ENTITIES.add("gt");
+    PREDEFINED_ENTITIES.add("quot");
+    PREDEFINED_ENTITIES.add("apos");
+  }
 
   boolean namespaceAware;
   boolean ignoreWhitespace;
   boolean expandEntityReferences;
   boolean ignoreComments;
   boolean coalescing;
+
+  XMLReader reader; // reference back to the parser to get features
   
   DomDocument doc; // document being constructed
   Node ctx; // current context (parent node)
@@ -110,20 +128,42 @@ class SAXEventSink
     doc.setStrictErrorChecking(false);
     doc.setBuilding(true);
     ctx = doc;
-  }
 
-  public void xmlDecl(String version, String encoding, boolean standalone,
-                      String inputEncoding)
-    throws SAXException
-  {
-    if (interrupted)
+    final String FEATURES = "http://xml.org/sax/features/";
+    final String PROPERTIES = "http://xml.org/sax/properties/";
+    final String GNU_PROPERTIES = "http://gnu.org/sax/properties/";
+
+    boolean standalone = reader.getFeature(FEATURES + "is-standalone");
+    doc.setXmlStandalone(standalone);
+    try
+      {
+        String version = (String) reader.getProperty(PROPERTIES +
+                                                     "document-xml-version");
+        doc.setXmlVersion(version);
+      }
+    catch (SAXNotRecognizedException e)
+      {
+      }
+    catch (SAXNotSupportedException e)
+      {
+      }
+    if (locator != null && locator instanceof Locator2)
+      {
+        String encoding = ((Locator2) locator).getEncoding();
+        doc.setInputEncoding(encoding);
+      }
+    try
+      {
+        String encoding = (String) reader.getProperty(GNU_PROPERTIES +
+                                                      "document-xml-encoding");
+        doc.setXmlEncoding(encoding);
+      }
+    catch (SAXNotRecognizedException e)
+      {
+      }
+    catch (SAXNotSupportedException e)
       {
-        return;
       }
-    doc.setXmlVersion(version);
-    doc.setXmlEncoding(encoding);
-    doc.setXmlStandalone(standalone);
-    doc.setInputEncoding(inputEncoding);
   }
 
   public void endDocument()
@@ -265,7 +305,7 @@ class SAXEventSink
   public void characters(char[] c, int off, int len)
     throws SAXException
   {
-    if (interrupted)
+    if (interrupted || len < 1)
       {
         return;
       }
@@ -301,11 +341,8 @@ class SAXEventSink
       {
         return;
       }
-    if (!inDTD)
-      {
-        Node pi = createProcessingInstruction(target, data);
-        ctx.appendChild(pi);
-      }
+    Node pi = createProcessingInstruction(target, data);
+    ctx.appendChild(pi);
   }
 
   protected Node createProcessingInstruction(String target, String data)
@@ -354,6 +391,8 @@ class SAXEventSink
   public void startEntity(String name)
     throws SAXException
   {
+    if (interrupted)
+      return;
     DocumentType doctype = doc.getDoctype();
     if (doctype == null)
       {
@@ -361,19 +400,9 @@ class SAXEventSink
                                "reference to entity in undeclared doctype");
       }
     if ("[dtd]".equals(name) || name.charAt(0) == '%')
-      {
-        // Ignore DTD and parameter entities
-        ctx = doctype;
-        return;
-      }
-    if ("lt".equals(name) ||
-        "gt".equals(name) ||
-        "amp".equals(name) ||
-        "apos".equals(name) ||
-        "quot".equals(name))
-      {
-        return;
-      }
+      return;
+    if (PREDEFINED_ENTITIES.contains(name))
+      return;
     // Get entity
     NamedNodeMap entities = doctype.getEntities();
     Entity entity = (Entity) entities.getNamedItem(name);
@@ -382,59 +411,47 @@ class SAXEventSink
         throw new SAXException("SAX parser error: " +
                                "reference to undeclared entity: " + name);
       }
-    pushEntity(entity);
+    EntityReference ref = doc.createEntityReference(name);
+    // DomDocument populates with the entity replacement text, remove this
+    Node child = ref.getFirstChild();
+    while (child != null)
+      {
+        Node nextChild = child.getNextSibling();
+        ref.removeChild(child);
+        child = nextChild;
+      }
+    ctx.appendChild(ref);
+    ctx = ref;
   }
 
   public void endEntity(String name)
     throws SAXException
   {
+    if (interrupted)
+      return;
     if ("[dtd]".equals(name) || name.charAt(0) == '%')
-      {
-        // Ignore DTD and parameter entities
-        return;
-      }
-    if ("lt".equals(name) ||
-        "gt".equals(name) ||
-        "amp".equals(name) ||
-        "apos".equals(name) ||
-        "quot".equals(name))
-      {
-        return;
-      }
-    // Get entity
-    Entity entity = popEntity();
-    // TODO resolve external entities to ensure that entity has content
+      return;
+    if (PREDEFINED_ENTITIES.contains(name))
+      return;
+    // Get entity reference
+    EntityReference ref = (EntityReference) ctx;
+    if (!ref.getNodeName().equals(name))
+      throw new SAXException("expecting end of "+ref.getNodeName()+" entity");
+    ctx = ctx.getParentNode();
+    if (ref instanceof DomNode)
+      ((DomNode) ref).makeReadonly();
     if (expandEntityReferences)
       {
-        // Get entity content
-        for (Node child = entity.getFirstChild(); child != null;
-             child = child.getNextSibling())
+        // Move entity content from reference node onto context
+        Node child = ref.getFirstChild();
+        while (child != null)
           {
+            Node nextChild = child.getNextSibling();
             ctx.appendChild(child);
+            child = nextChild;
           }
+        ctx.removeChild(ref);
       }
-    else
-      {
-        Node entityReference = doc.createEntityReference(name);
-        ctx.appendChild(entityReference);
-      }
-  }
-
-  void pushEntity(Node entity)
-  {
-    if (entityCtx == null)
-      {
-        entityCtx = new LinkedList();
-      }
-    entityCtx.addLast(ctx);
-    ctx = entity;
-  }
-
-  Entity popEntity()
-  {
-    Entity ret = (Entity) ctx;
-    ctx = (Node) entityCtx.removeLast();
-    return ret;
   }
 
   public void startCDATA()
@@ -456,11 +473,8 @@ class SAXEventSink
       {
         return;
       }
-    if (!inDTD)
-      {
-        Node comment = createComment(c, off, len);
-        ctx.appendChild(comment);
-      }
+    Node comment = createComment(c, off, len);
+    ctx.appendChild(comment);
   }
 
   protected Node createComment(char[] c, int off, int len)
@@ -477,6 +491,8 @@ class SAXEventSink
       {
         return;
       }
+    if (!inDTD)
+      throw new SAXException("notation decl outside DTD");
     DomDoctype doctype = (DomDoctype) ctx;
     doctype.declareNotation(name, publicId, systemId);
   }
@@ -489,6 +505,8 @@ class SAXEventSink
       {
         return;
       }
+    if (!inDTD)
+      throw new SAXException("unparsed entity decl outside DTD");
     DomDoctype doctype = (DomDoctype) ctx;
     Entity entity = doctype.declareEntity(name, publicId, systemId,
                                           notationName);
@@ -503,6 +521,8 @@ class SAXEventSink
       {
         return;
       }
+    if (!inDTD)
+      throw new SAXException("element decl outside DTD");
     // Ignore fake element declarations generated by ValidationConsumer.
     // If an element is not really declared in the DTD it will not be
     // declared in the document model.
@@ -522,6 +542,8 @@ class SAXEventSink
       {
         return;
       }
+    if (!inDTD)
+      throw new SAXException("attribute decl outside DTD");
     DomDoctype doctype = (DomDoctype) ctx;
     doctype.attributeDecl(eName, aName, type, mode, value);
   }
@@ -533,6 +555,8 @@ class SAXEventSink
       {
         return;
       }
+    if (!inDTD)
+      throw new SAXException("internal entity decl outside DTD");
     DomDoctype doctype = (DomDoctype) ctx;
     Entity entity = doctype.declareEntity(name, null, null, null);
     if (entity != null)
@@ -549,6 +573,8 @@ class SAXEventSink
       {
         return;
       }
+    if (!inDTD)
+      throw new SAXException("external entity decl outside DTD");
     DomDoctype doctype = (DomDoctype) ctx;
     Entity entity = doctype.declareEntity(name, publicId, systemId, null);
   }
index 389e02bb38795b5d0d57839302b878481d87d365..bdbf9281880817547f283ccca1eb0e880f8d7255 100644 (file)
@@ -37,7 +37,6 @@ exception statement from your version. */
 
 package gnu.xml.pipeline;
 
-import gnu.xml.aelfred2.ContentHandler2;
 import gnu.xml.util.DomParser;
 
 import org.xml.sax.Attributes;
@@ -330,7 +329,7 @@ public class DomConsumer implements EventConsumer
      * accepted illegal input data). </p>
      */
     public static class Handler
-       implements ContentHandler2, LexicalHandler,
+       implements ContentHandler, LexicalHandler,
            DTDHandler, DeclHandler
     {
        protected DomConsumer           consumer;
@@ -430,20 +429,6 @@ public class DomConsumer implements EventConsumer
            top = document;
        }
 
-        // ContentHandler2
-        public void xmlDecl(String version,
-                            String encoding,
-                            boolean standalone,
-                            String inputEncoding)
-          throws SAXException
-        {
-          if (document != null)
-            {
-              document.setXmlVersion(version);
-              document.setXmlStandalone(standalone);
-            }
-        }
-
        // SAX1
        public void endDocument ()
        throws SAXException
index 6600271718aa75565ce15d15c71e5d241961714d..a14fb340f1278634f875467806ffd75d96ca4927 100644 (file)
@@ -44,8 +44,6 @@ import org.xml.sax.*;
 import org.xml.sax.ext.*;
 import org.xml.sax.helpers.XMLFilterImpl;
 
-import gnu.xml.aelfred2.ContentHandler2;
-
 /**
  * A customizable event consumer, used to assemble various kinds of filters
  * using SAX handlers and an optional second consumer.  It can be constructed
@@ -138,7 +136,7 @@ import gnu.xml.aelfred2.ContentHandler2;
  * @author David Brownell
  */
 public class EventFilter
-    implements EventConsumer, ContentHandler2, DTDHandler,
+    implements EventConsumer, ContentHandler, DTDHandler,
            LexicalHandler, DeclHandler
 {
     // SAX handlers
@@ -600,17 +598,6 @@ public class EventFilter
            docNext.startDocument ();
     }
 
-    public void xmlDecl(String version, String encoding, boolean standalone,
-                        String inputEncoding)
-      throws SAXException
-    {
-      if (docNext != null && docNext instanceof ContentHandler2)
-        {
-          ((ContentHandler2) docNext).xmlDecl(version, encoding, standalone,
-                                              inputEncoding);
-        }
-    }
-
     /** <b>SAX2:</b> passes this callback to the next consumer, if any */
     public void skippedEntity (String name) throws SAXException
     {
diff --git a/libjava/classpath/gnu/xml/stream/BufferedReader.java b/libjava/classpath/gnu/xml/stream/BufferedReader.java
new file mode 100644 (file)
index 0000000..f8287e8
--- /dev/null
@@ -0,0 +1,198 @@
+/* BufferedReader.java -- 
+   Copyright (C) 2005  Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.xml.stream;
+
+import java.io.IOException;
+import java.io.Reader;
+
+/**
+ * A mark-capable buffered reader.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ */
+class BufferedReader
+  extends Reader
+{
+
+  static final int DEFAULT_BUFFER_SIZE = 4096;
+
+  final Reader in;
+  char[] buf;
+  int pos, count, markpos, marklimit, bufferSize;
+
+  BufferedReader(Reader in)
+  {
+    this(in, DEFAULT_BUFFER_SIZE);
+  }
+         
+  BufferedReader(Reader in, int bufferSize)
+  {
+    if (bufferSize < 1)
+      throw new IllegalArgumentException();
+    this.in = in;
+    this.bufferSize = bufferSize;
+    buf = new char[bufferSize];
+    pos = count = bufferSize;
+  }
+
+  public void close()
+    throws IOException
+  {
+    buf = null;
+    pos = count = 0;
+    markpos = -1;
+    in.close();
+  }
+
+  public void mark(int readlimit)
+    throws IOException
+  {
+    marklimit = readlimit;
+    markpos = pos;
+  }
+
+  public boolean markSupported()
+  {
+    return true;
+  }
+
+  public int read()
+    throws IOException
+  {
+    if (pos >= count && !refill())
+      return -1;
+    return (int) buf[pos++];
+  }
+
+  public int read(char[] b)
+    throws IOException
+  {
+    return read(b, 0, b.length);
+  }
+
+  public int read(char[] b, int off, int len)
+    throws IOException
+  {
+    if (off < 0 || len < 0 || b.length - off < len)
+      throw new IndexOutOfBoundsException();
+    
+    if (len == 0)
+      return 0;
+    
+    if (pos >= count && !refill())
+      return -1;
+                
+    int ret = Math.min(count - pos, len);
+    System.arraycopy(buf, pos, b, off, ret);
+    pos += ret;
+    off += ret;
+    len -= ret;
+    
+    while (len > 0 && refill())
+      {
+        int remain = Math.min(count - pos, len);
+        System.arraycopy(buf, pos, b, off, remain);
+        pos += remain;
+        off += remain;
+        len -= remain;
+        ret += remain;
+      }
+    
+    return ret;
+  }
+
+  public void reset()
+    throws IOException
+  {
+    if (markpos == -1)
+      throw new IOException(buf == null ? "Stream closed." : "Invalid mark.");
+    pos = markpos;
+  }
+
+  public long skip(long n)
+    throws IOException
+  {
+    if (buf == null)
+      throw new IOException("Stream closed.");
+    final long origN = n;
+    while (n > 0L)
+      {
+        if (pos >= count && !refill())
+          break;
+        int numread = (int) Math.min((long) (count - pos), n);
+        pos += numread;
+        n -= numread;
+      }
+    return origN - n;
+  }
+
+  private boolean refill()
+    throws IOException
+  {
+    if (buf == null)
+      throw new IOException("Stream closed.");
+
+    int markcount = count - markpos;
+    if (markpos == -1 || markcount >= marklimit)
+      {
+        markpos = -1;
+        pos = count = 0;
+      }
+    else
+      {
+        char[] newbuf = buf;
+        if (markpos < bufferSize)
+          { 
+            newbuf = new char[count - markpos + bufferSize];
+          }
+        System.arraycopy(buf, markpos, newbuf, 0, markcount);
+        buf = newbuf;
+        count = markcount;
+        pos -= markpos;
+        markpos = 0;
+      }
+
+    int numread = in.read(buf, count, bufferSize);
+    if (numread <= 0)
+      return false;
+
+    count += numread;
+    return true;
+  }
+
+}
diff --git a/libjava/classpath/gnu/xml/stream/CRLFReader.java b/libjava/classpath/gnu/xml/stream/CRLFReader.java
new file mode 100644 (file)
index 0000000..1d214ce
--- /dev/null
@@ -0,0 +1,180 @@
+/* CRLFReader.java -- 
+   Copyright (C) 2005  Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.xml.stream;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.Reader;
+
+/**
+ * Filtered reader that normalizes CRLF pairs into LFs.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ */
+class CRLFReader
+  extends Reader
+{
+
+  /**
+   * The CR octet.
+   */
+  public static final int CR = 13;
+
+  /**
+   * The LF octet.
+   */
+  public static final int LF = 10;
+
+  private boolean doReset;
+
+  protected Reader in;
+
+  /**
+   * Constructor.
+   */
+  protected CRLFReader(Reader in)
+  {
+    if (!in.markSupported())
+      in = new BufferedReader(in);
+    this.in = in;
+  }
+
+  public int read()
+    throws IOException
+  {
+    int c = in.read();
+    if (c == 13) // CR
+      {
+        in.mark(1);
+        int d = in.read();
+        if (d == 10) // LF
+          c = d;
+        else
+          in.reset();
+      }
+    return c;
+  }
+
+  public int read(char[] b)
+    throws IOException
+  {
+    return read(b, 0, b.length);
+  }
+
+  public int read(char[] b, int off, int len)
+    throws IOException
+  {
+    in.mark(len + 1);
+    int l = in.read(b, off, len);
+    if (l > 0)
+      {
+        int i = indexOfCRLF(b, off, l);
+        if (doReset)
+          {
+            in.reset();
+            if (i != -1)
+              {
+                l = in.read(b, off, (i + 1) - off); // read to CR
+                in.read(); // skip LF
+                b[i] = '\n'; // fix CR as LF
+              }
+            else
+              l = in.read(b, off, len); // CR(s) but no LF
+          } 
+      }
+    return l;
+  }
+
+  public boolean markSupported()
+  {
+    return in.markSupported();
+  }
+
+  public void mark(int limit)
+    throws IOException
+  {
+    in.mark(limit);
+  }
+
+  public void reset()
+    throws IOException
+  {
+    in.reset();
+  }
+
+  public long skip(long n)
+    throws IOException
+  {
+    return in.skip(n);
+  }
+
+  public void close()
+    throws IOException
+  {
+    in.close();
+  }
+
+  private int indexOfCRLF(char[] b, int off, int len)
+    throws IOException
+  {
+    doReset = false;
+    int lm1 = len - 1;
+    for (int i = off; i < len; i++)
+      {
+        if (b[i] == '\r') // CR
+          {
+            int d;
+            if (i == lm1)
+              {
+                d = in.read();
+                doReset = true;
+              }
+            else
+              d = b[i + 1];
+            if (d == '\n') // LF
+              {
+                doReset = true;
+                return i;
+              }
+          }
+      }
+    return -1;
+  }
+
+}
+
diff --git a/libjava/classpath/gnu/xml/stream/SAXParser.java b/libjava/classpath/gnu/xml/stream/SAXParser.java
new file mode 100644 (file)
index 0000000..54c8b36
--- /dev/null
@@ -0,0 +1,966 @@
+/* SAXParser.java -- 
+   Copyright (C) 2005  Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.xml.stream;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.Reader;
+import java.net.URL;
+import java.util.Iterator;
+import java.util.Map;
+import javax.xml.XMLConstants;
+import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
+import javax.xml.stream.XMLEventReader;
+import javax.xml.stream.XMLReporter;
+import javax.xml.stream.XMLResolver;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.xml.sax.ContentHandler;
+import org.xml.sax.DTDHandler;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.Parser;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXNotRecognizedException;
+import org.xml.sax.SAXNotSupportedException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.XMLReader;
+import org.xml.sax.ext.Attributes2;
+import org.xml.sax.ext.DeclHandler;
+import org.xml.sax.ext.EntityResolver2;
+import org.xml.sax.ext.LexicalHandler;
+import org.xml.sax.ext.Locator2;
+
+/**
+ * JAXP SAX parser using an underlying StAX parser.
+ * This parser supports the following additional SAX features and
+ * properties:
+ * <table>
+ * <tr><th colspan='4'>Features</th></tr>
+ * <tr><td>http://gnu.org/sax/features/xml-base</td>
+ * <td colspan='2'>read/write</td>
+ * <td>Indicates or sets whether XML Base processing is enabled</td></tr>
+ * <tr><th colspan='4'>Properties</th></tr>
+ * <tr><td>http://gnu.org/sax/properties/base-uri</td>
+ * <td>read-only</td><td>String</td>
+ * <td>Returns the base URI of the current event</td></tr>
+ * <tr><td>http://gnu.org/sax/properties/document-xml-encoding</td>
+ * <td>read-only</td><td>String</td>
+ * <td>Returns the encoding specified in the XML declaration</td></tr>
+ * </table>
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ */
+public class SAXParser
+  extends javax.xml.parsers.SAXParser
+  implements XMLReader, Attributes2, Locator2, XMLReporter,
+             XMLParser.XMLResolver2
+{
+
+  ContentHandler contentHandler;
+  DeclHandler declHandler;
+  DTDHandler dtdHandler;
+  EntityResolver entityResolver;
+  ErrorHandler errorHandler;
+  LexicalHandler lexicalHandler;
+
+  boolean validating = false;
+  boolean namespaceAware = true;
+  boolean xIncludeAware = false;
+  boolean stringInterning = true;
+  boolean coalescing = true;
+  boolean replaceERefs = true;
+  boolean externalEntities = true;
+  boolean supportDTD = true;
+  boolean baseAware = true;
+
+  XMLParser parser;
+  XMLStreamReader reader;
+  String encoding;
+  String xmlVersion;
+  boolean xmlStandalone;
+  String xmlEncoding;
+  String baseURI;
+
+  public SAXParser()
+  {
+  }
+
+  SAXParser(boolean validating, boolean namespaceAware, boolean xIncludeAware)
+  {
+    this.validating = validating;
+    this.namespaceAware = namespaceAware;
+    this.xIncludeAware = xIncludeAware;
+  }
+
+  // -- SAXParser --
+  
+  public Parser getParser()
+    throws SAXException
+  {
+    return null;
+  }
+  
+  public XMLReader getXMLReader()
+    throws SAXException
+  {
+    return this;
+  }
+
+  public boolean isNamespaceAware()
+  {
+    return namespaceAware;
+  }
+
+  public boolean isValidating()
+  {
+    return validating;
+  }
+
+  public void setProperty(String name, Object value)
+    throws SAXNotRecognizedException, SAXNotSupportedException
+  {
+    if (parser != null)
+      throw new IllegalStateException("parsing in progress");
+    final String FEATURES = "http://xml.org/sax/features/";
+    final String PROPERTIES = "http://xml.org/sax/properties/";
+    final String GNU_FEATURES = "http://gnu.org/sax/features/";
+    if ((FEATURES + "namespaces").equals(name))
+      namespaceAware = Boolean.TRUE.equals(value);
+    else if ((FEATURES + "namespace-prefixes").equals(name))
+      {
+        // NOOP
+      }
+    else if ((FEATURES + "string-interning").equals(name))
+      stringInterning = Boolean.TRUE.equals(value);
+    else if ((FEATURES + "use-attributes2").equals(name))
+      {
+        // NOOP
+      }
+    else if ((FEATURES + "validation").equals(name))
+      validating = Boolean.TRUE.equals(value);
+    else if ((FEATURES + "external-general-entities").equals(name))
+      externalEntities = Boolean.TRUE.equals(value);
+    else if ((FEATURES + "external-parameter-entities").equals(name))
+      externalEntities = Boolean.TRUE.equals(value);
+    else if ((PROPERTIES + "declaration-handler").equals(name))
+      declHandler = (DeclHandler) value;
+    else if ((PROPERTIES + "lexical-handler").equals(name))
+      lexicalHandler = (LexicalHandler) value;
+    else if ((GNU_FEATURES + "xml-base").equals(name))
+      baseAware = Boolean.TRUE.equals(value);
+    else
+      throw new SAXNotSupportedException(name);
+  }
+
+  public Object getProperty(String name)
+    throws SAXNotRecognizedException, SAXNotSupportedException
+  {
+    final String FEATURES = "http://xml.org/sax/features/";
+    final String PROPERTIES = "http://xml.org/sax/properties/";
+    final String GNU_FEATURES = "http://gnu.org/sax/features/";
+    final String GNU_PROPERTIES = "http://gnu.org/sax/properties/";
+    if ((GNU_FEATURES + "base-uri").equals(name))
+      return baseURI;
+    if ((FEATURES + "is-standalone").equals(name))
+      return xmlStandalone ? Boolean.TRUE : Boolean.FALSE;
+    if ((FEATURES + "namespaces").equals(name))
+      return namespaceAware ? Boolean.TRUE : Boolean.FALSE;
+    if ((FEATURES + "namespace-prefixes").equals(name))
+      return Boolean.TRUE;
+    if ((FEATURES + "string-interning").equals(name))
+      return stringInterning ? Boolean.TRUE : Boolean.FALSE;
+    if ((FEATURES + "use-attributes2").equals(name))
+      return Boolean.TRUE;
+    if ((FEATURES + "use-locator2").equals(name))
+      return Boolean.TRUE;
+    if ((FEATURES + "use-entity-resolver2").equals(name))
+      return Boolean.FALSE;
+    if ((FEATURES + "validation").equals(name))
+      return validating ? Boolean.TRUE : Boolean.FALSE;
+    if ((FEATURES + "external-general-entities").equals(name))
+      return externalEntities ? Boolean.TRUE : Boolean.FALSE;
+    if ((FEATURES + "external-parameter-entities").equals(name))
+      return externalEntities ? Boolean.TRUE : Boolean.FALSE;
+    if ((FEATURES + "xml-1.1").equals(name))
+      return Boolean.TRUE;
+    if ((PROPERTIES + "declaration-handler").equals(name))
+      return declHandler;
+    if ((PROPERTIES + "document-xml-version").equals(name))
+      return xmlVersion;
+    if ((PROPERTIES + "lexical-handler").equals(name))
+      return lexicalHandler;
+    if ((GNU_FEATURES + "xml-base").equals(name))
+      return baseAware ? Boolean.TRUE : Boolean.FALSE;
+    if ((GNU_PROPERTIES + "document-xml-encoding").equals(name))
+      return xmlEncoding;
+    throw new SAXNotSupportedException(name);
+  }
+
+  public boolean isXIncludeAware()
+  {
+    return xIncludeAware;
+  }
+
+  public void reset()
+  {
+    parser = null;
+    encoding = null;
+    xmlVersion = null;
+    xmlStandalone = false;
+  }
+
+  // -- XMLReader --
+
+  public boolean getFeature(String name)
+    throws SAXNotRecognizedException, SAXNotSupportedException
+  {
+    Object ret = getProperty(name);
+    if (ret instanceof Boolean)
+      return ((Boolean) ret).booleanValue();
+    throw new SAXNotSupportedException(name);
+  }
+
+  public void setFeature(String name, boolean value)
+    throws SAXNotRecognizedException, SAXNotSupportedException
+  {
+    setProperty(name, value ? Boolean.TRUE : Boolean.FALSE);
+  }
+
+  public void setEntityResolver(EntityResolver resolver)
+  {
+    entityResolver = resolver;
+  }
+
+  public EntityResolver getEntityResolver()
+  {
+    return entityResolver;
+  }
+
+  public void setDTDHandler(DTDHandler handler)
+  {
+    dtdHandler = handler;
+  }
+
+  public DTDHandler getDTDHandler()
+  {
+    return dtdHandler;
+  }
+
+  public void setContentHandler(ContentHandler handler)
+  {
+    contentHandler = handler;
+  }
+
+  public ContentHandler getContentHandler()
+  {
+    return contentHandler;
+  }
+
+  public void setErrorHandler(ErrorHandler handler)
+  {
+    errorHandler = handler;
+  }
+
+  public ErrorHandler getErrorHandler()
+  {
+    return errorHandler;
+  }
+
+  public synchronized void parse(InputSource input)
+    throws IOException, SAXException
+  {
+    reset();
+    String systemId = input.getSystemId();
+    InputStream in = input.getByteStream();
+    boolean opened = false;
+    if (in != null)
+      parser = new XMLParser(in, systemId,
+                             validating,
+                             namespaceAware,
+                             coalescing,
+                             replaceERefs,
+                             externalEntities,
+                             supportDTD,
+                             baseAware,
+                             stringInterning,
+                             this,
+                             this);
+    else
+      {
+        Reader r = input.getCharacterStream();
+        if (r != null)
+          parser = new XMLParser(r, systemId,
+                                 validating,
+                                 namespaceAware,
+                                 coalescing,
+                                 replaceERefs,
+                                 externalEntities,
+                                 supportDTD,
+                                 baseAware,
+                                 stringInterning,
+                                 this,
+                                 this);
+      }
+    if (parser == null)
+      {
+        if (systemId == null)
+          throw new SAXException("No stream or system ID specified");
+        systemId = XMLParser.absolutize(null, systemId);
+        in = new URL(systemId).openStream();
+        opened = true;
+        parser = new XMLParser(in, systemId,
+                               validating,
+                               namespaceAware,
+                               coalescing,
+                               replaceERefs,
+                               externalEntities,
+                               supportDTD,
+                               baseAware,
+                               stringInterning,
+                               this,
+                               this);
+      }
+    reader = parser;
+    baseURI = systemId;
+    
+    if (xIncludeAware)
+      reader = new XIncludeFilter(parser, systemId, namespaceAware,
+                                  validating, true);
+    
+    if (contentHandler != null)
+      contentHandler.setDocumentLocator(this);
+    boolean startDocumentDone = false;
+    try
+      {
+        while (parser.hasNext())
+          {
+            int event = parser.next();
+            if (baseAware)
+              baseURI = parser.getXMLBase();
+            switch (event)
+              {
+              case XMLStreamConstants.CHARACTERS:
+                if (contentHandler != null)
+                  {
+                    char[] b = reader.getTextCharacters();
+                    contentHandler.characters(b, 0, b.length);
+                  }
+                break;
+              case XMLStreamConstants.SPACE:
+                if (contentHandler != null)
+                  {
+                    char[] b = reader.getTextCharacters();
+                    if (isIgnorableWhitespace(parser, b, false))
+                      contentHandler.ignorableWhitespace(b, 0, b.length);
+                    else
+                      contentHandler.characters(b, 0, b.length);
+                  }
+                break;
+              case XMLStreamConstants.CDATA:
+                if (lexicalHandler != null)
+                  lexicalHandler.startCDATA();
+                if (contentHandler != null)
+                  {
+                    char[] b = reader.getTextCharacters();
+                    if (isIgnorableWhitespace(parser, b, true))
+                      contentHandler.ignorableWhitespace(b, 0, b.length);
+                    else
+                      contentHandler.characters(b, 0, b.length);
+                  }
+                if (lexicalHandler != null)
+                  lexicalHandler.endCDATA();
+                break;
+              case XMLStreamConstants.START_ELEMENT:
+                if (contentHandler != null)
+                  {
+                    QName name = reader.getName();
+                    String uri = name.getNamespaceURI();
+                    String localName = name.getLocalPart();
+                    String prefix = name.getPrefix();
+                    String qName = localName;
+                    if (!"".equals(prefix))
+                      qName = prefix + ":" + localName;
+                    if (!namespaceAware)
+                      {
+                        uri = "";
+                        localName = "";
+                      }
+                    else
+                      {
+                        int nc = reader.getNamespaceCount();
+                        for (int i = 0; i < nc; i++)
+                          {
+                            String nsuri = reader.getNamespaceURI(i);
+                            String nsprefix = reader.getNamespacePrefix(i);
+                            if ("xml".equals(nsprefix))
+                              continue;
+                            contentHandler.startPrefixMapping(nsprefix, nsuri);
+                          }
+                      }
+                    contentHandler.startElement(uri, localName, qName, this);
+                  }
+                break;
+              case XMLStreamConstants.END_ELEMENT:
+                if (contentHandler != null)
+                  {
+                    QName name = reader.getName();
+                    String uri = name.getNamespaceURI();
+                    String localName = name.getLocalPart();
+                    String prefix = name.getPrefix();
+                    String qName = localName;
+                    if (!"".equals(prefix))
+                      qName = prefix + ":" + localName;
+                    if (!namespaceAware)
+                      {
+                        uri = "";
+                        localName = "";
+                      }
+                    contentHandler.endElement(uri, localName, qName);
+                    if (namespaceAware)
+                      {
+                        int nc = reader.getNamespaceCount();
+                        for (int i = 0; i < nc; i++)
+                          {
+                            String nsprefix = reader.getNamespacePrefix(i);
+                            if ("xml".equals(nsprefix))
+                              continue;
+                            contentHandler.endPrefixMapping(nsprefix);
+                          }
+                      }
+                  }
+                break;
+              case XMLStreamConstants.COMMENT:
+                if (lexicalHandler != null)
+                  {
+                    char[] b = reader.getTextCharacters();
+                    lexicalHandler.comment(b, 0, b.length);
+                  }
+                break;
+              case XMLStreamConstants.PROCESSING_INSTRUCTION:
+                if (contentHandler != null)
+                  {
+                    String target = reader.getPITarget();
+                    String data = reader.getPIData();
+                    if (data == null)
+                      data = "";
+                    contentHandler.processingInstruction(target, data);
+                  }
+                break;
+              case XMLStreamConstants.START_ENTITY:
+                if (lexicalHandler != null)
+                  {
+                    String name = reader.getText();
+                    lexicalHandler.startEntity(name);
+                  }
+                break;
+              case XMLStreamConstants.END_ENTITY:
+                if (lexicalHandler != null)
+                  {
+                    String name = reader.getText();
+                    lexicalHandler.endEntity(name);
+                  }
+                break;
+              case XMLStreamConstants.START_DOCUMENT:
+                encoding = reader.getEncoding();
+                xmlVersion = reader.getVersion();
+                xmlStandalone = reader.isStandalone();
+                xmlEncoding = reader.getCharacterEncodingScheme();
+                if (contentHandler != null)
+                  contentHandler.startDocument();
+                startDocumentDone = true;
+                break;
+              case XMLStreamConstants.END_DOCUMENT:
+                if (contentHandler != null)
+                  contentHandler.endDocument();
+                break;
+              case XMLStreamConstants.DTD:
+                XMLParser.Doctype doctype = parser.doctype;
+                if (lexicalHandler != null)
+                  {
+                    String rootName = doctype.rootName;
+                    String publicId = doctype.publicId;
+                    String systemId2 = doctype.systemId;
+                    lexicalHandler.startDTD(rootName, publicId, systemId2);
+                  }
+                for (Iterator i = doctype.entryIterator(); i.hasNext(); )
+                  {
+                    String entry = (String) i.next();
+                    char c = entry.charAt(0);
+                    String name = entry.substring(1);
+                    if ('E' == c)
+                      {
+                        // Element decl
+                        if (declHandler != null)
+                          {
+                            XMLParser.ContentModel model =
+                              doctype.getElementModel(name);
+                            declHandler.elementDecl(name, model.text);
+                          }
+                      }
+                    else if ('A' == c)
+                      {
+                        // Attlist decl
+                        if (declHandler != null)
+                          {
+                            for (Iterator j = doctype.attlistIterator(name);
+                                 j.hasNext(); )
+                              {
+                                Map.Entry att = (Map.Entry) j.next();
+                                String aname = (String) att.getKey();
+                                XMLParser.AttributeDecl decl =
+                                  (XMLParser.AttributeDecl) att.getValue();
+                                String type = decl.type;
+                                String value = decl.value;
+                                String mode = null;
+                                switch (decl.valueType)
+                                  {
+                                  case XMLParser.ATTRIBUTE_DEFAULT_FIXED:
+                                    mode = "#FIXED";
+                                    break;
+                                  case XMLParser.ATTRIBUTE_DEFAULT_REQUIRED:
+                                    mode = "#REQUIRED";
+                                    break;
+                                  case XMLParser.ATTRIBUTE_DEFAULT_IMPLIED:
+                                    mode = "#IMPLIED";
+                                    break;
+                                  }
+                                declHandler.attributeDecl(name, aname,
+                                                          type, mode, value);
+                              }
+                          }
+                      }
+                    else if ('e' == c)
+                      {
+                        // Entity decl
+                        Object entity = doctype.getEntity(name);
+                        if (entity instanceof String)
+                          {
+                            if (declHandler != null)
+                              declHandler.internalEntityDecl(name,
+                                                             (String) entity);
+                          }
+                        else
+                          {
+                            XMLParser.ExternalIds ids =
+                              (XMLParser.ExternalIds) entity;
+                            if (ids.notationName != null)
+                              {
+                                if (dtdHandler != null)
+                                  {
+                                    String pub = ids.publicId;
+                                    String url = ids.systemId;
+                                    String not = ids.notationName;
+                                    dtdHandler.unparsedEntityDecl(name,
+                                                                  pub,
+                                                                  url,
+                                                                  not);
+                                  }
+                              }
+                            else
+                              {
+                                if (declHandler != null)
+                                  {
+                                    String pub = ids.publicId;
+                                    String url = ids.systemId;
+                                    declHandler.externalEntityDecl(name,
+                                                                   pub,
+                                                                   url);
+                                  }
+                              }
+                          }
+                      }
+                    else if ('n' == c)
+                      {
+                        // Notation decl
+                        if (dtdHandler != null)
+                          {
+                            XMLParser.ExternalIds ids =
+                              doctype.getNotation(name);
+                            String pub = ids.publicId;
+                            String url = ids.systemId;
+                            dtdHandler.notationDecl(name, pub, url);
+                          }
+                      }
+                    else if ('c' == c)
+                      {
+                        // Comment
+                        if (lexicalHandler != null)
+                          {
+                            String comment = doctype.getComment(name);
+                            char[] b = comment.toCharArray();
+                            lexicalHandler.comment(b, 0, b.length);
+                          }
+                      }
+                    else if ('p' == c)
+                      {
+                        // Processing instruction
+                        if (contentHandler != null)
+                          {
+                            String[] pi = doctype.getPI(name);
+                            String target = pi[0];
+                            String data = pi[1];
+                            if (data == null)
+                              data = "";
+                            contentHandler.processingInstruction(target, data);
+                          }
+                      }
+                  }
+                if (lexicalHandler != null)
+                  lexicalHandler.endDTD();
+              }
+          }
+      }
+    catch (XMLStreamException e)
+      {
+        if (!startDocumentDone && contentHandler != null)
+          contentHandler.startDocument();
+        SAXParseException e2 = new SAXParseException(e.getMessage(), this);
+        e2.initCause(e);
+        if (errorHandler != null)
+          errorHandler.fatalError(e2);
+        if (contentHandler != null)
+          contentHandler.endDocument();
+        throw e2;
+      }
+    finally
+      {
+        if (opened)
+          in.close();
+        reset();
+      }
+  }
+
+  /**
+   * Indicates whether the specified characters are ignorable whitespace.
+   */
+  private boolean isIgnorableWhitespace(XMLParser reader, char[] b,
+                                        boolean testCharacters)
+    throws XMLStreamException
+  {
+    XMLParser.Doctype doctype = reader.doctype;
+    if (doctype == null)
+      return false;
+    String currentElement = reader.getCurrentElement();
+    // check for xml:space
+    int ac = reader.getAttributeCount();
+    for (int i = 0; i < ac; i++)
+      {
+        QName aname = reader.getAttributeQName(i);
+        if ("space".equals(aname.getLocalPart()) &&
+            XMLConstants.XML_NS_URI.equals(aname.getNamespaceURI()))
+          {
+            if ("preserve".equals(reader.getAttributeValue(i)))
+              return false;
+          }
+      }
+    XMLParser.ContentModel model = doctype.getElementModel(currentElement);
+    if (model == null || model.type != XMLParser.ContentModel.ELEMENT)
+      return false;
+    if (model.external && xmlStandalone)
+      return false;
+    boolean white = true;
+    if (testCharacters)
+      {
+        for (int i = 0; i < b.length; i++)
+          {
+            if (b[i] != ' ' && b[i] != '\t' && b[i] != '\n' && b[i] != '\r')
+              {
+                white = false;
+                break;
+              }
+          }
+      }
+    return white;
+  }
+
+  public void parse(String systemId)
+    throws IOException, SAXException
+  {
+    parse(new InputSource(systemId));
+  }
+
+  // -- Attributes2 --
+
+  public int getIndex(String qName)
+  {
+    int len = reader.getAttributeCount();
+    for (int i = 0; i < len; i++)
+      {
+        QName q = reader.getAttributeQName(i);
+        String localName = q.getLocalPart();
+        String prefix = q.getPrefix();
+        String qn = ("".equals(prefix)) ? localName : prefix + ":" + localName;
+        if (qName.equals(qn))
+          return i;
+      }
+    return -1;
+  }
+
+  public int getIndex(String uri, String localName)
+  {
+    int len = reader.getAttributeCount();
+    for (int i = 0; i < len; i++)
+      {
+        QName q = reader.getAttributeQName(i);
+        String ln = q.getLocalPart();
+        String u = q.getNamespaceURI();
+        if (u == null && uri != null)
+          continue;
+        if (u != null && !u.equals(uri))
+          continue;
+        if (ln.equals(localName))
+          return i;
+      }
+    return -1;
+  }
+
+  public int getLength()
+  {
+    return reader.getAttributeCount();
+  }
+
+  public String getLocalName(int index)
+  {
+    return reader.getAttributeName(index);
+  }
+
+  public String getQName(int index)
+  {
+    QName q = reader.getAttributeQName(index);
+    String localName = q.getLocalPart();
+    String prefix = q.getPrefix();
+    return ("".equals(prefix)) ? localName : prefix + ":" + localName;
+  }
+
+  public String getType(int index)
+  {
+    String ret = reader.getAttributeType(index);
+    // SAX doesn't permit ENUMERATION?
+    return ("ENUMERATION".equals(ret)) ? "NMTOKEN" : ret;
+  }
+
+  public String getType(String qName)
+  {
+    int index = getIndex(qName);
+    return (index == -1) ? null : getType(index);
+  }
+
+  public String getType(String uri, String localName)
+  {
+    int index = getIndex(uri, localName);
+    return (index == -1) ? null : getType(index);
+  }
+
+  public String getURI(int index)
+  {
+    String ret = reader.getAttributeNamespace(index);
+    return (ret == null) ? "" : ret;
+  }
+
+  public String getValue(int index)
+  {
+    return reader.getAttributeValue(index);
+  }
+
+  public String getValue(String qName)
+  {
+    int index = getIndex(qName);
+    return (index == -1) ? null : getValue(index);
+  }
+
+  public String getValue(String uri, String localName)
+  {
+    int index = getIndex(uri, localName);
+    return (index == -1) ? null : getValue(index);
+  }
+
+  public boolean isDeclared(int index)
+  {
+    return parser.isAttributeDeclared(index);
+  }
+
+  public boolean isDeclared(String qName)
+  {
+    int index = getIndex(qName);
+    return (index == -1) ? false : isDeclared(index);
+  }
+
+  public boolean isDeclared(String uri, String localName)
+  {
+    int index = getIndex(uri, localName);
+    return (index == -1) ? false : isDeclared(index);
+  }
+
+  public boolean isSpecified(int index)
+  {
+    return reader.isAttributeSpecified(index);
+  }
+
+  public boolean isSpecified(String qName)
+  {
+    int index = getIndex(qName);
+    return (index == -1) ? false : isSpecified(index);
+  }
+
+  public boolean isSpecified(String uri, String localName)
+  {
+    int index = getIndex(uri, localName);
+    return (index == -1) ? false : isSpecified(index);
+  }
+
+  // -- Locator2 --
+  
+  public int getColumnNumber()
+  {
+    Location l = reader.getLocation();
+    return l.getColumnNumber();
+  }
+
+  public int getLineNumber()
+  {
+    Location l = reader.getLocation();
+    return l.getLineNumber();
+  }
+
+  public String getPublicId()
+  {
+    return null;
+  }
+
+  public String getSystemId()
+  {
+    Location l = reader.getLocation();
+    return l.getLocationURI();
+  }
+  
+  public String getEncoding()
+  {
+    return encoding;
+  }
+
+  public String getXMLVersion()
+  {
+    return xmlVersion;
+  }
+
+  // -- XMLResolver --
+  
+  public InputStream resolve(String uri)
+    throws XMLStreamException
+  {
+    return resolve(null, uri);
+  }
+
+  public InputStream resolve(String publicId, String systemId)
+    throws XMLStreamException
+  {
+    if (entityResolver != null)
+      {
+        try
+          {
+            InputSource input =
+              entityResolver.resolveEntity(publicId, systemId);
+            if (input != null)
+              return input.getByteStream();
+          }
+        catch (SAXException e)
+          {
+            XMLStreamException e2 = new XMLStreamException(e.getMessage());
+            e2.initCause(e);
+            throw e2;
+          }
+        catch (IOException e)
+          {
+            XMLStreamException e2 = new XMLStreamException(e.getMessage());
+            e2.initCause(e);
+            throw e2;
+          }
+      }
+    return null;
+  }
+
+  public XMLEventReader resolveAsXMLEventReader(String uri)
+    throws XMLStreamException
+  {
+    // unused
+    return null;
+  }
+
+  public XMLStreamReader resolveAsXMLStreamReader(String uri)
+    throws XMLStreamException
+  {
+    // unused
+    return null;
+  }
+
+  // -- XMLReporter --
+
+  public void report(String message, String errorType,
+                     Object relatedInformation, Location location)
+    throws XMLStreamException
+  {
+    if (errorHandler != null)
+      {
+        try
+          {
+            errorHandler.warning(new SAXParseException(message, this));
+          }
+        catch (SAXException e)
+          {
+            XMLStreamException e2 = new XMLStreamException(e.getMessage());
+            e2.initCause(e);
+            throw e2;
+          }
+      }
+  }
+
+  public static void main(String[] args)
+    throws Exception
+  {
+    SAXParser parser = new SAXParser();
+    InputSource input = new InputSource(args[0]);
+    parser.parse(input, new org.xml.sax.helpers.DefaultHandler());
+    
+  }
+  
+}
diff --git a/libjava/classpath/gnu/xml/stream/SAXParserFactory.java b/libjava/classpath/gnu/xml/stream/SAXParserFactory.java
new file mode 100644 (file)
index 0000000..a2ccea1
--- /dev/null
@@ -0,0 +1,104 @@
+/* SAXParserFactory.java -- 
+   Copyright (C) 2005  Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.xml.stream;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXNotRecognizedException;
+import org.xml.sax.SAXNotSupportedException;
+
+/**
+ * SAX parser factory providing a SAX compatibility layer on top of StAX.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ */
+public class SAXParserFactory
+  extends javax.xml.parsers.SAXParserFactory
+{
+
+  static final Set FEATURE_NAMES = new HashSet();
+  static
+  {
+    FEATURE_NAMES.add("http://xml.org/sax/features/namespaces");
+    FEATURE_NAMES.add("http://xml.org/sax/features/string-interning");
+    FEATURE_NAMES.add("http://xml.org/sax/features/validation");
+  }
+
+  Map features = new HashMap();
+
+  public javax.xml.parsers.SAXParser newSAXParser()
+    throws ParserConfigurationException, SAXException
+  {
+    boolean validating = isValidating();
+    boolean namespaceAware = isNamespaceAware();
+    boolean xIncludeAware = isXIncludeAware();
+    SAXParser ret = new SAXParser(validating, namespaceAware, xIncludeAware);
+    for (Iterator i = features.entrySet().iterator(); i.hasNext(); )
+      {
+        Map.Entry entry = (Map.Entry) i.next();
+        String name = (String) entry.getKey();
+        Boolean value = (Boolean) entry.getValue();
+        ret.setFeature(name, value.booleanValue());
+      }
+    return ret;
+  }
+
+  public void setFeature(String name, boolean value)
+    throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException
+  {
+    if (!FEATURE_NAMES.contains(name))
+      throw new SAXNotSupportedException(name);
+    features.put(name, value ? Boolean.TRUE : Boolean.FALSE);
+  }
+
+  public boolean getFeature(String name) 
+    throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException  
+  {
+    if (!FEATURE_NAMES.contains(name))
+      throw new SAXNotSupportedException(name);
+    Boolean value = (Boolean) features.get(name);
+    return (value == null) ? false : value.booleanValue();
+  }
+  
+}
diff --git a/libjava/classpath/gnu/xml/stream/UnicodeReader.java b/libjava/classpath/gnu/xml/stream/UnicodeReader.java
new file mode 100644 (file)
index 0000000..c38516c
--- /dev/null
@@ -0,0 +1,201 @@
+/* UnicodeReader.java -- 
+   Copyright (C) 2005  Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.xml.stream;
+
+import java.io.IOException;
+import java.io.Reader;
+
+/**
+ * A reader that converts UTF-16 characters to Unicode code points.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ */
+class UnicodeReader
+{
+
+  final Reader in;
+
+  UnicodeReader(Reader in)
+  {
+    this.in = in;
+  }
+
+  public void mark(int limit)
+    throws IOException
+  {
+    in.mark(limit * 2);
+  }
+
+  public void reset()
+    throws IOException
+  {
+    in.reset();
+  }
+
+  public int read()
+    throws IOException
+  {
+    int ret = in.read();
+    if (ret == -1)
+      return ret;
+    if (ret >= 0xd800 && ret < 0xdc00)
+      {
+        // Unicode surrogate?
+        int low = in.read();
+        if (low >= 0xdc00 && low < 0xe000)
+          ret = Character.toCodePoint((char) ret, (char) low);
+        else
+          throw new IOException("unpaired surrogate: U+" +
+                                Integer.toHexString(ret));
+      }
+    else if (ret >= 0xdc00 && ret < 0xe000)
+      throw new IOException("unpaired surrogate: U+" +
+                            Integer.toHexString(ret));
+    return ret;
+  }
+
+  public int read(int[] buf, int off, int len)
+    throws IOException
+  {
+    if (len == 0)
+      return 0;
+    char[] b2 = new char[len];
+    int ret = in.read(b2, 0, len);
+    if (ret <= 0)
+      return ret;
+    int l = ret - 1;
+    int i = 0, j = off;
+    for (; i < l; i++)
+      {
+        char c = b2[i];
+        if (c >= 0xd800 && c < 0xdc00)
+          {
+            // Unicode surrogate?
+            char d = b2[i + 1];
+            if (d >= 0xdc00 && d < 0xe000)
+              {
+                buf[j++] = Character.toCodePoint(c, d);
+                i++;
+                continue;
+              }
+            else
+              throw new IOException("unpaired surrogate: U+" +
+                                    Integer.toHexString(c));
+          }
+        else if (c >= 0xdc00 && c < 0xe000)
+          throw new IOException("unpaired surrogate: U+" +
+                                Integer.toHexString(c));
+        buf[j++] = (int) c;
+      }
+    if (i == l)
+      {
+        // last char
+        char c = b2[l];
+        if (c >= 0xd800 && c < 0xdc00)
+          {
+            int low = in.read();
+            if (low >= 0xdc00 && low < 0xe000)
+              {
+                buf[j++] = Character.toCodePoint(c, (char) low);
+                return j;
+              }
+            else
+              throw new IOException("unpaired surrogate: U+" +
+                                    Integer.toHexString(c));
+          }
+        else if (c >= 0xdc00 && c < 0xe000)
+          throw new IOException("unpaired surrogate: U+" +
+                                Integer.toHexString(c));
+        buf[j++] = (int) c;
+      }
+    return j;
+  }
+
+  public void close()
+    throws IOException
+  {
+    in.close();
+  }
+
+  public static int[] toCodePointArray(String text)
+    throws IOException
+  {
+    char[] b2 = text.toCharArray();
+    int[] buf = new int[b2.length];
+    if (b2.length > 0)
+      {
+        int l = b2.length - 1;
+        int i = 0, j = 0;
+        for (; i < l; i++)
+          {
+            char c = b2[i];
+            if (c >= 0xd800 && c < 0xdc00)
+              {
+                // Unicode surrogate?
+                char d = b2[i + 1];
+                if (d >= 0xdc00 && d < 0xe000)
+                  {
+                    buf[j++] = Character.toCodePoint(c, d);
+                    i++;
+                    continue;
+                  }
+                else
+                  throw new IOException("unpaired surrogate: U+" +
+                                        Integer.toHexString(c));
+              }
+            else if (c >= 0xdc00 && c < 0xe000)
+              throw new IOException("unpaired surrogate: U+" +
+                                    Integer.toHexString(c));
+            buf[j++] = (int) c;
+          }
+        if (i == l)
+          {
+            // last char
+            buf[j++] = (int) b2[l];
+            if (j < buf.length)
+              {
+                int[] buf2 = new int[j];
+                System.arraycopy(buf, 0, buf2, 0, j);
+                buf = buf2;
+              }
+          }
+      }
+    return buf;
+  }
+  
+}
diff --git a/libjava/classpath/gnu/xml/stream/XIncludeFilter.java b/libjava/classpath/gnu/xml/stream/XIncludeFilter.java
new file mode 100644 (file)
index 0000000..e151ac6
--- /dev/null
@@ -0,0 +1,932 @@
+/* XIncludeFilter.java -- 
+   Copyright (C) 2005  Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.xml.stream;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.IOException;
+import java.io.Reader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.HashSet;
+import java.util.NoSuchElementException;
+import java.util.StringTokenizer;
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.util.ReaderDelegate;
+
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.ProcessingInstruction;
+import org.w3c.dom.TypeInfo;
+import org.w3c.dom.traversal.DocumentTraversal;
+import org.w3c.dom.traversal.NodeFilter;
+import org.w3c.dom.traversal.TreeWalker;
+import org.w3c.dom.xpath.XPathEvaluator;
+import org.w3c.dom.xpath.XPathNSResolver;
+import org.w3c.dom.xpath.XPathResult;
+import org.xml.sax.SAXException;
+
+/**
+ * StAX filter for performing XInclude processing.
+ *
+ * @see http://www.w3.org/TR/xinclude/
+ * @see http://www.w3.org/TR/xptr-framework/
+ * @see http://www.w3.org/TR/xptr-element/
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ */
+class XIncludeFilter
+  extends ReaderDelegate
+{
+
+  static final String XINCLUDE_NS_URI = "http://www.w3.org/2001/XInclude";
+  static final int SHOW_FLAGS =
+    NodeFilter.SHOW_CDATA_SECTION |
+    NodeFilter.SHOW_COMMENT |
+    NodeFilter.SHOW_ELEMENT |
+    NodeFilter.SHOW_ENTITY_REFERENCE |
+    NodeFilter.SHOW_PROCESSING_INSTRUCTION |
+    NodeFilter.SHOW_TEXT;
+
+  final String systemId;
+  final boolean namespaceAware;
+  final boolean validating;
+  final boolean expandERefs;
+  String href;
+  int event;
+  boolean included;
+  XPathResult result;
+  int snapshotIndex;
+  Node current;
+  TreeWalker walker;
+  HashSet seen = new HashSet();
+  boolean backtracking;
+  boolean lookahead;
+  
+  Reader includedText;
+  char[] buf;
+  int len = -1;
+  boolean inInclude, inFallback, seenFallback;
+
+  DocumentBuilder builder;
+
+  XIncludeFilter(XMLStreamReader reader, String systemId,
+                 boolean namespaceAware, boolean validating,
+                 boolean expandERefs)
+  {
+    super(reader);
+    this.systemId = XMLParser.absolutize(null, systemId);
+    this.namespaceAware = namespaceAware;
+    this.validating = validating;
+    this.expandERefs = expandERefs;
+  }
+
+  public int getAttributeCount()
+  {
+    if (current != null)
+      {
+        NamedNodeMap attrs = current.getAttributes();
+        return (attrs == null) ? 0 : attrs.getLength();
+      }
+    return super.getAttributeCount();
+  }
+
+  public String getAttributeName(int index)
+  {
+    if (current != null)
+      {
+        NamedNodeMap attrs = current.getAttributes();
+        if (attrs == null)
+         return null;
+        Node attr = attrs.item(index);
+        return attr.getLocalName();
+      }
+    return super.getAttributeName(index);
+  }
+
+  public String getAttributeNamespace(int index)
+  {
+    if (current != null)
+      {
+        NamedNodeMap attrs = current.getAttributes();
+        if (attrs == null)
+         return null;
+        Node attr = attrs.item(index);
+        return attr.getNamespaceURI();
+      }
+    return super.getAttributeNamespace(index);
+  }
+
+  public String getAttributePrefix(int index)
+  {
+    if (current != null)
+      {
+        NamedNodeMap attrs = current.getAttributes();
+        if (attrs == null)
+         return null;
+        Node attr = attrs.item(index);
+        return attr.getPrefix();
+      }
+    return super.getAttributePrefix(index);
+  }
+
+  public QName getAttributeQName(int index)
+  {
+    if (current != null)
+      {
+        NamedNodeMap attrs = current.getAttributes();
+        if (attrs == null)
+         return null;
+        Node attr = attrs.item(index);
+        String localName = attr.getLocalName();
+        String uri = attr.getNamespaceURI();
+        String prefix = attr.getPrefix();
+        return new QName(uri, localName, prefix);
+      }
+    return super.getAttributeQName(index);
+  }
+
+  public String getAttributeType(int index)
+  {
+    if (current != null)
+      {
+        NamedNodeMap attrs = current.getAttributes();
+        if (attrs == null)
+         return null;
+        Attr attr = (Attr) attrs.item(index);
+        TypeInfo ti = attr.getSchemaTypeInfo();
+        return (ti == null) ? "CDATA" : ti.getTypeName();
+      }
+    return super.getAttributeType(index);
+  }
+
+  public boolean isAttributeSpecified(int index)
+  {
+    if (current != null)
+      {
+        NamedNodeMap attrs = current.getAttributes();
+        if (attrs == null)
+          return false;
+        Attr attr = (Attr) attrs.item(index);
+        return attr.getSpecified();
+      }
+    return super.isAttributeSpecified(index);
+  }
+
+  public String getAttributeValue(int index)
+  {
+    if (current != null)
+      {
+        NamedNodeMap attrs = current.getAttributes();
+        if (attrs == null)
+         return null;
+        Node attr = attrs.item(index);
+        return attr.getNodeValue();
+      }
+    return super.getAttributeValue(index);
+  }
+
+  public String getAttributeValue(String uri, String localName)
+  {
+    if (current != null)
+      {
+        NamedNodeMap attrs = current.getAttributes();
+        if (attrs == null)
+         return null;
+        Node attr = attrs.getNamedItemNS(uri, localName);
+        return (attr == null) ? null : attr.getNodeValue();
+      }
+    return super.getAttributeValue(uri, localName);
+  }
+
+  public String getElementText()
+    throws XMLStreamException
+  {
+    if (current != null)
+      return current.getTextContent();
+    return super.getElementText();
+  }
+
+  public int getEventType()
+  {
+    return event;
+  }
+
+  public String getLocalName()
+  {
+    if (current != null)
+      return current.getLocalName();
+    return super.getLocalName();
+  }
+
+  public QName getName()
+  {
+    if (current != null)
+      {
+        String localName = current.getLocalName();
+        String uri = current.getNamespaceURI();
+        String prefix = current.getPrefix();
+        return new QName(uri, localName, prefix);
+      }
+    return super.getName();
+  }
+
+  public String getNamespaceURI()
+  {
+    if (current != null)
+      return current.getNamespaceURI();
+    return super.getNamespaceURI();
+  }
+
+  // TODO namespaces
+
+  public String getPIData()
+  {
+    if (current != null)
+      return ((ProcessingInstruction) current).getData();
+    return super.getPIData();
+  }
+
+  public String getPITarget()
+  {
+    if (current != null)
+      return ((ProcessingInstruction) current).getTarget();
+    return super.getPITarget();
+  }
+
+  public String getPrefix()
+  {
+    if (current != null)
+      return current.getPrefix();
+    return super.getPrefix();
+  }
+
+  public String getText()
+  {
+    if (current != null)
+      return current.getNodeValue();
+    if (walker != null)
+      {
+        Node n = walker.getCurrentNode();
+        if (n != null)
+          return n.getTextContent();
+      }
+    if (buf != null)
+      return new String(buf, 0, len);
+    return super.getText();
+  }
+
+  public char[] getTextCharacters()
+  {
+    if (current != null)
+      {
+        buf = current.getNodeValue().toCharArray();
+        len = buf.length;
+      }
+    if (buf != null)
+      return buf;
+    return super.getTextCharacters();
+  }
+
+  public int getTextCharacters(int sourceStart, char[] target,
+                               int targetStart, int length)
+    throws XMLStreamException
+  {
+    if (current != null)
+      {
+        buf = current.getNodeValue().toCharArray();
+        len = buf.length;
+      }
+    if (buf != null)
+      {
+        int max = Math.min(len - sourceStart, length);
+        if (max > 0)
+          System.arraycopy(buf, sourceStart, target, targetStart, max);
+        return max;
+      }
+    return super.getTextCharacters(sourceStart, target, targetStart, length);
+  }
+
+  public int getTextLength()
+  {
+    if (current != null)
+      {
+        buf = current.getNodeValue().toCharArray();
+        len = buf.length;
+      }
+    if (buf != null)
+      return len;
+    return super.getTextLength();
+  }
+
+  public int getTextStart()
+  {
+    if (current != null)
+      {
+        buf = current.getNodeValue().toCharArray();
+        len = buf.length;
+      }
+    if (buf != null)
+      return 0;
+    return super.getTextStart();
+  }
+
+  public boolean hasNext()
+    throws XMLStreamException
+  {
+    if (!lookahead)
+      {
+        try
+          {
+            next();
+          }
+        catch (NoSuchElementException e)
+          {
+            event = -1;
+          }
+        lookahead = true;
+      }
+    return (event != -1);
+  }
+
+  public int next()
+    throws XMLStreamException
+  {
+    if (lookahead)
+      {
+        lookahead = false;
+        return event;
+      }
+    buf = null;
+    len = 0;
+    if (walker != null)
+      {
+        Node c = walker.getCurrentNode();
+        Node n = null;
+        if (c.getNodeType() == Node.ELEMENT_NODE)
+          {
+            boolean isStartElement = !seen.contains(c);
+            if (isStartElement)
+              {
+                seen.add(c);
+                current = c;
+                event = XMLStreamConstants.START_ELEMENT;
+                return event;
+              }
+            else if (backtracking)
+              {
+                n = walker.nextSibling();
+                if (n != null)
+                  backtracking = false;
+              }
+            else
+              {
+                n = walker.firstChild();
+                if (n == null)
+                  n = walker.nextSibling();
+              }
+          }
+        else
+          {
+            n = walker.firstChild();
+            if (n == null)
+              n = walker.nextSibling();
+          }
+        if (n == null)
+          {
+            current = walker.parentNode();
+            if (current != null && current.getNodeType() == Node.ELEMENT_NODE)
+              {
+                // end-element
+                backtracking = true;
+                event = XMLStreamConstants.END_ELEMENT;
+                return event;
+              }
+            else
+              {
+                walker = null;
+                current = null;
+              }
+          }
+        else
+          {
+            current = n;
+            switch (n.getNodeType())
+              {
+              case Node.ELEMENT_NODE:
+                return next();
+              case Node.TEXT_NODE:
+                String text = n.getNodeValue();
+                buf = text.toCharArray();
+                len = buf.length;
+                event = isSpace(buf, len) ?
+                  XMLStreamConstants.SPACE :
+                  XMLStreamConstants.CHARACTERS;
+                return event;
+              case Node.CDATA_SECTION_NODE:
+                event = XMLStreamConstants.CDATA;
+                return event;
+              case Node.COMMENT_NODE:
+                event = XMLStreamConstants.COMMENT;
+                return event;
+              case Node.PROCESSING_INSTRUCTION_NODE:
+                event = XMLStreamConstants.PROCESSING_INSTRUCTION;
+                return event;
+              case Node.ENTITY_REFERENCE_NODE:
+                event = XMLStreamConstants.ENTITY_REFERENCE;
+                return event;
+              default:
+                throw new IllegalStateException();
+              }
+          }
+      }
+    if (result != null)
+      {
+        switch (result.getResultType())
+          {
+          case XPathResult.BOOLEAN_TYPE:
+            boolean bval = result.getBooleanValue();
+            String btext = bval ? "true" : "false";
+            buf = btext.toCharArray();
+            len = buf.length;
+            result = null;
+            event = XMLStreamConstants.CHARACTERS;
+            return event;
+          case XPathResult.NUMBER_TYPE:
+            double nval = result.getNumberValue();
+            String ntext = new Double(nval).toString();
+            buf = ntext.toCharArray();
+            len = buf.length;
+            result = null;
+            event = XMLStreamConstants.CHARACTERS;
+            return event;
+          case XPathResult.STRING_TYPE:
+            String stext = result.getStringValue();
+            buf = stext.toCharArray();
+            len = buf.length;
+            result = null;
+            event = isSpace(buf, len) ?
+              XMLStreamConstants.SPACE :
+              XMLStreamConstants.CHARACTERS;
+            return event;
+          case XPathResult.ANY_UNORDERED_NODE_TYPE:
+          case XPathResult.FIRST_ORDERED_NODE_TYPE:
+            Node n1 = result.getSingleNodeValue();
+            Document d1 = getDocument(n1);
+            walker = getDocumentTraversal(d1)
+              .createTreeWalker(n1, SHOW_FLAGS, null, expandERefs);
+            result = null;
+            return next();
+          case XPathResult.ORDERED_NODE_ITERATOR_TYPE:
+          case XPathResult.UNORDERED_NODE_ITERATOR_TYPE:
+            Node n2 = result.iterateNext();
+            if (n2 == null)
+              {
+                result = null;
+                return next();
+              }
+            Document d2 = getDocument(n2);
+            walker = getDocumentTraversal(d2)
+              .createTreeWalker(n2, SHOW_FLAGS, null, expandERefs);
+            return next();
+          case XPathResult.ORDERED_NODE_SNAPSHOT_TYPE:
+          case XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE:
+            Node n3 = result.snapshotItem(snapshotIndex++);
+            if (n3 == null)
+              {
+                result = null;
+                return next();
+              }
+            Document d3 = getDocument(n3);
+            walker = getDocumentTraversal(d3)
+              .createTreeWalker(n3, SHOW_FLAGS, null, expandERefs);
+            return next();
+          default:
+            throw new IllegalStateException();
+          }
+      }
+    if (includedText != null)
+      {
+        // fill buffer
+        if (buf == null)
+          buf = new char[2048];
+        try
+          {
+            len = includedText.read(buf, 0, buf.length);
+            if (len == -1)
+              {
+                includedText = null;
+                buf = null;
+                return next();
+              }
+            // chars or space?
+            return (event = isSpace(buf, len) ?
+                    XMLStreamConstants.SPACE :
+                    XMLStreamConstants.CHARACTERS);
+          }
+        catch (IOException e)
+          {
+            XMLStreamException e2 = new XMLStreamException(e.getMessage());
+            e2.initCause(e);
+            throw e2;
+          }
+      }
+    event = super.next();
+    switch (event)
+      {
+      case XMLStreamConstants.START_ELEMENT:
+        String uri = getNamespaceURI();
+        if (XINCLUDE_NS_URI.equals(uri))
+          {
+            String localName = getLocalName();
+            if ("include".equals(localName))
+              {
+                href = getAttributeValue(null, "href");
+                String parse = getAttributeValue(null, "parse");
+                String xpointer = getAttributeValue(null, "xpointer");
+                String encoding = getAttributeValue(null, "encoding");
+                String accept = getAttributeValue(null, "accept");
+                String acceptLanguage = getAttributeValue(null,
+                                                          "accept-language");
+                if (includeResource(href, parse, xpointer, encoding,
+                                    accept, acceptLanguage))
+                  {
+                    // Skip to xi:include end-element event
+                    int depth = 0;
+                    while (depth >= 0)
+                      {
+                        event = super.next();
+                        switch (event)
+                          {
+                          case XMLStreamConstants.START_ELEMENT:
+                            depth++;
+                            break;
+                          case XMLStreamConstants.END_ELEMENT:
+                            depth--;
+                          }
+                      }
+                  }
+                else
+                  inInclude = true;
+              }
+            else if (inInclude && "fallback".equals(localName))
+              {
+                if (!seenFallback)
+                  inFallback = seenFallback = true;
+                else
+                  throw new XMLStreamException("duplicate xi:fallback element");
+              }
+            else if (inInclude)
+              {
+                throw new XMLStreamException("illegal xi element '" +
+                                             localName + "'");
+              }
+            return next();
+          }
+        break;
+      case XMLStreamConstants.END_ELEMENT:
+        String uri2 = getNamespaceURI();
+        if (XINCLUDE_NS_URI.equals(uri2))
+          {
+            String localName = getLocalName();
+            if ("include".equals(localName))
+              {
+                if (!seenFallback && included)
+                  {
+                    String msg = "Unable to read " + href +
+                      " and no xi:fallback element present";
+                    throw new XMLStreamException(msg);
+                  }
+                included = false;
+                href = null;
+                inInclude = inFallback = seenFallback = false;
+              }
+            else if ("fallback".equals(localName))
+              inFallback = false;
+            return next();
+          }
+        break;
+      }
+    if (inInclude && !inFallback)
+      return next();
+    return event;
+  }
+
+  boolean isSpace(char[] text, int len)
+  {
+    boolean space = true;
+    for (int i = 0; i < len; i++)
+      {
+        char c = text[i];
+        if (c != ' ' && c != '\t' && c != '\n' && c != '\r')
+          {
+            space = false;
+            break;
+          }
+      }
+    return space;
+  }
+
+  String getBaseURI()
+  {
+    String base = (String) getParent().getProperty("gnu.xml.stream.baseURI");
+    return (base == null) ? systemId : base;
+  }
+  
+  boolean includeResource(String href, String parse, String xpointer,
+                          String encoding, String accept,
+                          String acceptLanguage)
+  {
+    included = false;
+    try
+      {
+        if (xpointer != null)
+          throw new XMLStreamException("xpointer attribute not yet supported");
+        String base = getBaseURI();
+        if (href == null || "".equals(href))
+          href = base;
+        else
+          href = XMLParser.absolutize(base, href);
+        if (parse == null || "xml".equals(parse))
+          {
+            seen.clear();
+            result = null;
+            snapshotIndex = 0;
+            walker = null;
+            current = null;
+            backtracking = false;
+            
+            URLConnection connection = getURLConnection(href, accept,
+                                                        acceptLanguage);
+            InputStream in = connection.getInputStream();
+            Document doc = getDocumentBuilder().parse(in, href);
+            DocumentTraversal dt = getDocumentTraversal(doc);
+            if (xpointer == null)
+              {
+                result = null;
+                Node item = doc.getDocumentElement();
+                walker = dt.createTreeWalker(item, SHOW_FLAGS, null,
+                                             expandERefs);
+              }
+            else
+              {
+                result = null;
+                snapshotIndex = 0;
+                walker = null;
+                // shorthand or scheme-based?
+                int lpi = xpointer.indexOf('(');
+                int rpi = xpointer.indexOf(')', lpi);
+                if (lpi != -1 && rpi != -1)
+                  {
+                    String scheme = xpointer.substring(0, lpi);
+                    if ("element".equals(scheme))
+                      {
+                        // element() scheme
+                        String elementSchemeData =
+                          xpointer.substring(lpi + 1, rpi);
+                        Node item = doc;
+                        int si = elementSchemeData.indexOf('/');
+                        if (si == -1)
+                          {
+                            if (elementSchemeData.length() > 0)
+                              item = doc.getElementById(elementSchemeData);
+                          }
+                        else
+                          {
+                            if (si > 0)
+                              {
+                                String context =
+                                  elementSchemeData.substring(0, si);
+                                item = doc.getElementById(context);
+                                elementSchemeData =
+                                  elementSchemeData.substring(si + 1);
+                              }
+                            StringTokenizer st =
+                              new StringTokenizer(elementSchemeData, "/");
+                            while (st.hasMoreTokens() && item != null)
+                              {
+                                int n = Integer.parseInt(st.nextToken());
+                                Node ctx = item.getFirstChild();
+                                int count = 1;
+                                while (ctx != null && count++ < n)
+                                  ctx = ctx.getNextSibling();
+                                item = ctx;
+                              }
+                          }
+                        walker = dt.createTreeWalker(item, SHOW_FLAGS, null,
+                                                     expandERefs);
+                        included = true;
+                      }
+                    else if ("xpointer".equals(scheme))
+                      {
+                        xpointer = xpointer.substring(lpi + 1, rpi);
+                        XPathEvaluator eval = getXPathEvaluator(doc);
+                        XPathNSResolver resolver = eval.createNSResolver(doc);
+                        result =
+                          (XPathResult) eval.evaluate(xpointer, doc,
+                                                      resolver,
+                                                      XPathResult.ANY_TYPE,
+                                                      null);
+                        // TODO xpointer() scheme functions
+                        included = true;
+                      }
+                    else
+                      {
+                        String msg = "Unknown XPointer scheme: " + scheme;
+                        throw new XMLStreamException(msg);
+                      }
+                  }
+                else
+                  {
+                    Node item = doc.getElementById(xpointer);
+                    walker = dt.createTreeWalker(item, SHOW_FLAGS, null,
+                                                 expandERefs);
+                    included = true;
+                  }
+              }
+          }
+        else if ("text".equals(parse))
+          {
+            URLConnection connection = getURLConnection(href, accept,
+                                                        acceptLanguage);
+            InputStream in = connection.getInputStream();
+            if (encoding == null)
+              {
+                encoding = connection.getContentEncoding();
+                if (encoding == null)
+                  {
+                    String contentType = connection.getContentType();
+                    if (contentType != null)
+                      encoding = getParameter(contentType, "charset");
+                  }
+              }
+            if (encoding == null)
+              includedText = new InputStreamReader(in, "UTF-8");
+            else
+              includedText = new InputStreamReader(in, encoding);
+            included = true;
+          }
+        else
+          throw new XMLStreamException("value of 'parse' attribute must be "+
+                                       "'xml' or 'text'");
+        return true;
+      }
+    catch (IOException e)
+      {
+        return false;
+      }
+    catch (XMLStreamException e)
+      {
+        return false;
+      }
+    catch (SAXException e)
+      {
+        return false;
+      }
+  }
+
+  URLConnection getURLConnection(String href, String accept,
+                                 String acceptLanguage)
+    throws IOException
+  {
+    URL url = new URL(href);
+    URLConnection connection = url.openConnection();
+    if (connection instanceof HttpURLConnection)
+      {
+        HttpURLConnection http = (HttpURLConnection) connection;
+        http.setInstanceFollowRedirects(true);
+        if (accept != null)
+          http.setRequestProperty("Accept", accept);
+        if (acceptLanguage != null)
+          http.setRequestProperty("Accept-Language", acceptLanguage);
+      }
+    return connection;
+  }
+
+  Document getDocument(Node node)
+  {
+    if (node.getNodeType() == Node.DOCUMENT_NODE)
+      return (Document) node;
+    return node.getOwnerDocument();
+  }
+
+  DocumentBuilder getDocumentBuilder()
+    throws XMLStreamException
+  {
+    if (builder == null)
+      {
+        try
+          {
+            DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
+            f.setXIncludeAware(true);
+            f.setNamespaceAware(namespaceAware);
+            f.setValidating(validating);
+            builder = f.newDocumentBuilder();
+          }
+        catch (ParserConfigurationException e)
+          {
+            XMLStreamException e2 = new XMLStreamException(e.getMessage());
+            e2.initCause(e);
+            throw e2;
+          }
+      }
+    builder.reset();
+    return builder;
+  }
+
+  DocumentTraversal getDocumentTraversal(Document doc)
+    throws XMLStreamException
+  {
+    DOMImplementation dom = doc.getImplementation();
+    if (!dom.hasFeature("Traversal", "2.0"))
+      throw new XMLStreamException("Traversal not supported");
+    return (DocumentTraversal) doc;
+  }
+
+  XPathEvaluator getXPathEvaluator(Document doc)
+    throws XMLStreamException
+  {
+    DOMImplementation dom = doc.getImplementation();
+    if (!dom.hasFeature("XPath", "3.0"))
+      throw new XMLStreamException("XPath not supported");
+    return (XPathEvaluator) doc;
+  }
+
+  static String getParameter(String contentType, String name)
+  {
+    StringTokenizer st = new StringTokenizer(contentType, " ;");
+    if (st.hasMoreTokens())
+      st.nextToken();
+    while (st.hasMoreTokens())
+      {
+        String token = st.nextToken();
+        int ei = token.indexOf('=');
+        if (ei != -1)
+          {
+            String key = token.substring(0, ei);
+            if (key.equals(name))
+              {
+                String value = token.substring(ei + 1);
+                int len = value.length();
+                if (len > 1 &&
+                    value.charAt(0) == '"' &&
+                    value.charAt(len - 1) == '"')
+                  value = value.substring(1, len - 1);
+                else if (len > 1 &&
+                         value.charAt(0) == '\'' &&
+                         value.charAt(len - 1) == '\'')
+                  value = value.substring(1, len - 1);
+                return value;
+              }
+          }
+      }
+    return null;
+  }
+  
+}
index c99f564b623e0a7bf1491f09f56e4805ed774ea2..164774d8236ee327b520aad80054b20ef17fa159 100644 (file)
@@ -77,6 +77,9 @@ public class XMLInputFactoryImpl
   protected boolean replacingEntityReferences = true;
   protected boolean externalEntities = true;
   protected boolean supportDTD = true;
+  protected boolean xIncludeAware = false;
+  protected boolean baseAware = true;
+  protected boolean stringInterning = true;
 
   public XMLInputFactoryImpl()
   {
@@ -86,11 +89,28 @@ public class XMLInputFactoryImpl
   public XMLStreamReader createXMLStreamReader(Reader reader)
     throws XMLStreamException
   {
+    /*
     return new XMLStreamReaderImpl(reader, null, null,
                                    resolver, reporter,
                                    validating, namespaceAware,
                                    coalescing, replacingEntityReferences,
                                    externalEntities, supportDTD);
+                                   */
+    XMLParser ret = new XMLParser(reader, null,
+                                  validating,
+                                  namespaceAware,
+                                  coalescing,
+                                  replacingEntityReferences,
+                                  externalEntities,
+                                  supportDTD,
+                                  baseAware,
+                                  stringInterning,
+                                  reporter,
+                                  resolver);
+    if (xIncludeAware)
+      return new XIncludeFilter(ret, null, namespaceAware, validating,
+                                replacingEntityReferences);
+    return ret;
   }
   
   public XMLStreamReader createXMLStreamReader(Source source)
@@ -98,21 +118,51 @@ public class XMLInputFactoryImpl
   {
     String systemId = source.getSystemId();
     InputStream in = getInputStream(source);
-    return new XMLStreamReaderImpl(in, null, systemId,
+    /*return new XMLStreamReaderImpl(in, null, systemId,
                                    resolver, reporter,
                                    validating, namespaceAware,
                                    coalescing, replacingEntityReferences,
-                                   externalEntities, supportDTD);
+                                   externalEntities, supportDTD);*/
+    XMLParser ret = new XMLParser(in, systemId,
+                                  validating,
+                                  namespaceAware,
+                                  coalescing,
+                                  replacingEntityReferences,
+                                  externalEntities,
+                                  supportDTD,
+                                  baseAware,
+                                  stringInterning,
+                                  reporter,
+                                  resolver);
+    if (xIncludeAware)
+      return new XIncludeFilter(ret, systemId, namespaceAware, validating,
+                                replacingEntityReferences);
+    return ret;
   }
   
   public XMLStreamReader createXMLStreamReader(InputStream in)
     throws XMLStreamException
   {
-    return new XMLStreamReaderImpl(in, null, null,
+    /*return new XMLStreamReaderImpl(in, null, null,
                                    resolver, reporter,
                                    validating, namespaceAware,
                                    coalescing, replacingEntityReferences,
-                                   externalEntities, supportDTD);
+                                   externalEntities, supportDTD);*/
+    XMLParser ret = new XMLParser(in, null,
+                                  validating,
+                                  namespaceAware,
+                                  coalescing,
+                                  replacingEntityReferences,
+                                  externalEntities,
+                                  supportDTD,
+                                  baseAware,
+                                  stringInterning,
+                                  reporter,
+                                  resolver);
+    if (xIncludeAware)
+      return new XIncludeFilter(ret, null, namespaceAware, validating,
+                                replacingEntityReferences);
+    return ret;
   }
   
   public XMLStreamReader createXMLStreamReader(InputStream in, String encoding)
@@ -210,6 +260,12 @@ public class XMLInputFactoryImpl
       resolver = (XMLResolver) value;
     else if (name.equals(ALLOCATOR))
       allocator = (XMLEventAllocator) value;
+    else if (name.equals("gnu.xml.stream.stringInterning"))
+      stringInterning = ((Boolean) value).booleanValue();
+    else if (name.equals("gnu.xml.stream.baseAware"))
+      baseAware = ((Boolean) value).booleanValue();
+    else if (name.equals("gnu.xml.stream.xIncludeAware"))
+      xIncludeAware = ((Boolean) value).booleanValue();
     else
       throw new IllegalArgumentException(name);
   }
@@ -235,6 +291,12 @@ public class XMLInputFactoryImpl
       return resolver;
     if (name.equals(ALLOCATOR))
       return allocator;
+    if (name.equals("gnu.xml.stream.stringInterning"))
+      return stringInterning ? Boolean.TRUE : Boolean.FALSE;
+    if (name.equals("gnu.xml.stream.baseAware"))
+      return baseAware ? Boolean.TRUE : Boolean.FALSE;
+    if (name.equals("gnu.xml.stream.xIncludeAware"))
+      return xIncludeAware ? Boolean.TRUE : Boolean.FALSE;
     throw new IllegalArgumentException(name);
   }
 
@@ -248,7 +310,10 @@ public class XMLInputFactoryImpl
       name.equals(SUPPORT_DTD) ||
       name.equals(REPORTER) ||
       name.equals(RESOLVER) ||
-      name.equals(ALLOCATOR);
+      name.equals(ALLOCATOR) ||
+      name.equals("gnu.xml.stream.stringInterning") ||
+      name.equals("gnu.xml.stream.baseAware") ||
+      name.equals("gnu.xml.stream.xIncludeAware");
   }
   
   public void setEventAllocator(XMLEventAllocator allocator)
diff --git a/libjava/classpath/gnu/xml/stream/XMLParser.java b/libjava/classpath/gnu/xml/stream/XMLParser.java
new file mode 100644 (file)
index 0000000..6f10b93
--- /dev/null
@@ -0,0 +1,5266 @@
+/* XMLParser.java -- 
+   Copyright (C) 2005  Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+
+Partly derived from code which carried the following notice:
+
+  Copyright (c) 1997, 1998 by Microstar Software Ltd.
+
+  AElfred is free for both commercial and non-commercial use and
+  redistribution, provided that Microstar's copyright and disclaimer are
+  retained intact.  You are free to modify AElfred for your own use and
+  to redistribute AElfred with your modifications, provided that the
+  modifications are clearly documented.
+
+  This program is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  merchantability or fitness for a particular purpose.  Please use it AT
+  YOUR OWN RISK.
+*/
+
+package gnu.xml.stream;
+
+import java.io.BufferedInputStream;
+import java.io.EOFException;
+import java.io.File;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
+import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.StringTokenizer;
+
+import javax.xml.XMLConstants;
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLReporter;
+import javax.xml.stream.XMLResolver;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import gnu.java.net.CRLFInputStream;
+
+/**
+ * An XML parser.
+ * This parser supports the following additional StAX properties:
+ * <table>
+ * <tr><td>gnu.xml.stream.stringInterning</td>
+ * <td>Boolean</td>
+ * <td>Indicates whether markup strings will be interned</td></tr>
+ * <tr><td>gnu.xml.stream.xmlBase</td>
+ * <td>Boolean</td>
+ * <td>Indicates whether XML Base processing will be performed</td></tr>
+ * <tr><td>gnu.xml.stream.baseURI</td>
+ * <td>String</td>
+ * <td>Returns the base URI of the current event</td></tr>
+ * </table>
+ *
+ * @see http://www.w3.org/TR/REC-xml/
+ * @see http://www.w3.org/TR/xml11/
+ * @see http://www.w3.org/TR/REC-xml-names
+ * @see http://www.w3.org/TR/xml-names11
+ * @see http://www.w3.org/TR/xmlbase/
+ * 
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ */
+public class XMLParser
+  implements XMLStreamReader, NamespaceContext
+{
+
+  // -- parser state machine states --
+  private static final int INIT = 0; // start state
+  private static final int PROLOG = 1; // in prolog
+  private static final int CONTENT = 2; // in content
+  private static final int EMPTY_ELEMENT = 3; // empty element state
+  private static final int MISC = 4; // in Misc (after root element)
+
+  // -- parameters for parsing literals --
+  private final static int LIT_ENTITY_REF = 2;
+  private final static int LIT_NORMALIZE = 4;
+  private final static int LIT_ATTRIBUTE = 8;
+  private final static int LIT_DISABLE_PE = 16;
+  private final static int LIT_DISABLE_CREF = 32;
+  private final static int LIT_DISABLE_EREF = 64;
+  private final static int LIT_PUBID = 256;
+
+  // -- types of attribute values --
+  final static int ATTRIBUTE_DEFAULT_UNDECLARED = 30;
+  final static int ATTRIBUTE_DEFAULT_SPECIFIED = 31;
+  final static int ATTRIBUTE_DEFAULT_IMPLIED = 32;
+  final static int ATTRIBUTE_DEFAULT_REQUIRED = 33;
+  final static int ATTRIBUTE_DEFAULT_FIXED = 34;
+
+  /**
+   * The current input.
+   */
+  private Input input;
+
+  /**
+   * Stack of inputs representing XML general entities.
+   * The input representing the XML input stream or reader is always the
+   * first element in this stack.
+   */
+  private LinkedList inputStack = new LinkedList();
+
+  /**
+   * Stack of start-entity events to be reported.
+   */
+  private LinkedList startEntityStack = new LinkedList();
+
+  /**
+   * Stack of end-entity events to be reported.
+   */
+  private LinkedList endEntityStack = new LinkedList();
+  
+  /**
+   * Current parser state within the main state machine.
+   */
+  private int state = INIT;
+
+  /**
+   * The (type of the) current event.
+   */
+  private int event;
+
+  /**
+   * Whether we are looking ahead. Used by hasNext.
+   */
+  private boolean lookahead;
+
+  /**
+   * The element name stack. The first element in this stack will be the
+   * root element.
+   */
+  private LinkedList stack = new LinkedList();
+
+  /**
+   * Stack of namespace contexts. These are maps specifying prefix-to-URI
+   * mappings. The first element in this stack is the most recent namespace
+   * context (i.e. the other way around from the element name stack).
+   */
+  private LinkedList namespaces = new LinkedList();
+
+  /**
+   * The base-URI stack. This holds the base URI context for each element.
+   * The first element in this stack is the most recent context (i.e. the
+   * other way around from the element name stack).
+   */
+  private LinkedList bases = new LinkedList();
+
+  /**
+   * The list of attributes for the current element, in the order defined in
+   * the XML stream.
+   */
+  private ArrayList attrs = new ArrayList();
+
+  /**
+   * Buffer for text and character data.
+   */
+  private StringBuffer buf = new StringBuffer();
+
+  /**
+   * Buffer for NMTOKEN strings (markup).
+   */
+  private StringBuffer nmtokenBuf = new StringBuffer();
+
+  /**
+   * Buffer for string literals. (e.g. attribute values)
+   */
+  private StringBuffer literalBuf = new StringBuffer();
+
+  /**
+   * Temporary Unicode character buffer used during character data reads.
+   */
+  private int[] tmpBuf = new int[1024];
+  
+  /**
+   * The element content model for the current element.
+   */
+  private ContentModel currentContentModel;
+
+  /**
+   * The validation stack. This holds lists of the elements seen for each
+   * element, in order to determine whether the names and order of these
+   * elements match the content model for the element. The last entry in
+   * this stack represents the current element.
+   */
+  private LinkedList validationStack;
+
+  /**
+   * These sets contain the IDs and the IDREFs seen in the document, to
+   * ensure that IDs are unique and that each IDREF refers to an ID in the
+   * document.
+   */
+  private HashSet ids, idrefs;
+
+  /**
+   * The target and data associated with the current processing instruction
+   * event.
+   */
+  private String piTarget, piData;
+
+  /**
+   * The XML version declared in the XML declaration.
+   */
+  private String xmlVersion;
+
+  /**
+   * The encoding declared in the XML declaration.
+   */
+  private String xmlEncoding;
+
+  /**
+   * The standalone value declared in the XML declaration.
+   */
+  private Boolean xmlStandalone;
+
+  /**
+   * The document type definition.
+   */
+  Doctype doctype;
+
+  /**
+   * State variables for determining parameter-entity expansion.
+   */
+  private boolean expandPE, peIsError;
+
+  /**
+   * Whether this is a validating parser.
+   */
+  private final boolean validating;
+
+  /**
+   * Whether strings representing markup will be interned.
+   */
+  private final boolean stringInterning;
+
+  /**
+   * If true, CDATA sections will be merged with adjacent text nodes into a
+   * single event.
+   */
+  private final boolean coalescing;
+
+  /**
+   * Whether to replace general entity references with their replacement
+   * text automatically during parsing.
+   * Otherwise entity-reference events will be issued.
+   */
+  private final boolean replaceERefs;
+
+  /**
+   * Whether to support external entities.
+   */
+  private final boolean externalEntities;
+
+  /**
+   * Whether to support DTDs.
+   */
+  private final boolean supportDTD;
+
+  /**
+   * Whether to support XML namespaces. If true, namespace information will
+   * be available. Otherwise namespaces will simply be reported as ordinary
+   * attributes.
+   */
+  private final boolean namespaceAware;
+
+  /**
+   * Whether to support XML Base. If true, URIs specified in xml:base
+   * attributes will be honoured when resolving external entities.
+   */
+  private final boolean baseAware;
+
+  /**
+   * The reporter to receive parsing warnings.
+   */
+  final XMLReporter reporter;
+
+  /**
+   * Callback interface for resolving external entities.
+   */
+  final XMLResolver resolver;
+
+  // -- Constants for testing the next kind of markup event --
+  private static final String TEST_START_ELEMENT = "<";
+  private static final String TEST_END_ELEMENT = "</";
+  private static final String TEST_COMMENT = "<!--";
+  private static final String TEST_PI = "<?";
+  private static final String TEST_CDATA = "<![CDATA[";
+  private static final String TEST_XML_DECL = "<?xml";
+  private static final String TEST_DOCTYPE_DECL = "<!DOCTYPE";
+  private static final String TEST_ELEMENT_DECL = "<!ELEMENT";
+  private static final String TEST_ATTLIST_DECL = "<!ATTLIST";
+  private static final String TEST_ENTITY_DECL = "<!ENTITY";
+  private static final String TEST_NOTATION_DECL = "<!NOTATION";
+  private static final String TEST_KET = ">";
+  private static final String TEST_END_COMMENT = "--";
+  private static final String TEST_END_PI = "?>";
+  private static final String TEST_END_CDATA = "]]>";
+
+  /**
+   * The general entities predefined by the XML specification.
+   */
+  private static final LinkedHashMap PREDEFINED_ENTITIES = new LinkedHashMap();
+  static
+  {
+    PREDEFINED_ENTITIES.put("amp", "&");
+    PREDEFINED_ENTITIES.put("lt", "<");
+    PREDEFINED_ENTITIES.put("gt", ">");
+    PREDEFINED_ENTITIES.put("apos", "'");
+    PREDEFINED_ENTITIES.put("quot", "\"");
+  }
+
+  /**
+   * Creates a new XML parser for the given input stream.
+   * This constructor should be used where possible, as it allows the
+   * encoding of the XML data to be correctly determined from the stream.
+   * @param in the input stream
+   * @param systemId the URL from which the input stream was retrieved
+   * (necessary if there are external entities to be resolved)
+   * @param validating if the parser is to be a validating parser
+   * @param namespaceAware if the parser should support XML Namespaces
+   * @param coalescing if CDATA sections should be merged into adjacent text
+   * nodes
+   * @param replaceERefs if entity references should be automatically
+   * replaced by their replacement text (otherwise they will be reported as
+   * entity-reference events)
+   * @param externalEntities if external entities should be loaded
+   * @param supportDTD if support for the XML DTD should be enabled
+   * @param baseAware if the parser should support XML Base to resolve
+   * external entities
+   * @param stringInterning whether strings will be interned during parsing
+   * @param reporter the reporter to receive warnings during processing
+   * @param resolver the callback interface used to resolve external
+   * entities
+   */
+  public XMLParser(InputStream in, String systemId,
+                   boolean validating,
+                   boolean namespaceAware,
+                   boolean coalescing,
+                   boolean replaceERefs,
+                   boolean externalEntities,
+                   boolean supportDTD,
+                   boolean baseAware,
+                   boolean stringInterning,
+                   XMLReporter reporter,
+                   XMLResolver resolver)
+  {
+    this.validating = validating;
+    this.namespaceAware = namespaceAware;
+    this.coalescing = coalescing;
+    this.replaceERefs = replaceERefs;
+    this.externalEntities = externalEntities;
+    this.supportDTD = supportDTD;
+    this.baseAware = baseAware;
+    this.stringInterning = stringInterning;
+    this.reporter = reporter;
+    this.resolver = resolver;
+    if (validating)
+      {
+        validationStack = new LinkedList();
+        ids = new HashSet();
+        idrefs = new HashSet();
+      }
+    pushInput(new Input(in, null, null, systemId, null, null, false, true));
+  }
+
+  /**
+   * Creates a new XML parser for the given character stream.
+   * This constructor is only available for compatibility with the JAXP
+   * APIs, which permit XML to be parsed from a character stream. Because
+   * the encoding specified by the character stream may conflict with that
+   * specified in the XML declaration, this method should be avoided where
+   * possible.
+   * @param in the input stream
+   * @param systemId the URL from which the input stream was retrieved
+   * (necessary if there are external entities to be resolved)
+   * @param validating if the parser is to be a validating parser
+   * @param namespaceAware if the parser should support XML Namespaces
+   * @param coalescing if CDATA sections should be merged into adjacent text
+   * nodes
+   * @param replaceERefs if entity references should be automatically
+   * replaced by their replacement text (otherwise they will be reported as
+   * entity-reference events)
+   * @param externalEntities if external entities should be loaded
+   * @param supportDTD if support for the XML DTD should be enabled
+   * @param baseAware if the parser should support XML Base to resolve
+   * external entities
+   * @param stringInterning whether strings will be interned during parsing
+   * @param reporter the reporter to receive warnings during processing
+   * @param resolver the callback interface used to resolve external
+   * entities
+   */
+  public XMLParser(Reader reader, String systemId,
+                   boolean validating,
+                   boolean namespaceAware,
+                   boolean coalescing,
+                   boolean replaceERefs,
+                   boolean externalEntities,
+                   boolean supportDTD,
+                   boolean baseAware,
+                   boolean stringInterning,
+                   XMLReporter reporter,
+                   XMLResolver resolver)
+  {
+    this.validating = validating;
+    this.namespaceAware = namespaceAware;
+    this.coalescing = coalescing;
+    this.replaceERefs = replaceERefs;
+    this.externalEntities = externalEntities;
+    this.supportDTD = supportDTD;
+    this.baseAware = baseAware;
+    this.stringInterning = stringInterning;
+    this.reporter = reporter;
+    this.resolver = resolver;
+    if (validating)
+      {
+        validationStack = new LinkedList();
+        ids = new HashSet();
+        idrefs = new HashSet();
+      }
+    pushInput(new Input(null, reader, null, systemId, null, null, false, true));
+  }
+
+  // -- NamespaceContext --
+
+  public String getNamespaceURI(String prefix)
+  {
+    if (XMLConstants.XML_NS_PREFIX.equals(prefix))
+      return XMLConstants.XML_NS_URI;
+    if (XMLConstants.XMLNS_ATTRIBUTE.equals(prefix))
+      return XMLConstants.XMLNS_ATTRIBUTE_NS_URI;
+    for (Iterator i = namespaces.iterator(); i.hasNext(); )
+      {
+        LinkedHashMap ctx = (LinkedHashMap) i.next();
+        String namespaceURI = (String) ctx.get(prefix);
+        if (namespaceURI != null)
+          return namespaceURI;
+      }
+    return null;
+  }
+
+  public String getPrefix(String namespaceURI)
+  {
+    if (XMLConstants.XML_NS_URI.equals(namespaceURI))
+      return XMLConstants.XML_NS_PREFIX;
+    if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceURI))
+      return XMLConstants.XMLNS_ATTRIBUTE;
+    for (Iterator i = namespaces.iterator(); i.hasNext(); )
+      {
+        LinkedHashMap ctx = (LinkedHashMap) i.next();
+        if (ctx.containsValue(namespaceURI))
+          {
+            for (Iterator j = ctx.entrySet().iterator(); j.hasNext(); )
+              {
+                Map.Entry entry = (Map.Entry) i.next();
+                String uri = (String) entry.getValue();
+                if (uri.equals(namespaceURI))
+                  return (String) entry.getKey();
+              }
+          }
+      }
+    return null;
+  }
+
+  public Iterator getPrefixes(String namespaceURI)
+  {
+    if (XMLConstants.XML_NS_URI.equals(namespaceURI))
+      return Collections.singleton(XMLConstants.XML_NS_PREFIX).iterator();
+    if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceURI))
+      return Collections.singleton(XMLConstants.XMLNS_ATTRIBUTE).iterator();
+    LinkedList acc = new LinkedList();
+    for (Iterator i = namespaces.iterator(); i.hasNext(); )
+      {
+        LinkedHashMap ctx = (LinkedHashMap) i.next();
+        if (ctx.containsValue(namespaceURI))
+          {
+            for (Iterator j = ctx.entrySet().iterator(); j.hasNext(); )
+              {
+                Map.Entry entry = (Map.Entry) i.next();
+                String uri = (String) entry.getValue();
+                if (uri.equals(namespaceURI))
+                  acc.add(entry.getKey());
+              }
+          }
+      }
+    return acc.iterator();
+  }
+
+  // -- XMLStreamReader --
+
+  public void close()
+    throws XMLStreamException
+  {
+    stack = null;
+    namespaces = null;
+    bases = null;
+    buf = null;
+    attrs = null;
+    doctype = null;
+
+    inputStack = null;
+    validationStack = null;
+    ids = null;
+    idrefs = null;
+  }
+
+  public NamespaceContext getNamespaceContext()
+  {
+    return this;
+  }
+
+  public int getAttributeCount()
+  {
+    return attrs.size();
+  }
+
+  public String getAttributeName(int index)
+  {
+    Attribute a = (Attribute) attrs.get(index);
+    return a.localName;
+  }
+
+  public String getAttributeNamespace(int index)
+  {
+    String prefix = getAttributePrefix(index);
+    return getNamespaceURI(prefix);
+  }
+
+  public String getAttributePrefix(int index)
+  {
+    Attribute a = (Attribute) attrs.get(index);
+    return a.prefix;
+  }
+
+  public QName getAttributeQName(int index)
+  {
+    Attribute a = (Attribute) attrs.get(index);
+    String namespaceURI = getNamespaceURI(a.prefix);
+    return new QName(namespaceURI, a.localName, a.prefix);
+  }
+
+  public String getAttributeType(int index)
+  {
+    Attribute a = (Attribute) attrs.get(index);
+    return a.type;
+  }
+
+  private String getAttributeType(String elementName, String attName)
+  {
+    if (doctype != null)
+      {
+        AttributeDecl att = doctype.getAttributeDecl(elementName, attName);
+        if (att != null)
+          return att.type;
+      }
+    return "CDATA";
+  }
+
+  public String getAttributeValue(int index)
+  {
+    Attribute a = (Attribute) attrs.get(index);
+    return a.value;
+  }
+
+  public String getAttributeValue(String namespaceURI, String localName)
+  {
+    for (Iterator i = attrs.iterator(); i.hasNext(); )
+      {
+        Attribute a = (Attribute) i.next();
+        if (a.localName.equals(localName))
+          {
+            String uri = getNamespaceURI(a.prefix);
+            if ((uri == null && namespaceURI == null) ||
+                (uri != null && uri.equals(namespaceURI)))
+              return a.value;
+          }
+      }
+    return null;
+  }
+
+  boolean isAttributeDeclared(int index)
+  {
+    if (doctype == null)
+      return false;
+    Attribute a = (Attribute) attrs.get(index);
+    String qn = ("".equals(a.prefix)) ? a.localName :
+      a.prefix + ":" + a.localName;
+    String elementName = buf.toString();
+    return doctype.isAttributeDeclared(elementName, qn);
+  }
+  
+  public String getCharacterEncodingScheme()
+  {
+    return xmlEncoding;
+  }
+
+  public String getElementText()
+    throws XMLStreamException
+  {
+    if (event != XMLStreamConstants.START_ELEMENT)
+      throw new XMLStreamException("current event must be START_ELEMENT");
+    StringBuffer elementText = new StringBuffer();
+    int depth = stack.size();
+    while (event != XMLStreamConstants.END_ELEMENT || stack.size() > depth)
+      {
+        switch (next())
+          {
+          case XMLStreamConstants.CHARACTERS:
+          case XMLStreamConstants.SPACE:
+            elementText.append(buf.toString());
+          }
+      }
+    return elementText.toString();
+  }
+
+  public String getEncoding()
+  {
+    return (input.inputEncoding == null) ? "UTF-8" : input.inputEncoding;
+  }
+
+  public int getEventType()
+  {
+    return event;
+  }
+
+  public String getLocalName()
+  {
+    switch (event)
+      {
+      case XMLStreamConstants.START_ELEMENT:
+      case XMLStreamConstants.END_ELEMENT:
+        String qName = buf.toString();
+        int ci = qName.indexOf(':');
+        return (ci == -1) ? qName : qName.substring(ci + 1);
+      default:
+        return null;
+      }
+  }
+
+  public Location getLocation()
+  {
+    return input;
+  }
+
+  public QName getName()
+  {
+    switch (event)
+      {
+      case XMLStreamConstants.START_ELEMENT:
+      case XMLStreamConstants.END_ELEMENT:
+        String qName = buf.toString();
+        int ci = qName.indexOf(':');
+        String localName = (ci == -1) ? qName : qName.substring(ci + 1);
+        String prefix = (ci == -1) ?
+          (namespaceAware ? XMLConstants.DEFAULT_NS_PREFIX : null) :
+          qName.substring(0, ci);
+        String namespaceURI = getNamespaceURI(prefix);
+        return new QName(namespaceURI, localName, prefix);
+      default:
+        return null;
+      }
+  }
+
+  public int getNamespaceCount()
+  {
+    if (!namespaceAware)
+      return 0;
+    switch (event)
+      {
+      case XMLStreamConstants.START_ELEMENT:
+      case XMLStreamConstants.END_ELEMENT:
+        LinkedHashMap ctx = (LinkedHashMap) namespaces.getFirst();
+        return ctx.size();
+      default:
+        return 0;
+      }
+  }
+
+  public String getNamespacePrefix(int index)
+  {
+    LinkedHashMap ctx = (LinkedHashMap) namespaces.getFirst();
+    int count = 0;
+    for (Iterator i = ctx.keySet().iterator(); i.hasNext(); )
+      {
+        String prefix = (String) i.next();
+        if (count++ == index)
+          return prefix;
+      }
+    return null;
+  }
+
+  public String getNamespaceURI()
+  {
+    switch (event)
+      {
+      case XMLStreamConstants.START_ELEMENT:
+      case XMLStreamConstants.END_ELEMENT:
+        String qName = buf.toString();
+        int ci = qName.indexOf(':');
+        if (ci == -1)
+          return null;
+        String prefix = qName.substring(0, ci);
+        return getNamespaceURI(prefix);
+      default:
+        return null;
+      }
+  }
+
+  public String getNamespaceURI(int index)
+  {
+    LinkedHashMap ctx = (LinkedHashMap) namespaces.getFirst();
+    int count = 0;
+    for (Iterator i = ctx.values().iterator(); i.hasNext(); )
+      {
+        String uri = (String) i.next();
+        if (count++ == index)
+          return uri;
+      }
+    return null;
+  }
+
+  public String getPIData()
+  {
+    return piData;
+  }
+
+  public String getPITarget()
+  {
+    return piTarget;
+  }
+
+  public String getPrefix()
+  {
+    switch (event)
+      {
+      case XMLStreamConstants.START_ELEMENT:
+      case XMLStreamConstants.END_ELEMENT:
+        String qName = buf.toString();
+        int ci = qName.indexOf(':');
+        return (ci == -1) ?
+          (namespaceAware ? XMLConstants.DEFAULT_NS_PREFIX : null) :
+          qName.substring(0, ci);
+      default:
+        return null;
+      }
+  }
+
+  public Object getProperty(String name)
+    throws IllegalArgumentException
+  {
+    if (name == null)
+      throw new IllegalArgumentException("name is null");
+    if (XMLInputFactory.ALLOCATOR.equals(name))
+      return null;
+    if (XMLInputFactory.IS_COALESCING.equals(name))
+      return coalescing ? Boolean.TRUE : Boolean.FALSE;
+    if (XMLInputFactory.IS_NAMESPACE_AWARE.equals(name))
+      return namespaceAware ? Boolean.TRUE : Boolean.FALSE;
+    if (XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES.equals(name))
+      return replaceERefs ? Boolean.TRUE : Boolean.FALSE;
+    if (XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES.equals(name))
+      return externalEntities ? Boolean.TRUE : Boolean.FALSE;
+    if (XMLInputFactory.IS_VALIDATING.equals(name))
+      return Boolean.FALSE;
+    if (XMLInputFactory.REPORTER.equals(name))
+      return reporter;
+    if (XMLInputFactory.RESOLVER.equals(name))
+      return resolver;
+    if (XMLInputFactory.SUPPORT_DTD.equals(name))
+      return supportDTD ? Boolean.TRUE : Boolean.FALSE;
+    if ("gnu.xml.stream.stringInterning".equals(name))
+      return stringInterning ? Boolean.TRUE : Boolean.FALSE;
+    if ("gnu.xml.stream.xmlBase".equals(name))
+      return baseAware ? Boolean.TRUE : Boolean.FALSE;
+    if ("gnu.xml.stream.baseURI".equals(name))
+      return getXMLBase();
+    return null;
+  }
+
+  public String getText()
+  {
+    return buf.toString();
+  }
+
+  public char[] getTextCharacters()
+  {
+    return buf.toString().toCharArray();
+  }
+
+  public int getTextCharacters(int sourceStart, char[] target,
+                               int targetStart, int length)
+    throws XMLStreamException
+  {
+    length = Math.min(sourceStart + buf.length(), length);
+    int sourceEnd = sourceStart + length;
+    buf.getChars(sourceStart, sourceEnd, target, targetStart);
+    return length;
+  }
+
+  public int getTextLength()
+  {
+    return buf.length();
+  }
+
+  public int getTextStart()
+  {
+    return 0;
+  }
+
+  public String getVersion()
+  {
+    return (xmlVersion == null) ? "1.0" : xmlVersion;
+  }
+
+  public boolean hasName()
+  {
+    switch (event)
+      {
+      case XMLStreamConstants.START_ELEMENT:
+      case XMLStreamConstants.END_ELEMENT:
+        return true;
+      default:
+        return false;
+      }
+  }
+
+  public boolean hasText()
+  {
+    switch (event)
+      {
+      case XMLStreamConstants.CHARACTERS:
+      case XMLStreamConstants.SPACE:
+        return true;
+      default:
+        return false;
+      }
+  }
+
+  public boolean isAttributeSpecified(int index)
+  {
+    Attribute a = (Attribute) attrs.get(index);
+    return a.specified;
+  }
+
+  public boolean isCharacters()
+  {
+    return (event == XMLStreamConstants.CHARACTERS);
+  }
+
+  public boolean isEndElement()
+  {
+    return (event == XMLStreamConstants.END_ELEMENT);
+  }
+
+  public boolean isStandalone()
+  {
+    return Boolean.TRUE.equals(xmlStandalone);
+  }
+
+  public boolean isStartElement()
+  {
+    return (event == XMLStreamConstants.START_ELEMENT);
+  }
+
+  public boolean isWhiteSpace()
+  {
+    return (event == XMLStreamConstants.SPACE);
+  }
+
+  public int nextTag()
+    throws XMLStreamException
+  {
+    do
+      {
+        switch (next())
+          {
+          case XMLStreamConstants.START_ELEMENT:
+          case XMLStreamConstants.END_ELEMENT:
+          case XMLStreamConstants.CHARACTERS:
+          case XMLStreamConstants.SPACE:
+          case XMLStreamConstants.COMMENT:
+          case XMLStreamConstants.PROCESSING_INSTRUCTION:
+            break;
+          default:
+            throw new XMLStreamException("Unexpected event type: " + event);
+          }
+      }
+    while (event != XMLStreamConstants.START_ELEMENT &&
+           event != XMLStreamConstants.END_ELEMENT);
+    return event;
+  }
+
+  public void require(int type, String namespaceURI, String localName)
+    throws XMLStreamException
+  {
+    if (event != type)
+      throw new XMLStreamException("Current event type is " + event);
+    if (event == XMLStreamConstants.START_ELEMENT ||
+        event == XMLStreamConstants.END_ELEMENT)
+      {
+        String ln = getLocalName();
+        if (!ln.equals(localName))
+          throw new XMLStreamException("Current local-name is " + ln);
+        String uri = getNamespaceURI();
+        if ((uri == null && namespaceURI != null) ||
+            (uri != null && !uri.equals(namespaceURI)))
+          throw new XMLStreamException("Current namespace URI is " + uri);
+      }
+  }
+
+  public boolean standaloneSet()
+  {
+    return (xmlStandalone != null);
+  }
+
+  public boolean hasNext()
+    throws XMLStreamException
+  {
+    if (event == XMLStreamConstants.END_DOCUMENT)
+      return false;
+    if (!lookahead)
+      {
+        next();
+        lookahead = true;
+      }
+    return event != -1;
+  }
+  
+  public int next()
+    throws XMLStreamException
+  {
+    if (lookahead)
+      {
+        lookahead = false;
+        return event;
+      }
+    if (event == XMLStreamConstants.END_ELEMENT)
+      {
+        // Pop namespace context
+        if (namespaceAware)
+          namespaces.removeFirst();
+        // Pop base context
+        if (baseAware)
+          bases.removeFirst();
+      }
+    if (!startEntityStack.isEmpty())
+      {
+        String entityName = (String) startEntityStack.removeFirst();
+        buf.setLength(0);
+        buf.append(entityName);
+        event = XMLStreamConstants.START_ENTITY;
+        return event;
+      }
+    else if (!endEntityStack.isEmpty())
+      {
+        String entityName = (String) endEntityStack.removeFirst();
+        buf.setLength(0);
+        buf.append(entityName);
+        event = XMLStreamConstants.END_ENTITY;
+        return event;
+      }
+    try
+      {
+        if (!input.initialized)
+          input.init();
+        switch (state)
+          {
+          case CONTENT:
+            if (tryRead(TEST_END_ELEMENT))
+              {
+                readEndElement();
+                if (stack.isEmpty())
+                  state = MISC;
+                event = XMLStreamConstants.END_ELEMENT;
+              }
+            else if (tryRead(TEST_COMMENT))
+              {
+                readComment(false);
+                event = XMLStreamConstants.COMMENT;
+              }
+            else if (tryRead(TEST_PI))
+              {
+                readPI(false);
+                event = XMLStreamConstants.PROCESSING_INSTRUCTION;
+              }
+            else if (tryRead(TEST_CDATA))
+              {
+                readCDSect();
+                event = XMLStreamConstants.CDATA;
+              }
+            else if (tryRead(TEST_START_ELEMENT))
+              {
+                state = readStartElement();
+                event = XMLStreamConstants.START_ELEMENT;
+              }
+            else
+              {
+                // Check for character reference or predefined entity
+                mark(8);
+                int c = readCh();
+                if (c == 0x26) // '&'
+                  {
+                    c = readCh();
+                    if (c == 0x23) // '#'
+                      {
+                        reset();
+                        event = readCharData(null);
+                      }
+                    else
+                      {
+                        // entity reference
+                        reset();
+                        readCh(); // &
+                        readReference();
+                        String ref = buf.toString();
+                        String text = (String) PREDEFINED_ENTITIES.get(ref);
+                        if (text != null)
+                          {
+                            event = readCharData(text);
+                          }
+                        else if (replaceERefs && !isUnparsedEntity(ref))
+                          {
+                            // this will report a start-entity event
+                            boolean external = false;
+                            if (doctype != null)
+                              {
+                                Object entity = doctype.getEntity(ref);
+                                if (entity instanceof ExternalIds)
+                                  external = true;
+                              }
+                            expandEntity(ref, false, external);
+                            event = next();
+                          }
+                        else
+                          {
+                            event = XMLStreamConstants.ENTITY_REFERENCE;
+                          }
+                      }
+                  }
+                else
+                  {
+                    reset();
+                    event = readCharData(null);
+                    if (validating && doctype != null)
+                      validatePCData(buf.toString());
+                  }
+              }
+            break;
+          case EMPTY_ELEMENT:
+            String elementName = (String) stack.removeLast();
+            buf.setLength(0);
+            buf.append(elementName);
+            state = stack.isEmpty() ? MISC : CONTENT;
+            event = XMLStreamConstants.END_ELEMENT;
+            if (validating && doctype != null)
+              endElementValidationHook();
+            break;
+          case INIT: // XMLDecl?
+            if (tryRead(TEST_XML_DECL))
+              readXMLDecl();
+            input.finalizeEncoding();
+            event = XMLStreamConstants.START_DOCUMENT;
+            state = PROLOG;
+            break;
+          case PROLOG: // Misc* (doctypedecl Misc*)?
+            skipWhitespace();
+            if (doctype == null && tryRead(TEST_DOCTYPE_DECL))
+              {
+                readDoctypeDecl();
+                event = XMLStreamConstants.DTD;
+              }
+            else if (tryRead(TEST_COMMENT))
+              {
+                readComment(false);
+                event = XMLStreamConstants.COMMENT;
+              }
+            else if (tryRead(TEST_PI))
+              {
+                readPI(false);
+                event = XMLStreamConstants.PROCESSING_INSTRUCTION;
+              }
+            else if (tryRead(TEST_START_ELEMENT))
+              {
+                state = readStartElement();
+                event = XMLStreamConstants.START_ELEMENT;
+              }
+            else
+              {
+                int c = readCh();
+                error("no root element: U+" + Integer.toHexString(c));
+              }
+            break;
+          case MISC: // Comment | PI | S
+            skipWhitespace();
+            if (tryRead(TEST_COMMENT))
+              {
+                readComment(false);
+                event = XMLStreamConstants.COMMENT;
+              }
+            else if (tryRead(TEST_PI))
+              {
+                readPI(false);
+                event = XMLStreamConstants.PROCESSING_INSTRUCTION;
+              }
+            else
+              {
+                if (event == XMLStreamConstants.END_DOCUMENT)
+                  throw new NoSuchElementException();
+                int c = readCh();
+                if (c != -1)
+                  error("Only comments and PIs may appear after " +
+                        "the root element");
+                event = XMLStreamConstants.END_DOCUMENT;
+              }
+            break;
+          default:
+            event = -1;
+          }
+        return event;
+      }
+    catch (IOException e)
+      {
+        XMLStreamException e2 = new XMLStreamException();
+        e2.initCause(e);
+        throw e2;
+      }
+  }
+
+  // package private
+
+  /**
+   * Returns the current element name.
+   */
+  String getCurrentElement()
+  {
+    return (String) stack.getLast();
+  }
+
+  // private
+
+  private void mark(int limit)
+    throws IOException
+  {
+    input.mark(limit);
+  }
+
+  private void reset()
+    throws IOException
+  {
+    input.reset();
+  }
+
+  private int read()
+    throws IOException
+  {
+    return input.read();
+  }
+
+  private int read(int[] b, int off, int len)
+    throws IOException
+  {
+    return input.read(b, off, len);
+  }
+  
+  /**
+   * Parsed character read.
+   */
+  private int readCh()
+    throws IOException, XMLStreamException
+  {
+    int c = read();
+    if (expandPE && c == 0x25) // '%'
+      {
+        if (peIsError)
+          error("PE reference within decl in internal subset.");
+        expandPEReference();
+        return readCh();
+      }
+    return c;
+  }
+
+  /**
+   * Reads the next character, ensuring it is the character specified.
+   * @param delim the character to match
+   * @exception XMLStreamException if the next character is not the
+   * specified one
+   */
+  private void require(char delim)
+    throws IOException, XMLStreamException
+  {
+    mark(1);
+    int c = readCh();
+    if (delim != c)
+      {
+        reset();
+        error("required character (got U+" + Integer.toHexString(c) + ")",
+              new Character(delim));
+      }
+  }
+
+  /**
+   * Reads the next few characters, ensuring they match the string specified.
+   * @param delim the string to match
+   * @exception XMLStreamException if the next characters do not match the
+   * specified string
+   */
+  private void require(String delim)
+    throws IOException, XMLStreamException
+  {
+    char[] chars = delim.toCharArray();
+    int len = chars.length;
+    mark(len);
+    int off = 0;
+    do
+      {
+        int l2 = read(tmpBuf, off, len - off);
+        if (l2 == -1)
+          {
+            reset();
+            error("EOF before required string", delim);
+          }
+        off += l2;
+      }
+    while (off < len);
+    for (int i = 0; i < chars.length; i++)
+      {
+        if (chars[i] != tmpBuf[i])
+          {
+            reset();
+            error("required string", delim);
+          }
+      }
+  }
+
+  /**
+   * Try to read a single character. On failure, reset the stream.
+   * @param delim the character to test
+   * @return true if the character matched delim, false otherwise.
+   */
+  private boolean tryRead(char delim)
+    throws IOException, XMLStreamException
+  {
+    mark(1);
+    int c = readCh();
+    if (delim != c)
+      {
+        reset();
+        return false;
+      }
+    return true;
+  }
+
+  /**
+   * Tries to read the specified characters.
+   * If successful, the stream is positioned after the last character,
+   * otherwise it is reset.
+   * @param test the string to test
+   * @return true if the characters matched the test string, false otherwise.
+   */
+  private boolean tryRead(String test)
+    throws IOException
+  {
+    char[] chars = test.toCharArray();
+    int len = chars.length;
+    mark(len);
+    int count = 0;
+    int l2 = read(tmpBuf, 0, len);
+    if (l2 == -1)
+      {
+        reset();
+        return false;
+      }
+    count += l2;
+    while (count < len)
+      {
+        // force read
+        int c = read();
+        if (c == -1)
+          {
+            reset();
+            return false;
+          }
+        tmpBuf[count++] = (char) c;
+      }
+    for (int i = 0; i < len; i++)
+      {
+        if (chars[i] != tmpBuf[i])
+          {
+            reset();
+            return false;
+          }
+      }
+    return true;
+  }
+
+  /**
+   * Reads characters until the specified test string is encountered.
+   * @param delim the string delimiting the end of the characters
+   */
+  private void readUntil(String delim)
+    throws IOException, XMLStreamException
+  {
+    int startLine = input.line;
+    try
+      {
+        while (!tryRead(delim))
+          {
+            int c = readCh();
+            if (c == -1)
+              throw new EOFException();
+            else if (input.xml11)
+              {
+                if (!isXML11Char(c) || isXML11RestrictedChar(c))
+                  error("illegal XML 1.1 character",
+                        "U+" + Integer.toHexString(c));
+              }
+            else if (!isChar(c))
+              error("illegal XML character", 
+                    "U+" + Integer.toHexString(c));
+            buf.append(Character.toChars(c));
+          }
+      }
+    catch (EOFException e)
+      {
+        error("end of input while looking for delimiter "+
+              "(started on line " + startLine + ')', delim);
+      }
+  }
+
+  /**
+   * Reads any whitespace characters.
+   * @return true if whitespace characters were read, false otherwise
+   */
+  private boolean tryWhitespace()
+    throws IOException, XMLStreamException
+  {
+    boolean white;
+    boolean ret = false;
+    do
+      {
+        mark(1);
+        int c = readCh();
+        while (c == -1 && inputStack.size() > 1)
+          {
+            popInput();
+            c = readCh();
+          }
+        white = (c == 0x20 || c == 0x09 || c == 0x0a || c == 0x0d);
+        if (white)
+          ret = true;
+      }
+    while (white);
+    reset();
+    return ret;
+  }
+
+  /**
+   * Skip over any whitespace characters.
+   */
+  private void skipWhitespace()
+    throws IOException, XMLStreamException
+  {
+    boolean white;
+    do
+      {
+        mark(1);
+        int c = readCh();
+        while (c == -1 && inputStack.size() > 1)
+          {
+            popInput();
+            c = readCh();
+          }
+        white = (c == 0x20 || c == 0x09 || c == 0x0a || c == 0x0d);
+      }
+    while (white);
+    reset();
+  }
+
+  /**
+   * Try to read as many whitespace characters as are available.
+   * @exception XMLStreamException if no whitespace characters were seen
+   */
+  private void requireWhitespace()
+    throws IOException, XMLStreamException
+  {
+    if (!tryWhitespace())
+      error("whitespace required");
+  }
+
+  /**
+   * Returns the current base URI for resolving external entities.
+   */
+  String getXMLBase()
+  {
+    if (baseAware)
+      {
+        for (Iterator i = bases.iterator(); i.hasNext(); )
+          {
+            String base = (String) i.next();
+            if (base != null)
+              return base;
+          }
+      }
+    return input.systemId;
+  }
+
+  /**
+   * Push the specified text input source.
+   */
+  private void pushInput(String name, String text, boolean report,
+                         boolean normalize)
+    throws IOException, XMLStreamException
+  {
+    // Check for recursion
+    if (name != null && !"".equals(name))
+      {
+        for (Iterator i = inputStack.iterator(); i.hasNext(); )
+          {
+            Input ctx = (Input) i.next();
+            if (name.equals(ctx.name))
+              error("entities may not be self-recursive", name);
+          }
+      }
+    else
+      report = false;
+    pushInput(new Input(null, new StringReader(text), input.publicId,
+                        input.systemId, name, input.inputEncoding, report,
+                        normalize));
+  }
+
+  /**
+   * Push the specified external input source.
+   */
+  private void pushInput(String name, ExternalIds ids, boolean report,
+                         boolean normalize)
+    throws IOException, XMLStreamException
+  {
+    if (!externalEntities)
+      return;
+    InputStream in = null;
+    String url = absolutize(input.systemId, ids.systemId);
+    // Check for recursion
+    for (Iterator i = inputStack.iterator(); i.hasNext(); )
+      {
+        Input ctx = (Input) i.next();
+        if (url.equals(ctx.systemId))
+          error("entities may not be self-recursive", url);
+        if (name != null && !"".equals(name) && name.equals(ctx.name))
+          error("entities may not be self-recursive", name);
+      }
+    if (name == null || "".equals(name))
+      report = false;
+    if (in == null && url != null && resolver != null)
+      {
+        if (resolver instanceof XMLResolver2)
+          in = ((XMLResolver2) resolver).resolve(ids.publicId, url);
+        else
+          in = resolver.resolve(url);
+      }
+    if (in == null)
+      in = resolve(url);
+    if (in == null)
+      error("unable to resolve external entity",
+            (ids.systemId != null) ? ids.systemId : ids.publicId);
+    pushInput(new Input(in, null, ids.publicId, url, name, null, report,
+                        normalize));
+    input.init();
+    if (tryRead(TEST_XML_DECL))
+      readTextDecl();
+    input.finalizeEncoding();
+  }
+
+  /**
+   * Push the specified input source (general entity) onto the input stack.
+   */
+  private void pushInput(Input input)
+  {
+    if (input.report)
+      startEntityStack.addFirst(input.name);
+    inputStack.addLast(input);
+    if (this.input != null)
+      input.xml11 = this.input.xml11;
+    this.input = input;
+  }
+
+  /**
+   * "Absolutize" a URL. This resolves a relative URL into an absolute one.
+   * @param base the current base URL
+   * @param href the (absolute or relative) URL to resolve
+   */
+  static String absolutize(String base, String href)
+  {
+    if (href == null)
+      return null;
+    int ci = href.indexOf(':');
+    if (ci > 1 && isLowercaseAscii(href.substring(0, ci)))
+      {
+        // href is absolute already
+        return href;
+      }
+    if (base == null)
+      base = "";
+    else
+      {
+        int i = base.lastIndexOf('/');
+        if (i != -1)
+          base = base.substring(0, i + 1);
+        else
+          base = "";
+      }
+    if ("".equals(base))
+      {
+        // assume file URL relative to current directory
+        base = System.getProperty("user.dir");
+        if (base.charAt(0) == '/')
+          base = base.substring(1);
+        base = "file:///" + base.replace(File.separatorChar, '/');
+        if (!base.endsWith("/"))
+          base += "/";
+      }
+    if (href.startsWith("/"))
+      {
+        if (base.startsWith("file:"))
+          return "file://" + href;
+        int i = base.indexOf("://");
+        if (i != -1)
+          {
+            i = base.indexOf('/', i + 3);
+            if (i != -1)
+              base = base.substring(0, i);
+          }
+      }
+    else
+      {
+        while (href.startsWith(".."))
+          {
+            int i = base.lastIndexOf('/', base.length() - 2);
+            if (i != -1)
+              base = base.substring(0, i + 1);
+            href = href.substring(2);
+            if (href.startsWith("/"))
+              href = href.substring(1);
+          }
+      }
+    return base + href;
+  }
+
+  private static boolean isLowercaseAscii(String text)
+  {
+    int len = text.length();
+    for (int i = 0; i < len; i++)
+      {
+        char c = text.charAt(i);
+        if (c < 97 || c > 122)
+          return false;
+      }
+    return true;
+  }
+
+  /**
+   * Returns an input stream for the given URL.
+   */
+  private InputStream resolve(String url)
+    throws IOException
+  {
+    try
+      {
+        return new URL(url).openStream();
+      }
+    catch (MalformedURLException e)
+      {
+        return null;
+      }
+  }
+
+  /**
+   * Pops the current input source (general entity) off the stack.
+   */
+  private void popInput()
+  {
+    Input old = (Input) inputStack.removeLast();
+    if (old.report)
+      endEntityStack.addFirst(old.name);
+    input = (Input) inputStack.getLast();
+  }
+
+  /**
+   * Parse an entity text declaration.
+   */
+  private void readTextDecl()
+    throws IOException, XMLStreamException
+  {
+    final int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF;
+    requireWhitespace();
+    if (tryRead("version"))
+      {
+        readEq();
+        String v = readLiteral(flags, false);
+        if ("1.0".equals(v))
+          input.xml11 = false;
+        else if ("1.1".equals(v))
+          {
+            Input i1 = (Input) inputStack.getFirst();
+            if (!i1.xml11)
+              error("external entity specifies later version number");
+            input.xml11 = true;
+          }
+        else
+          throw new XMLStreamException("illegal XML version: " + v);
+        requireWhitespace();
+      }
+    require("encoding");
+    readEq();
+    String enc = readLiteral(flags, false);
+    skipWhitespace();
+    require("?>");
+    input.setInputEncoding(enc);
+  }
+
+  /**
+   * Parse the XML declaration.
+   */
+  private void readXMLDecl()
+    throws IOException, XMLStreamException
+  {
+    final int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF;
+    
+    requireWhitespace();
+    require("version");
+    readEq();
+    xmlVersion = readLiteral(flags, false);
+    if ("1.0".equals(xmlVersion))
+      input.xml11 = false;
+    else if ("1.1".equals(xmlVersion))
+      input.xml11 = true;
+    else
+      throw new XMLStreamException("illegal XML version: " + xmlVersion);
+    
+    boolean white = tryWhitespace();
+    
+    if (tryRead("encoding"))
+      {
+        if (!white)
+          error("whitespace required before 'encoding='");
+        readEq();
+        xmlEncoding = readLiteral(flags, false);
+        white = tryWhitespace();
+      }
+    
+    if (tryRead("standalone"))
+      {
+        if (!white)
+          error("whitespace required before 'standalone='");
+        readEq();
+        String standalone = readLiteral(flags, false);
+        if ("yes".equals(standalone))
+          xmlStandalone = Boolean.TRUE;
+        else if ("no".equals(standalone))
+          xmlStandalone = Boolean.FALSE;
+        else
+          error("standalone flag must be 'yes' or 'no'", standalone);
+      }
+
+    skipWhitespace();
+    require("?>");
+    if (xmlEncoding != null)
+      input.setInputEncoding(xmlEncoding);
+  }
+
+  /**
+   * Parse the DOCTYPE declaration.
+   */
+  private void readDoctypeDecl()
+    throws IOException, XMLStreamException
+  {
+    if (!supportDTD)
+      error("parser was configured not to support DTDs");
+    requireWhitespace();
+    String rootName = readNmtoken(true);
+    skipWhitespace();
+    ExternalIds ids = readExternalIds(false, true);
+    doctype =
+      this.new Doctype(rootName, ids.publicId, ids.systemId);
+    
+    // Parse internal subset first
+    skipWhitespace();
+    if (tryRead('['))
+      {
+        while (true)
+          {
+            expandPE = true;
+            skipWhitespace();
+            expandPE = false;
+            if (tryRead(']'))
+              break;
+            else
+              readMarkupdecl(false);
+          }
+      }
+    skipWhitespace();
+    require('>');
+
+    // Parse external subset
+    if (ids.systemId != null && externalEntities)
+      {
+        pushInput("", ">", false, false);
+        pushInput("[dtd]", ids, true, true);
+        // loop until we get back to ">"
+        while (true)
+          {
+            expandPE = true;
+            skipWhitespace();
+            expandPE = false;
+            mark(1);
+            int c = readCh();
+            if (c == 0x3e) // '>'
+              break;
+            else if (c == -1)
+              popInput();
+            else
+              {
+                reset();
+                expandPE = true;
+                readMarkupdecl(true);
+                expandPE = true;
+              }
+          }
+        if (inputStack.size() != 2)
+          error("external subset has unmatched '>'");
+        popInput();
+      }
+    checkDoctype();
+    if (validating)
+      validateDoctype();
+
+    // Make rootName available for reading
+    buf.setLength(0);
+    buf.append(rootName);
+  }
+
+  /**
+   * Checks the well-formedness of the DTD.
+   */
+  private void checkDoctype()
+    throws XMLStreamException
+  {
+    // TODO check entity recursion
+  }
+
+  /**
+   * Parse the markupdecl production.
+   */
+  private void readMarkupdecl(boolean inExternalSubset)
+    throws IOException, XMLStreamException
+  {
+    boolean saved = expandPE;
+    mark(1);
+    require('<');
+    reset();
+    expandPE = false;
+    if (tryRead(TEST_ELEMENT_DECL))
+      {
+        expandPE = saved;
+        readElementDecl();
+      }
+    else if (tryRead(TEST_ATTLIST_DECL))
+      {
+        expandPE = saved;
+        readAttlistDecl();
+      }
+    else if (tryRead(TEST_ENTITY_DECL))
+      {
+        expandPE = saved;
+        readEntityDecl(inExternalSubset);
+      }
+    else if (tryRead(TEST_NOTATION_DECL))
+      {
+        expandPE = saved;
+        readNotationDecl(inExternalSubset);
+      }
+    else if (tryRead(TEST_PI))
+      {
+        readPI(true);
+        expandPE = saved;
+      }
+    else if (tryRead(TEST_COMMENT))
+      {
+        readComment(true);
+        expandPE = saved;
+      }
+    else if (tryRead("<!["))
+      {
+        // conditional section
+        expandPE = saved;
+        if (inputStack.size() < 2)
+          error("conditional sections illegal in internal subset");
+        skipWhitespace();
+        if (tryRead("INCLUDE"))
+          {
+            skipWhitespace();
+            require('[');
+            skipWhitespace();
+            while (!tryRead("]]>"))
+              {
+                readMarkupdecl(inExternalSubset);
+                skipWhitespace();
+              }
+          }
+        else if (tryRead("IGNORE"))
+          {
+            skipWhitespace();
+            require('[');
+            expandPE = false;
+            for (int nesting = 1; nesting > 0; )
+              {
+                int c = readCh();
+                switch (c)
+                  {
+                  case 0x3c: // '<'
+                    if (tryRead("!["))
+                      nesting++;
+                    break;
+                  case 0x5d: // ']'
+                    if (tryRead("]>"))
+                      nesting--;
+                    break;
+                  case -1:
+                    throw new EOFException();
+                  }
+              }
+            expandPE = saved;
+          }
+        else
+          error("conditional section must begin with INCLUDE or IGNORE");
+      }
+    else
+      error("expected markup declaration");
+  }
+
+  /**
+   * Parse the elementdecl production.
+   */
+  private void readElementDecl()
+    throws IOException, XMLStreamException
+  {
+    requireWhitespace();
+    String name = readNmtoken(true);
+    requireWhitespace();
+    readContentspec(name);
+    skipWhitespace();
+    require('>');
+  }
+
+  /**
+   * Parse the contentspec production.
+   */
+  private void readContentspec(String elementName)
+    throws IOException, XMLStreamException
+  {
+    if (tryRead("EMPTY"))
+      doctype.addElementDecl(elementName, "EMPTY", new EmptyContentModel());
+    else if (tryRead("ANY"))
+      doctype.addElementDecl(elementName, "ANY", new AnyContentModel());
+    else
+      {
+        ContentModel model;
+        StringBuffer acc = new StringBuffer();
+        require('(');
+        acc.append('(');
+        skipWhitespace();
+        if (tryRead("#PCDATA"))
+          {
+            // mixed content
+            acc.append("#PCDATA");
+            MixedContentModel mm = new MixedContentModel();
+            model = mm;
+            skipWhitespace();
+            if (tryRead(')'))
+              {
+                acc.append(")");
+                if (tryRead('*'))
+                  {
+                    mm.min = 0;
+                    mm.max = -1;
+                  }
+              }
+            else
+              {
+                while (!tryRead(")"))
+                  {
+                    require('|');
+                    acc.append('|');
+                    skipWhitespace();
+                    String name = readNmtoken(true);
+                    acc.append(name);
+                    mm.addName(name);
+                    skipWhitespace();
+                  }
+                require('*');
+                acc.append(")*");
+                mm.min = 0;
+                mm.max = -1;
+              }
+          }
+        else
+          model = readElements(acc);
+        doctype.addElementDecl(elementName, acc.toString(), model);
+      }
+  }
+
+  /**
+   * Parses an element content model.
+   */
+  private ElementContentModel readElements(StringBuffer acc)
+    throws IOException, XMLStreamException
+  {
+    int separator;
+    ElementContentModel model = new ElementContentModel();
+    
+    // Parse first content particle
+    skipWhitespace();
+    model.addContentParticle(readContentParticle(acc));
+    // End or separator
+    skipWhitespace();
+    int c = readCh();
+    switch (c)
+      {
+      case 0x29: // ')'
+        acc.append(')');
+        mark(1);
+        c = readCh();
+        switch (c)
+          {
+          case 0x3f: // '?'
+            acc.append('?');
+            model.min = 0;
+            model.max = 1;
+            break;
+          case 0x2a: // '*'
+            acc.append('*');
+            model.min = 0;
+            model.max = -1;
+            break;
+          case 0x2b: // '+'
+            acc.append('+');
+            model.min = 1;
+            model.max = -1;
+            break;
+          default:
+            reset();
+          }
+        return model; // done
+      case 0x7c: // '|'
+        model.or = true;
+        // fall through
+      case 0x2c: // ','
+        separator = c;
+        acc.append(Character.toChars(c));
+        break;
+      default:
+        error("bad separator in content model",
+              "U+" + Integer.toHexString(c));
+        return model;
+      }
+    // Parse subsequent content particles
+    while (true)
+      {
+        skipWhitespace();
+        model.addContentParticle(readContentParticle(acc));
+        skipWhitespace();
+        c = readCh();
+        if (c == 0x29) // ')'
+          {
+            acc.append(')');
+            break;
+          }
+        else if (c != separator)
+          {
+            error("bad separator in content model",
+                  "U+" + Integer.toHexString(c));
+            return model;
+          }
+        else
+          acc.append(c);
+      }
+    // Check for occurrence indicator
+    mark(1);
+    c = readCh();
+    switch (c)
+      {
+      case 0x3f: // '?'
+        acc.append('?');
+        model.min = 0;
+        model.max = 1;
+        break;
+      case 0x2a: // '*'
+        acc.append('*');
+        model.min = 0;
+        model.max = -1;
+        break;
+      case 0x2b: // '+'
+        acc.append('+');
+        model.min = 1;
+        model.max = -1;
+        break;
+      default:
+        reset();
+      }
+    return model;
+  }
+
+  /**
+   * Parse a cp production.
+   */
+  private ContentParticle readContentParticle(StringBuffer acc)
+    throws IOException, XMLStreamException
+  {
+    ContentParticle cp = new ContentParticle();
+    if (tryRead('('))
+      {
+        acc.append('(');
+        cp.content = readElements(acc);
+      }
+    else
+      {
+        String name = readNmtoken(true);
+        acc.append(name);
+        cp.content = name;
+        mark(1);
+        int c = readCh();
+        switch (c)
+          {
+          case 0x3f: // '?'
+            acc.append('?');
+            cp.min = 0;
+            cp.max = 1;
+            break;
+          case 0x2a: // '*'
+            acc.append('*');
+            cp.min = 0;
+            cp.max = -1;
+            break;
+          case 0x2b: // '+'
+            acc.append('+');
+            cp.min = 1;
+            cp.max = -1;
+            break;
+          default:
+            reset();
+          }
+      }
+    return cp;
+  }
+
+  /**
+   * Parse an attribute-list definition.
+   */
+  private void readAttlistDecl()
+    throws IOException, XMLStreamException
+  {
+    requireWhitespace();
+    String elementName = readNmtoken(true);
+    boolean white = tryWhitespace();
+    while (!tryRead('>'))
+      {
+        if (!white)
+          error("whitespace required before attribute definition");
+        readAttDef(elementName);
+        white = tryWhitespace();
+      }
+  }
+
+  /**
+   * Parse a single attribute definition.
+   */
+  private void readAttDef(String elementName)
+    throws IOException, XMLStreamException
+  {
+    String name = readNmtoken(true);
+    requireWhitespace();
+    StringBuffer acc = new StringBuffer();
+    HashSet values = new HashSet();
+    String type = readAttType(acc, values);
+    if (validating)
+      {
+        if ("ID".equals(type))
+          {
+            // VC: One ID per Element Type
+            for (Iterator i = doctype.attlistIterator(elementName);
+                 i.hasNext(); )
+              {
+                Map.Entry entry = (Map.Entry) i.next();
+                AttributeDecl decl = (AttributeDecl) entry.getValue();
+                if ("ID".equals(decl.type))
+                  error("element types must not have more than one ID " +
+                        "attribute");
+              }
+          }
+        else if ("NOTATION".equals(type))
+          {
+            // VC: One Notation Per Element Type
+            for (Iterator i = doctype.attlistIterator(elementName);
+                 i.hasNext(); )
+              {
+                Map.Entry entry = (Map.Entry) i.next();
+                AttributeDecl decl = (AttributeDecl) entry.getValue();
+                if ("NOTATION".equals(decl.type))
+                  error("element types must not have more than one NOTATION " +
+                        "attribute");
+              }
+            // VC: No Notation on Empty Element
+            ContentModel model = doctype.getElementModel(elementName);
+            if (model != null && model.type == ContentModel.EMPTY)
+              error("attributes of type NOTATION must not be declared on an " +
+                    "element declared EMPTY");
+          }
+      }
+    String enumer = null;
+    if ("ENUMERATION".equals(type) || "NOTATION".equals(type))
+      enumer = acc.toString();
+    else
+      values = null;
+    requireWhitespace();
+    readDefault(elementName, name, type, enumer, values);
+  }
+
+  /**
+   * Parse an attribute type.
+   */
+  private String readAttType(StringBuffer acc, HashSet values)
+    throws IOException, XMLStreamException
+  {
+    if (tryRead('('))
+      {
+        readEnumeration(false, acc, values);
+        return "ENUMERATION";
+      }
+    else
+      {
+        String typeString = readNmtoken(true);
+        if ("NOTATION".equals(typeString))
+          {
+            readNotationType(acc, values);
+            return typeString;
+          }
+        else if ("CDATA".equals(typeString) ||
+                 "ID".equals(typeString) ||
+                 "IDREF".equals(typeString) ||
+                 "IDREFS".equals(typeString) ||
+                 "ENTITY".equals(typeString) ||
+                 "ENTITIES".equals(typeString) ||
+                 "NMTOKEN".equals(typeString) ||
+                 "NMTOKENS".equals(typeString))
+          return typeString;
+        else
+          {
+            error("illegal attribute type", typeString);
+            return null;
+          }
+      }
+  }
+
+  /**
+   * Parse an enumeration.
+   */
+  private void readEnumeration(boolean isNames, StringBuffer acc,
+                               HashSet values)
+    throws IOException, XMLStreamException
+  {
+    acc.append('(');
+    // first token
+    skipWhitespace();
+    String token = readNmtoken(isNames);
+    acc.append(token);
+    values.add(token);
+    // subsequent tokens
+    skipWhitespace();
+    while (!tryRead(')'))
+      {
+        require('|');
+        acc.append('|');
+        skipWhitespace();
+        token = readNmtoken(isNames);
+        // VC: No Duplicate Tokens
+        if (validating && values.contains(token))
+          error("duplicate token", token);
+        acc.append(token);
+        values.add(token);
+        skipWhitespace();
+      }
+    acc.append(')');
+  }
+
+  /**
+   * Parse a notation type for an attribute.
+   */
+  private void readNotationType(StringBuffer acc, HashSet values)
+    throws IOException, XMLStreamException
+  {
+    requireWhitespace();
+    require('(');
+    readEnumeration(true, acc, values);
+  }
+
+  /**
+   * Parse the default value for an attribute.
+   */
+  private void readDefault(String elementName, String name,
+                           String type, String enumeration, HashSet values)
+    throws IOException, XMLStreamException
+  {
+    int valueType = ATTRIBUTE_DEFAULT_SPECIFIED;
+    int flags = LIT_ATTRIBUTE;
+    String value = null, defaultType = null;
+    boolean saved = expandPE;
+    
+    if (!"CDATA".equals(type))
+      flags |= LIT_NORMALIZE;
+
+    expandPE = false;
+    if (tryRead('#'))
+      {
+        if (tryRead("FIXED"))
+          {
+            defaultType = "#FIXED";
+            valueType = ATTRIBUTE_DEFAULT_FIXED;
+            requireWhitespace();
+            value = readLiteral(flags, false);
+          }
+        else if (tryRead("REQUIRED"))
+          {
+            defaultType = "#REQUIRED";
+            valueType = ATTRIBUTE_DEFAULT_REQUIRED;
+          }
+        else if (tryRead("IMPLIED"))
+          {
+            defaultType = "#IMPLIED";
+            valueType = ATTRIBUTE_DEFAULT_IMPLIED;
+          }
+        else
+          error("illegal keyword for attribute default value");
+      }
+    else
+      value = readLiteral(flags, false);
+    expandPE = saved;
+    if (validating)
+      {
+        if ("ID".equals(type))
+          {
+            // VC: Attribute Default Value Syntactically Correct
+            if (value != null && !isNmtoken(value, true))
+              error("default value must match Name production", value);
+            // VC: ID Attribute Default
+            if (valueType != ATTRIBUTE_DEFAULT_REQUIRED &&
+                valueType != ATTRIBUTE_DEFAULT_IMPLIED)
+              error("ID attributes must have a declared default of " +
+                    "#IMPLIED or #REQUIRED");
+          }
+        else if (value != null)
+          {
+            // VC: Attribute Default Value Syntactically Correct
+            if ("IDREF".equals(type) || "ENTITY".equals(type))
+              {
+                if (!isNmtoken(value, true))
+                  error("default value must match Name production", value);
+              }
+            else if ("IDREFS".equals(type) || "ENTITIES".equals(type))
+              {
+                StringTokenizer st = new StringTokenizer(value);
+                while (st.hasMoreTokens())
+                  {
+                    String token = st.nextToken();
+                    if (!isNmtoken(token, true))
+                      error("default value must match Name production", token);
+                  }
+              }
+            else if ("NMTOKEN".equals(type) || "ENUMERATION".equals(type))
+              {
+                if (!isNmtoken(value, false))
+                  error("default value must match Nmtoken production", value);
+              }
+            else if ("NMTOKENS".equals(type))
+              {
+                StringTokenizer st = new StringTokenizer(value);
+                while (st.hasMoreTokens())
+                  {
+                    String token = st.nextToken();
+                    if (!isNmtoken(token, false))
+                      error("default value must match Nmtoken production",
+                            token);
+                  }
+              }
+          }
+      }
+    // Register attribute def
+    AttributeDecl attribute =
+      new AttributeDecl(type, value, valueType, enumeration, values,
+                        inputStack.size() != 1);
+    doctype.addAttributeDecl(elementName, name, attribute);
+  }
+
+  /**
+   * Parse the EntityDecl production.
+   */
+  private void readEntityDecl(boolean inExternalSubset)
+    throws IOException, XMLStreamException
+  {
+    int flags = 0;
+    // Check if parameter entity
+    boolean peFlag = false;
+    expandPE = false;
+    requireWhitespace();
+    if (tryRead('%'))
+      {
+        peFlag = true;
+        requireWhitespace();
+      }
+    expandPE = true;
+    // Read entity name
+    String name = readNmtoken(true);
+    if (name.indexOf(':') != -1)
+      error("illegal character ':' in entity name", name);
+    if (peFlag)
+      name = "%" + name;
+    requireWhitespace();
+    mark(1);
+    int c = readCh();
+    reset();
+    if (c == 0x22 || c == 0x27) // " | '
+      {
+        // Internal entity replacement text
+        String value = readLiteral(flags | LIT_DISABLE_EREF, true);
+        int ai = value.indexOf('&');
+        while (ai != -1)
+          {
+            int sci = value.indexOf(';', ai);
+            if (sci == -1)
+              error("malformed reference in entity value", value);
+            String ref = value.substring(ai + 1, sci);
+            int[] cp = UnicodeReader.toCodePointArray(ref);
+            if (cp.length == 0)
+              error("malformed reference in entity value", value);
+            if (cp[0] == 0x23) // #
+              {
+                if (cp.length == 1)
+                  error("malformed reference in entity value", value);
+                if (cp[1] == 0x78) // 'x'
+                  {
+                    if (cp.length == 2)
+                      error("malformed reference in entity value", value);
+                    for (int i = 2; i < cp.length; i++)
+                      {
+                        int x = cp[i];
+                        if (x < 0x30 ||
+                            (x > 0x39 && x < 0x41) ||
+                            (x > 0x46 && x < 0x61) ||
+                            x > 0x66)
+                          error("malformed character reference in entity value",
+                                value);
+                      }
+                  }
+                else
+                  {
+                    for (int i = 1; i < cp.length; i++)
+                      {
+                        int x = cp[i];
+                        if (x < 0x30 || x > 0x39)
+                          error("malformed character reference in entity value",
+                                value);
+                      }
+                  }
+              }
+            else
+              {
+                if (!isNameStartCharacter(cp[0]))
+                  error("malformed reference in entity value", value);
+                for (int i = 1; i < cp.length; i++)
+                  {
+                    if (!isNameCharacter(cp[i]))
+                      error("malformed reference in entity value", value);
+                  }
+              }
+            ai = value.indexOf('&', sci);
+          }
+        doctype.addEntityDecl(name, value, inExternalSubset);
+      }
+    else
+      {
+        ExternalIds ids = readExternalIds(false, false);
+        // Check for NDATA
+        boolean white = tryWhitespace();
+        if (!peFlag && tryRead("NDATA"))
+          {
+            if (!white)
+              error("whitespace required before NDATA");
+            requireWhitespace();
+            ids.notationName = readNmtoken(true);
+          }
+        doctype.addEntityDecl(name, ids, inExternalSubset);
+      }
+    // finish
+    skipWhitespace();
+    require('>');
+  }
+
+  /**
+   * Parse the NotationDecl production.
+   */
+  private void readNotationDecl(boolean inExternalSubset)
+    throws IOException, XMLStreamException
+  {
+    requireWhitespace();
+    String notationName = readNmtoken(true);
+    if (notationName.indexOf(':') != -1)
+      error("illegal character ':' in notation name", notationName);
+    if (validating)
+      {
+        // VC: Unique Notation Name
+        ExternalIds notation = doctype.getNotation(notationName);
+        if (notation != null)
+          error("duplicate notation name", notationName);
+      }
+    requireWhitespace();
+    ExternalIds ids = readExternalIds(true, false);
+    ids.notationName = notationName;
+    doctype.addNotationDecl(notationName, ids, inExternalSubset);
+    skipWhitespace();
+    require('>');
+  }
+
+  /**
+   * Returns a tuple {publicId, systemId}.
+   */
+  private ExternalIds readExternalIds(boolean inNotation, boolean isSubset)
+    throws IOException, XMLStreamException
+  {
+    int c;
+    int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF;
+    ExternalIds ids = new ExternalIds();
+    
+    if (tryRead("PUBLIC"))
+      {
+        requireWhitespace();
+        ids.publicId = readLiteral(LIT_NORMALIZE | LIT_PUBID | flags, false);
+        if (inNotation)
+          {
+            skipWhitespace();
+            mark(1);
+            c = readCh();
+            reset();
+            if (c == 0x22 || c == 0x27) // " | '
+              {
+                String href = readLiteral(flags, false);
+                ids.systemId = absolutize(input.systemId, href);
+              }
+          }
+        else
+          {
+            requireWhitespace();
+            String href = readLiteral(flags, false);
+            ids.systemId = absolutize(input.systemId, href);
+          }
+        // Check valid URI characters
+        for (int i = 0; i < ids.publicId.length(); i++)
+          {
+            char d = ids.publicId.charAt(i);
+            if (d >= 'a' && d <= 'z')
+              continue;
+            if (d >= 'A' && d <= 'Z')
+              continue;
+            if (" \r\n0123456789-' ()+,./:=?;!*#@$_%".indexOf(d) != -1)
+              continue;
+            error("illegal PUBLIC id character",
+                  "U+" + Integer.toHexString(d));
+          }
+      }
+    else if (tryRead("SYSTEM"))
+      {
+        requireWhitespace();
+        String href = readLiteral(flags, false);
+        ids.systemId = absolutize(input.systemId, href);
+      }
+    else if (!isSubset)
+      {
+        error("missing SYSTEM or PUBLIC keyword");
+      }
+    if (ids.systemId != null && !inNotation)
+      {
+        if (ids.systemId.indexOf('#') != -1)
+          error("SYSTEM id has a URI fragment", ids.systemId);
+      }
+    return ids;
+  }
+
+  /**
+   * Parse the start of an element.
+   * @return the state of the parser afterwards (EMPTY_ELEMENT or CONTENT)
+   */
+  private int readStartElement()
+    throws IOException, XMLStreamException
+  {
+    // Read element name
+    String elementName = readNmtoken(true);
+    attrs.clear();
+    // Push namespace context
+    if (namespaceAware)
+      {
+        if (elementName.charAt(0) == ':' ||
+            elementName.charAt(elementName.length() - 1) == ':')
+          error("not a QName", elementName);
+        namespaces.addFirst(new LinkedHashMap());
+      }
+    // Read element content
+    boolean white = tryWhitespace();
+    mark(1);
+    int c = readCh();
+    while (c != 0x2f && c != 0x3e) // '/' | '>'
+      {
+        // Read attribute
+        reset();
+        if (!white)
+          error("need whitespace between attributes");
+        readAttribute(elementName);
+        white = tryWhitespace();
+        mark(1);
+        c = readCh();
+      }
+    // supply defaulted attributes
+    if (doctype != null)
+      {
+        for (Iterator i = doctype.attlistIterator(elementName); i.hasNext(); )
+          {
+            Map.Entry entry = (Map.Entry) i.next();
+            String attName = (String) entry.getKey();
+            AttributeDecl decl = (AttributeDecl) entry.getValue();
+            if (validating)
+              {
+                switch (decl.valueType)
+                  {
+                  case ATTRIBUTE_DEFAULT_REQUIRED:
+                    // VC: Required Attribute
+                    if (decl.value == null && !attributeSpecified(attName))
+                      error("value for " + attName + " attribute is required");
+                    break;
+                  case ATTRIBUTE_DEFAULT_FIXED:
+                    // VC: Fixed Attribute Default
+                    for (Iterator j = attrs.iterator(); j.hasNext(); )
+                      {
+                        Attribute a = (Attribute) j.next();
+                        if (attName.equals(a.name) &&
+                            !decl.value.equals(a.value))
+                          error("value for " + attName + " attribute must be " +
+                                decl.value);
+                      }
+                    break;
+                  }
+              }
+            if (namespaceAware && attName.equals("xmlns"))
+              {
+                LinkedHashMap ctx =
+                  (LinkedHashMap) namespaces.getFirst();
+                if (ctx.containsKey(XMLConstants.DEFAULT_NS_PREFIX))
+                  continue; // namespace was specified
+              }
+            else if (namespaceAware && attName.startsWith("xmlns:"))
+              {
+                LinkedHashMap ctx =
+                  (LinkedHashMap) namespaces.getFirst();
+                if (ctx.containsKey(attName.substring(6)))
+                  continue; // namespace was specified
+              }
+            else if (attributeSpecified(attName))
+              continue;
+            if (decl.value == null)
+              continue;
+            // VC: Standalone Document Declaration
+            if (validating && decl.external && xmlStandalone == Boolean.TRUE)
+              error("standalone must be 'no' if attributes inherit values " +
+                    "from externally declared markup declarations");
+            Attribute attr =
+              new Attribute(attName, decl.type, false, decl.value);
+            if (namespaceAware)
+              {
+                if (!addNamespace(attr))
+                  attrs.add(attr);
+              }
+            else
+              attrs.add(attr);
+          }
+      }
+    if (baseAware)
+      {
+        String uri = getAttributeValue(XMLConstants.XML_NS_URI, "base");
+        String base = getXMLBase();
+        bases.addFirst(absolutize(base, uri));
+      }
+    if (namespaceAware)
+      {
+        // check prefix bindings
+        int ci = elementName.indexOf(':');
+        if (ci != -1)
+          {
+            String prefix = elementName.substring(0, ci);
+            String uri = getNamespaceURI(prefix);
+            if (uri == null)
+              error("unbound element prefix", prefix);
+            else if (input.xml11 && "".equals(uri))
+              error("XML 1.1 unbound element prefix", prefix);
+          }
+        for (Iterator i = attrs.iterator(); i.hasNext(); )
+          {
+            Attribute attr = (Attribute) i.next();
+            if (attr.prefix != null &&
+                !XMLConstants.XMLNS_ATTRIBUTE.equals(attr.prefix))
+              {
+                String uri = getNamespaceURI(attr.prefix);
+                if (uri == null)
+                  error("unbound attribute prefix", attr.prefix);
+                else if (input.xml11 && "".equals(uri))
+                  error("XML 1.1 unbound attribute prefix", attr.prefix);
+              }
+          }
+      }
+    if (validating && doctype != null)
+      {
+        validateStartElement(elementName);
+        currentContentModel = doctype.getElementModel(elementName);
+        if (currentContentModel == null)
+          error("no element declaration", elementName);
+        validationStack.add(new LinkedList());
+      }
+    // make element name available for read
+    buf.setLength(0);
+    buf.append(elementName);
+    // push element onto stack
+    stack.addLast(elementName);
+    switch (c)
+      {
+      case 0x3e: // '>'
+        return CONTENT;
+      case 0x2f: // '/'
+        require('>');
+        return EMPTY_ELEMENT;
+      }
+    return -1; // to satisfy compiler
+  }
+
+  /**
+   * Indicates whether the specified attribute name was specified for the
+   * current element.
+   */
+  private boolean attributeSpecified(String attName)
+  {
+    for (Iterator j = attrs.iterator(); j.hasNext(); )
+      {
+        Attribute a = (Attribute) j.next();
+        if (attName.equals(a.name))
+          return true;
+      }
+    return false;
+  }
+
+  /**
+   * Parse an attribute.
+   */
+  private void readAttribute(String elementName)
+    throws IOException, XMLStreamException
+  {
+    // Read attribute name
+    String attributeName = readNmtoken(true);
+    String type = getAttributeType(elementName, attributeName);
+    readEq();
+    // Read literal
+    final int flags = LIT_ATTRIBUTE |  LIT_ENTITY_REF;
+    String value = (type == null || "CDATA".equals(type)) ?
+      readLiteral(flags, false) : readLiteral(flags | LIT_NORMALIZE, false);
+    // add attribute event
+    Attribute attr = this.new Attribute(attributeName, type, true, value);
+    if (namespaceAware)
+      {
+        if (attributeName.charAt(0) == ':' ||
+            attributeName.charAt(attributeName.length() - 1) == ':')
+          error("not a QName", attributeName);
+        else if (attributeName.equals("xmlns"))
+          {
+            LinkedHashMap ctx = (LinkedHashMap) namespaces.getFirst();
+            if (ctx.containsKey(XMLConstants.DEFAULT_NS_PREFIX))
+              error("duplicate default namespace");
+          }
+        else if (attributeName.startsWith("xmlns:"))
+          {
+            LinkedHashMap ctx = (LinkedHashMap) namespaces.getFirst();
+            if (ctx.containsKey(attributeName.substring(6)))
+              error("duplicate namespace", attributeName.substring(6));
+          }
+        else if (attrs.contains(attr))
+          error("duplicate attribute", attributeName);
+      }
+    else if (attrs.contains(attr))
+      error("duplicate attribute", attributeName);
+    if (validating && doctype != null)
+      {
+        // VC: Attribute Value Type
+        AttributeDecl decl =
+          doctype.getAttributeDecl(elementName, attributeName);
+        if (decl == null)
+          error("attribute must be declared", attributeName);
+        if ("ENUMERATION".equals(decl.type))
+          {
+            // VC: Enumeration
+            if (!decl.values.contains(value))
+              error("value does not match enumeration " + decl.enumeration,
+                    value);
+          }
+        else if ("ID".equals(decl.type))
+          {
+            // VC: ID
+            if (!isNmtoken(value, true))
+              error("ID values must match the Name production");
+            if (ids.contains(value))
+              error("Duplicate ID", value);
+            ids.add(value);
+          }
+        else if ("IDREF".equals(decl.type) || "IDREFS".equals(decl.type))
+          {
+            StringTokenizer st = new StringTokenizer(value);
+            while (st.hasMoreTokens())
+              {
+                String token = st.nextToken();
+                // VC: IDREF
+                if (!isNmtoken(token, true))
+                  error("IDREF values must match the Name production");
+                idrefs.add(token);
+              }
+          }
+        else if ("NMTOKEN".equals(decl.type) || "NMTOKENS".equals(decl.type))
+          {
+            StringTokenizer st = new StringTokenizer(value);
+            while (st.hasMoreTokens())
+              {
+                String token = st.nextToken();
+                // VC: Name Token
+                if (!isNmtoken(token, false))
+                  error("NMTOKEN values must match the Nmtoken production");
+              }
+          }
+        else if ("ENTITY".equals(decl.type))
+          {
+            // VC: Entity Name
+            if (!isNmtoken(value, true))
+              error("ENTITY values must match the Name production");
+            Object entity = doctype.getEntity(value);
+            if (entity == null || !(entity instanceof ExternalIds) ||
+                ((ExternalIds) entity).notationName == null)
+              error("ENTITY values must match the name of an unparsed " +
+                    "entity declared in the DTD");
+          }
+        else if ("NOTATION".equals(decl.type))
+          {
+            if (!decl.values.contains(value))
+              error("NOTATION values must match a declared notation name",
+                    value);
+            // VC: Notation Attributes
+            ExternalIds notation = doctype.getNotation(value);
+            if (notation == null)
+              error("NOTATION values must match the name of a notation " +
+                    "declared in the DTD", value);
+          }
+      }
+    if (namespaceAware)
+      {
+        if (!addNamespace(attr))
+          attrs.add(attr);
+      }
+    else
+      attrs.add(attr);
+  }
+
+  /**
+   * Determines whether the specified attribute is a namespace declaration,
+   * and adds it to the current namespace context if so. Returns false if
+   * the attribute is an ordinary attribute.
+   */
+  private boolean addNamespace(Attribute attr)
+    throws XMLStreamException
+  {
+    if ("xmlns".equals(attr.name))
+      {
+        LinkedHashMap ctx = (LinkedHashMap) namespaces.getFirst();
+        if (ctx.get(XMLConstants.DEFAULT_NS_PREFIX) != null)
+          error("Duplicate default namespace declaration");
+        if (XMLConstants.XML_NS_URI.equals(attr.value))
+          error("can't bind XML namespace");
+        if ("".equals(attr.value) && !input.xml11)
+          error("illegal use of 1.1-style prefix unbinding in 1.0 document");
+        ctx.put(XMLConstants.DEFAULT_NS_PREFIX, attr.value);
+        return true;
+      }
+    else if ("xmlns".equals(attr.prefix))
+      {
+        LinkedHashMap ctx = (LinkedHashMap) namespaces.getFirst();
+        if (ctx.get(attr.localName) != null)
+          error("Duplicate namespace declaration for prefix",
+                attr.localName);
+        if (XMLConstants.XML_NS_PREFIX.equals(attr.localName))
+          {
+            if (!XMLConstants.XML_NS_URI.equals(attr.value))
+              error("can't redeclare xml prefix");
+            else
+              return false; // treat as attribute
+          }
+        if (XMLConstants.XML_NS_URI.equals(attr.value))
+          error("can't bind non-xml prefix to XML namespace");
+        if (XMLConstants.XMLNS_ATTRIBUTE.equals(attr.localName))
+          error("can't redeclare xmlns prefix");
+        if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(attr.value))
+          error("can't bind non-xmlns prefix to XML Namespace namespace");
+        if ("".equals(attr.value) && !input.xml11)
+          error("illegal use of 1.1-style prefix unbinding in 1.0 document");
+        ctx.put(attr.localName, attr.value);
+        return true;
+      }
+    return false;
+  }
+
+  /**
+   * Parse a closing tag.
+   */
+  private void readEndElement()
+    throws IOException, XMLStreamException
+  {
+    // pop element off stack
+    String expected = (String) stack.removeLast();
+    require(expected);
+    skipWhitespace();
+    require('>');
+    // Make element name available
+    buf.setLength(0);
+    buf.append(expected);
+    if (validating && doctype != null)
+      endElementValidationHook();
+  }
+
+  /**
+   * Validate the end of an element.
+   * Called on an end-element or empty element if validating.
+   */
+  private void endElementValidationHook()
+    throws XMLStreamException
+  {
+    validateEndElement();
+    validationStack.removeLast();
+    if (stack.isEmpty())
+      currentContentModel = null;
+    else
+      {
+        String parent = (String) stack.getLast();
+        currentContentModel = doctype.getElementModel(parent);
+      }
+  }
+
+  /**
+   * Parse a comment.
+   */
+  private void readComment(boolean inDTD)
+    throws IOException, XMLStreamException
+  {
+    boolean saved = expandPE;
+    expandPE = false;
+    buf.setLength(0);
+    readUntil(TEST_END_COMMENT);
+    require('>');
+    expandPE = saved;
+    if (inDTD)
+      doctype.addComment(buf.toString());
+  }
+
+  /**
+   * Parse a processing instruction.
+   */
+  private void readPI(boolean inDTD)
+    throws IOException, XMLStreamException
+  {
+    boolean saved = expandPE;
+    expandPE = false;
+    piTarget = readNmtoken(true);
+    if (piTarget.indexOf(':') != -1)
+      error("illegal character in PI target", new Character(':'));
+    if ("xml".equalsIgnoreCase(piTarget))
+      error("illegal PI target", piTarget);
+    if (tryRead(TEST_END_PI))
+      piData = null;
+    else
+      {
+        if (!tryWhitespace())
+          error("whitespace required between PI target and data");
+        buf.setLength(0);
+        readUntil(TEST_END_PI);
+        piData = buf.toString();
+      }
+    expandPE = saved;
+    if (inDTD)
+      doctype.addPI(piTarget, piData);
+  }
+
+  /**
+   * Parse an entity reference.
+   */
+  private void readReference()
+    throws IOException, XMLStreamException
+  {
+    buf.setLength(0);
+    String entityName = readNmtoken(true);
+    require(';');
+    buf.setLength(0);
+    buf.append(entityName);
+  }
+
+  /**
+   * Read an CDATA section.
+   */
+  private void readCDSect()
+    throws IOException, XMLStreamException
+  {
+    buf.setLength(0);
+    readUntil(TEST_END_CDATA);
+  }
+
+  /**
+   * Read character data.
+   * @return the type of text read (CHARACTERS or SPACE)
+   */
+  private int readCharData(String prefix)
+    throws IOException, XMLStreamException
+  {
+    boolean white = true;
+    buf.setLength(0);
+    if (prefix != null)
+      buf.append(prefix);
+    boolean done = false;
+    boolean entities = false;
+    while (!done)
+      {
+        // Block read
+        mark(tmpBuf.length);
+        int len = read(tmpBuf, 0, tmpBuf.length);
+        if (len == -1)
+          {
+            if (inputStack.size() > 1)
+              {
+                popInput();
+                // report end-entity
+                done = true;
+              }
+            else
+              throw new EOFException();
+          }
+        for (int i = 0; i < len && !done; i++)
+          {
+            int c = tmpBuf[i];
+            switch (c)
+              {
+              case 0x20:
+              case 0x09:
+              case 0x0a:
+              case 0x0d:
+                buf.append(Character.toChars(c));
+                break; // whitespace
+              case 0x26: // '&'
+                reset();
+                read(tmpBuf, 0, i);
+                // character reference?
+                mark(3);
+                c = readCh(); // &
+                c = readCh();
+                if (c == 0x23) // '#'
+                  {
+                    mark(1);
+                    c = readCh();
+                    boolean hex = (c == 0x78); // 'x'
+                    if (!hex)
+                      reset();
+                    char[] ch = readCharacterRef(hex ? 16 : 10);
+                    buf.append(ch, 0, ch.length);
+                    for (int j = 0; j < ch.length; j++)
+                      {
+                        switch (ch[j])
+                          {
+                          case 0x20:
+                          case 0x09:
+                          case 0x0a:
+                          case 0x0d:
+                            break; // whitespace
+                          default:
+                            white = false;
+                          }
+                      }
+                  }
+                else
+                  {
+                    // entity reference
+                    reset();
+                    c = readCh(); // &
+                    String entityName = readNmtoken(true);
+                    require(';');
+                    String text =
+                      (String) PREDEFINED_ENTITIES.get(entityName);
+                    if (text != null)
+                      buf.append(text);
+                    else
+                      {
+                        pushInput("", "&" + entityName + ";", false, false);
+                        done = true;
+                        break;
+                      }
+                  }
+                // continue processing
+                i = -1;
+                mark(tmpBuf.length);
+                len = read(tmpBuf, 0, tmpBuf.length);
+                if (len == -1)
+                  {
+                    if (inputStack.size() > 1)
+                      {
+                        popInput();
+                        done = true;
+                      }
+                    else
+                      throw new EOFException();
+                  }
+                entities = true;
+                break; // end of text sequence
+              case 0x3e: // '>'
+                int l = buf.length();
+                if (l > 1 &&
+                    buf.charAt(l - 1) == ']' &&
+                    buf.charAt(l - 2) == ']')
+                  error("Character data may not contain unescaped ']]>'");
+                buf.append(Character.toChars(c));
+                break;
+              case 0x3c: // '<'
+                reset();
+                read(tmpBuf, 0, i);
+                i = len;
+                if (coalescing && tryRead(TEST_CDATA))
+                  readUntil(TEST_END_CDATA); // read CDATA section into buf
+                else
+                  done = true; // end of text sequence
+                break;
+              default:
+                if (input.xml11)
+                  {
+                    if (!isXML11Char(c) || isXML11RestrictedChar(c))
+                      error("illegal XML 1.1 character",
+                            "U+" + Integer.toHexString(c));
+                  }
+                else if (!isChar(c))
+                  error("illegal XML character",
+                        "U+" + Integer.toHexString(c));
+                white = false;
+                buf.append(Character.toChars(c));
+              }
+          }
+        // if text buffer >= 2MB, return it as a chunk
+        // to avoid excessive memory use
+        if (buf.length() >= 2097152)
+          done = true;
+      }
+    if (entities)
+      normalizeCRLF(buf);
+    return white ? XMLStreamConstants.SPACE : XMLStreamConstants.CHARACTERS;
+  }
+
+  /**
+   * Expands the specified entity.
+   */
+  private void expandEntity(String name, boolean inAttr, boolean normalize)
+    throws IOException, XMLStreamException
+  {
+    if (doctype != null)
+      {
+        Object value = doctype.getEntity(name);
+        if (value != null)
+          {
+            if (xmlStandalone == Boolean.TRUE)
+              {
+                // VC: Standalone Document Declaration
+                if (doctype.isEntityExternal(name))
+                  error("reference to external entity in standalone document");
+                else if (value instanceof ExternalIds)
+                  {
+                    ExternalIds ids = (ExternalIds) value;
+                    if (ids.notationName != null &&
+                        doctype.isNotationExternal(ids.notationName))
+                      error("reference to external notation in " +
+                            "standalone document");
+                  }
+              }
+            if (value instanceof String)
+              {
+                String text = (String) value;
+                if (inAttr && text.indexOf('<') != -1)
+                  error("< in attribute value");
+                pushInput(name, text, !inAttr, normalize);
+              }
+            else if (inAttr)
+              error("reference to external entity in attribute value", name);
+            else
+              pushInput(name, (ExternalIds) value, !inAttr, normalize);
+            return;
+          }
+      }
+    error("reference to undeclared entity", name);
+  }
+
+  /**
+   * Indicates whether the specified entity is unparsed.
+   */
+  private boolean isUnparsedEntity(String name)
+  {
+    if (doctype != null)
+      {
+        Object value = doctype.getEntity(name);
+        if (value != null && value instanceof ExternalIds)
+          return ((ExternalIds) value).notationName != null;
+      }
+    return false;
+  }
+
+  /**
+   * Read an equals sign.
+   */
+  private void readEq()
+    throws IOException, XMLStreamException
+  { 
+    skipWhitespace();
+    require('=');
+    skipWhitespace();
+  }
+
+  /**
+   * Character read for reading literals.
+   * @param recognizePEs whether to recognize parameter-entity references
+   */
+  private int literalReadCh(boolean recognizePEs)
+    throws IOException, XMLStreamException
+  {
+    int c = recognizePEs ? readCh() : read();
+    while (c == -1)
+      {
+        if (inputStack.size() > 1)
+          {
+            inputStack.removeLast();
+            input = (Input) inputStack.getLast();
+            // Don't issue end-entity
+            c = recognizePEs ? readCh() : read();
+          }
+        else
+          throw new EOFException();
+      }
+    return c;
+  }
+
+  /**
+   * Read a string literal.
+   */
+  private String readLiteral(int flags, boolean recognizePEs)
+    throws IOException, XMLStreamException
+  {
+    boolean saved = expandPE;
+    int delim = readCh();
+    if (delim != 0x27 && delim != 0x22)
+      error("expected '\"' or \"'\"", "U+" + Integer.toHexString(delim));
+    literalBuf.setLength(0);
+    if ((flags & LIT_DISABLE_PE) != 0)
+      expandPE = false;
+    boolean entities = false;
+    int inputStackSize = inputStack.size();
+    do
+      {
+        int c = literalReadCh(recognizePEs);
+        if (c == delim && inputStackSize == inputStack.size())
+          break;
+        switch (c)
+          {
+          case 0x0a:
+          case 0x0d:
+            if ((flags & (LIT_ATTRIBUTE | LIT_PUBID)) != 0)
+              c = 0x20; // normalize to space
+            break;
+          case 0x09:
+            if ((flags & LIT_ATTRIBUTE) != 0)
+              c = 0x20; // normalize to space
+            break;
+          case 0x26: // '&'
+            mark(2);
+            c = readCh();
+            if (c == 0x23) // '#'
+              {
+                if ((flags & LIT_DISABLE_CREF) != 0)
+                  {
+                    reset();
+                    c = 0x26; // '&'
+                  }
+                else
+                  {
+                    mark(1);
+                    c = readCh();
+                    boolean hex = (c == 0x78); // 'x'
+                    if (!hex)
+                      reset();
+                    char[] ref = readCharacterRef(hex ? 16 : 10);
+                    for (int i = 0; i < ref.length; i++)
+                      {
+                        char x = ref[i];
+                        if ((flags & (LIT_ATTRIBUTE | LIT_PUBID)) != 0 &&
+                            (x == 0x0a || x == 0x0d))
+                          x = 0x20; // normalize
+                        else if ((flags & LIT_ATTRIBUTE) != 0 && x == 0x09)
+                          x = 0x20; // normalize
+                        literalBuf.append(x);
+                      }
+                    entities = true;
+                    continue;
+                  }
+              }
+            else
+              {
+                if ((flags & LIT_DISABLE_EREF) != 0)
+                  {
+                    reset();
+                    c = 0x26; // '&'
+                  }
+                else
+                  {
+                    reset();
+                    String entityName = readNmtoken(true);
+                    require(';');
+                    String text =
+                      (String) PREDEFINED_ENTITIES.get(entityName);
+                    if (text != null)
+                      literalBuf.append(text);
+                    else
+                      expandEntity(entityName,
+                                   (flags & LIT_ATTRIBUTE) != 0,
+                                   true);
+                    entities = true;
+                    continue;
+                  }
+              }
+            break;
+          case 0x3c: // '<'
+            if ((flags & LIT_ATTRIBUTE) != 0)
+              error("attribute values may not contain '<'");
+            break;
+          case -1:
+            if (inputStack.size() > 1)
+              {
+                popInput();
+                continue;
+              }
+            throw new EOFException();
+          default:
+            if ((c < 0x0020 || c > 0xfffd) ||
+                (c >= 0xd800 && c < 0xdc00) ||
+                (input.xml11 && (c >= 0x007f) &&
+                 (c <= 0x009f) && (c != 0x0085)))
+              error("illegal character", "U+" + Integer.toHexString(c));
+          }
+        literalBuf.append(Character.toChars(c));
+      }
+    while (true);
+    expandPE = saved;
+    if (entities)
+      normalizeCRLF(literalBuf);
+    if ((flags & LIT_NORMALIZE) > 0)
+      literalBuf = normalize(literalBuf);
+    return literalBuf.toString();
+  }
+
+  /**
+   * Performs attribute-value normalization of the text buffer.
+   * This discards leading and trailing whitespace, and replaces sequences
+   * of whitespace with a single space.
+   */
+  private StringBuffer normalize(StringBuffer buf)
+  {
+    StringBuffer acc = new StringBuffer();
+    int len = buf.length();
+    int avState = 0;
+    for (int i = 0; i < len; i++)
+      {
+        char c = buf.charAt(i);
+        if (c == ' ')
+          avState = (avState == 0) ? 0 : 1;
+        else
+          {
+            if (avState == 1)
+              acc.append(' ');
+            acc.append(c);
+            avState = 2;
+          }
+      }
+    return acc;
+  }
+
+  /**
+   * Replace any CR/LF pairs in the buffer with LF.
+   * This may be necessary if combinations of CR or LF were declared as
+   * (character) entity references in the input.
+   */
+  private void normalizeCRLF(StringBuffer buf)
+  {
+    int len = buf.length() - 1;
+    for (int i = 0; i < len; i++)
+      {
+        char c = buf.charAt(i);
+        if (c == '\r' && buf.charAt(i + 1) == '\n')
+          {
+            buf.deleteCharAt(i--);
+            len--;
+          }
+      }
+  }
+
+  /**
+   * Parse and expand a parameter entity reference.
+   */
+  private void expandPEReference()
+    throws IOException, XMLStreamException
+  {
+    String name = readNmtoken(true, new StringBuffer());
+    require(';');
+    mark(1); // ensure we don't reset to before the semicolon
+    if (doctype != null)
+      {
+        String entityName = "%" + name;
+        Object entity = doctype.getEntity(entityName);
+        if (entity != null)
+          {
+            if (xmlStandalone == Boolean.TRUE)
+              {
+                if (doctype.isEntityExternal(entityName))
+                  error("reference to external parameter entity in " +
+                        "standalone document");
+              }
+            if (entity instanceof String)
+              {
+                pushInput(name, (String) entity, false, input.normalize);
+                //pushInput(name, " " + (String) entity + " ");
+              }
+            else
+              {
+                //pushInput("", " ");
+                pushInput(name, (ExternalIds) entity, false, input.normalize);
+                //pushInput("", " ");
+              }
+          }
+        else
+          error("reference to undeclared parameter entity", name);
+      }
+    else
+      error("reference to parameter entity without doctype", name);
+  }
+
+  /**
+   * Parse the digits in a character reference.
+   * @param base the base of the digits (10 or 16)
+   */
+  private char[] readCharacterRef(int base)
+    throws IOException, XMLStreamException
+  {
+    StringBuffer b = new StringBuffer();
+    for (int c = readCh(); c != 0x3b && c != -1; c = readCh())
+      b.append(Character.toChars(c));
+    try
+      {
+        int ord = Integer.parseInt(b.toString(), base);
+        if (input.xml11)
+          {
+            if (!isXML11Char(ord))
+              error("illegal XML 1.1 character reference " +
+                    "U+" + Integer.toHexString(ord));
+          }
+        else
+          {
+            if ((ord < 0x20 && !(ord == 0x0a || ord == 0x09 || ord == 0x0d))
+                || (ord >= 0xd800 && ord <= 0xdfff)
+                || ord == 0xfffe || ord == 0xffff
+                || ord > 0x0010ffff)
+              error("illegal XML character reference " +
+                    "U+" + Integer.toHexString(ord));
+          }
+        return Character.toChars(ord);
+      }
+    catch (NumberFormatException e)
+      {
+        error("illegal characters in character reference", b.toString());
+        return null;
+      }
+  }
+
+  /**
+   * Parses an NMTOKEN or Name production.
+   * @param isName if a Name, otherwise an NMTOKEN
+   */
+  private String readNmtoken(boolean isName)
+    throws IOException, XMLStreamException
+  {
+    return readNmtoken(isName, nmtokenBuf);
+  }
+  
+  /**
+   * Parses an NMTOKEN or Name production using the specified buffer.
+   * @param isName if a Name, otherwise an NMTOKEN
+   * @param buf the character buffer to use
+   */
+  private String readNmtoken(boolean isName, StringBuffer buf)
+    throws IOException, XMLStreamException
+  {
+    buf.setLength(0);
+    int c = readCh();
+    if (isName)
+      {
+        if (!isNameStartCharacter(c))
+          error("not a name start character",
+                "U+" + Integer.toHexString(c));
+      }
+    else
+      {
+        if (!isNameCharacter(c))
+          error("not a name character",
+                "U+" + Integer.toHexString(c));
+      }
+    buf.append(Character.toChars(c));
+    do
+      {
+        mark(1);
+        c = readCh();
+        switch (c)
+          {
+          case 0x25: // '%'
+          case 0x3c: // '<'
+          case 0x3e: // '>'
+          case 0x26: // '&'
+          case 0x2c: // ','
+          case 0x7c: // '|'
+          case 0x2a: // '*'
+          case 0x2b: // '+'
+          case 0x3f: // '?'
+          case 0x29: // ')'
+          case 0x3d: // '='
+          case 0x27: // '\''
+          case 0x22: // '"'
+          case 0x5b: // '['
+          case 0x20: // ' '
+          case 0x09: // '\t'
+          case 0x0a: // '\n'
+          case 0x0d: // '\r'
+          case 0x3b: // ';'
+          case 0x2f: // '/'
+          case -1:
+            reset();
+            return intern(buf.toString());
+          default:
+            if (!isNameCharacter(c))
+              error("not a name character",
+                    "U+" + Integer.toHexString(c));
+            else
+              buf.append(Character.toChars(c));
+          }
+      }
+    while (true);
+  }
+
+  /**
+   * Indicates whether the specified Unicode character is an XML 1.1 Char.
+   */
+  private boolean isXML11Char(int c)
+  {
+    return ((c >= 0x0001 && c <= 0xD7FF) ||
+            (c >= 0xE000 && c < 0xFFFD) || // NB exclude 0xfffd
+            (c >= 0x10000 && c <= 0x10FFFF));
+  }
+
+  /**
+   * Indicates whether the specified Unicode character is an XML 1.1
+   * RestrictedChar.
+   */
+  private boolean isXML11RestrictedChar(int c)
+  {
+    return ((c >= 0x0001 && c <= 0x0008) ||
+            (c >= 0x000B && c <= 0x000C) ||
+            (c >= 0x000E && c <= 0x001F) ||
+            (c >= 0x007F && c <= 0x0084) ||
+            (c >= 0x0086 && c <= 0x009F));
+  }
+
+  /**
+   * Indicates whether the specified text matches the Name or Nmtoken
+   * production.
+   */
+  private boolean isNmtoken(String text, boolean isName)
+  {
+    try
+      {
+        int[] cp = UnicodeReader.toCodePointArray(text);
+        if (cp.length == 0)
+          return false;
+        if (isName)
+          {
+            if (!isNameStartCharacter(cp[0]))
+              return false;
+          }
+        else
+          {
+            if (!isNameCharacter(cp[0]))
+              return false;
+          }
+        for (int i = 1; i < cp.length; i++)
+          {
+            if (!isNameCharacter(cp[i]))
+              return false;
+          }
+        return true;
+      }
+    catch (IOException e)
+      {
+        return false;
+      }
+  }
+
+  /**
+   * Indicates whether the specified Unicode character is a Name start
+   * character.
+   */
+  private boolean isNameStartCharacter(int c)
+  {
+    if (input.xml11)
+      return ((c >= 0x0041 && c <= 0x005a) ||
+              (c >= 0x0061 && c <= 0x007a) ||
+              c == 0x3a |
+              c == 0x5f |
+              (c >= 0xC0 && c <= 0xD6) ||
+              (c >= 0xD8 && c <= 0xF6) ||
+              (c >= 0xF8 && c <= 0x2FF) ||
+              (c >= 0x370 && c <= 0x37D) ||
+              (c >= 0x37F && c <= 0x1FFF) ||
+              (c >= 0x200C && c <= 0x200D) ||
+              (c >= 0x2070 && c <= 0x218F) ||
+              (c >= 0x2C00 && c <= 0x2FEF) ||
+              (c >= 0x3001 && c <= 0xD7FF) ||
+              (c >= 0xF900 && c <= 0xFDCF) ||
+              (c >= 0xFDF0 && c <= 0xFFFD) ||
+              (c >= 0x10000 && c <= 0xEFFFF));
+    else
+      return (c == 0x5f || c == 0x3a || isLetter(c));
+  }
+
+  /**
+   * Indicates whether the specified Unicode character is a Name non-initial
+   * character.
+   */
+  private boolean isNameCharacter(int c)
+  {
+    if (input.xml11)
+      return ((c >= 0x0041 && c <= 0x005a) ||
+              (c >= 0x0061 && c <= 0x007a) ||
+              (c >= 0x0030 && c <= 0x0039) ||
+              c == 0x3a |
+              c == 0x5f |
+              c == 0x2d |
+              c == 0x2e |
+              c == 0xB7 |
+              (c >= 0xC0 && c <= 0xD6) ||
+              (c >= 0xD8 && c <= 0xF6) ||
+              (c >= 0xF8 && c <= 0x2FF) ||
+              (c >= 0x300 && c <= 0x37D) ||
+              (c >= 0x37F && c <= 0x1FFF) ||
+              (c >= 0x200C && c <= 0x200D) ||
+              (c >= 0x203F && c <= 0x2040) ||
+              (c >= 0x2070 && c <= 0x218F) ||
+              (c >= 0x2C00 && c <= 0x2FEF) ||
+              (c >= 0x3001 && c <= 0xD7FF) ||
+              (c >= 0xF900 && c <= 0xFDCF) ||
+              (c >= 0xFDF0 && c <= 0xFFFD) ||
+              (c >= 0x10000 && c <= 0xEFFFF));
+    else
+      return (c == 0x2e || c == 0x2d || c == 0x5f || c == 0x3a ||
+              isLetter(c) || isDigit(c) ||
+              isCombiningChar(c) || isExtender(c));
+  }
+
+  /**
+   * Indicates whether the specified Unicode character matches the Letter
+   * production.
+   */
+  public static boolean isLetter(int c)
+  {
+    if ((c >= 0x0041 && c <= 0x005A) ||
+        (c >= 0x0061 && c <= 0x007A) ||
+        (c >= 0x00C0 && c <= 0x00D6) ||
+        (c >= 0x00D8 && c <= 0x00F6) ||
+        (c >= 0x00F8 && c <= 0x00FF) ||
+        (c >= 0x0100 && c <= 0x0131) ||
+        (c >= 0x0134 && c <= 0x013E) ||
+        (c >= 0x0141 && c <= 0x0148) ||
+        (c >= 0x014A && c <= 0x017E) ||
+        (c >= 0x0180 && c <= 0x01C3) ||
+        (c >= 0x01CD && c <= 0x01F0) ||
+        (c >= 0x01F4 && c <= 0x01F5) ||
+        (c >= 0x01FA && c <= 0x0217) ||
+        (c >= 0x0250 && c <= 0x02A8) ||
+        (c >= 0x02BB && c <= 0x02C1) ||
+        c == 0x0386 ||
+        (c >= 0x0388 && c <= 0x038A) ||
+        c == 0x038C ||
+        (c >= 0x038E && c <= 0x03A1) ||
+        (c >= 0x03A3 && c <= 0x03CE) ||
+        (c >= 0x03D0 && c <= 0x03D6) ||
+        c == 0x03DA ||
+      c == 0x03DC ||
+        c == 0x03DE ||
+        c == 0x03E0 ||
+        (c >= 0x03E2 && c <= 0x03F3) ||
+        (c >= 0x0401 && c <= 0x040C) ||
+        (c >= 0x040E && c <= 0x044F) ||
+        (c >= 0x0451 && c <= 0x045C) ||
+        (c >= 0x045E && c <= 0x0481) ||
+        (c >= 0x0490 && c <= 0x04C4) ||
+        (c >= 0x04C7 && c <= 0x04C8) ||
+        (c >= 0x04CB && c <= 0x04CC) ||
+        (c >= 0x04D0 && c <= 0x04EB) ||
+        (c >= 0x04EE && c <= 0x04F5) ||
+        (c >= 0x04F8 && c <= 0x04F9) ||
+        (c >= 0x0531 && c <= 0x0556) ||
+        c == 0x0559 ||
+        (c >= 0x0561 && c <= 0x0586) ||
+        (c >= 0x05D0 && c <= 0x05EA) ||
+        (c >= 0x05F0 && c <= 0x05F2) ||
+        (c >= 0x0621 && c <= 0x063A) ||
+        (c >= 0x0641 && c <= 0x064A) ||
+        (c >= 0x0671 && c <= 0x06B7) ||
+        (c >= 0x06BA && c <= 0x06BE) ||
+        (c >= 0x06C0 && c <= 0x06CE) ||
+        (c >= 0x06D0 && c <= 0x06D3) ||
+        c == 0x06D5 ||
+        (c >= 0x06E5 && c <= 0x06E6) ||
+        (c >= 0x0905 && c <= 0x0939) ||
+        c == 0x093D ||
+        (c >= 0x0958 && c <= 0x0961) ||
+        (c >= 0x0985 && c <= 0x098C) ||
+        (c >= 0x098F && c <= 0x0990) ||
+        (c >= 0x0993 && c <= 0x09A8) ||
+        (c >= 0x09AA && c <= 0x09B0) ||
+        c == 0x09B2 ||
+        (c >= 0x09B6 && c <= 0x09B9) ||
+        (c >= 0x09DC && c <= 0x09DD) ||
+        (c >= 0x09DF && c <= 0x09E1) ||
+        (c >= 0x09F0 && c <= 0x09F1) ||
+        (c >= 0x0A05 && c <= 0x0A0A) ||
+        (c >= 0x0A0F && c <= 0x0A10) ||
+        (c >= 0x0A13 && c <= 0x0A28) ||
+        (c >= 0x0A2A && c <= 0x0A30) ||
+        (c >= 0x0A32 && c <= 0x0A33) ||
+        (c >= 0x0A35 && c <= 0x0A36) ||
+        (c >= 0x0A38 && c <= 0x0A39) ||
+        (c >= 0x0A59 && c <= 0x0A5C) ||
+        c == 0x0A5E ||
+        (c >= 0x0A72 && c <= 0x0A74) ||
+        (c >= 0x0A85 && c <= 0x0A8B) ||
+        c == 0x0A8D ||
+        (c >= 0x0A8F && c <= 0x0A91) ||
+        (c >= 0x0A93 && c <= 0x0AA8) ||
+        (c >= 0x0AAA && c <= 0x0AB0) ||
+        (c >= 0x0AB2 && c <= 0x0AB3) ||
+        (c >= 0x0AB5 && c <= 0x0AB9) ||
+        c == 0x0ABD ||
+        c == 0x0AE0 ||
+        (c >= 0x0B05 && c <= 0x0B0C) ||
+        (c >= 0x0B0F && c <= 0x0B10) ||
+        (c >= 0x0B13 && c <= 0x0B28) ||
+        (c >= 0x0B2A && c <= 0x0B30) ||
+        (c >= 0x0B32 && c <= 0x0B33) ||
+        (c >= 0x0B36 && c <= 0x0B39) ||
+        c == 0x0B3D ||
+        (c >= 0x0B5C && c <= 0x0B5D) ||
+        (c >= 0x0B5F && c <= 0x0B61) ||
+        (c >= 0x0B85 && c <= 0x0B8A) ||
+        (c >= 0x0B8E && c <= 0x0B90) ||
+        (c >= 0x0B92 && c <= 0x0B95) ||
+        (c >= 0x0B99 && c <= 0x0B9A) ||
+        c == 0x0B9C ||
+        (c >= 0x0B9E && c <= 0x0B9F) ||
+        (c >= 0x0BA3 && c <= 0x0BA4) ||
+        (c >= 0x0BA8 && c <= 0x0BAA) ||
+        (c >= 0x0BAE && c <= 0x0BB5) ||
+        (c >= 0x0BB7 && c <= 0x0BB9) ||
+        (c >= 0x0C05 && c <= 0x0C0C) ||
+        (c >= 0x0C0E && c <= 0x0C10) ||
+        (c >= 0x0C12 && c <= 0x0C28) ||
+        (c >= 0x0C2A && c <= 0x0C33) ||
+        (c >= 0x0C35 && c <= 0x0C39) ||
+        (c >= 0x0C60 && c <= 0x0C61) ||
+        (c >= 0x0C85 && c <= 0x0C8C) ||
+        (c >= 0x0C8E && c <= 0x0C90) ||
+        (c >= 0x0C92 && c <= 0x0CA8) ||
+        (c >= 0x0CAA && c <= 0x0CB3) ||
+        (c >= 0x0CB5 && c <= 0x0CB9) ||
+        c == 0x0CDE ||
+        (c >= 0x0CE0 && c <= 0x0CE1) ||
+        (c >= 0x0D05 && c <= 0x0D0C) ||
+        (c >= 0x0D0E && c <= 0x0D10) ||
+        (c >= 0x0D12 && c <= 0x0D28) ||
+        (c >= 0x0D2A && c <= 0x0D39) ||
+        (c >= 0x0D60 && c <= 0x0D61) ||
+        (c >= 0x0E01 && c <= 0x0E2E) ||
+        c == 0x0E30 ||
+        (c >= 0x0E32 && c <= 0x0E33) ||
+        (c >= 0x0E40 && c <= 0x0E45) ||
+        (c >= 0x0E81 && c <= 0x0E82) ||
+        c == 0x0E84 ||
+        (c >= 0x0E87 && c <= 0x0E88) ||
+        c == 0x0E8A ||
+        c == 0x0E8D ||
+        (c >= 0x0E94 && c <= 0x0E97) ||
+        (c >= 0x0E99 && c <= 0x0E9F) ||
+        (c >= 0x0EA1 && c <= 0x0EA3) ||
+        c == 0x0EA5 ||
+        c == 0x0EA7 ||
+        (c >= 0x0EAA && c <= 0x0EAB) ||
+        (c >= 0x0EAD && c <= 0x0EAE) ||
+        c == 0x0EB0 ||
+        (c >= 0x0EB2 && c <= 0x0EB3) ||
+        c == 0x0EBD ||
+        (c >= 0x0EC0 && c <= 0x0EC4) ||
+        (c >= 0x0F40 && c <= 0x0F47) ||
+        (c >= 0x0F49 && c <= 0x0F69) ||
+        (c >= 0x10A0 && c <= 0x10C5) ||
+        (c >= 0x10D0 && c <= 0x10F6) ||
+        c == 0x1100 ||
+        (c >= 0x1102 && c <= 0x1103) ||
+        (c >= 0x1105 && c <= 0x1107) ||
+        c == 0x1109 ||
+        (c >= 0x110B && c <= 0x110C) ||
+        (c >= 0x110E && c <= 0x1112) ||
+        c == 0x113C ||
+        c == 0x113E ||
+        c == 0x1140 ||
+        c == 0x114C ||
+        c == 0x114E ||
+        c == 0x1150 ||
+        (c >= 0x1154 && c <= 0x1155) ||
+        c == 0x1159 ||
+        (c >= 0x115F && c <= 0x1161) ||
+        c == 0x1163 ||
+        c == 0x1165 ||
+        c == 0x1167 ||
+        c == 0x1169 ||
+        (c >= 0x116D && c <= 0x116E) ||
+        (c >= 0x1172 && c <= 0x1173) ||
+        c == 0x1175 ||
+        c == 0x119E ||
+        c == 0x11A8 ||
+        c == 0x11AB ||
+        (c >= 0x11AE && c <= 0x11AF) ||
+        (c >= 0x11B7 && c <= 0x11B8) ||
+        c == 0x11BA ||
+        (c >= 0x11BC && c <= 0x11C2) ||
+        c == 0x11EB ||
+        c == 0x11F0 ||
+        c == 0x11F9 ||
+        (c >= 0x1E00 && c <= 0x1E9B) ||
+        (c >= 0x1EA0 && c <= 0x1EF9) ||
+        (c >= 0x1F00 && c <= 0x1F15) ||
+        (c >= 0x1F18 && c <= 0x1F1D) ||
+        (c >= 0x1F20 && c <= 0x1F45) ||
+        (c >= 0x1F48 && c <= 0x1F4D) ||
+        (c >= 0x1F50 && c <= 0x1F57) ||
+        c == 0x1F59 ||
+        c == 0x1F5B ||
+        c == 0x1F5D ||
+        (c >= 0x1F5F && c <= 0x1F7D) ||
+        (c >= 0x1F80 && c <= 0x1FB4) ||
+        (c >= 0x1FB6 && c <= 0x1FBC) ||
+        c == 0x1FBE ||
+        (c >= 0x1FC2 && c <= 0x1FC4) ||
+        (c >= 0x1FC6 && c <= 0x1FCC) ||
+        (c >= 0x1FD0 && c <= 0x1FD3) ||
+        (c >= 0x1FD6 && c <= 0x1FDB) ||
+        (c >= 0x1FE0 && c <= 0x1FEC) ||
+        (c >= 0x1FF2 && c <= 0x1FF4) ||
+        (c >= 0x1FF6 && c <= 0x1FFC) ||
+        c == 0x2126 ||
+        (c >= 0x212A && c <= 0x212B) ||
+        c == 0x212E ||
+        (c >= 0x2180 && c <= 0x2182) ||
+        (c >= 0x3041 && c <= 0x3094) ||
+        (c >= 0x30A1 && c <= 0x30FA) ||
+        (c >= 0x3105 && c <= 0x312C) ||
+        (c >= 0xAC00 && c <= 0xD7A3))
+        return true; // BaseChar
+    if ((c >= 0x4e00 && c <= 0x9fa5) ||
+        c == 0x3007 ||
+        (c >= 0x3021 && c <= 0x3029))
+      return true; // Ideographic
+    return false;
+  }
+
+  /**
+   * Indicates whether the specified Unicode character matches the Digit
+   * production.
+   */
+  public static boolean isDigit(int c)
+  {
+    return ((c >= 0x0030 && c <= 0x0039) ||
+            (c >= 0x0660 && c <= 0x0669) ||
+            (c >= 0x06F0 && c <= 0x06F9) ||
+            (c >= 0x0966 && c <= 0x096F) ||
+            (c >= 0x09E6 && c <= 0x09EF) ||
+            (c >= 0x0A66 && c <= 0x0A6F) ||
+            (c >= 0x0AE6 && c <= 0x0AEF) ||
+            (c >= 0x0B66 && c <= 0x0B6F) ||
+            (c >= 0x0BE7 && c <= 0x0BEF) ||
+            (c >= 0x0C66 && c <= 0x0C6F) ||
+            (c >= 0x0CE6 && c <= 0x0CEF) ||
+            (c >= 0x0D66 && c <= 0x0D6F) ||
+            (c >= 0x0E50 && c <= 0x0E59) ||
+            (c >= 0x0ED0 && c <= 0x0ED9) ||
+            (c >= 0x0F20 && c <= 0x0F29));
+  }
+
+  /**
+   * Indicates whether the specified Unicode character matches the
+   * CombiningChar production.
+   */
+  public static boolean isCombiningChar(int c)
+  {
+    return ((c >= 0x0300 && c <= 0x0345) ||
+            (c >= 0x0360 && c <= 0x0361) ||
+            (c >= 0x0483 && c <= 0x0486) ||
+            (c >= 0x0591 && c <= 0x05A1) ||
+            (c >= 0x05A3 && c <= 0x05B9) ||
+            (c >= 0x05BB && c <= 0x05BD) ||
+            c == 0x05BF ||
+            (c >= 0x05C1 && c <= 0x05C2) ||
+            c == 0x05C4 ||
+            (c >= 0x064B && c <= 0x0652) ||
+            c == 0x0670 ||
+            (c >= 0x06D6 && c <= 0x06DC) ||
+            (c >= 0x06DD && c <= 0x06DF) ||
+            (c >= 0x06E0 && c <= 0x06E4) ||
+            (c >= 0x06E7 && c <= 0x06E8) ||
+            (c >= 0x06EA && c <= 0x06ED) ||
+            (c >= 0x0901 && c <= 0x0903) ||
+            c == 0x093C ||
+            (c >= 0x093E && c <= 0x094C) ||
+            c == 0x094D ||
+            (c >= 0x0951 && c <= 0x0954) ||
+            (c >= 0x0962 && c <= 0x0963) ||
+            (c >= 0x0981 && c <= 0x0983) ||
+            c == 0x09BC ||
+            c == 0x09BE ||
+            c == 0x09BF ||
+            (c >= 0x09C0 && c <= 0x09C4) ||
+            (c >= 0x09C7 && c <= 0x09C8) ||
+            (c >= 0x09CB && c <= 0x09CD) ||
+            c == 0x09D7 ||
+            (c >= 0x09E2 && c <= 0x09E3) ||
+            c == 0x0A02 ||
+            c == 0x0A3C ||
+            c == 0x0A3E ||
+            c == 0x0A3F ||
+            (c >= 0x0A40 && c <= 0x0A42) ||
+            (c >= 0x0A47 && c <= 0x0A48) ||
+            (c >= 0x0A4B && c <= 0x0A4D) ||
+            (c >= 0x0A70 && c <= 0x0A71) ||
+            (c >= 0x0A81 && c <= 0x0A83) ||
+            c == 0x0ABC ||
+            (c >= 0x0ABE && c <= 0x0AC5) ||
+            (c >= 0x0AC7 && c <= 0x0AC9) ||
+            (c >= 0x0ACB && c <= 0x0ACD) ||
+            (c >= 0x0B01 && c <= 0x0B03) ||
+            c == 0x0B3C ||
+            (c >= 0x0B3E && c <= 0x0B43) ||
+            (c >= 0x0B47 && c <= 0x0B48) ||
+            (c >= 0x0B4B && c <= 0x0B4D) ||
+            (c >= 0x0B56 && c <= 0x0B57) ||
+            (c >= 0x0B82 && c <= 0x0B83) ||
+            (c >= 0x0BBE && c <= 0x0BC2) ||
+            (c >= 0x0BC6 && c <= 0x0BC8) ||
+            (c >= 0x0BCA && c <= 0x0BCD) ||
+            c == 0x0BD7 ||
+            (c >= 0x0C01 && c <= 0x0C03) ||
+            (c >= 0x0C3E && c <= 0x0C44) ||
+            (c >= 0x0C46 && c <= 0x0C48) ||
+            (c >= 0x0C4A && c <= 0x0C4D) ||
+            (c >= 0x0C55 && c <= 0x0C56) ||
+            (c >= 0x0C82 && c <= 0x0C83) ||
+            (c >= 0x0CBE && c <= 0x0CC4) ||
+            (c >= 0x0CC6 && c <= 0x0CC8) ||
+            (c >= 0x0CCA && c <= 0x0CCD) ||
+            (c >= 0x0CD5 && c <= 0x0CD6) ||
+            (c >= 0x0D02 && c <= 0x0D03) ||
+            (c >= 0x0D3E && c <= 0x0D43) ||
+            (c >= 0x0D46 && c <= 0x0D48) ||
+            (c >= 0x0D4A && c <= 0x0D4D) ||
+            c == 0x0D57 ||
+            c == 0x0E31 ||
+            (c >= 0x0E34 && c <= 0x0E3A) ||
+            (c >= 0x0E47 && c <= 0x0E4E) ||
+            c == 0x0EB1 ||
+            (c >= 0x0EB4 && c <= 0x0EB9) ||
+            (c >= 0x0EBB && c <= 0x0EBC) ||
+            (c >= 0x0EC8 && c <= 0x0ECD) ||
+            (c >= 0x0F18 && c <= 0x0F19) ||
+            c == 0x0F35 ||
+            c == 0x0F37 ||
+            c == 0x0F39 ||
+            c == 0x0F3E ||
+            c == 0x0F3F ||
+            (c >= 0x0F71 && c <= 0x0F84) ||
+            (c >= 0x0F86 && c <= 0x0F8B) ||
+            (c >= 0x0F90 && c <= 0x0F95) ||
+            c == 0x0F97 ||
+            (c >= 0x0F99 && c <= 0x0FAD) ||
+            (c >= 0x0FB1 && c <= 0x0FB7) ||
+            c == 0x0FB9 ||
+            (c >= 0x20D0 && c <= 0x20DC) ||
+            c == 0x20E1 ||
+            (c >= 0x302A && c <= 0x302F) ||
+            c == 0x3099 ||
+            c == 0x309A);
+  }
+
+  /**
+   * Indicates whether the specified Unicode character matches the Extender
+   * production.
+   */
+  public static boolean isExtender(int c)
+  {
+    return (c == 0x00B7 ||
+            c == 0x02D0 ||
+            c == 0x02D1 ||
+            c == 0x0387 ||
+            c == 0x0640 ||
+            c == 0x0E46 ||
+            c == 0x0EC6 ||
+            c == 0x3005 ||
+            (c >= 0x3031 && c <= 0x3035) ||
+            (c >= 0x309D && c <= 0x309E) ||
+            (c >= 0x30FC && c <= 0x30FE));
+  }
+
+  /**
+   * Indicates whether the specified Unicode character matches the Char
+   * production.
+   */
+  public static boolean isChar(int c)
+  {
+    return (c >= 0x20 && c < 0xd800) ||
+      (c >= 0xe00 && c < 0xfffd) || // NB exclude 0xfffd
+      (c >= 0x10000 && c < 0x110000) ||
+      c == 0xa || c == 0x9 || c == 0xd;
+  }
+  
+  /**
+   * Interns the specified text or not, depending on the value of
+   * stringInterning.
+   */
+  private String intern(String text)
+  {
+    return stringInterning ? text.intern() : text;
+  }
+
+  /**
+   * Report a parsing error.
+   */
+  private void error(String message)
+    throws XMLStreamException
+  {
+    error(message, null);
+  }
+  
+  /**
+   * Report a parsing error.
+   */
+  private void error(String message, Object info)
+    throws XMLStreamException
+  {
+    if (info != null)
+      {
+        if (info instanceof String)
+          message += ": \"" + ((String) info) + "\"";
+        else if (info instanceof Character)
+          message += ": '" + ((Character) info) + "'";
+      }
+    throw new XMLStreamException(message);
+  }
+
+  /**
+   * Perform validation of a start-element event.
+   */
+  private void validateStartElement(String elementName)
+    throws XMLStreamException
+  {
+    if (currentContentModel == null)
+      {
+        // root element
+        // VC: Root Element Type
+        if (!elementName.equals(doctype.rootName))
+          error("root element name must match name in DTD");
+        return;
+      }
+    // VC: Element Valid
+    switch (currentContentModel.type)
+      {
+      case ContentModel.EMPTY:
+        error("child element found in empty element", elementName);
+        break;
+      case ContentModel.ELEMENT:
+        LinkedList ctx = (LinkedList) validationStack.getLast();
+        ctx.add(elementName);
+        break;
+      case ContentModel.MIXED:
+        MixedContentModel mm = (MixedContentModel) currentContentModel;
+        if (!mm.containsName(elementName))
+          error("illegal element for content model", elementName);
+        break;
+      }
+  }
+
+  /**
+   * Perform validation of an end-element event.
+   */
+  private void validateEndElement()
+    throws XMLStreamException
+  {
+    if (currentContentModel == null)
+      {
+        // root element
+        // VC: IDREF
+        if (!idrefs.containsAll(ids))
+          error("IDREF values must match the value of some ID attribute");
+        return;
+      }
+    // VC: Element Valid
+    switch (currentContentModel.type)
+      {
+      case ContentModel.ELEMENT:
+        LinkedList ctx = (LinkedList) validationStack.getLast();
+        ElementContentModel ecm = (ElementContentModel) currentContentModel;
+        validateElementContent(ecm, ctx);
+        break;
+      }
+  }
+
+  /**
+   * Perform validation of character data.
+   */
+  private void validatePCData(String text)
+    throws XMLStreamException
+  {
+    // VC: Element Valid
+    switch (currentContentModel.type)
+      {
+      case ContentModel.EMPTY:
+        error("character data found in empty element", text);
+        break;
+      case ContentModel.ELEMENT:
+        boolean white = true;
+        int len = text.length();
+        for (int i = 0; i < len; i++)
+          {
+            char c = text.charAt(i);
+            if (c != ' ' && c != '\t' && c != '\n' && c != '\r')
+              {
+                white = false;
+                break;
+              }
+          }
+        if (!white)
+          error("character data found in element with element content", text);
+        else if (xmlStandalone == Boolean.TRUE && currentContentModel.external)
+          // VC: Standalone Document Declaration
+          error("whitespace in element content of externally declared " +
+                "element in standalone document");
+        break;
+      }
+  }
+
+  /**
+   * Validates the specified validation context (list of child elements)
+   * against the element content model for the current element.
+   */
+  private void validateElementContent(ElementContentModel model,
+                                      LinkedList children)
+    throws XMLStreamException
+  {
+    // Use regular expression
+    StringBuffer buf = new StringBuffer();
+    for (Iterator i = children.iterator(); i.hasNext(); )
+      {
+        buf.append((String) i.next());
+        buf.append(' ');
+      }
+    String c = buf.toString();
+    String regex = createRegularExpression(model);
+    if (!c.matches(regex))
+      error("element content "+model.text+" does not match expression "+regex, c);
+  }
+
+  /**
+   * Creates the regular expression used to validate an element content
+   * model.
+   */
+  private String createRegularExpression(ElementContentModel model)
+  {
+    if (model.regex == null)
+      {
+        StringBuffer buf = new StringBuffer();
+        buf.append('(');
+        for (Iterator i = model.contentParticles.iterator(); i.hasNext(); )
+          {
+            ContentParticle cp = (ContentParticle) i.next();
+            if (cp.content instanceof String)
+              {
+                buf.append('(');
+                buf.append((String) cp.content);
+                buf.append(' ');
+                buf.append(')');
+                if (cp.max == -1)
+                  {
+                    if (cp.min == 0)
+                      buf.append('*');
+                    else
+                      buf.append('+');
+                  }
+                else if (cp.min == 0)
+                  buf.append('?');
+              }
+            else
+              {
+                ElementContentModel ecm = (ElementContentModel) cp.content;
+                buf.append(createRegularExpression(ecm));
+              }
+            if (model.or && i.hasNext())
+              buf.append('|');
+          }
+        buf.append(')');
+        if (model.max == -1)
+          {
+            if (model.min == 0)
+              buf.append('*');
+            else
+              buf.append('+');
+          }
+        else if (model.min == 0)
+          buf.append('?');
+        model.regex = buf.toString();
+      }
+    return model.regex;
+  }
+
+  /**
+   * Performs validation of a document type declaration event.
+   */
+  void validateDoctype()
+    throws XMLStreamException
+  {
+    for (Iterator i = doctype.entityIterator(); i.hasNext(); )
+      {
+        Map.Entry entry = (Map.Entry) i.next();
+        Object entity = entry.getValue();
+        if (entity instanceof ExternalIds)
+          {
+            ExternalIds ids = (ExternalIds) entity;
+            if (ids.notationName != null)
+              {
+                // VC: Notation Declared
+                ExternalIds notation = doctype.getNotation(ids.notationName);
+                if (notation == null)
+                  error("Notation name must match the declared name of a " +
+                        "notation", ids.notationName);
+              }
+          }
+      }
+  }
+
+  /**
+   * Simple test harness for reading an XML file.
+   * args[0] is the filename of the XML file
+   * If args[1] is "-x", enable XInclude processing
+   */
+  public static void main(String[] args)
+    throws Exception
+  {
+    boolean xIncludeAware = false;
+    if (args.length > 1 && "-x".equals(args[1]))
+      xIncludeAware = true;
+    XMLParser p = new XMLParser(new java.io.FileInputStream(args[0]),
+                                absolutize(null, args[0]),
+                                true, // validating
+                                true, // namespaceAware
+                                true, // coalescing,
+                                true, // replaceERefs
+                                true, // externalEntities
+                                true, // supportDTD
+                                true, // baseAware
+                                true, // stringInterning
+                                null,
+                                null);
+    XMLStreamReader reader = p;
+    if (xIncludeAware)
+      reader = new XIncludeFilter(p, args[0], true, true, true);
+    try
+      {
+        int event;
+        //do
+        while (reader.hasNext())
+          {
+            event = reader.next();
+            Location loc = reader.getLocation();
+            System.out.print(loc.getLineNumber()+":"+loc.getColumnNumber()+" ");
+            switch (event)
+              {
+              case XMLStreamConstants.START_DOCUMENT:
+                System.out.println("START_DOCUMENT version="+reader.getVersion()+
+                                   " encoding="+reader.getEncoding());
+                break;
+              case XMLStreamConstants.END_DOCUMENT:
+                System.out.println("END_DOCUMENT");
+                break;
+              case XMLStreamConstants.START_ELEMENT:
+                System.out.println("START_ELEMENT "+reader.getName());
+                int l = reader.getNamespaceCount();
+                for (int i = 0; i < l; i++)
+                  System.out.println("\tnamespace "+reader.getNamespacePrefix(i)+
+                                     "='"+reader.getNamespaceURI(i)+"'");
+                l = reader.getAttributeCount();
+                for (int i = 0; i < l; i++)
+                  System.out.println("\tattribute "+reader.getAttributeQName(i)+
+                                     "='"+reader.getAttributeValue(i)+"'");
+                break;
+              case XMLStreamConstants.END_ELEMENT:
+                System.out.println("END_ELEMENT "+reader.getName());
+                break;
+              case XMLStreamConstants.CHARACTERS:
+                System.out.println("CHARACTERS '"+encodeText(reader.getText())+"'");
+                break;
+              case XMLStreamConstants.CDATA:
+                System.out.println("CDATA '"+encodeText(reader.getText())+"'");
+                break;
+              case XMLStreamConstants.SPACE:
+                System.out.println("SPACE '"+encodeText(reader.getText())+"'");
+                break;
+              case XMLStreamConstants.DTD:
+                System.out.println("DTD "+reader.getText());
+                break;
+              case XMLStreamConstants.ENTITY_REFERENCE:
+                System.out.println("ENTITY_REFERENCE "+reader.getText());
+                break;
+              case XMLStreamConstants.COMMENT:
+                System.out.println("COMMENT '"+encodeText(reader.getText())+"'");
+                break;
+              case XMLStreamConstants.PROCESSING_INSTRUCTION:
+                System.out.println("PROCESSING_INSTRUCTION "+reader.getPITarget()+
+                                   " "+reader.getPIData());
+                break;
+              case XMLStreamConstants.START_ENTITY:
+                System.out.println("START_ENTITY "+reader.getText());
+                break;
+              case XMLStreamConstants.END_ENTITY:
+                System.out.println("END_ENTITY "+reader.getText());
+                break;
+              default:
+                System.out.println("Unknown event: "+event);
+              }
+          }
+      }
+    catch (XMLStreamException e)
+      {
+        Location l = reader.getLocation();
+        System.out.println("At line "+l.getLineNumber()+
+                           ", column "+l.getColumnNumber()+
+                           " of "+l.getLocationURI());
+        throw e;
+      }
+  }
+
+  /**
+   * Escapes control characters in the specified text. For debugging.
+   */
+  private static String encodeText(String text)
+  {
+    StringBuffer b = new StringBuffer();
+    int len = text.length();
+    for (int i = 0; i < len; i++)
+      {
+        char c = text.charAt(i);
+        switch (c)
+          {
+          case '\t':
+            b.append("\\t");
+            break;
+          case '\n':
+            b.append("\\n");
+            break;
+          case '\r':
+            b.append("\\r");
+            break;
+          default:
+            b.append(c);
+          }
+      }
+    return b.toString();
+  }
+
+  /**
+   * An attribute instance.
+   */
+  class Attribute
+  {
+
+    /**
+     * Attribute name.
+     */
+    final String name;
+
+    /**
+     * Attribute type as declared in the DTD, or CDATA otherwise.
+     */
+    final String type;
+
+    /**
+     * Whether the attribute was specified or defaulted.
+     */
+    final boolean specified;
+
+    /**
+     * The attribute value.
+     */
+    final String value;
+
+    /**
+     * The namespace prefix.
+     */
+    final String prefix;
+
+    /**
+     * The namespace local-name.
+     */
+    final String localName;
+
+    Attribute(String name, String type, boolean specified, String value)
+    {
+      this.name = name;
+      this.type = type;
+      this.specified = specified;
+      this.value = value;
+      int ci = name.indexOf(':');
+      if (ci == -1)
+        {
+          prefix = null;
+          localName = intern(name);
+        }
+      else
+        {
+          prefix = intern(name.substring(0, ci));
+          localName = intern(name.substring(ci + 1));
+        }
+    }
+
+    public boolean equals(Object other)
+    {
+      if (other instanceof Attribute)
+        {
+          Attribute a = (Attribute) other;
+          if (namespaceAware)
+            {
+              if (!a.localName.equals(localName))
+                return false;
+              String auri = getNamespaceURI(a.prefix);
+              String uri = getNamespaceURI(prefix);
+              if (uri == null && (auri == null ||
+                                  (input.xml11 && "".equals(auri))))
+               return true; 
+              if (uri != null)
+                {
+                  if ("".equals(uri) && input.xml11 && "".equals(auri))
+                    return true;
+                  return uri.equals(auri);
+                }
+              return false;
+            }
+          else
+            return a.name.equals(name);
+        }
+      return false;
+    }
+    
+  }
+
+  /**
+   * Representation of a DTD.
+   */
+  class Doctype
+  {
+
+    /**
+     * Name of the root element.
+     */
+    final String rootName;
+
+    /**
+     * Public ID, if any, of external subset.
+     */
+    final String publicId;
+
+    /**
+     * System ID (URL), if any, of external subset.
+     */
+    final String systemId;
+
+    /**
+     * Map of element names to content models.
+     */
+    private final LinkedHashMap elements = new LinkedHashMap();
+
+    /**
+     * Map of element names to maps of attribute declarations.
+     */
+    private final LinkedHashMap attlists = new LinkedHashMap();
+
+    /**
+     * Map of entity names to entities (String or ExternalIds).
+     */
+    private final LinkedHashMap entities = new LinkedHashMap();
+
+    /**
+     * Map of notation names to ExternalIds.
+     */
+    private final LinkedHashMap notations = new LinkedHashMap();
+
+    /**
+     * Map of anonymous keys to comments.
+     */    
+    private final LinkedHashMap comments = new LinkedHashMap();
+
+    /**
+     * Map of anonymous keys to processing instructions (String[2]
+     * containing {target, data}).
+     */
+    private final LinkedHashMap pis = new LinkedHashMap();
+
+    /**
+     * List of keys to all markup entries in the DTD.
+     */
+    private final LinkedList entries = new LinkedList();
+
+    /**
+     * Set of the entities defined in the external subset.
+     */
+    private final HashSet externalEntities = new HashSet();
+
+    /**
+     * Set of the notations defined in the external subset.
+     */
+    private final HashSet externalNotations = new HashSet();
+
+    /**
+     * Counter for making anonymous keys.
+     */
+    private int anon = 1;
+
+    /**
+     * Constructor.
+     */
+    Doctype(String rootName, String publicId, String systemId)
+    {
+      this.rootName = rootName;
+      this.publicId = publicId;
+      this.systemId = systemId;
+    }
+
+    /**
+     * Adds an element declaration.
+     * @param name the element name
+     * @param text the content model text
+     * @param model the parsed content model
+     */
+    void addElementDecl(String name, String text, ContentModel model)
+    {
+      if (elements.containsKey(name))
+        return;
+      model.text = text;
+      model.external = (inputStack.size() != 1);
+      elements.put(name, model);
+      entries.add("E" + name);
+    }
+
+    /**
+     * Adds an attribute declaration.
+     * @param ename the element name
+     * @param aname the attribute name
+     * @param decl the attribute declaration details
+     */
+    void addAttributeDecl(String ename, String aname, AttributeDecl decl)
+    {
+      LinkedHashMap attlist = (LinkedHashMap) attlists.get(ename);
+      if (attlist == null)
+        {
+          attlist = new LinkedHashMap();
+          attlists.put(ename, attlist);
+        }
+      else if (attlist.containsKey(aname))
+        return;
+      attlist.put(aname, decl);
+      String key = "A" + ename;
+      if (!entries.contains(key))
+        entries.add(key);
+    }
+
+    /**
+     * Adds an entity declaration.
+     * @param name the entity name
+     * @param text the entity replacement text
+     * @param inExternalSubset if we are in the exernal subset
+     */
+    void addEntityDecl(String name, String text, boolean inExternalSubset)
+    {
+      if (entities.containsKey(name))
+        return;
+      entities.put(name, text);
+      entries.add("e" + name);
+      if (inExternalSubset)
+        externalEntities.add(name);
+    }
+    
+    /**
+     * Adds an entity declaration.
+     * @param name the entity name
+     * @param ids the external IDs
+     * @param inExternalSubset if we are in the exernal subset
+     */
+    void addEntityDecl(String name, ExternalIds ids, boolean inExternalSubset)
+    {
+      if (entities.containsKey(name))
+        return;
+      entities.put(name, ids);
+      entries.add("e" + name);
+      if (inExternalSubset)
+        externalEntities.add(name);
+    }
+
+    /**
+     * Adds a notation declaration.
+     * @param name the notation name
+     * @param ids the external IDs
+     * @param inExternalSubset if we are in the exernal subset
+     */
+    void addNotationDecl(String name, ExternalIds ids, boolean inExternalSubset)
+    {
+      if (notations.containsKey(name))
+        return;
+      notations.put(name, ids);
+      entries.add("n" + name);
+      if (inExternalSubset)
+        externalNotations.add(name);
+    }
+
+    /**
+     * Adds a comment.
+     */
+    void addComment(String text)
+    {
+      String key = Integer.toString(anon++);
+      comments.put(key, text);
+      entries.add("c" + key);
+    }
+
+    /**
+     * Adds a processing instruction.
+     */
+    void addPI(String target, String data)
+    {
+      String key = Integer.toString(anon++);
+      pis.put(key, new String[] {target, data});
+      entries.add("p" + key);
+    }
+
+    /**
+     * Returns the content model for the specified element.
+     * @param name the element name
+     */
+    ContentModel getElementModel(String name)
+    {
+      return (ContentModel) elements.get(name);
+    }
+
+    /**
+     * Returns the attribute definition for the given attribute
+     * @param ename the element name
+     * @param aname the attribute name
+     */
+    AttributeDecl getAttributeDecl(String ename, String aname)
+    {
+      LinkedHashMap attlist = (LinkedHashMap) attlists.get(ename);
+      return (attlist == null) ? null : (AttributeDecl) attlist.get(aname);
+    }
+
+    /**
+     * Indicates whether the specified attribute was declared in the DTD.
+     * @param ename the element name
+     * @param aname the attribute name
+     */
+    boolean isAttributeDeclared(String ename, String aname)
+    {
+      LinkedHashMap attlist = (LinkedHashMap) attlists.get(ename);
+      return (attlist == null) ? false : attlist.containsKey(aname);
+    }
+
+    /**
+     * Returns an iterator over the entries in the attribute list for the
+     * given element.
+     * @param ename the element name
+     */
+    Iterator attlistIterator(String ename)
+    {
+      LinkedHashMap attlist = (LinkedHashMap) attlists.get(ename);
+      return (attlist == null) ? Collections.EMPTY_LIST.iterator() :
+        attlist.entrySet().iterator();
+    }
+
+    /**
+     * Returns the entity (String or ExternalIds) for the given entity name.
+     */
+    Object getEntity(String name)
+    {
+      return entities.get(name);
+    }
+
+    /**
+     * Indicates whether the specified entity was declared in the external
+     * subset.
+     */
+    boolean isEntityExternal(String name)
+    {
+      return externalEntities.contains(name);
+    }
+
+    /**
+     * Returns an iterator over the entity map entries.
+     */
+    Iterator entityIterator()
+    {
+      return entities.entrySet().iterator();
+    }
+
+    /**
+     * Returns the notation IDs for the given notation name.
+     */
+    ExternalIds getNotation(String name)
+    {
+      return (ExternalIds) notations.get(name);
+    }
+
+    /**
+     * Indicates whether the specified notation was declared in the external
+     * subset.
+     */
+    boolean isNotationExternal(String name)
+    {
+      return externalNotations.contains(name);
+    }
+
+    /**
+     * Returns the comment associated with the specified (anonymous) key.
+     */
+    String getComment(String key)
+    {
+      return (String) comments.get(key);
+    }
+
+    /**
+     * Returns the processing instruction associated with the specified
+     * (anonymous) key.
+     */
+    String[] getPI(String key)
+    {
+      return (String[]) pis.get(key);
+    }
+
+    /**
+     * Returns an iterator over the keys of the markup entries in this DTD,
+     * in the order declared.
+     */
+    Iterator entryIterator()
+    {
+      return entries.iterator();
+    }
+    
+  }
+
+  /**
+   * Combination of an ExternalID and an optional NDataDecl.
+   */
+  class ExternalIds
+  {
+
+    /**
+     * The public ID.
+     */
+    String publicId;
+
+    /**
+     * The system ID.
+     */
+    String systemId;
+
+    /**
+     * The notation name declared with the NDATA keyword.
+     */
+    String notationName;
+  }
+
+  /**
+   * A content model.
+   */
+  abstract class ContentModel
+  {
+    static final int EMPTY = 0;
+    static final int ANY = 1;
+    static final int ELEMENT = 2;
+    static final int MIXED = 3;
+    
+    int min;
+    int max;
+    final int type;
+    String text;
+    boolean external;
+
+    ContentModel(int type)
+    {
+      this.type = type;
+      min = 1;
+      max = 1;
+    }
+    
+  }
+
+  /**
+   * The EMPTY content model.
+   */
+  class EmptyContentModel
+    extends ContentModel
+  {
+    
+    EmptyContentModel()
+    {
+      super(ContentModel.EMPTY);
+      min = 0;
+      max = 0;
+    }
+    
+  }
+
+  /**
+   * The ANY content model.
+   */
+  class AnyContentModel
+    extends ContentModel
+  {
+    
+    AnyContentModel()
+    {
+      super(ContentModel.ANY);
+      min = 0;
+      max = -1;
+    }
+    
+  }
+
+  /**
+   * An element content model.
+   */
+  class ElementContentModel
+    extends ContentModel
+  {
+
+    LinkedList contentParticles;
+    boolean or;
+    String regex; // regular expression cache
+    
+    ElementContentModel()
+    {
+      super(ContentModel.ELEMENT);
+      contentParticles = new LinkedList();
+    }
+
+    void addContentParticle(ContentParticle cp)
+    {
+      contentParticles.add(cp);
+    }
+    
+  }
+
+  class ContentParticle
+  {
+
+    int min = 1;
+    int max = 1;
+    Object content; // Name (String) or ElementContentModel
+    
+  }
+
+  /**
+   * A mixed content model.
+   */
+  class MixedContentModel
+    extends ContentModel
+  {
+
+    private HashSet names;
+    
+    MixedContentModel()
+    {
+      super(ContentModel.MIXED);
+      names = new HashSet();
+    }
+
+    void addName(String name)
+    {
+      names.add(name);
+    }
+
+    boolean containsName(String name)
+    {
+      return names.contains(name);
+    }
+    
+  }
+
+  /**
+   * An attribute definition.
+   */
+  class AttributeDecl
+  {
+    
+    /**
+     * The attribute type (CDATA, ID, etc).
+     */
+    final String type;
+
+    /**
+     * The default value.
+     */
+    final String value;
+
+    /**
+     * The value type (#FIXED, #IMPLIED, etc).
+     */
+    final int valueType;
+
+    /**
+     * The enumeration text.
+     */
+    final String enumeration;
+
+    /**
+     * The enumeration tokens.
+     */
+    final HashSet values;
+
+    /**
+     * Whether this attribute declaration occurred in the external subset.
+     */
+    final boolean external;
+
+    AttributeDecl(String type, String value,
+                  int valueType, String enumeration,
+                  HashSet values, boolean external)
+    {
+      this.type = type;
+      this.value = value;
+      this.valueType = valueType;
+      this.enumeration = enumeration;
+      this.values = values;
+      this.external = external;
+    }
+    
+  }
+
+  /**
+   * Compatibility interface that can be used to resolve based on a public
+   * ID, not just an URL.
+   */
+  interface XMLResolver2
+    extends XMLResolver
+  {
+
+    InputStream resolve(String publicId, String systemId)
+      throws XMLStreamException;
+
+  }
+
+  /**
+   * An XML input source.
+   */
+  static class Input
+    implements Location
+  {
+    
+    int line = 1, markLine;
+    int column, markColumn;
+    int offset, markOffset;
+    final String publicId, systemId, name;
+    final boolean report; // report start- and end-entity
+    final boolean normalize; // normalize CR, etc to LF
+    
+    InputStream in;
+    Reader reader;
+    UnicodeReader unicodeReader;
+    boolean initialized;
+    String inputEncoding;
+    boolean xml11;
+
+    Input(InputStream in, Reader reader, String publicId, String systemId,
+          String name, String inputEncoding, boolean report,
+          boolean normalize)
+    {
+      if (inputEncoding == null)
+        inputEncoding = "UTF-8";
+      this.inputEncoding = inputEncoding;
+      this.publicId = publicId;
+      this.systemId = systemId;
+      this.name = name;
+      this.report = report;
+      this.normalize = normalize;
+      if (in != null)
+        {
+          if (reader != null)
+            throw new IllegalStateException("both byte and char streams "+
+                                            "specified");
+          if (normalize)
+            in = new CRLFInputStream(in);
+          in = new BufferedInputStream(in);
+          this.in = in;
+        }
+      else
+        {
+          this.reader = normalize ? new CRLFReader(reader) : reader;
+          unicodeReader = new UnicodeReader(this.reader);
+        }
+      initialized = false;
+    }
+
+    // -- Location --
+    
+    public int getCharacterOffset()
+    {
+      return offset;
+    }
+    
+    public int getColumnNumber()
+    {
+      return column;
+    }
+
+    public int getLineNumber()
+    {
+      return line;
+    }
+
+    public String getLocationURI()
+    {
+      return systemId;
+    }
+
+    void init()
+      throws IOException
+    {
+      if (initialized)
+        return;
+      if (in != null)
+        detectEncoding();
+      initialized = true;
+    }
+
+    void mark(int len)
+      throws IOException
+    {
+      //System.out.println("  mark:"+len);
+      markOffset = offset;
+      markLine = line;
+      markColumn = column;
+      if (unicodeReader != null)
+        unicodeReader.mark(len);
+      else
+        in.mark(len);
+    }
+
+    /**
+     * Character read.
+     */
+    int read()
+      throws IOException
+    {
+      offset++;
+      int ret = (unicodeReader != null) ? unicodeReader.read() : in.read();
+      if (normalize &&
+          (ret == 0x0d || (xml11 && (ret == 0x85 || ret == 0x2028))))
+        {
+          // Normalize CR etc to LF
+          ret = 0x0a;
+        }
+      // Locator handling
+      if (ret == 0x0a)
+        {
+          line++;
+          column = 0;
+        }
+      else
+        column++;
+      return ret;
+    }
+
+    /**
+     * Block read.
+     */
+    int read(int[] b, int off, int len)
+      throws IOException
+    {
+      int ret;
+      if (unicodeReader != null)
+        ret = unicodeReader.read(b, off, len);
+      else
+        {
+          byte[] b2 = new byte[len];
+          ret = in.read(b2, 0, len);
+          if (ret != -1)
+            {
+              String s = new String(b2, 0, ret, inputEncoding);
+              int[] c = UnicodeReader.toCodePointArray(s);
+              ret = c.length;
+              System.arraycopy(c, 0, b, off, ret);
+            }
+        }
+      if (ret != -1)
+        {
+          // Locator handling
+          for (int i = 0; i < ret; i++)
+            {
+              int c = b[off + i];
+              if (normalize &&
+                  (c == 0x0d || (xml11 && (c == 0x85 || c == 0x2028))))
+                {
+                  // Normalize CR etc to LF
+                  c = 0x0a;
+                  b[off + i] = c;
+                }
+              if (c == 0x0a)
+                {
+                  line++;
+                  column = 0;
+                }
+              else
+                column++;
+            }
+        }
+      return ret;
+    }
+
+    void reset()
+      throws IOException
+    {
+      if (unicodeReader != null)
+        unicodeReader.reset();
+      else
+        in.reset();
+      offset = markOffset;
+      line = markLine;
+      column = markColumn;
+    }
+
+    // Detection of input encoding
+    
+    private static final int[] SIGNATURE_UCS_4_1234 =
+      new int[] { 0x00, 0x00, 0x00, 0x3c };
+    private static final int[] SIGNATURE_UCS_4_4321 =
+      new int[] { 0x3c, 0x00, 0x00, 0x00 };
+    private static final int[] SIGNATURE_UCS_4_2143 =
+      new int[] { 0x00, 0x00, 0x3c, 0x00 };
+    private static final int[] SIGNATURE_UCS_4_3412 =
+      new int[] { 0x00, 0x3c, 0x00, 0x00 };
+    private static final int[] SIGNATURE_UCS_2_12 =
+      new int[] { 0xfe, 0xff };
+    private static final int[] SIGNATURE_UCS_2_21 =
+      new int[] { 0xff, 0xfe };
+    private static final int[] SIGNATURE_UCS_2_12_NOBOM =
+      new int[] { 0x00, 0x3c, 0x00, 0x3f };
+    private static final int[] SIGNATURE_UCS_2_21_NOBOM =
+      new int[] { 0x3c, 0x00, 0x3f, 0x00 };
+    private static final int[] SIGNATURE_UTF_8 =
+      new int[] { 0x3c, 0x3f, 0x78, 0x6d };
+    private static final int[] SIGNATURE_UTF_8_BOM =
+      new int[] { 0xef, 0xbb, 0xbf };
+    
+    /**
+     * Detect the input encoding.
+     */
+    private void detectEncoding()
+      throws IOException
+    {
+      int[] signature = new int[4];
+      in.mark(4);
+      for (int i = 0; i < 4; i++)
+        signature[i] = in.read();
+      in.reset();
+
+      // 4-byte encodings
+      if (equals(SIGNATURE_UCS_4_1234, signature))
+        {
+          in.read();
+          in.read();
+          in.read();
+          in.read();
+          setInputEncoding("UTF-32BE");
+        }
+      else if (equals(SIGNATURE_UCS_4_4321, signature))
+        {
+          in.read();
+          in.read();
+          in.read();
+          in.read();
+          setInputEncoding("UTF-32LE");
+        }
+      else if (equals(SIGNATURE_UCS_4_2143, signature) ||
+               equals(SIGNATURE_UCS_4_3412, signature))
+        throw new UnsupportedEncodingException("unsupported UCS-4 byte ordering");
+      
+      // 2-byte encodings
+      else if (equals(SIGNATURE_UCS_2_12, signature))
+        {
+          in.read();
+          in.read();
+          setInputEncoding("UTF-16BE");
+        }
+      else if (equals(SIGNATURE_UCS_2_21, signature))
+        {
+          in.read();
+          in.read();
+          setInputEncoding("UTF-16LE");
+        }
+      else if (equals(SIGNATURE_UCS_2_12_NOBOM, signature))
+        {
+          //setInputEncoding("UTF-16BE");
+          throw new UnsupportedEncodingException("no byte-order mark for UCS-2 entity");
+        }
+      else if (equals(SIGNATURE_UCS_2_21_NOBOM, signature))
+        {
+          //setInputEncoding("UTF-16LE");
+          throw new UnsupportedEncodingException("no byte-order mark for UCS-2 entity");
+        }
+      // ASCII-derived encodings
+      else if (equals(SIGNATURE_UTF_8, signature))
+        {
+          // UTF-8 input encoding implied, TextDecl
+        }
+      else if (equals(SIGNATURE_UTF_8_BOM, signature))
+        {
+          in.read();
+          in.read();
+          in.read();
+          setInputEncoding("UTF-8");
+        }
+    }
+
+    private static boolean equals(int[] b1, int[] b2)
+    {
+      for (int i = 0; i < b1.length; i++)
+        {
+          if (b1[i] != b2[i])
+            return false;
+        }
+      return true;
+    }
+    
+    void setInputEncoding(String encoding)
+      throws IOException
+    {
+      if (encoding.equals(inputEncoding))
+        return;
+      if ("UTF-16".equalsIgnoreCase(encoding) &&
+          inputEncoding.startsWith("UTF-16"))
+        return;
+      if (reader != null)
+        throw new UnsupportedEncodingException("document is not in its " +
+                                               "declared encoding " +
+                                               inputEncoding +
+                                               ": " + encoding);
+      inputEncoding = encoding;
+      finalizeEncoding();
+    }
+
+    void finalizeEncoding()
+      throws IOException
+    {
+      if (reader != null)
+        return;
+      reader = new BufferedReader(new InputStreamReader(in, inputEncoding));
+      unicodeReader = new UnicodeReader(reader);
+      mark(1);
+    }
+
+  }
+
+}
+
index d677048cfa1edbf2cfd295d51d0e3c8da7db86d9..6157296c6b83dd8eafef883c93111f965dd4bfed 100644 (file)
@@ -282,6 +282,8 @@ public class XMLStreamWriterImpl
   public void writeEndElement()
     throws XMLStreamException
   {
+    if (elements.isEmpty())
+      throw new IllegalStateException("no matching start element");
     try
       {
         endStartElement();
index 1e0eb1e961aa34605487e6d6bbb4a0fbdf3b3931..bc5bc30c9c17e55837a6dcc589f9290920f09988 100644 (file)
@@ -1,5 +1,5 @@
 /* AttributeNode.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -75,13 +75,9 @@ final class AttributeNode
                                          namespace.clone(stylesheet),
                                          source);
     if (children != null)
-      {
-        ret.children = children.clone(stylesheet);
-      }
+      ret.children = children.clone(stylesheet);
     if (next != null)
-      {
-        ret.next = next.clone(stylesheet);
-      }
+      ret.next = next.clone(stylesheet);
     return ret;
   }
 
@@ -113,9 +109,7 @@ final class AttributeNode
         // Use XPath string-value of fragment
         namespaceValue = Expr.stringValue(fragment);
         if (namespaceValue.length() == 0)
-          {
-            namespaceValue = null;
-          }
+          namespaceValue = null;
       }
     
     String prefix = getPrefix(nameValue);
@@ -124,9 +118,7 @@ final class AttributeNode
         if (prefix != null)
           {
             if (XMLConstants.XML_NS_PREFIX.equals(prefix))
-              {
-                namespaceValue = XMLConstants.XML_NS_URI;
-              }
+              namespaceValue = XMLConstants.XML_NS_URI;
             else
               {
                 // Resolve namespace for this prefix
@@ -153,9 +145,7 @@ final class AttributeNode
         // Resolve prefix for this namespace
         prefix = source.lookupPrefix(namespaceValue);
         if (prefix != null)
-          {
-            nameValue = prefix + ":" + nameValue;
-          }
+          nameValue = prefix + ":" + nameValue;
         else
           {
             if (namespaceValue != null)
@@ -196,27 +186,19 @@ final class AttributeNode
         if (attrs != null)
           {
             if (namespace != null)
-              {
-                attrs.setNamedItemNS(attr);
-              }
+              attrs.setNamedItemNS(attr);
             else
-              {
-                attrs.setNamedItem(attr);
-              }
+              attrs.setNamedItem(attr);
           }
         if (children != null)
-          {
-            children.apply(stylesheet, mode,
-                           context, pos, len,
-                           attr, null);
-          }
+          children.apply(stylesheet, mode,
+                         context, pos, len,
+                         attr, null);
       }
     if (next != null)
-      {
-        next.apply(stylesheet, mode,
-                   context, pos, len,
-                   parent, nextSibling);
-      }
+      next.apply(stylesheet, mode,
+                 context, pos, len,
+                 parent, nextSibling);
   }
 
   final String getPrefix(String name)
@@ -241,13 +223,9 @@ final class AttributeNode
   public boolean references(QName var)
   {
     if (name != null && name.references(var))
-      {
-        return true;
-      }
+      return true;
     if (namespace != null && namespace.references(var))
-      {
-        return true;
-      }
+      return true;
     return super.references(var);
   }
   
index c372ea830914b7f2a2dd3ba969162dec92b2a339..4ee08322317a12967666c70485caf5c66f92b007 100644 (file)
@@ -78,6 +78,11 @@ public class Bindings
    */
   final LinkedList withParameters;
 
+  /**
+   * Only search globals.
+   */
+  boolean global;
+
   Bindings(Stylesheet stylesheet)
   {
     this.stylesheet = stylesheet;
@@ -136,6 +141,12 @@ public class Bindings
 
   public boolean containsKey(QName name, int type)
   {
+    if (global)
+      {
+        Map ctx1 = (Map) variables.getLast();
+        Map ctx2 = (Map) parameters.getLast();
+        return (ctx1.containsKey(name) || ctx2.containsKey(name));
+      }
     Iterator i = null;
     switch (type)
       {
@@ -165,6 +176,17 @@ public class Bindings
 
   public Object get(QName name, Node context, int pos, int len)
   {
+    if (global)
+      {
+        Map ctx = (Map) variables.getLast();
+        Object ret = ctx.get(name);
+        if (ret == null)
+          {
+            ctx = (Map) parameters.getLast();
+            ret = ctx.get(name);
+          }
+        return ret;
+      }
     //System.err.println("bindings.get: "+name);
     //System.err.println("\t"+toString());
     Object ret = null;
index 84cb6207af91b633c3152b44e0cde1c486a722f2..aa15981695e0c7e2e5264b8e6686bdbabab6e7aa 100644 (file)
@@ -144,8 +144,8 @@ class ElementAvailableFunction
       {
         return elements.contains(localName) ?
           Boolean.TRUE : Boolean.FALSE;
-        // TODO extension elements
       }
+    // TODO extension elements
     return Boolean.FALSE;
   }
   
@@ -153,16 +153,12 @@ class ElementAvailableFunction
   {
     NamespaceContext n = nsctx;
     if (context instanceof NamespaceContext)
-      {
-        n = (NamespaceContext) context;
-      }
+      n = (NamespaceContext) context;
     ElementAvailableFunction f = new ElementAvailableFunction(n);
     int len = args.size();
     List args2 = new ArrayList(len);
     for (int i = 0; i < len; i++)
-      {
-        args2.add(((Expr) args.get(i)).clone(context));
-      }
+      args2.add(((Expr) args.get(i)).clone(context));
     f.setArguments(args2);
     return f;
   }
@@ -172,12 +168,15 @@ class ElementAvailableFunction
     for (Iterator i = args.iterator(); i.hasNext(); )
       {
         if (((Expr) i.next()).references(var))
-          {
-            return true;
-          }
+          return true;
       }
     return false;
   }
 
+  public String toString()
+  {
+    return "element-available(" + args.get(0) + ")";
+  }
+
 }
 
index d8f7f6db6db4b8625acc0eab2c9dfbb36c24b617..092c56a4b64b62ab097866df7940d2a18d3c5df8 100644 (file)
@@ -82,14 +82,10 @@ final class ElementNode
         elementExcludeResultPrefixes = new HashSet();
         StringTokenizer st = new StringTokenizer(attr.getNodeValue());
         while (st.hasMoreTokens())
-          {
-            elementExcludeResultPrefixes.add(st.nextToken());
-          }
+          elementExcludeResultPrefixes.add(st.nextToken());
       }
     else
-      {
-        elementExcludeResultPrefixes = Collections.EMPTY_SET;
-      }
+      elementExcludeResultPrefixes = Collections.EMPTY_SET;
   }
 
   TemplateNode clone(Stylesheet stylesheet)
@@ -99,19 +95,15 @@ final class ElementNode
                                        namespace.clone(stylesheet),
                                        uas, source);
     if (children != null)
-      {
-        ret.children = children.clone(stylesheet);
-      }
+      ret.children = children.clone(stylesheet);
     if (next != null)
-      {
-        ret.next = next.clone(stylesheet);
-      }
+      ret.next = next.clone(stylesheet);
     return ret;
   }
 
   void doApply(Stylesheet stylesheet, QName mode,
-             Node context, int pos, int len,
-             Node parent, Node nextSibling)
+               Node context, int pos, int len,
+               Node parent, Node nextSibling)
     throws TransformerException
   {
     Document doc = (parent instanceof Document) ? (Document) parent :
@@ -137,96 +129,70 @@ final class ElementNode
         // Use XPath string-value of fragment
         namespaceValue = Expr.stringValue(fragment);
         if (namespaceValue.length() == 0)
-          {
-            namespaceValue = null;
-          }
-      }
-    
-    String prefix = getPrefix(nameValue);
-    if (XMLConstants.XMLNS_ATTRIBUTE.equals(prefix))
-      {
-        int ci = nameValue.indexOf(':');
-        nameValue = nameValue.substring(ci + 1);
+          namespaceValue = null;
       }
     else
-      {
-        // Namespace aliasing
-        if (prefix == null)
-          {
-            prefix = "#default";
-          }
-        String resultPrefix =
-          (String) stylesheet.namespaceAliases.get(prefix);
-        if (resultPrefix != null)
-          {
-            if ("#default".equals(resultPrefix))
-              {
-                resultPrefix = null;
-              }
-            namespaceValue = source.lookupNamespaceURI(resultPrefix);
-          }
-        if (prefix == "#default")
+      {    
+        String prefix = getPrefix(nameValue);
+        if (XMLConstants.XMLNS_ATTRIBUTE.equals(prefix))
           {
-            prefix = null;
+            int ci = nameValue.indexOf(':');
+            nameValue = nameValue.substring(ci + 1);
           }
-        // Look up ordinary namespace for this prefix
-        if (namespaceValue == null)
+        else
           {
-            if (XMLConstants.XML_NS_PREFIX.equals(prefix))
+            // Namespace aliasing
+            if (prefix == null)
+              prefix = "#default";
+            String resultPrefix =
+              (String) stylesheet.namespaceAliases.get(prefix);
+            if (resultPrefix != null)
               {
-                namespaceValue = XMLConstants.XML_NS_URI;
+                if ("#default".equals(resultPrefix))
+                  resultPrefix = null;
+                namespaceValue = source.lookupNamespaceURI(resultPrefix);
               }
-            else
+            if (prefix == "#default")
+              prefix = null;
+            // Look up ordinary namespace for this prefix
+            if (namespaceValue == null)
               {
-                // Resolve namespace for this prefix
-                namespaceValue = source.lookupNamespaceURI(prefix);
+                if (XMLConstants.XML_NS_PREFIX.equals(prefix))
+                  namespaceValue = XMLConstants.XML_NS_URI;
+                else
+                  {
+                    // Resolve namespace for this prefix
+                    namespaceValue = source.lookupNamespaceURI(prefix);
+                  }
               }
           }
-        /*if (prefix == null)
-          {
-            // Resolve prefix for this namespace
-            prefix = parent.lookupPrefix(namespaceValue);
-            if (prefix != null)
-              {
-                nameValue = prefix + ":" + nameValue;
-              }
-          }*/
       }
+    
     // Create element
     Element element = (namespaceValue != null) ?
       doc.createElementNS(namespaceValue, nameValue) :
-          doc.createElement(nameValue);
+      doc.createElement(nameValue);
     if (nextSibling != null)
-      {
-        parent.insertBefore(element, nextSibling);
-      }
+      parent.insertBefore(element, nextSibling);
     else
-      {
-        parent.appendChild(element);
-      }
+      parent.appendChild(element);
     stylesheet.addNamespaceNodes(source, element, doc,
                                  elementExcludeResultPrefixes);
     if (uas != null)
       {
         StringTokenizer st = new StringTokenizer(uas, " ");
         while (st.hasMoreTokens())
-          {
-            addAttributeSet(stylesheet, mode, context, pos, len,
-                            element, null, st.nextToken());
-          }
+          addAttributeSet(stylesheet, mode, context, pos, len,
+                          element, null, st.nextToken());
       }
     if (children != null)
-      {
-        children.apply(stylesheet, mode,
-                       context, pos, len,
-                       element, null);
-      }
+      children.apply(stylesheet, mode,
+                     context, pos, len,
+                     element, null);
     if (next != null)
-      {
-        next.apply(stylesheet, mode,
-                   context, pos, len,
-                   parent, nextSibling);
-      }
+      next.apply(stylesheet, mode,
+                 context, pos, len,
+                 parent, nextSibling);
   }
 
   final String getPrefix(String name)
@@ -240,41 +206,33 @@ final class ElementNode
                        Node parent, Node nextSibling, String attributeSet)
     throws TransformerException
   {
+    stylesheet.bindings.global = true;
     for (Iterator i = stylesheet.attributeSets.iterator(); i.hasNext(); )
       {
         AttributeSet as = (AttributeSet) i.next();
         if (!as.name.equals(attributeSet))
-          {
-            continue;
-          }
+          continue;
         if (as.uas != null)
           {
             StringTokenizer st = new StringTokenizer(as.uas, " ");
             while (st.hasMoreTokens())
-              {
-                addAttributeSet(stylesheet, mode, context, pos, len,
-                                parent, nextSibling, st.nextToken());
-              }
+              addAttributeSet(stylesheet, mode, context, pos, len,
+                              parent, nextSibling, st.nextToken());
           }
         if (as.children != null)
-          {
-            as.children.apply(stylesheet, mode,
-                              context, pos, len,
-                              parent, nextSibling);
-          }
+          as.children.apply(stylesheet, mode,
+                            context, pos, len,
+                            parent, nextSibling);
       }
+    stylesheet.bindings.global = false;
   }
 
   public boolean references(QName var)
   {
     if (name != null && name.references(var))
-      {
-        return true;
-      }
+      return true;
     if (namespace != null && namespace.references(var))
-      {
-        return true;
-      }
+      return true;
     return super.references(var);
   }
   
@@ -283,6 +241,11 @@ final class ElementNode
     StringBuffer buf = new StringBuffer(getClass().getName());
     buf.append('[');
     buf.append("name=");
+    if (namespace != null)
+      {
+        buf.append(",namespace=");
+        buf.append(namespace);
+      }
     buf.append(name);
     if (uas != null)
       {
index 7daf7ea3f7047b691d51df48d854121bc917f0b3..ab86401d0e4981798535575eb6a19dca321ca2c4 100644 (file)
@@ -147,11 +147,16 @@ class FunctionAvailableFunction
     uri = nsctx.getNamespaceURI(prefix);
     if (uri == null)
       {
-        return xsltFunctions.contains(localName) ||
-          xpathFunctions.contains(localName) ?
+        return (xpathFunctions.contains(localName)  ||
+                xsltFunctions.contains(localName)) ?
           Boolean.TRUE : Boolean.FALSE;
-        // TODO extension functions
       }
+    else if (Stylesheet.XSL_NS.equals(uri))
+      {
+        return xsltFunctions.contains(localName) ?
+          Boolean.TRUE : Boolean.FALSE;
+      }
+    // TODO extension functions
     return Boolean.FALSE;
   }
   
@@ -159,16 +164,12 @@ class FunctionAvailableFunction
   {
     NamespaceContext n = nsctx;
     if (context instanceof NamespaceContext)
-      {
-        n = (NamespaceContext) context;
-      }
+      n = (NamespaceContext) context;
     FunctionAvailableFunction f = new FunctionAvailableFunction(n);
     int len = args.size();
     List args2 = new ArrayList(len);
     for (int i = 0; i < len; i++)
-      {
-        args2.add(((Expr) args.get(i)).clone(context));
-      }
+      args2.add(((Expr) args.get(i)).clone(context));
     f.setArguments(args2);
     return f;
   }
@@ -178,12 +179,15 @@ class FunctionAvailableFunction
     for (Iterator i = args.iterator(); i.hasNext(); )
       {
         if (((Expr) i.next()).references(var))
-          {
-            return true;
-          }
+          return true;
       }
     return false;
   }
 
+  public String toString()
+  {
+    return "function-available(" + args.get(0) + ")";
+  }
+
 }
 
index 0be2b35c84ddf33f37055e1bd850a5a8d139ba73..453c22c5e0d5736d4956fadb2630a1ef9675bd16 100644 (file)
@@ -1,5 +1,5 @@
 /* LiteralNode.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -77,38 +77,28 @@ final class LiteralNode
             elementExcludeResultPrefixes = new HashSet();
             StringTokenizer st = new StringTokenizer(attr.getNodeValue());
             while (st.hasMoreTokens())
-              {
-                elementExcludeResultPrefixes.add(st.nextToken());
-              }
+              elementExcludeResultPrefixes.add(st.nextToken());
           }
         else
-          {
-            elementExcludeResultPrefixes = Collections.EMPTY_SET;
-          }
+          elementExcludeResultPrefixes = Collections.EMPTY_SET;
       }
     else
-      {
-        elementExcludeResultPrefixes = null;
-      }
+      elementExcludeResultPrefixes = null;
   }
 
   TemplateNode clone(Stylesheet stylesheet)
   {
     TemplateNode ret = new LiteralNode(source);
     if (children != null)
-      {
-        ret.children = children.clone(stylesheet);
-      }
+      ret.children = children.clone(stylesheet);
     if (next != null)
-      {
-        ret.next = next.clone(stylesheet);
-      }
+      ret.next = next.clone(stylesheet);
     return ret;
   }
 
   void doApply(Stylesheet stylesheet, QName mode,
-             Node context, int pos, int len,
-             Node parent, Node nextSibling)
+               Node context, int pos, int len,
+               Node parent, Node nextSibling)
     throws TransformerException
   {
     Node result = null;
@@ -127,17 +117,13 @@ final class LiteralNode
           {
             String prefix = source.getPrefix();
             if (prefix == null)
-              {
-                prefix = "#default";
-              }
+              prefix = "#default";
             String resultPrefix =
               (String) stylesheet.namespaceAliases.get(prefix);
             if (resultPrefix != null)
               {
                 if ("#default".equals(resultPrefix))
-                  {
-                    resultPrefix = null;
-                  }
+                  resultPrefix = null;
                 String uri = source.lookupNamespaceURI(resultPrefix);
                 String name = source.getNodeName();
                 // Create a new element node in the result document
@@ -189,33 +175,23 @@ final class LiteralNode
             result = result2;
           }
         if (nextSibling != null)
-          {
-            parent.insertBefore(result, nextSibling);
-          }
+          parent.insertBefore(result, nextSibling);
         else
-          {
-            parent.appendChild(result);
-          }
+          parent.appendChild(result);
         if (nodeType == Node.ELEMENT_NODE)
-          {
-            stylesheet.addNamespaceNodes(source, result, doc,
-                                         elementExcludeResultPrefixes);
-          }
+          stylesheet.addNamespaceNodes(source, result, doc,
+                                       elementExcludeResultPrefixes);
         // children
         if (children != null)
-          {
-            children.apply(stylesheet, mode,
-                           context, pos, len,
-                           result, null);
-          }
+          children.apply(stylesheet, mode,
+                         context, pos, len,
+                         result, null);
       }
     // next sibling
     if (next != null)
-      {
-        next.apply(stylesheet, mode,
-                   context, pos, len,
-                   parent, nextSibling);
-      }
+      next.apply(stylesheet, mode,
+                 context, pos, len,
+                 parent, nextSibling);
   }
 
   public String toString()
index 1df716836e754e63767d0799d8b07d5b1d2a181c..e8e07c6da29654264aa080120cabe95cf118084d 100644 (file)
@@ -1,5 +1,5 @@
 /* MessageNode.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -37,6 +37,7 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import java.util.logging.Logger;
 import javax.xml.namespace.QName;
 import javax.xml.transform.TransformerException;
 import org.w3c.dom.Document;
@@ -53,6 +54,8 @@ final class MessageNode
   extends TemplateNode
 {
 
+  static final Logger logger = Logger.getLogger("gnu.xml.transform");
+
   final boolean terminate;
 
   MessageNode(boolean terminate)
@@ -64,13 +67,9 @@ final class MessageNode
   {
     TemplateNode ret = new MessageNode(terminate);
     if (children != null)
-      {
-        ret.children = children.clone(stylesheet);
-      }
+      ret.children = children.clone(stylesheet);
     if (next != null)
-      {
-        ret.next = next.clone(stylesheet);
-      }
+      ret.next = next.clone(stylesheet);
     return ret;
   }
 
@@ -86,16 +85,12 @@ final class MessageNode
         DocumentFragment fragment = doc.createDocumentFragment();
         children.apply(stylesheet, mode, context, pos, len, fragment, null);
         String message = Expr.stringValue(fragment);
-        System.err.println(message);
+        logger.info(message);
         if (terminate)
-          {
-            stylesheet.terminated = true;
-          }
+          stylesheet.terminated = true;
       }
     if (next != null && !terminate)
-      {
-        next.apply(stylesheet, mode, context, pos, len, parent, nextSibling);
-      }
+      next.apply(stylesheet, mode, context, pos, len, parent, nextSibling);
   }
   
 }
diff --git a/libjava/classpath/gnu/xml/transform/NamespaceProxy.java b/libjava/classpath/gnu/xml/transform/NamespaceProxy.java
new file mode 100644 (file)
index 0000000..b3c233c
--- /dev/null
@@ -0,0 +1,77 @@
+/* NamespaceProxy.java -- 
+   Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.xml.transform;
+
+import java.util.Collections;
+import java.util.Iterator;
+import javax.xml.namespace.NamespaceContext;
+import org.w3c.dom.Node;
+
+/**
+ * A namespace context using a DOM node to resolve the namespace.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ */
+class NamespaceProxy
+  implements NamespaceContext
+{
+
+  private final Node node;
+
+  NamespaceProxy(Node node)
+  {
+    this.node = node;
+  }
+  
+  public String getNamespaceURI(String prefix)
+  {
+    return (node == null) ? null : node.lookupNamespaceURI(prefix);
+  }
+
+  public String getPrefix(String namespaceURI)
+  {
+    return (node == null) ? null : node.lookupPrefix(namespaceURI);
+  }
+
+  public Iterator getPrefixes(String namespaceURI)
+  {
+    // TODO
+    return Collections.singleton(getPrefix(namespaceURI)).iterator();
+  }
+
+}
index 74b10057c122a8e9f83e430d130236f6fd25438c..fb8b1a601bcb7fe0df849bb2a37c31ee23705d96 100644 (file)
@@ -1,5 +1,5 @@
 /* StreamSerializer.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -49,6 +49,8 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.Map;
 import javax.xml.XMLConstants;
 import org.w3c.dom.Attr;
@@ -149,16 +151,25 @@ public class StreamSerializer
     HTML_BOOLEAN_ATTRIBUTES.put("script", set);
   }
 
+  // HTML namespace URIs
+  static final HashSet HTML_URIS = new HashSet();
+  static {
+    HTML_URIS.add("http://www.w3.org/1999/xhtml");
+  }
+
   protected final String encoding;
   final Charset charset;
   final CharsetEncoder encoder;
   final int mode;
-  final Map namespaces;
+  final LinkedList namespaces;
   protected String eol;
   Collection cdataSectionElements = Collections.EMPTY_SET;
 
   protected boolean discardDefaultContent;
   protected boolean xmlDeclaration = true;
+  
+  // has a META element with the encoding been added?
+  private boolean htmlEncoded;
 
   public StreamSerializer()
   {
@@ -174,14 +185,12 @@ public class StreamSerializer
   {
     this.mode = mode;
     if (encoding == null)
-      {
-        encoding = "UTF-8";
-      }
+      encoding = (mode == Stylesheet.OUTPUT_HTML) ? "ISO-8859-1" : "UTF-8";
     this.encoding = encoding.intern();
     charset = Charset.forName(this.encoding);
     encoder = charset.newEncoder();
     this.eol = (eol != null) ? eol : System.getProperty("line.separator");
-    namespaces = new HashMap();
+    namespaces = new LinkedList();
   }
 
   void setCdataSectionElements(Collection c)
@@ -212,18 +221,14 @@ public class StreamSerializer
     throws IOException
   {
     if (out == null)
-      {
-        throw new NullPointerException("no output stream");
-      }
+      throw new NullPointerException("no output stream");
+    htmlEncoded = false;
     String value, prefix;
     Node children;
     String uri = node.getNamespaceURI();
-    boolean defined = false;
     short nt = node.getNodeType();
     if (convertToCdata && nt == Node.TEXT_NODE)
-      {
-        nt = Node.CDATA_SECTION_NODE;
-      }
+      nt = Node.CDATA_SECTION_NODE;
     switch (nt)
       {
       case Node.ATTRIBUTE_NODE:
@@ -233,27 +238,28 @@ public class StreamSerializer
             (prefix != null && prefix.startsWith("xmlns:")))
           {
             String nsuri = node.getNodeValue();
-            if (isDefined(nsuri))
-              {
-                break;
-              }
+            if (isDefined(nsuri, prefix))
+              break;
             String name = node.getLocalName();
             if (name == null)
               {
+                // Namespace-unaware
                 name = node.getNodeName();
+                int ci = name.indexOf(':');
+                if (ci != -1)
+                  name = name.substring(ci + 1);
               }
             define(nsuri, name);
           }
-        else if (uri != null && !isDefined(uri))
+        else if (uri != null && !isDefined(uri, prefix))
           {
             prefix = define(uri, prefix);
             String nsname = (prefix == null) ? "xmlns" : "xmlns:" + prefix;
             out.write(SPACE);
             out.write(encodeText(nsname));
             out.write(EQ);
-            String nsvalue = "'" + encode(uri, true, true) + "'";
+            String nsvalue = "\"" + encode(uri, true, true) + "\"";
             out.write(nsvalue.getBytes(encoding));
-            defined = true;
           }
         out.write(SPACE);
         String a_nodeName = node.getNodeName();
@@ -262,27 +268,26 @@ public class StreamSerializer
         if (mode == Stylesheet.OUTPUT_HTML &&
             a_nodeName.equals(a_nodeValue) &&
             isHTMLBoolean((Attr) node, a_nodeName))
-          {
-            break;
-          }
+          break;
         out.write(EQ);
-        value = "'" + encode(a_nodeValue, true, true) + "'";
+        value = "\"" + encode(a_nodeValue, true, true) + "\"";
         out.write(encodeText(value));
         break;
       case Node.ELEMENT_NODE:
+        pushNamespaceContext();
         value = node.getNodeName();
         out.write(BRA);
         out.write(encodeText(value));
-        if (uri != null && !isDefined(uri))
+        prefix = node.getPrefix();
+        if (uri != null && !isDefined(uri, prefix))
           {
-            prefix = define(uri, node.getPrefix());
+            prefix = define(uri, prefix);
             String nsname = (prefix == null) ? "xmlns" : "xmlns:" + prefix;
             out.write(SPACE);
             out.write(encodeText(nsname));
             out.write(EQ);
-            String nsvalue = "'" + encode(uri, true, true) + "'";
+            String nsvalue = "\"" + encode(uri, true, true) + "\"";
             out.write(encodeText(nsvalue));
-            defined = true;
           }
         NamedNodeMap attrs = node.getAttributes();
         if (attrs != null)
@@ -296,9 +301,7 @@ public class StreamSerializer
                     // NOOP
                   }
                 else
-                  {
-                    serialize(attr, out, false);
-                  }
+                  serialize(attr, out, false);
               }
           }
         convertToCdata = cdataSectionElements.contains(value);
@@ -317,27 +320,35 @@ public class StreamSerializer
             out.write(encodeText(value));
             out.write(KET);
           }
+        popNamespaceContext();
         break;
       case Node.TEXT_NODE:
         value = node.getNodeValue();
         if (!"yes".equals(node.getUserData("disable-output-escaping")))
-          {
-            value = encode(value, false, false);
-          }
+          value = encode(value, false, false);
         out.write(encodeText(value));
         break;
       case Node.CDATA_SECTION_NODE:
-        value = "<![CDATA[" + node.getNodeValue() + "]]>";
-        out.write(encodeText(value));
+        value = node.getNodeValue();
+        // Where any instanceof of ]]> occur, split into multiple CDATA
+        // sections
+        int bbk = value.indexOf("]]>");
+        while (bbk != -1)
+          {
+            String head = value.substring(0, bbk + 2);
+            out.write(encodeText("<![CDATA[" + head + "]]>"));
+            value = value.substring(bbk + 2);
+            bbk = value.indexOf("]]>");
+          }
+        // Write final tail value
+        out.write(encodeText("<![CDATA[" + value + "]]>"));
         break;
       case Node.COMMENT_NODE:
         value = "<!--" + node.getNodeValue() + "-->";
         out.write(encodeText(value));
         Node cp = node.getParentNode();
         if (cp != null && cp.getNodeType() == Node.DOCUMENT_NODE)
-          {
-            out.write(encodeText(eol));
-          }
+          out.write(encodeText(eol));
         break;
       case Node.DOCUMENT_NODE:
       case Node.DOCUMENT_FRAGMENT_NODE:
@@ -355,29 +366,23 @@ public class StreamSerializer
                   (Document) node : null;
                 String version = (doc != null) ? doc.getXmlVersion() : null;
                 if (version == null)
-                  {
-                    version = (String) node.getUserData("version");
-                  }
+                  version = (String) node.getUserData("version");
                 if (version == null)
-                  {
-                    version = "1.0";
-                  }
+                  version = "1.0";
                 out.write(BRA);
                 out.write(0x3f);
-                out.write("xml version='".getBytes("US-ASCII"));
+                out.write("xml version=\"".getBytes("US-ASCII"));
                 out.write(version.getBytes("US-ASCII"));
-                out.write(APOS);
+                out.write(0x22);
                 if (!("UTF-8".equalsIgnoreCase(encoding)))
                   {
-                    out.write(" encoding='".getBytes("US-ASCII"));
+                    out.write(" encoding=\"".getBytes("US-ASCII"));
                     out.write(encoding.getBytes("US-ASCII"));
-                    out.write(APOS);
+                    out.write(0x22);
                   }
                 if ((doc != null && doc.getXmlStandalone()) ||
                     "yes".equals(node.getUserData("standalone")))
-                  {
-                    out.write(" standalone='yes'".getBytes("US-ASCII"));
-                  }
+                  out.write(" standalone=\"yes\"".getBytes("US-ASCII"));
                 out.write(0x3f);
                 out.write(KET);
                 out.write(encodeText(eol));
@@ -387,12 +392,10 @@ public class StreamSerializer
           }
         else if (mode == Stylesheet.OUTPUT_HTML)
           {
-            // Ensure that encoding is accessible
+            // Ensure that encoding is accessible if head element is present
             String mediaType = (String) node.getUserData("media-type");
             if (mediaType == null)
-              {
-                mediaType = "text/html";
-              }
+              mediaType = "text/html";
             String contentType = mediaType + "; charset=" +
               ((encoding.indexOf(' ') != -1) ?
                 "\"" + encoding + "\"" :
@@ -403,133 +406,87 @@ public class StreamSerializer
             for (Node ctx = node.getFirstChild(); ctx != null;
                  ctx = ctx.getNextSibling())
               {
-                if (ctx.getNodeType() == Node.ELEMENT_NODE)
+                if (ctx.getNodeType() == Node.ELEMENT_NODE &&
+                    isHTMLElement(ctx, "html"))
                   {
                     html = ctx;
                     break;
                   }
               }
-            if (html == null)
-              {
-                html = doc.createElement("html");
-                node.appendChild(html);
-              }
-            Node head = null;
-            for (Node ctx = html.getFirstChild(); ctx != null;
-                 ctx = ctx.getNextSibling())
+            if (html != null)
               {
-                if (ctx.getNodeType() == Node.ELEMENT_NODE)
-                  {
-                    String name = ctx.getLocalName();
-                    if (name == null)
-                      {
-                        name = ctx.getNodeName();
-                      }
-                    if ("head".equalsIgnoreCase(name))
-                      {
-                        head = ctx;
-                        break;
-                      }
-                  }
-              }
-            if (head == null)
-              {
-                head = doc.createElement("head");
-                Node c1 = null;
+                Node head = null;
                 for (Node ctx = html.getFirstChild(); ctx != null;
                      ctx = ctx.getNextSibling())
                   {
-                    if (ctx.getNodeType() == Node.ELEMENT_NODE)
+                    if (isHTMLElement(ctx, "head"))
                       {
-                        c1 = ctx;
+                        head = ctx;
                         break;
                       }
                   }
-                if (c1 != null)
-                  {
-                    html.insertBefore(head, c1);
-                  }
-                else
-                  {
-                    html.appendChild(head);
-                  }
-              }
-            Node meta = null;
-            Node metaContent = null;
-            for (Node ctx = head.getFirstChild(); ctx != null;
-                 ctx = ctx.getNextSibling())
-              {
-                if (ctx.getNodeType() == Node.ELEMENT_NODE)
+                if (head != null)
                   {
-                    String name = ctx.getLocalName();
-                    if (name == null)
-                      {
-                        name = ctx.getNodeName();
-                      }
-                    if ("meta".equalsIgnoreCase(name))
+                    Node meta = null;
+                    Node metaContent = null;
+                    for (Node ctx = head.getFirstChild(); ctx != null;
+                         ctx = ctx.getNextSibling())
                       {
-                        NamedNodeMap metaAttrs = ctx.getAttributes();
-                        int len = metaAttrs.getLength();
-                        String httpEquiv = null;
-                        Node content = null;
-                        for (int i = 0; i < len; i++)
+                        if (isHTMLElement(ctx, "meta"))
                           {
-                            Node attr = metaAttrs.item(i);
-                            String attrName = attr.getNodeName();
-                            if ("http-equiv".equalsIgnoreCase(attrName))
+                            NamedNodeMap metaAttrs = ctx.getAttributes();
+                            int len = metaAttrs.getLength();
+                            String httpEquiv = null;
+                            Node content = null;
+                            for (int i = 0; i < len; i++)
                               {
-                                httpEquiv = attr.getNodeValue();
+                                Node attr = metaAttrs.item(i);
+                                String attrName = attr.getNodeName();
+                                if ("http-equiv".equalsIgnoreCase(attrName))
+                                  httpEquiv = attr.getNodeValue();
+                                else if ("content".equalsIgnoreCase(attrName))
+                                  content = attr;
                               }
-                            else if ("content".equalsIgnoreCase(attrName))
+                            if ("Content-Type".equalsIgnoreCase(httpEquiv))
                               {
-                                content = attr;
+                                meta = ctx;
+                                metaContent = content;
+                                break;
                               }
                           }
-                        if ("Content-Type".equalsIgnoreCase(httpEquiv))
-                          {
-                            meta = ctx;
-                            metaContent = content;
-                            break;
-                          }
                       }
+                    if (meta == null)
+                      {
+                        meta = doc.createElement("meta");
+                        // Insert first
+                        Node first = head.getFirstChild();
+                        if (first == null)
+                          head.appendChild(meta);
+                        else
+                          head.insertBefore(meta, first);
+                        Node metaHttpEquiv = doc.createAttribute("http-equiv");
+                        meta.getAttributes().setNamedItem(metaHttpEquiv);
+                        metaHttpEquiv.setNodeValue("Content-Type");
+                      }
+                    if (metaContent == null)
+                      {
+                        metaContent = doc.createAttribute("content");
+                        meta.getAttributes().setNamedItem(metaContent);
+                      }
+                    metaContent.setNodeValue(contentType);
+                    htmlEncoded = true;
                   }
               }
-            if (meta == null)
-              {
-                meta = doc.createElement("meta");
-                // Insert first
-                Node first = head.getFirstChild();
-                if (first == null)
-                  {
-                    head.appendChild(meta);
-                  }
-                else
-                  {
-                    head.insertBefore(meta, first);
-                  }
-                Node metaHttpEquiv = doc.createAttribute("http-equiv");
-                meta.getAttributes().setNamedItem(metaHttpEquiv);
-                metaHttpEquiv.setNodeValue("Content-Type");
-              }
-            if (metaContent == null)
-              {
-                metaContent = doc.createAttribute("content");
-                meta.getAttributes().setNamedItem(metaContent);
-              }
-            metaContent.setNodeValue(contentType);
-            // phew
           }
         children = node.getFirstChild();
         if (children != null)
-          {
-            serialize(children, out, convertToCdata);
-          }
+          serialize(children, out, convertToCdata);
         break;
       case Node.DOCUMENT_TYPE_NODE:
         DocumentType doctype = (DocumentType) node;
         out.write(BRA);
         out.write(BANG);
-       out.write(encodeText("DOCTYPE "));
+        out.write(encodeText("DOCTYPE "));
         value = doctype.getNodeName();
         out.write(encodeText(value));
         String publicId = doctype.getPublicId();
@@ -569,41 +526,73 @@ public class StreamSerializer
             out.write(encodeText(eol));
           }
         break;
+      default:
+        System.err.println("Unhandled node type: "+nt);
       }
-    if (defined)
+  }
+
+  boolean isHTMLElement(Node node, String name)
+  {
+    if (node.getNodeType() != Node.ELEMENT_NODE)
+      return false;
+    String localName = node.getLocalName();
+    if (localName == null)
+      localName = node.getNodeName();
+    if (!name.equalsIgnoreCase(localName))
+      return false;
+    String uri = node.getNamespaceURI();
+    return (uri == null || HTML_URIS.contains(uri));
+  }
+
+  boolean isDefined(String uri, String prefix)
+  {
+    if (XMLConstants.XML_NS_URI.equals(uri))
+      return "xml".equals(prefix);
+    if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(uri))
+      return "xmlns".equals(prefix);
+    if (prefix == null)
+      prefix = "";
+    for (Iterator i = namespaces.iterator(); i.hasNext(); )
       {
-        undefine(uri);
+        Map ctx = (Map) i.next();
+        String val = (String) ctx.get(uri);
+        if (val != null && val.equals(prefix))
+          return true;
       }
+    return false;
   }
 
-  boolean isDefined(String uri)
+  void pushNamespaceContext()
   {
-    return XMLConstants.XML_NS_URI.equals(uri) ||
-      XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(uri) ||
-      namespaces.containsKey(uri);
+    namespaces.addFirst(new HashMap());
   }
 
   String define(String uri, String prefix)
   {
-    while (namespaces.containsValue(prefix))
+    if (namespaces.isEmpty())
+      return prefix;
+    HashMap ctx = (HashMap) namespaces.getFirst();
+    while (ctx.containsValue(prefix))
       {
         // Fabricate new prefix
         prefix = prefix + "_";
       }
-    namespaces.put(uri, prefix);
+    ctx.put(uri, prefix);
     return prefix;
   }
 
-  void undefine(String uri)
+  void popNamespaceContext()
   {
-    namespaces.remove(uri);
+    namespaces.removeFirst();
   }
 
   final byte[] encodeText(String text)
     throws IOException
   {
     encoder.reset();
-    if (!encoder.canEncode(text))
+    boolean htmlNeedingEncoding =
+      (mode == Stylesheet.OUTPUT_HTML && !htmlEncoded);
+    if (!encoder.canEncode(text) || htmlNeedingEncoding)
       {
         // Check each character
         StringBuffer buf = new StringBuffer();
@@ -611,11 +600,7 @@ public class StreamSerializer
         for (int i = 0; i < len; i++)
           {
             char c = text.charAt(i);
-            if (encoder.canEncode(c))
-              {
-                buf.append(c);
-              }
-            else
+            if (!encoder.canEncode(c))
               {
                 // Replace with character entity reference
                 String hex = Integer.toHexString((int) c);
@@ -623,6 +608,20 @@ public class StreamSerializer
                 buf.append(hex);
                 buf.append(';');
               }
+            else if (htmlNeedingEncoding)
+              {
+                String entityName = getHTMLCharacterEntity(c);
+                if (entityName != null)
+                  {
+                    buf.append('&');
+                    buf.append(entityName);
+                    buf.append(';');
+                  }
+                else
+                  buf.append(c);
+              }
+            else
+              buf.append(c);
           }
         text = buf.toString();
       }
@@ -656,17 +655,13 @@ public class StreamSerializer
         if (c == '<')
           {
             if (buf == null)
-              {
-                buf = new StringBuffer(text.substring(0, i));
-              }
+              buf = new StringBuffer(text.substring(0, i));
             buf.append("&lt;");
           }
         else if (c == '>')
           {
             if (buf == null)
-              {
-                buf = new StringBuffer(text.substring(0, i));
-              }
+              buf = new StringBuffer(text.substring(0, i));
             buf.append("&gt;");
           }
         else if (c == '&')
@@ -675,25 +670,19 @@ public class StreamSerializer
                 text.charAt(i + 1) == '{')
               {
                 if (buf != null)
-                  {
-                    buf.append(c);
-                  }
+                  buf.append(c);
               }
             else
               {
                 if (buf == null)
-                  {
-                    buf = new StringBuffer(text.substring(0, i));
-                  }
+                  buf = new StringBuffer(text.substring(0, i));
                 buf.append("&amp;");
               }
           }
         else if (c == '\'' && inAttr)
           {
             if (buf == null)
-              {
-                buf = new StringBuffer(text.substring(0, i));
-              }
+              buf = new StringBuffer(text.substring(0, i));
             if (mode == Stylesheet.OUTPUT_HTML)
               // HTML does not define &apos;, use character entity ref
               buf.append("&#x27;");
@@ -703,9 +692,7 @@ public class StreamSerializer
         else if (c == '"' && inAttr)
           {
             if (buf == null)
-              {
-                buf = new StringBuffer(text.substring(0, i));
-              }
+              buf = new StringBuffer(text.substring(0, i));
             buf.append("&quot;");
           }
         else if (encodeCtl)
@@ -713,23 +700,17 @@ public class StreamSerializer
             if (c < 0x20)
               {
                 if (buf == null)
-                  {
-                    buf = new StringBuffer(text.substring(0, i));
-                  }
+                  buf = new StringBuffer(text.substring(0, i));
                 buf.append('&');
                 buf.append('#');
                 buf.append((int) c);
                 buf.append(';');
               }
             else if (buf != null)
-              {
-                buf.append(c);
-              }
+              buf.append(c);
           }
         else if (buf != null)
-          {
-            buf.append(c);
-          }
+          buf.append(c);
       }
     return (buf == null) ? text : buf.toString();
   }
@@ -763,4 +744,109 @@ public class StreamSerializer
     return (attributes != null && attributes.contains(attrName));
   }
 
+  static String getHTMLCharacterEntity(char c)
+  {
+    // Hardcode these here to avoid loading the HTML DTD
+    switch (c)
+      {
+      case 160: return "nbsp";
+      case 161: return "iexcl";
+      case 162: return "cent";
+      case 163: return "pound";
+      case 164: return "curren";
+      case 165: return "yen";
+      case 166: return "brvbar";
+      case 167: return "sect";
+      case 168: return "uml";
+      case 169: return "copy";
+      case 170: return "ordf";
+      case 171: return "laquo";
+      case 172: return "not";
+      case 173: return "shy";
+      case 174: return "reg";
+      case 175: return "macr";
+      case 176: return "deg";
+      case 177: return "plusmn";
+      case 178: return "sup2";
+      case 179: return "sup3";
+      case 180: return "acute";
+      case 181: return "micro";
+      case 182: return "para";
+      case 183: return "middot";
+      case 184: return "cedil";
+      case 185: return "sup1";
+      case 186: return "ordm";
+      case 187: return "raquo";
+      case 188: return "frac14";
+      case 189: return "frac12";
+      case 190: return "frac34";
+      case 191: return "iquest";
+      case 192: return "Agrave";
+      case 193: return "Aacute";
+      case 194: return "Acirc";
+      case 195: return "Atilde";
+      case 196: return "Auml";
+      case 197: return "Aring";
+      case 198: return "AElig";
+      case 199: return "Ccedil";
+      case 200: return "Egrave";
+      case 201: return "Eacute";
+      case 202: return "Ecirc";
+      case 203: return "Euml";
+      case 204: return "Igrave";
+      case 205: return "Iacute";
+      case 206: return "Icirc";
+      case 207: return "Iuml";
+      case 208: return "ETH";
+      case 209: return "Ntilde";
+      case 210: return "Ograve";
+      case 211: return "Oacute";
+      case 212: return "Ocirc";
+      case 213: return "Otilde";
+      case 214: return "Ouml";
+      case 215: return "times";
+      case 216: return "Oslash";
+      case 217: return "Ugrave";
+      case 218: return "Uacute";
+      case 219: return "Ucirc";
+      case 220: return "Uuml";
+      case 221: return "Yacute";
+      case 222: return "THORN";
+      case 223: return "szlig";
+      case 224: return "agrave";
+      case 225: return "aacute";
+      case 226: return "acirc";
+      case 227: return "atilde";
+      case 228: return "auml";
+      case 229: return "aring";
+      case 230: return "aelig";
+      case 231: return "ccedil";
+      case 232: return "egrave";
+      case 233: return "eacute";
+      case 234: return "ecirc";
+      case 235: return "euml";
+      case 236: return "igrave";
+      case 237: return "iacute";
+      case 238: return "icirc";
+      case 239: return "iuml";
+      case 240: return "eth";
+      case 241: return "ntilde";
+      case 242: return "ograve";
+      case 243: return "oacute";
+      case 244: return "ocirc";
+      case 245: return "otilde";
+      case 246: return "ouml";
+      case 247: return "divide";
+      case 248: return "oslash";
+      case 249: return "ugrave";
+      case 250: return "uacute";
+      case 251: return "ucirc";
+      case 252: return "uuml";
+      case 253: return "yacute";
+      case 254: return "thorn";
+      case 255: return "yuml";
+      default: return null;
+      }
+  }
+
 }
diff --git a/libjava/classpath/gnu/xml/transform/StrippingInstruction.java b/libjava/classpath/gnu/xml/transform/StrippingInstruction.java
new file mode 100644 (file)
index 0000000..c6391b9
--- /dev/null
@@ -0,0 +1,73 @@
+/* StrippingInstruction.java -- 
+   Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.xml.transform;
+
+import gnu.xml.xpath.NameTest;
+
+/**
+ * An entry in a strip-space or preserve-space list.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ */
+class StrippingInstruction
+{
+
+  final NameTest element;
+  final int precedence;
+  
+  StrippingInstruction(NameTest element, int precedence)
+  {
+    this.element = element;
+    this.precedence = precedence;
+  }
+
+  /**
+   * Returns the <i>default priority</i> of the element name test.
+   * @see http://www.w3.org/TR/xslt#dt-default-priority
+   */
+  float getPriority()
+  {
+    if (element.matchesAny())
+      return -0.5f;
+    else if (element.matchesAnyLocalName())
+      return -0.25f;
+    else
+      return 0.0f;
+  }
+  
+}
index 99431b699d8db17168517dfa478e300695cb1066..51accaa3b9ab5a587026cf14d62eb7e9484ceb93 100644 (file)
@@ -1,5 +1,5 @@
 /* Stylesheet.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -88,6 +88,8 @@ class Stylesheet
 {
 
   static final String XSL_NS = "http://www.w3.org/1999/XSL/Transform";
+  private static final NameTest STYLESHEET_PRESERVE_TEXT =
+    new NameTest(new QName(XSL_NS, "text"), false, false);
   
   static final int OUTPUT_XML = 0;
   static final int OUTPUT_HTML = 1;
@@ -208,6 +210,7 @@ class Stylesheet
     preserveSpace = new LinkedHashSet();
     outputCdataSectionElements = new LinkedHashSet();
     xpath = (XPathImpl) factory.xpathFactory.newXPath();
+    xpath.setNamespaceContext(this);
     if (parent == null)
       {
         bindings = new Bindings(this);
@@ -218,7 +221,6 @@ class Stylesheet
         keys = new LinkedList();
         decimalFormats = new LinkedHashMap();
         initDefaultDecimalFormat();
-        xpath.setNamespaceContext(this);
         xpath.setXPathFunctionResolver(this);
       }
     else
@@ -241,7 +243,6 @@ class Stylesheet
         templates = root.templates;
         keys = root.keys;
         decimalFormats = root.decimalFormats;
-        xpath.setNamespaceContext(root);
         xpath.setXPathFunctionResolver(root);
       }
     xpath.setXPathVariableResolver(bindings);
@@ -276,9 +277,7 @@ class Stylesheet
   {
     Stylesheet stylesheet = this;
     while (stylesheet.parent != null)
-      {
-        stylesheet = stylesheet.parent;
-      }
+      stylesheet = stylesheet.parent;
     return stylesheet;
   }
   
@@ -408,9 +407,7 @@ class Stylesheet
     throws TransformerException
   {
     if (debug)
-      {
-        System.err.println("getTemplate: mode="+mode+" context="+context);
-      }
+      System.err.println("getTemplate: mode="+mode+" context="+context);
     Set candidates = new TreeSet();
     for (Iterator j = templates.iterator(); j.hasNext(); )
       {
@@ -425,15 +422,11 @@ class Stylesheet
                 throw new TransformerException(msg);
               }
             if (!currentTemplate.imports(t))
-              {
-                isMatch = false;
-              }
+              isMatch = false;
           }
         //System.err.println("\t"+context+" "+t+"="+isMatch);
         if (isMatch)
-          {
-            candidates.add(t);
-          }
+          candidates.add(t);
       }
     //System.err.println("\tcandidates="+candidates);
     if (candidates.isEmpty())
@@ -441,9 +434,7 @@ class Stylesheet
         // Apply built-in template
         // Current template is unchanged
         if (debug)
-          {
-            System.err.println("\tbuiltInTemplate context="+context);
-          }
+          System.err.println("\tbuiltInTemplate context="+context);
         switch (context.getNodeType())
           {
           case Node.ELEMENT_NODE:
@@ -453,6 +444,7 @@ class Stylesheet
           case Node.COMMENT_NODE:
             return builtInNodeTemplate;
           case Node.TEXT_NODE:
+          case Node.CDATA_SECTION_NODE:
           case Node.ATTRIBUTE_NODE:
             return builtInTextTemplate;
           default:
@@ -465,9 +457,7 @@ class Stylesheet
         // Set current template
         currentTemplate = t;
         if (debug)
-          {
-            System.err.println("\ttemplate="+t+" context="+context);
-          }
+          System.err.println("\ttemplate="+t+" context="+context);
         return t.node;
       }
   }
@@ -475,25 +465,17 @@ class Stylesheet
   TemplateNode getTemplate(QName mode, QName name)
     throws TransformerException
   {
-    //System.err.println("getTemplate: mode="+mode+" name="+name);
     Set candidates = new TreeSet();
     for (Iterator j = templates.iterator(); j.hasNext(); )
       {
         Template t = (Template) j.next();
         boolean isMatch = t.matches(name);
-        //System.err.println("\t"+name+" "+t+"="+isMatch);
         if (isMatch)
-          {
-            candidates.add(t);
-          }
+          candidates.add(t);
       }
     if (candidates.isEmpty())
-      {
-        return null;
-        //throw new TransformerException("template '" + name + "' not found");
-      }
+      return null;
     Template t = (Template) candidates.iterator().next();
-    //System.err.println("\ttemplate="+t+" context="+context);
     return t.node;
   }
 
@@ -538,42 +520,30 @@ class Stylesheet
     output = node;
     String method = getAttribute(attrs, "method");
     if ("xml".equals(method) || method == null)
-      {
-        outputMethod = OUTPUT_XML;
-      }
+      outputMethod = OUTPUT_XML;
     else if ("html".equals(method))
-      {
-        outputMethod = OUTPUT_HTML;
-      }
+      outputMethod = OUTPUT_HTML;
     else if ("text".equals(method))
-      {
-        outputMethod = OUTPUT_TEXT;
-      }
+      outputMethod = OUTPUT_TEXT;
     else
       {
         String msg = "unsupported output method: " + method;
         DOMSourceLocator l = new DOMSourceLocator(node);
         throw new TransformerConfigurationException(msg, l);
       }
-    outputPublicId = getAttribute(attrs, "public-id");
-    outputSystemId = getAttribute(attrs, "system-id");
+    outputPublicId = getAttribute(attrs, "doctype-public");
+    outputSystemId = getAttribute(attrs, "doctype-system");
     outputEncoding = getAttribute(attrs, "encoding");
     String indent = getAttribute(attrs, "indent");
     if (indent != null)
-      {
-        outputIndent = "yes".equals(indent);
-      }
+      outputIndent = "yes".equals(indent);
     outputVersion = getAttribute(attrs, "version");
     String omitXmlDecl = getAttribute(attrs, "omit-xml-declaration");
     if (omitXmlDecl != null)
-      {
-        outputOmitXmlDeclaration = "yes".equals(omitXmlDecl);
-      }
+      outputOmitXmlDeclaration = "yes".equals(omitXmlDecl);
     String standalone = getAttribute(attrs, "standalone");
     if (standalone != null)
-      {
-        outputStandalone = "yes".equals(standalone);
-      }
+      outputStandalone = "yes".equals(standalone);
     outputMediaType = getAttribute(attrs, "media-type");
     String cdataSectionElements =
       getAttribute(attrs, "cdata-section-elements");
@@ -581,9 +551,7 @@ class Stylesheet
       {
         StringTokenizer st = new StringTokenizer(cdataSectionElements, " ");
         while (st.hasMoreTokens())
-          {
-            outputCdataSectionElements.add(st.nextToken());
-          }
+          outputCdataSectionElements.add(st.nextToken());
       }
   }
 
@@ -728,9 +696,7 @@ class Stylesheet
                 parse(node.getFirstChild(), false);
               }
             else if ("template".equals(name))
-              {
-                templates.add(parseTemplate(node, attrs));
-              }
+              templates.add(parseTemplate(node, attrs));
             else if ("param".equals(name) ||
                      "variable".equals(name))
               {
@@ -779,9 +745,7 @@ class Stylesheet
                 factory.newStylesheet(source, precedence + delta, this);
               }
             else if ("output".equals(name))
-              {
-                parseOutput(node, attrs);
-              }
+              parseOutput(node, attrs);
             else if ("preserve-space".equals(name))
               {
                 String elements =
@@ -790,7 +754,9 @@ class Stylesheet
                                                          " \t\n\r");
                 while (st.hasMoreTokens())
                   {
-                    preserveSpace.add(parseNameTest(st.nextToken()));
+                    NameTest element = parseNameTest(st.nextToken());
+                    preserveSpace.add(new StrippingInstruction(element,
+                                                               precedence));
                   }
               }
             else if ("strip-space".equals(name))
@@ -801,25 +767,19 @@ class Stylesheet
                                                          " \t\n\r");
                 while (st.hasMoreTokens())
                   {
-                    stripSpace.add(parseNameTest(st.nextToken()));
+                    NameTest element = parseNameTest(st.nextToken());
+                    stripSpace.add(new StrippingInstruction(element, 
+                                                            precedence));
                   }
               }
             else if ("key".equals(name))
-              {
-                parseKey(node, attrs);
-              }
+              parseKey(node, attrs);
             else if ("decimal-format".equals(name))
-              {
-                parseDecimalFormat(node, attrs);
-              }
+              parseDecimalFormat(node, attrs);
             else if ("namespace-alias".equals(name))
-              {
-                parseNamespaceAlias(node, attrs);
-              }
+              parseNamespaceAlias(node, attrs);
             else if ("attribute-set".equals(name))
-              {
-                parseAttributeSet(node, attrs);
-              }
+              parseAttributeSet(node, attrs);
           }
         else if (root)
           {
@@ -867,12 +827,10 @@ class Stylesheet
   final NameTest parseNameTest(String token)
   {
     if ("*".equals(token))
-      {
-        return new NameTest(null, true, true);
-      }
+      return new NameTest(null, true, true);
     else if (token.endsWith(":*"))
       {
-        QName qName = getQName(token.substring(0, token.length() - 2));
+        QName qName = getQName(token);
         return new NameTest(qName, true, false);
       }
     else
@@ -984,7 +942,13 @@ class Stylesheet
     return ret;
   }
 
-  boolean isPreserved(Text text)
+  /**
+   * Whitespace stripping.
+   * @param text the text node
+   * @param source true if a source node, false if a stylesheet text node
+   * @see http://www.w3.org/TR/xslt#strip
+   */
+  boolean isPreserved(Text text, boolean source)
     throws TransformerConfigurationException
   {
     // Check characters in text
@@ -996,39 +960,73 @@ class Stylesheet
           {
             char c = value.charAt(i);
             if (c != 0x20 && c != 0x09 && c != 0x0a && c != 0x0d)
-              {
-                return true;
-              }
+              return true;
           }
       }
     // Check parent node
     Node ctx = text.getParentNode();
-    if (!preserveSpace.isEmpty())
+    if (source)
       {
-        for (Iterator i = preserveSpace.iterator(); i.hasNext(); )
+        // Source document text node
+        boolean preserve = true;
+        float psPriority = 0.0f, ssPriority = 0.0f;
+        if (!stripSpace.isEmpty())
           {
-            NameTest preserveTest = (NameTest) i.next();
-            if (preserveTest.matches(ctx, 1, 1))
+            // Conflict resolution
+            StrippingInstruction ssi = null, psi = null;
+            for (Iterator i = stripSpace.iterator(); i.hasNext(); )
+              {
+                StrippingInstruction si = (StrippingInstruction) i.next();
+                if (si.element.matches(ctx, 1, 1))
+                  {
+                    if (ssi != null)
+                      {
+                        if (si.precedence < ssi.precedence)
+                          continue;
+                        float p = si.getPriority();
+                        if (p < ssPriority)
+                          continue;
+                      }
+                    ssi = si;
+                  }
+              }
+            for (Iterator i = preserveSpace.iterator(); i.hasNext(); )
               {
-                boolean override = false;
-                if (!stripSpace.isEmpty())
+                StrippingInstruction si = (StrippingInstruction) i.next();
+                if (si.element.matches(ctx, 1, 1))
                   {
-                    for (Iterator j = stripSpace.iterator(); j.hasNext(); )
+                    if (psi != null)
                       {
-                        NameTest stripTest = (NameTest) j.next();
-                        if (stripTest.matches(ctx, 1, 1))
-                          {
-                            override = true;
-                            break;
-                          }
+                        if (si.precedence < psi.precedence)
+                          continue;
+                        float p = si.getPriority();
+                        if (p < psPriority)
+                          continue;
                       }
+                    psi = si;
                   }
-                if (!override)
+              }
+            if (ssi != null)
+              {
+                if (psi != null)
                   {
-                    return true;
+                    if (psi.precedence < ssi.precedence)
+                      preserve = false;
+                    else if (psPriority < ssPriority)
+                      preserve = false;
                   }
+                else
+                  preserve = false;
               }
           }
+        if (preserve)
+          return true;
+      }
+    else
+      {
+        // Stylesheet text node
+        if (STYLESHEET_PRESERVE_TEXT.matches(ctx, 1, 1))
+          return true;
       }
     // Check whether any ancestor specified xml:space
     while (ctx != null)
@@ -1038,24 +1036,14 @@ class Stylesheet
             Element element = (Element) ctx;
             String xmlSpace = element.getAttribute("xml:space");
             if ("default".equals(xmlSpace))
-              {
-                break;
-              }
+              break;
             else if ("preserve".equals(xmlSpace))
-              {
-                return true;
-              }
+              return true;
             else if (xmlSpace.length() > 0)
               {
                 String msg = "Illegal value for xml:space: " + xmlSpace;
                 throw new TransformerConfigurationException(msg);
               }
-            else if ("text".equals(ctx.getLocalName()) &&
-                     XSL_NS.equals(ctx.getNamespaceURI()))
-              {
-                // xsl:text implies xml:space='preserve'
-                return true;
-              }
           }
         ctx = ctx.getParentNode();
       }
@@ -1071,45 +1059,27 @@ class Stylesheet
         if ("document".equals(localName) && (arity == 1 || arity == 2))
           {
             if (current == null)
-              {
                 throw new RuntimeException("current is null");
-              }
             return new DocumentFunction(getRootStylesheet(), current);
           }
         else if ("key".equals(localName) && (arity == 2))
-          {
-            return new KeyFunction(getRootStylesheet());
-          }
+          return new KeyFunction(getRootStylesheet());
         else if ("format-number".equals(localName) &&
                  (arity == 2 || arity == 3))
-          {
-            return new FormatNumberFunction(getRootStylesheet());
-          }
+          return new FormatNumberFunction(getRootStylesheet());
         else if ("current".equals(localName) && (arity == 0))
-          {
-            return new CurrentFunction(getRootStylesheet());
-          }
+          return new CurrentFunction(getRootStylesheet());
         else if ("unparsed-entity-uri".equals(localName) && (arity == 1))
-          {
-            return new UnparsedEntityUriFunction();
-          }
+          return new UnparsedEntityUriFunction();
         else if ("generate-id".equals(localName) &&
                  (arity == 1 || arity == 0))
-          {
-            return new GenerateIdFunction();
-          }
+          return new GenerateIdFunction();
         else if ("system-property".equals(localName) && (arity == 1))
-          {
-            return new SystemPropertyFunction();
-          }
+          return new SystemPropertyFunction();
         else if ("element-available".equals(localName) && (arity == 1))
-          {
-            return new ElementAvailableFunction(this);
-          }
+          return new ElementAvailableFunction(new NamespaceProxy(current));
         else if ("function-available".equals(localName) && (arity == 1))
-          {
-            return new FunctionAvailableFunction(this);
-          }
+          return new FunctionAvailableFunction(new NamespaceProxy(current));
       }
     return null;
   }
@@ -1127,9 +1097,7 @@ class Stylesheet
     QName mode = (m == null) ? null : getQName(m);
     String s = getAttribute(attrs, "select");
     if (s == null)
-      {
-        s = "child::node()";
-      }
+      s = "child::node()";
     Node children = node.getFirstChild();
     List sortKeys = parseSortKeys(children);
     List withParams = parseWithParams(children);
@@ -1411,13 +1379,9 @@ class Stylesheet
         if (tnode != null)
           {
             if (first == null)
-              {
-                first = tnode;
-              }
+              first = tnode;
             if (previous != null)
-              {
-                previous.next = tnode;
-              }
+              previous.next = tnode;
             previous = tnode;
           }
         node = next;
@@ -1438,25 +1402,15 @@ class Stylesheet
           {
             String name = node.getLocalName();
             if ("apply-templates".equals(name))
-              {
-                return parseApplyTemplates(node);
-              }
+              return parseApplyTemplates(node);
             else if ("call-template".equals(name))
-              {
-                return parseCallTemplate(node);
-              }
+              return parseCallTemplate(node);
             else if ("value-of".equals(name))
-              {
-                return parseValueOf(node);
-              }
+              return parseValueOf(node);
             else if ("for-each".equals(name))
-              {
-                return parseForEach(node);
-              }
+              return parseForEach(node);
             else if ("if".equals(name))
-              {
-                return parseIf(node);
-              }
+              return parseIf(node);
             else if ("choose".equals(name))
               {
                 Node children = node.getFirstChild();
@@ -1465,9 +1419,7 @@ class Stylesheet
                 return ret;
               }
             else if ("when".equals(name))
-              {
-                return parseWhen(node);
-              }
+              return parseWhen(node);
             else if ("otherwise".equals(name))
               {
                 Node children = node.getFirstChild();
@@ -1476,25 +1428,15 @@ class Stylesheet
                 return ret;
               }
             else if ("element".equals(name))
-              {
-                return parseElement(node);
-              }
+              return parseElement(node);
             else if ("attribute".equals(name))
-              {
-                return parseAttribute(node);
-              }
+              return parseAttribute(node);
             else if ("text".equals(name))
-              {
-                return parseText(node);
-              }
+              return parseText(node);
             else if ("copy".equals(name))
-              {
-                return parseCopy(node);
-              }
+              return parseCopy(node);
             else if ("processing-instruction".equals(name))
-              {
-                return parseProcessingInstruction(node);
-              }
+              return parseProcessingInstruction(node);
             else if ("comment".equals(name))
               {
                 Node children = node.getFirstChild();
@@ -1503,9 +1445,7 @@ class Stylesheet
                 return ret;
               }
             else if ("number".equals(name))
-              {
-                return parseNumber(node);
-              }
+              return parseNumber(node);
             else if ("param".equals(name) ||
                      "variable".equals(name))
               {
@@ -1538,13 +1478,9 @@ class Stylesheet
                 return ret;
               }
             else if ("copy-of".equals(name))
-              {
-                return parseCopyOf(node);
-              }
+              return parseCopyOf(node);
             else if ("message".equals(name))
-              {
-                return parseMessage(node);
-              }
+              return parseMessage(node);
             else if ("apply-imports".equals(name))
               {
                 Node children = node.getFirstChild();
@@ -1562,22 +1498,30 @@ class Stylesheet
         String prefix = node.getPrefix();
         if (extensionElementPrefixes.contains(prefix))
           {
-            // Pass over extension elements
+            // Check for xsl:fallback
+            for (Node ctx = node.getFirstChild(); ctx != null;
+                 ctx = ctx.getNextSibling())
+              {
+                String ctxUri = ctx.getNamespaceURI();
+                if (XSL_NS.equals(ctxUri) &&
+                    "fallback".equals(ctx.getLocalName()))
+                  {
+                    ctx = ctx.getFirstChild();
+                    return (ctx == null) ? null : parse(ctx);
+                  }
+              }
+            // Otherwise pass over extension element
             return null;
           }
         switch (node.getNodeType())
           {
           case Node.TEXT_NODE:
+          case Node.CDATA_SECTION_NODE:
             // Determine whether to strip whitespace
             Text text = (Text) node;
-            if (!isPreserved(text))
+            if (!isPreserved(text, false))
               {
                 // Strip
-                /*String data = text.getData().trim();
-                if (data.length() > 0)
-                  {
-                    text.setData(data);
-                  } // else */
                 text.getParentNode().removeChild(text);
                 return null;
               }
@@ -1623,9 +1567,7 @@ class Stylesheet
                     String aname = attr.getNodeName();
                     if (Stylesheet.XSL_NS.equals(ans) &&
                         "use-attribute-sets".equals(attr.getLocalName()))
-                      {
-                        continue;
-                      }
+                      continue;
                     String value = attr.getNodeValue();
                     TemplateNode grandchild =
                       parseAttributeValueTemplate(value, node);
@@ -1640,8 +1582,9 @@ class Stylesheet
                   }
                 String ename = node.getNodeName();
                 TemplateNode n = parseAttributeValueTemplate(ename, node);
-                TemplateNode ns = (namespaceUri == null) ? null :
-                  parseAttributeValueTemplate(namespaceUri, node);
+                //TemplateNode ns = (namespaceUri == null) ? null :
+                //  parseAttributeValueTemplate(namespaceUri, node);
+                TemplateNode ns = null;
                 ElementNode ret = new ElementNode(n, ns, useAttributeSets,
                                                   node);
                 ret.children = child;
@@ -1676,9 +1619,7 @@ class Stylesheet
             NamedNodeMap attrs = node.getAttributes();
             String s = getAttribute(attrs, "select");
             if (s == null)
-              {
-                s = ".";
-              }
+              s = ".";
             Expr select = (Expr) xpath.compile(s);
             String l = getAttribute(attrs, "lang");
             TemplateNode lang = (l == null) ? null :
@@ -1728,9 +1669,7 @@ class Stylesheet
                 ret.add(new WithParam(name, expr));
               }
             else
-              {
-                ret.add(new WithParam(name, content));
-              }
+              ret.add(new WithParam(name, content));
           }
         node = node.getNextSibling();
       }
@@ -1757,27 +1696,19 @@ class Stylesheet
               {
                 String prefix = attr.getLocalName();
                 if (XMLConstants.XMLNS_ATTRIBUTE.equals(prefix))
-                  {
-                    prefix = "#default";
-                  }
+                  prefix = "#default";
                 String ns = attr.getNodeValue();
                 // Should the namespace be excluded?
                 if (XSL_NS.equals(ns) ||
                     extensionElementPrefixes.contains(prefix) ||
                     elementExcludeResultPrefixes.contains(prefix) ||
                     excludeResultPrefixes.contains(prefix))
-                  {
-                    continue;
-                  }
+                  continue;
                 // Is the namespace already defined on the target?
                 if (prefix == "#default")
-                  {
-                    prefix = null;
-                  }
+                  prefix = null;
                 if (target.lookupNamespaceURI(prefix) != null)
-                  {
-                    continue;
-                  }
+                  continue;
                 attr = attr.cloneNode(true);
                 attr = doc.adoptNode(attr);
                 target.getAttributes().setNamedItemNS(attr);
@@ -1786,23 +1717,17 @@ class Stylesheet
       }
     Node parent = source.getParentNode();
     if (parent != null)
-      {
-        addNamespaceNodes(parent, target, doc, elementExcludeResultPrefixes);
-      }
+      addNamespaceNodes(parent, target, doc, elementExcludeResultPrefixes);
   }
 
   static final String getAttribute(NamedNodeMap attrs, String name)
   {
     Node attr = attrs.getNamedItem(name);
     if (attr == null)
-      {
-        return null;
-      }
+      return null;
     String ret = attr.getNodeValue();
     if (ret.length() == 0)
-      {
-        return null;
-      }
+      return null;
     return ret;
   }
 
index dde2017ff6bd7ce970ae9768aa677bf8bc9e5f4f..16e3363f8c67779ca45ac82baf644a82c5132301 100644 (file)
@@ -1,5 +1,5 @@
 /* TransformerFactoryImpl.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -37,7 +37,11 @@ exception statement from your version. */
 
 package gnu.xml.transform;
 
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
 import java.io.IOException;
+import java.io.OutputStream;
 import java.net.URL;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
@@ -73,7 +77,7 @@ public class TransformerFactoryImpl
 {
 
   final XPathFactory xpathFactory;
-       final XSLURIResolver resolver;
+  final XSLURIResolver resolver;
   ErrorListener userListener;
   URIResolver userResolver;
 
@@ -341,5 +345,46 @@ public class TransformerFactoryImpl
   {
     return userListener;
   }
+
+  /**
+   * Syntax: TransformerFactoryImpl [<stylesheet> [<input> [<output>]]]
+   */
+  public static void main(String[] args)
+    throws Exception
+  {
+    InputStream stylesheet = null, in = null;
+    OutputStream out = null;
+    try
+      {
+        if (args.length > 0)
+          {
+            stylesheet = new FileInputStream(args[0]);
+            if (args.length > 1)
+              {
+                in = new FileInputStream(args[1]);
+                if (args.length > 2)
+                  out = new FileOutputStream(args[2]);
+              }
+          }
+        if (in == null)
+          in = System.in;
+        if (out == null)
+          out = System.out;
+        TransformerFactory f = new TransformerFactoryImpl();
+        Transformer t = (stylesheet != null) ?
+          f.newTransformer(new StreamSource(stylesheet)) :
+          f.newTransformer();
+        t.transform(new StreamSource(in), new StreamResult(out));
+      }
+    finally
+      {
+        if (stylesheet != null)
+          stylesheet.close();
+        if (in != null && in instanceof FileInputStream)
+          in.close();
+        if (out != null && out instanceof FileOutputStream)
+          out.close();
+      }
+  }
   
 }
index cf4048847366e64dc2c361342580c9768a410084..b7ff668843bf2d57f27f4966ceae33eb4b07b620 100644 (file)
@@ -1,5 +1,5 @@
 /* TransformerImpl.java -- 
-   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2004,2005,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -128,8 +128,6 @@ class TransformerImpl
       {
         // Suppress mutation events
         ((DomDocument) doc).setBuilding(true);
-        // TODO find a better/more generic way of doing this than
-        // casting
       }
     // Get the result tree
     Node parent = null, nextSibling = null;
@@ -147,8 +145,6 @@ class TransformerImpl
             DomDocument drdoc = (DomDocument) rdoc;
             drdoc.setBuilding(true);
             drdoc.setCheckWellformedness(false);
-            // TODO find a better/more generic way of doing this than
-            // casting
           }
       }
     boolean created = false;
@@ -184,9 +180,7 @@ class TransformerImpl
           {
             // Done transforming, reset document
             if (doc instanceof DomDocument)
-              {
-                ((DomDocument) doc).setBuilding(false);
-              }
+              ((DomDocument) doc).setBuilding(false);
             throw e;
           }
       }
@@ -214,17 +208,11 @@ class TransformerImpl
               }
             Document sourceDoc = context.getOwnerDocument();
             if (sourceDoc != resultDoc)
-              {
-                clone = resultDoc.adoptNode(clone);
-              }
+              clone = resultDoc.adoptNode(clone);
             if (nextSibling != null)
-              {
-                parent.insertBefore(clone, nextSibling);
-              }
+              parent.insertBefore(clone, nextSibling);
             else
-              {
-                parent.appendChild(clone);
-              }
+              parent.appendChild(clone);
           }
         else
           {
@@ -256,15 +244,18 @@ class TransformerImpl
         DomDocument resultDoc = (DomDocument) parent;
         Node root = resultDoc.getDocumentElement();
         // Add doctype if specified
-        if ((publicId != null || systemId != null) &&
-            root != null)
+        if (publicId != null || systemId != null)
           {
-            // We must know the name of the root element to
-            // create the document type
-            resultDoc.appendChild(new DomDoctype(resultDoc,
-                                                 root.getNodeName(),
-                                                 publicId,
-                                                 systemId));
+            if (root != null)
+              {
+                // We must know the name of the root element to
+                // create the document type
+                DocumentType doctype = new DomDoctype(resultDoc,
+                                                      root.getNodeName(),
+                                                      publicId,
+                                                      systemId);
+                resultDoc.insertBefore(doctype, root);
+              }
           }
         resultDoc.setBuilding(false);
         resultDoc.setCheckWellformedness(true);
@@ -279,43 +270,25 @@ class TransformerImpl
               (Document) parent :
               parent.getOwnerDocument();
             DOMImplementation impl = resultDoc.getImplementation();
-            DocumentType doctype =
-              impl.createDocumentType(resultDoc.getNodeName(),
-                                      publicId,
-                                      systemId);
-            // Try to insert doctype before first element
-            Node ctx = parent.getFirstChild();
-            for (; ctx != null &&
-                 ctx.getNodeType() != Node.ELEMENT_NODE;
-                 ctx = ctx.getNextSibling())
+            Node root = resultDoc.getDocumentElement();
+            if (root != null)
               {
-              }
-            if (ctx != null)
-              {
-                parent.insertBefore(doctype, ctx);
-              }
-            else
-              {
-                parent.appendChild(doctype);
+                DocumentType doctype =
+                  impl.createDocumentType(root.getNodeName(),
+                                          publicId,
+                                          systemId);
+                resultDoc.insertBefore(doctype, root);
               }
           }
       }
     if (version != null)
-      {
-        parent.setUserData("version", version, stylesheet);
-      }
+      parent.setUserData("version", version, stylesheet);
     if (omitXmlDeclaration)
-      {
-        parent.setUserData("omit-xml-declaration", "yes", stylesheet);
-      }
+      parent.setUserData("omit-xml-declaration", "yes", stylesheet);
     if (standalone)
-      {
-        parent.setUserData("standalone", "yes", stylesheet);
-      }
+      parent.setUserData("standalone", "yes", stylesheet);
     if (mediaType != null)
-      {
-        parent.setUserData("media-type", mediaType, stylesheet);
-      }
+      parent.setUserData("media-type", mediaType, stylesheet);
     if (cdataSectionElements != null)
       {
         List list = new LinkedList();
@@ -390,13 +363,9 @@ class TransformerImpl
         if (ex != null)
           {
             if (errorListener != null)
-              {
-                errorListener.error(new TransformerException(ex));
-              }
+              errorListener.error(new TransformerException(ex));
             else
-              {
-                ex.printStackTrace(System.err);
-              }
+              ex.printStackTrace(System.err);
           }
       }
     else if (outputTarget instanceof SAXResult)
@@ -407,22 +376,16 @@ class TransformerImpl
             ContentHandler ch = sr.getHandler();
             LexicalHandler lh = sr.getLexicalHandler();
             if (lh == null && ch instanceof LexicalHandler)
-              {
-                lh = (LexicalHandler) ch;
-              }
+              lh = (LexicalHandler) ch;
             SAXSerializer serializer = new SAXSerializer();
             serializer.serialize(parent, ch, lh);
           }
         catch (SAXException e)
           {
             if (errorListener != null)
-              {
-                errorListener.error(new TransformerException(e));
-              }
+              errorListener.error(new TransformerException(e));
             else
-              {
-                e.printStackTrace(System.err);
-              }
+              e.printStackTrace(System.err);
           }
       }
   }
@@ -430,7 +393,7 @@ class TransformerImpl
   /**
    * Strip whitespace from the source tree.
    */
-  void strip(Node node)
+  boolean strip(Node node)
     throws TransformerConfigurationException
   {
     short nt = node.getNodeType();
@@ -438,44 +401,101 @@ class TransformerImpl
       {
         // Replace entity reference with its content
         Node parent = node.getParentNode();
+        Node nextSibling = node.getNextSibling();
         Node child = node.getFirstChild();
-        if (child != null)
-          {
-            strip(child);
-          }
         while (child != null)
           {
             Node next = child.getNextSibling();
             node.removeChild(child);
-            parent.insertBefore(child, node);
+            if (nextSibling != null)
+              parent.insertBefore(child, nextSibling);
+            else
+              parent.appendChild(child);
             child = next;
           }
-        parent.removeChild(node);
+        return true;
       }
     if (nt == Node.TEXT_NODE || nt == Node.CDATA_SECTION_NODE)
       {
-        if (!stylesheet.isPreserved((Text) node))
+        // Denormalize text into whitespace and non-whitespace nodes
+        String text = node.getNodeValue();
+        String[] tokens = tokenizeWhitespace(text);
+        if (tokens.length > 1)
           {
-            node.getParentNode().removeChild(node);
-          }
-        else
-          {
-            String text = node.getNodeValue();
-            String stripped = text.trim();
-            if (!text.equals(stripped))
+            node.setNodeValue(tokens[0]);
+            Node parent = node.getParentNode();
+            Node nextSibling = node.getNextSibling();
+            Document doc = node.getOwnerDocument();
+            for (int i = 1; i < tokens.length; i++)
               {
-                node.setNodeValue(stripped);
+                Node newChild = (nt == Node.CDATA_SECTION_NODE) ?
+                  doc.createCDATASection(tokens[i]) :
+                  doc.createTextNode(tokens[i]);
+                if (nextSibling != null)
+                  parent.insertBefore(newChild, nextSibling);
+                else
+                  parent.appendChild(newChild);
               }
           }
+        return !stylesheet.isPreserved((Text) node, true);
       }
     else
       {
-        for (Node child = node.getFirstChild(); child != null;
-             child = child.getNextSibling())
+        Node child = node.getFirstChild();
+        while (child != null)
           {
-            strip(child);
+            boolean remove = strip(child);
+            Node next = child.getNextSibling();
+            if (remove)
+              node.removeChild(child);
+            child = next;
           }
       }
+    return false;
+  }
+
+  /**
+   * Tokenize the specified text into contiguous whitespace-only and
+   * non-whitespace chunks.
+   */
+  private static String[] tokenizeWhitespace(String text)
+  {
+    int len = text.length();
+    int start = 0, end = len - 1;
+    // Find index of text start
+    for (int i = 0; i < len; i++)
+      {
+        char c = text.charAt(i);
+        boolean whitespace = (c == ' ' || c == '\n' || c == '\t' || c == '\r');
+        if (whitespace)
+          start++;
+        else
+          break;
+      }
+    if (start == end) // all whitespace
+      return new String[] { text };
+    // Find index of text end
+    for (int i = end; i > start; i--)
+      {
+        char c = text.charAt(i);
+        boolean whitespace = (c == ' ' || c == '\n' || c == '\t' || c == '\r');
+        if (whitespace)
+          end--;
+        else
+          break;
+      }
+    if (start == 0 && end == len - 1) // all non-whitespace
+      return new String[] { text };
+    // whitespace, then text, then whitespace
+    String[] ret = (start > 0 && end < len - 1) ?
+      new String[3] : new String[2];
+    int i = 0;
+    if (start > 0)
+      ret[i++] = text.substring(0, start);
+    ret[i++] = text.substring(start, end + 1);
+    if (end < len - 1)
+      ret[i++] = text.substring(end + 1);
+    return ret;
   }
 
   /**
@@ -487,6 +507,7 @@ class TransformerImpl
     throws IOException
   {
     OutputStream out = null;
+    boolean created = false;
     try
       {
         out = sr.getOutputStream();
@@ -494,9 +515,7 @@ class TransformerImpl
           {
             Writer writer = sr.getWriter();
             if (writer != null)
-              {
-                out = new WriterOutputStream(writer);
-              }
+              out = new WriterOutputStream(writer);
           }
         if (out == null)
           {
@@ -523,6 +542,7 @@ class TransformerImpl
                 URL url = new URL(systemId);
                 out = new FileOutputStream(url.getPath());
               }
+            created = true;
           }
         out = new BufferedOutputStream(out);
         StreamSerializer serializer =
@@ -539,10 +559,8 @@ class TransformerImpl
       {
         try
           {
-            if (out != null)
-              {
-                out.close();
-              }
+            if (out != null && created)
+              out.close();
           }
         catch (IOException e)
           {
@@ -564,17 +582,13 @@ class TransformerImpl
   public void setParameter(String name, Object value)
   {
     if (stylesheet != null)
-      {
-        stylesheet.bindings.set(new QName(null, name), value, Bindings.PARAM);
-      }
+      stylesheet.bindings.set(new QName(null, name), value, Bindings.PARAM);
   }
 
   public Object getParameter(String name)
   {
     if (stylesheet != null)
-      {
-        return stylesheet.bindings.get(new QName(null, name), null, 1, 1);
-      }
+      return stylesheet.bindings.get(new QName(null, name), null, 1, 1);
     return null;
   }
 
@@ -601,13 +615,9 @@ class TransformerImpl
     throws IllegalArgumentException
   {
     if (oformat == null)
-      {
-        outputProperties.clear();
-      }
+      outputProperties.clear();
     else
-      {
-        outputProperties.putAll(oformat);
-      }
+      outputProperties.putAll(oformat);
   }
 
   public Properties getOutputProperties()
@@ -689,9 +699,7 @@ class TransformerImpl
                 StringBuffer buf = new StringBuffer();
                 buf.append('\n');
                 for (int i = 0; i < offset + 1; i++)
-                  {
-                    buf.append(INDENT_WHITESPACE);
-                  }
+                  buf.append(INDENT_WHITESPACE);
                 String ws = buf.toString();
                 for (Iterator i = children.iterator(); i.hasNext(); )
                   {
@@ -703,9 +711,7 @@ class TransformerImpl
                 buf.append('\n');
                 ws = buf.toString();
                 for (int i = 0; i < offset; i++)
-                  {
-                    buf.append(INDENT_WHITESPACE);
-                  }
+                  buf.append(INDENT_WHITESPACE);
                 node.appendChild(doc.createTextNode(ws));
               }
           }
@@ -749,9 +755,7 @@ class TransformerImpl
     while (ctx != null)
       {
         if (ctx.hasChildNodes())
-          {
-            convertCdataSectionElements(doc, ctx, list);
-          }
+          convertCdataSectionElements(doc, ctx, list);
         ctx = ctx.getNextSibling();
       }
   }
@@ -761,9 +765,7 @@ class TransformerImpl
     String ln1 = qname.getLocalPart();
     String ln2 = node.getLocalName();
     if (ln2 == null)
-      {
-        return ln1.equals(node.getNodeName());
-      }
+      return ln1.equals(node.getNodeName());
     else
       {
         String uri1 = qname.getNamespaceURI();
index 430598a94b3c6cabb8f5ce988872be61b91b93c9..24c229ea3b32dcd9757f5a39355c1c40f632bc19 100644 (file)
@@ -1,5 +1,5 @@
 /* ValueOfNode.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -69,26 +69,18 @@ final class ValueOfNode
     TemplateNode ret = new ValueOfNode(select.clone(stylesheet),
                                        disableOutputEscaping);
     if (children != null)
-      {
-        ret.children = children.clone(stylesheet);
-      }
+      ret.children = children.clone(stylesheet);
     if (next != null)
-      {
-        ret.next = next.clone(stylesheet);
-      }
+      ret.next = next.clone(stylesheet);
     return ret;
   }
 
   void doApply(Stylesheet stylesheet, QName mode,
-             Node context, int pos, int len,
-             Node parent, Node nextSibling)
+               Node context, int pos, int len,
+               Node parent, Node nextSibling)
     throws TransformerException
   {
     Object ret = select.evaluate(context, pos, len);
-    /*if (stylesheet.debug)
-      {
-        System.err.println("value-of: " + select + " -> " + ret);
-      }*/
     String value;
     if (ret instanceof Collection)
       {
@@ -100,47 +92,35 @@ final class ValueOfNode
           }
         value = buf.toString();
       }
+    else if (ret == null)
+      value = "";
     else
-      {
-        value = Expr._string(context, ret);
-      }
+      value = Expr._string(context, ret);
     if (stylesheet.debug)
-      {
-        System.err.println("value-of: "+context+" "+ select + " -> "+ value);
-      }
+      System.err.println("value-of: "+context+" "+ select + " -> "+ value);
     if (value != null && value.length() > 0)
       {
         Document doc = (parent instanceof Document) ?
           (Document) parent : parent.getOwnerDocument();
         Text textNode = doc.createTextNode(value);
         if (disableOutputEscaping)
-          {
-            textNode.setUserData("disable-output-escaping", "yes", stylesheet);
-          }
+          textNode.setUserData("disable-output-escaping", "yes", stylesheet);
         if (nextSibling != null)
-          {
-            parent.insertBefore(textNode, nextSibling);
-          }
+          parent.insertBefore(textNode, nextSibling);
         else
-          {
-            parent.appendChild(textNode);
-          }
+          parent.appendChild(textNode);
       }
     // value-of doesn't process children
     if (next != null)
-      {
-        next.apply(stylesheet, mode,
-                   context, pos, len,
-                   parent, nextSibling);
-      }
+      next.apply(stylesheet, mode,
+                 context, pos, len,
+                 parent, nextSibling);
   }
 
   public boolean references(QName var)
   {
     if (select != null && select.references(var))
-      {
-        return true;
-      }
+      return true;
     return super.references(var);
   }
   
@@ -151,9 +131,7 @@ final class ValueOfNode
     buf.append("select=");
     buf.append(select);
     if (disableOutputEscaping)
-      {
-        buf.append(",disableOutputEscaping");
-      }
+      buf.append(",disableOutputEscaping");
     buf.append(']');
     return buf.toString();
   }
index b4b55dcf94ea6892b7e2613d90d4fe102a1e2fb2..76fd49eeff5870ff576320c1926fece6aa68019e 100644 (file)
@@ -1,5 +1,5 @@
 /* Expr.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -233,9 +233,11 @@ public abstract class Expr
    */
   public static String _local_name(Node context, Collection nodeSet)
   {
-    Node node = (nodeSet == null || nodeSet.size() == 0) ? context :
-      firstNode(nodeSet);
-    return node.getLocalName();
+    if (nodeSet == null || nodeSet.isEmpty())
+      return "";
+    Node node = firstNode(nodeSet);
+    String ret = node.getLocalName();
+    return (ret == null) ? "" : ret;
   }
 
   /**
@@ -248,9 +250,11 @@ public abstract class Expr
    */
   public static String _namespace_uri(Node context, Collection nodeSet)
   {
-    Node node = (nodeSet == null || nodeSet.size() == 0) ? context :
-      firstNode(nodeSet);
-    return node.getNamespaceURI();
+    if (nodeSet == null || nodeSet.isEmpty())
+      return "";
+    Node node = firstNode(nodeSet);
+    String ret = node.getNamespaceURI();
+    return (ret == null) ? "" : ret;
   }
   
   /**
@@ -271,17 +275,18 @@ public abstract class Expr
    */
   public static String _name(Node context, Collection nodeSet)
   {
-    Node node = (nodeSet == null || nodeSet.size() == 0) ? context :
-      firstNode(nodeSet);
+    if (nodeSet == null || nodeSet.isEmpty())
+      return "";
+    Node node = firstNode(nodeSet);
+    String ret = null;
     switch (node.getNodeType())
       {
       case Node.ATTRIBUTE_NODE:
       case Node.ELEMENT_NODE:
       case Node.PROCESSING_INSTRUCTION_NODE:
-        return node.getNodeName();
-      default:
-        return "";
+        ret = node.getNodeName();
       }
+    return (ret == null) ? "" : ret;
   }
 
   /**
@@ -371,7 +376,10 @@ public abstract class Expr
       }
     if (object instanceof Double)
       {
-        return ((Double) object).doubleValue() != 0.0;
+        Double value = (Double) object;
+        if (value.isNaN())
+          return false;
+        return value.doubleValue() != 0.0;
       }
     if (object instanceof String)
       {
@@ -473,4 +481,15 @@ public abstract class Expr
       }
   }
 
+  static int intValue(Object val)
+  {
+    if (val instanceof Double)
+      {
+        Double d = (Double) val;
+        return d.isNaN() ? 0 : d.intValue();
+      }
+    else
+      return (int) Math.ceil(_number(null, val));
+  }
+
 }
index f8ace9cd5f9096d98f8b73fcd88b1b2339897079..84fb6d4828846bac53c5ff42d332d1b96854087c 100644 (file)
@@ -1,5 +1,5 @@
 /* LocalNameFunction.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -38,6 +38,7 @@ exception statement from your version. */
 package gnu.xml.xpath;
 
 import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 import javax.xml.namespace.QName;
 import org.w3c.dom.Node;
@@ -70,7 +71,8 @@ final class LocalNameFunction
 
   public Object evaluate(Node context, int pos, int len)
   {
-    Object val = (arg == null) ? null : arg.evaluate(context, pos, len);
+    Object val = (arg == null) ? Collections.singleton(context) :
+        arg.evaluate(context, pos, len);
     return _local_name(context, (Collection) val);
   }
 
index dc5e612037af5e0c79d413068d9dbf454c7b05ee..ea49741fa57406291830c7a1791433e1e66d1990 100644 (file)
@@ -1,5 +1,5 @@
 /* NameFunction.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -38,6 +38,7 @@ exception statement from your version. */
 package gnu.xml.xpath;
 
 import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 import javax.xml.namespace.QName;
 import org.w3c.dom.Node;
@@ -78,7 +79,8 @@ final class NameFunction
 
   public Object evaluate(Node context, int pos, int len)
   {
-    Object val = (arg == null) ? null : arg.evaluate(context, pos, len);
+    Object val = (arg == null) ? Collections.singleton(context) :
+        arg.evaluate(context, pos, len);
     return _name(context, (Collection) val);
   }
 
index c89ba4dd16b6dc0d0e923477adf702a3228ed52c..1710103903de728f6fee1e7d6b55c2a715cca54e 100644 (file)
@@ -1,5 +1,5 @@
 /* NameTest.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -91,29 +91,32 @@ public final class NameTest
         return false;
       }
     if (any)
-      {
-        return true;
-      }
+      return true;
     String uri = qName.getNamespaceURI();
     String nodeUri = node.getNamespaceURI();
-    String nodeLocalName = node.getLocalName();
-    if (nodeLocalName != null && !equal(uri, nodeUri))
-      {
-        return false;
-      }
+    if (!equal(uri, nodeUri))
+      return false;
     if (anyLocalName)
-      {
-        return true;
-      }
+      return true;
     String localName = qName.getLocalPart();
-    if (nodeLocalName != null)
+    String nodeLocalName = getLocalName(node);
+    return (localName.equals(nodeLocalName));
+  }
+
+  static String getLocalName(Node node)
+  {
+    String localName = node.getLocalName();
+    if (localName == null)
       {
-        nodeLocalName = node.getNodeName();
+        localName = node.getNodeName();
+        int ci = localName.indexOf(':');
+        if (ci != -1)
+          localName = localName.substring(ci + 1);
       }
-    return (localName.equals(nodeLocalName));
+    return localName;
   }
 
-  final boolean equal(String s1, String s2)
+  static boolean equal(String s1, String s2)
   {
     return (((s1 == null || s1.length() == 0) &&
              (s2 == null || s2.length() == 0)) ||
@@ -133,9 +136,7 @@ public final class NameTest
   public String toString ()
   {
     if (any)
-      {
-        return "*";
-      }
+      return "*";
     return qName.toString();
   }
   
index 6d41166bcb99527d3679bbe7105390d864b7d1f6..d93b76d9de8335fe3c205d681975c34537d98fb9 100644 (file)
@@ -81,28 +81,22 @@ public final class NamespaceTest
         if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(uri) ||
             XMLConstants.XMLNS_ATTRIBUTE.equals(node.getPrefix()) ||
             XMLConstants.XMLNS_ATTRIBUTE.equals(node.getNodeName()))
-          {
-            break;
-          }
+          break;
         // Fall through
       default:
         // Only process namespace attributes
         return false;
       }
     if (any)
-      {
-        return true;
-      }
+      return true;
+    String uri = qName.getNamespaceURI();
+    String nodeUri = node.getNamespaceURI();
+    if (!NameTest.equal(uri, nodeUri))
+      return false;
     if (anyLocalName)
-      {
-        return true;
-      }
+      return true;
     String localName = qName.getLocalPart();
-    String nodeLocalName = node.getLocalName();
-    if (nodeLocalName == null)
-      {
-        nodeLocalName = node.getNodeName();
-      }
+    String nodeLocalName = NameTest.getLocalName(node);
     return (localName.equals(nodeLocalName));
   }
 
@@ -119,9 +113,7 @@ public final class NamespaceTest
   public String toString ()
   {
     if (any)
-      {
-        return "*";
-      }
+      return "*";
     return qName.toString();
   }
   
index e67ec42065e0eab8799fb3e49364acc354204a9e..3ae46f7ee71d3c4b7b0a4bbc86ec605a85ddce6b 100644 (file)
@@ -1,5 +1,5 @@
 /* NamespaceUriFunction.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -38,6 +38,7 @@ exception statement from your version. */
 package gnu.xml.xpath;
 
 import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 import javax.xml.namespace.QName;
 import org.w3c.dom.Node;
@@ -70,7 +71,8 @@ final class NamespaceUriFunction
 
   public Object evaluate(Node context, int pos, int len)
   {
-    Object val = (arg == null) ? null : arg.evaluate(context, pos, len);
+    Object val = (arg == null) ? Collections.singleton(context) :
+        arg.evaluate(context, pos, len);
     return _namespace_uri(context, (Collection) val);
   }
 
index 807374132e5f0aaa2929ce7112d7a52691aa5200..09e92d0d9a2bd93e766026d70a5eb5b45464c399 100644 (file)
@@ -1,5 +1,5 @@
 /* NodeTypeTest.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -39,6 +39,7 @@ package gnu.xml.xpath;
 
 import javax.xml.namespace.QName;
 import org.w3c.dom.Node;
+import org.w3c.dom.ProcessingInstruction;
 
 /**
  * Tests whether a node is of a given type.
@@ -83,17 +84,20 @@ public final class NodeTypeTest
       case Node.TEXT_NODE:
       case Node.CDATA_SECTION_NODE:
       case Node.COMMENT_NODE:
+        if (type > 0)
+          {
+            if (nodeType != type)
+              return false;
+          }
+        return true;
       case Node.PROCESSING_INSTRUCTION_NODE:
         if (type > 0)
           {
             if (nodeType != type)
-              {
-                return false;
-              }
-            if (data != null && !data.equals(node.getNodeValue()))
-              {
-                return false;
-              }
+              return false;
+            if (data != null &&
+                !data.equals(((ProcessingInstruction) node).getTarget()))
+              return false;
           }
         return true;
       default:
index 598038064b5b1ca9f134c3406ac53ed160dd9f13..93408e48b231210d800fb9b181e89eb3758c3b49 100644 (file)
@@ -1,5 +1,5 @@
 /* Selector.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -85,11 +85,13 @@ public final class Selector
   public Selector(int axis, List tests)
   {
     this.axis = axis;
-    this.tests = new Test[tests.size()];
-    tests.toArray(this.tests);
-    if (axis == NAMESPACE &&
-        this.tests.length > 0 &&
-        this.tests[0] instanceof NameTest)
+    int len = tests.size();
+    this.tests = new Test[(len == 0) ? 1 : len];
+    if (len > 0)
+      tests.toArray(this.tests);
+    else
+      this.tests[0] = new NameTest(null, true, true);
+    if (axis == NAMESPACE && this.tests[0] instanceof NameTest)
       {
         NameTest nt = (NameTest) this.tests[0];
         this.tests[0] = new NamespaceTest(nt.qName, nt.anyLocalName, nt.any);
@@ -111,16 +113,12 @@ public final class Selector
       {
       case CHILD:
         if (nodeType == Node.ATTRIBUTE_NODE)
-          {
-            return false;
-          }
+          return false;
         break;
       case ATTRIBUTE:
       case NAMESPACE:
         if (nodeType != Node.ATTRIBUTE_NODE)
-          {
-            return false;
-          }
+          return false;
         break;
       case DESCENDANT_OR_SELF:
         return true;
@@ -132,13 +130,13 @@ public final class Selector
       {
         int pos = getContextPosition(context);
         int len = getContextSize(context);
+        if (len == 0)
+          System.err.println("WARNING: context size is 0");
         for (int j = 0; j < tlen && len > 0; j++)
           {
             Test test = tests[j];
             if (!test.matches(context, pos, len))
-              {
-                return false;
-              }
+              return false;
           }
       }
     return true;
@@ -149,9 +147,7 @@ public final class Selector
     int pos = 1;
     for (ctx = ctx.getPreviousSibling(); ctx != null;
          ctx = ctx.getPreviousSibling())
-      {
-        pos++;
-      }
+      pos++;
     return pos;
   }
 
@@ -159,15 +155,17 @@ public final class Selector
   {
     if (ctx.getNodeType() == Node.ATTRIBUTE_NODE)
       {
-        Node parent = ((Attr) ctx).getOwnerElement();
-        return parent.getAttributes().getLength();
-      }
-    Node parent = ctx.getParentNode();
-    if (parent != null)
-      {
-        return parent.getChildNodes().getLength();
+        Node owner = ((Attr) ctx).getOwnerElement();
+        return owner.getAttributes().getLength();
       }
-    return 1;
+    int count = 1;
+    Node sib = ctx.getPreviousSibling();
+    for (; sib != null; sib = sib.getPreviousSibling())
+      count++;
+    sib = ctx.getNextSibling();
+    for (; sib != null; sib = sib.getNextSibling())
+      count++;
+    return count;
   }
 
   public Object evaluate(Node context, int pos, int len)
@@ -175,7 +173,6 @@ public final class Selector
     Set acc = new LinkedHashSet();
     addCandidates(context, acc);
     List candidates = new ArrayList(acc);
-    //Collections.sort(candidates, documentOrderComparator);
     List ret = filterCandidates(candidates, false);
     return ret;
   }
@@ -184,11 +181,8 @@ public final class Selector
   {
     Set acc = new LinkedHashSet();
     for (Iterator i = ns.iterator(); i.hasNext(); )
-      {
-        addCandidates((Node) i.next(), acc);
-      }
+      addCandidates((Node) i.next(), acc);
     List candidates = new ArrayList(acc);
-    //Collections.sort(candidates, documentOrderComparator);
     List ret = filterCandidates(candidates, true);
     return ret;
   }
@@ -230,17 +224,7 @@ public final class Selector
                       }
                   }
                 if (test.matches(node, i + 1, len))
-                  {
-                    successful.add(node);
-                  }
-                /*
-                   System.err.println("Testing "+node);
-                   int p = getContextPosition(node);
-                   int l = getContextSize(node);
-                   if (test.matches(node, p, l))
-                   {
-                   successful.add(node);
-                   }*/
+                  successful.add(node);
               }
             candidates = successful;
             len = candidates.size();
@@ -305,9 +289,7 @@ public final class Selector
       {
         acc.add(child);
         if (recurse)
-          {
-            addChildNodes(child, acc, recurse);
-          }
+          addChildNodes(child, acc, recurse);
         child = child.getNextSibling();
       }
   }
@@ -320,55 +302,62 @@ public final class Selector
       {
         acc.add(parent);
         if (recurse)
-          {
-            addParentNode(parent, acc, recurse);
-          }
+          addParentNode(parent, acc, recurse);
       }
   }
 
   void addFollowingNodes(Node context, Collection acc, boolean recurse)
   {
-    Node cur = context.getNextSibling();
+    if (context != null && recurse)
+      addChildNodes(context, acc, true);
+    Node cur = (context.getNodeType() == Node.ATTRIBUTE_NODE) ? null :
+      context.getNextSibling();
     while (cur != null)
       {
         acc.add(cur);
         if (recurse)
-          {
-            addChildNodes(cur, acc, true);
-          }
+          addChildNodes(cur, acc, true);
         cur = cur.getNextSibling();
       }
     if (recurse)
       {
-        context = (context.getNodeType() == Node.ATTRIBUTE_NODE) ?
-          ((Attr) context).getOwnerElement() : context.getParentNode();
-        if (context != null)
+        while (context != null)
           {
-            addFollowingNodes(context, acc, recurse);
+            context = (context.getNodeType() == Node.ATTRIBUTE_NODE) ?
+              ((Attr) context).getOwnerElement() : context.getParentNode();
+            if (context != null)
+              {
+                cur = context.getNextSibling();
+                while (cur != null)
+                  {
+                    acc.add(cur);
+                    if (recurse)
+                      addChildNodes(cur, acc, true);
+                    cur = cur.getNextSibling();
+                  }
+              }
           }
       }
   }
 
   void addPrecedingNodes(Node context, Collection acc, boolean recurse)
   {
-    Node cur = context.getPreviousSibling();
+    Node cur = (context.getNodeType() == Node.ATTRIBUTE_NODE) ? null :
+      context.getPreviousSibling();
     while (cur != null)
       {
         acc.add(cur);
         if (recurse)
-          {
-            addChildNodes(cur, acc, true);
-          }
+          addChildNodes(cur, acc, true);
         cur = cur.getPreviousSibling();
       }
     if (recurse)
       {
-        context = (context.getNodeType() == Node.ATTRIBUTE_NODE) ?
-          ((Attr) context).getOwnerElement() : context.getParentNode();
-        if (context != null)
-          {
-            addPrecedingNodes(context, acc, recurse);
-          }
+        cur = context;
+        cur = (cur.getNodeType() == Node.ATTRIBUTE_NODE) ?
+          ((Attr) cur).getOwnerElement() : cur.getParentNode();
+        if (cur != null)
+          addPrecedingNodes(cur, acc, recurse);
       }
   }
 
@@ -399,9 +388,7 @@ public final class Selector
           {
             Node attr = attrs.item(i);
             if (isNamespaceAttribute(attr))
-              {
-                acc.add(attr);
-              }
+              acc.add(attr);
           }
       }
   }
@@ -419,9 +406,7 @@ public final class Selector
     int len = tests.length;
     List tests2 = new ArrayList(len);
     for (int i = 0; i < len; i++)
-      {
-        tests2.add(tests[i].clone(context));
-      }
+      tests2.add(tests[i].clone(context));
     return new Selector(axis, tests2);
   }
 
@@ -430,9 +415,7 @@ public final class Selector
     for (int i = 0; i < tests.length; i++)
       {
         if (tests[i].references(var))
-          {
-            return true;
-          }
+          return true;
       }
     return false;
   }
@@ -451,13 +434,9 @@ public final class Selector
       case ATTRIBUTE:
         if (tests.length == 0 ||
             (tests[0] instanceof NameTest))
-          {
-            buf.append('@');
-          }
+          buf.append('@');
         else
-          {
-            buf.append("attribute::");
-          }
+          buf.append("attribute::");
         break;
       case CHILD:
         //buf.append("child::");
@@ -481,9 +460,7 @@ public final class Selector
         if (tests.length == 0 ||
             (tests[0] instanceof NodeTypeTest &&
              ((NodeTypeTest) tests[0]).type == 0))
-          {
-            return "..";
-          }
+          return "..";
         buf.append("parent::");
         break;
       case PRECEDING:
@@ -496,22 +473,16 @@ public final class Selector
         if (tests.length == 0 ||
             (tests[0] instanceof NodeTypeTest &&
              ((NodeTypeTest) tests[0]).type == 0))
-          {
-            return ".";
-          }
+          return ".";
         buf.append("self::");
         break;
       }
     if (tests.length == 0)
-      {
-        buf.append('*');
-      }
+      buf.append("[error]");
     else
       {
         for (int i = 0; i < tests.length; i++)
-          {
-            buf.append(tests[i]);
-          }
+          buf.append(tests[i]);
       }
     return buf.toString();
   }
index d65c4facb8a93003b27cd7ce89ff233487249e5e..e926f6c7aeb61faa79ba3cf1487377054efb99d0 100644 (file)
@@ -78,31 +78,20 @@ final class SubstringFunction
     Object val1 = arg1.evaluate(context, pos, len);
     Object val2 = arg2.evaluate(context, pos, len);
     String s = _string(context, val1);
-    int p = (val2 instanceof Double) ?
-      ((Double) val2).intValue() :
-        (int) Math.round(_number(context, val2));
-    p--;
+    int p = Expr.intValue(val2) - 1;
     if (p < 0)
-      {
-        p = 0;
-      }
+      p = 0;
 
     int l = s.length() - p;
     if (l <= 0)
-      {
-        return "";
-      }
+      return "";
 
     if (arg3 != null)
       {
         Object val3 = arg3.evaluate(context, pos, len);
-        int v3 = (val3 instanceof Double) ?
-          ((Double) val3).intValue() :
-            (int) Math.round(_number(context, val3));
+        int v3 = Expr.intValue(val3);
         if (v3 < l) 
-          {
-            l = v3;
-          }
+          l = v3;
       }
 
     return s.substring(p, p + l);
index ab9b40c0f418b4031c85d0363250353ec6149aa6..eeae36a942e6656384f60683b2951a94e31ba0a5 100644 (file)
@@ -1,11 +1,12 @@
 ## GCJ LOCAL: headers are installed specially.
 ##include_HEADERS = jni.h jni_md.h jawt.h jawt_md.h
 
-DISTCLEANFILES = jni_md.h
+DISTCLEANFILES = jni_md.h config-int.h
 
 ARG_JNI_JAVAH = -jni
 ARG_CLASSPATH_JAVAH = -bootclasspath
 JAVAH = $(USER_JAVAH) $(ARG_JNI_JAVAH) $(ARG_CLASSPATH_JAVAH) ../lib:$(USER_CLASSLIB)
+CLASSDIR = lib
 
 SOUND_H_FILES = \
 $(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h \
@@ -143,25 +144,25 @@ if CREATE_JNI_HEADERS
 
 all-local: $(H_FILES)
 
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_%.h: $(top_builddir)/lib/gnu/xml/libxmlj/dom/%.class
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/dom/%.class
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.$*
 
-$(top_srcdir)/include/gnu_xml_libxmlj_sax_%.h: $(top_builddir)/lib/gnu/xml/libxmlj/sax/%.class
+$(top_srcdir)/include/gnu_xml_libxmlj_sax_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/sax/%.class
        $(JAVAH) -o $@ gnu.xml.libxmlj.sax.$*
 
-$(top_srcdir)/include/gnu_xml_libxmlj_transform_%.h: $(top_builddir)/lib/gnu/xml/libxmlj/transform/%.class
+$(top_srcdir)/include/gnu_xml_libxmlj_transform_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/transform/%.class
        $(JAVAH) -o $@ gnu.xml.libxmlj.transform.$*
 
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_%.h: $(top_builddir)/lib/gnu/java/awt/peer/gtk/%.class
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/awt/peer/gtk/%.class
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.$*
 
-$(top_srcdir)/include/gnu_java_awt_peer_qt_%.h: $(top_builddir)/lib/gnu/java/awt/peer/qt/%.class
+$(top_srcdir)/include/gnu_java_awt_peer_qt_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/awt/peer/qt/%.class
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.$*
 
-$(top_srcdir)/include/gnu_javax_sound_midi_alsa_%.h: $(top_builddir)/lib/gnu/javax/sound/midi/alsa/%.class
+$(top_srcdir)/include/gnu_javax_sound_midi_alsa_%.h: $(top_builddir)/$(CLASSDIR)/gnu/javax/sound/midi/alsa/%.class
        $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.$*
 
-$(top_srcdir)/include/gnu_javax_sound_midi_dssi_%.h: $(top_builddir)/lib/gnu/javax/sound/midi/dssi/%.class
+$(top_srcdir)/include/gnu_javax_sound_midi_dssi_%.h: $(top_builddir)/$(CLASSDIR)/gnu/javax/sound/midi/dssi/%.class
        $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.$*
 
 $(top_srcdir)/include/gnu_java_net_PlainDatagramSocketImpl.h: $(top_srcdir)/gnu/java/net/PlainDatagramSocketImpl.java
index fc59b767f9f34b725449c1da13e2fe1bfbfcd774..d7aed96a19a469a8ffd9e17ab38368788e2bd960 100644 (file)
@@ -42,10 +42,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -141,6 +142,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -245,10 +247,11 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 vm_classes = @vm_classes@
-DISTCLEANFILES = jni_md.h
+DISTCLEANFILES = jni_md.h config-int.h
 ARG_JNI_JAVAH = -jni
 ARG_CLASSPATH_JAVAH = -bootclasspath
 JAVAH = $(USER_JAVAH) $(ARG_JNI_JAVAH) $(ARG_CLASSPATH_JAVAH) ../lib:$(USER_CLASSLIB)
+CLASSDIR = lib
 SOUND_H_FILES = \
 $(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h \
 $(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h \
@@ -565,25 +568,25 @@ uninstall-am: uninstall-info-am
 
 @CREATE_JNI_HEADERS_TRUE@all-local: $(H_FILES)
 
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_%.h: $(top_builddir)/lib/gnu/xml/libxmlj/dom/%.class
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/dom/%.class
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.$*
 
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_sax_%.h: $(top_builddir)/lib/gnu/xml/libxmlj/sax/%.class
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_sax_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/sax/%.class
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.sax.$*
 
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_transform_%.h: $(top_builddir)/lib/gnu/xml/libxmlj/transform/%.class
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_transform_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/transform/%.class
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.transform.$*
 
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_%.h: $(top_builddir)/lib/gnu/java/awt/peer/gtk/%.class
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/awt/peer/gtk/%.class
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.$*
 
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_%.h: $(top_builddir)/lib/gnu/java/awt/peer/qt/%.class
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/awt/peer/qt/%.class
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.$*
 
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_alsa_%.h: $(top_builddir)/lib/gnu/javax/sound/midi/alsa/%.class
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_alsa_%.h: $(top_builddir)/$(CLASSDIR)/gnu/javax/sound/midi/alsa/%.class
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.$*
 
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_dssi_%.h: $(top_builddir)/lib/gnu/javax/sound/midi/dssi/%.class
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_dssi_%.h: $(top_builddir)/$(CLASSDIR)/gnu/javax/sound/midi/dssi/%.class
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.$*
 
 @CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_net_PlainDatagramSocketImpl.h: $(top_srcdir)/gnu/java/net/PlainDatagramSocketImpl.java
index b67526ff95c8846a1820341e2ebe7c851758e89f..388ee497ecbaca4abbcfc74a0fad8c65b7fb530b 100644 (file)
@@ -87,6 +87,9 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* Define to 1 if you have the `isnan' function. */
+#undef HAVE_ISNAN
+
 /* Define to 1 if you have the `listen' function. */
 #undef HAVE_LISTEN
 
    otherwise */
 #undef PORTABLE_NATIVE_SYNC
 
+/* The size of a `char', as computed by sizeof. */
+#undef SIZEOF_CHAR
+
+/* The size of a `int', as computed by sizeof. */
+#undef SIZEOF_INT
+
+/* The size of a `long', as computed by sizeof. */
+#undef SIZEOF_LONG
+
+/* The size of a `short', as computed by sizeof. */
+#undef SIZEOF_SHORT
+
+/* The size of a `void*', as computed by sizeof. */
+#undef SIZEOF_VOIDP
+
 /* The number of bytes in type void * */
 #undef SIZEOF_VOID_P
 
index 427f0916d1d16ff785b162d64683d6b73b837990..8a87738f2c0c65c73744e23854df4efc43f7c033 100644 (file)
@@ -15,11 +15,11 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_initState__Lgnu_ja
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_initStateUnlocked (JNIEnv *env, jobject, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_initState__II (JNIEnv *env, jobject, jint, jint);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_initFromImage (JNIEnv *env, jobject, jobject);
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_copyState (JNIEnv *env, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_nativeCopyState (JNIEnv *env, jobject, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_connectSignals (JNIEnv *env, jobject, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect (JNIEnv *env, jobject, jint, jint, jint, jint);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_copyArea (JNIEnv *env, jobject, jint, jint, jint, jint, jint, jint);
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_dispose (JNIEnv *env, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_nativeDispose (JNIEnv *env, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawLine (JNIEnv *env, jobject, jint, jint, jint, jint);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawArc (JNIEnv *env, jobject, jint, jint, jint, jint, jint, jint);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillArc (JNIEnv *env, jobject, jint, jint, jint, jint, jint, jint);
diff --git a/libjava/classpath/include/gnu_java_net_PlainDatagramSocketImpl.h b/libjava/classpath/include/gnu_java_net_PlainDatagramSocketImpl.h
deleted file mode 100644 (file)
index 9cb20b7..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-
-#ifndef __gnu_java_net_PlainDatagramSocketImpl__
-#define __gnu_java_net_PlainDatagramSocketImpl__
-
-#include <jni.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainDatagramSocketImpl_bind (JNIEnv *env, jobject, jint, jobject);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainDatagramSocketImpl_create (JNIEnv *env, jobject);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainDatagramSocketImpl_sendto (JNIEnv *env, jobject, jobject, jint, jbyteArray, jint, jint);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainDatagramSocketImpl_receive0 (JNIEnv *env, jobject, jobject);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainDatagramSocketImpl_setOption (JNIEnv *env, jobject, jint, jobject);
-JNIEXPORT jobject JNICALL Java_gnu_java_net_PlainDatagramSocketImpl_getOption (JNIEnv *env, jobject, jint);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainDatagramSocketImpl_close (JNIEnv *env, jobject);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainDatagramSocketImpl_join (JNIEnv *env, jobject, jobject);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainDatagramSocketImpl_leave (JNIEnv *env, jobject, jobject);
-#undef gnu_java_net_PlainDatagramSocketImpl_IP_TTL
-#define gnu_java_net_PlainDatagramSocketImpl_IP_TTL 7777L
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gnu_java_net_PlainDatagramSocketImpl__ */
diff --git a/libjava/classpath/include/gnu_java_net_PlainSocketImpl.h b/libjava/classpath/include/gnu_java_net_PlainSocketImpl.h
deleted file mode 100644 (file)
index 1de21d6..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-
-#ifndef __gnu_java_net_PlainSocketImpl__
-#define __gnu_java_net_PlainSocketImpl__
-
-#include <jni.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainSocketImpl_setOption (JNIEnv *env, jobject, jint, jobject);
-JNIEXPORT jobject JNICALL Java_gnu_java_net_PlainSocketImpl_getOption (JNIEnv *env, jobject, jint);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainSocketImpl_shutdownInput (JNIEnv *env, jobject);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainSocketImpl_shutdownOutput (JNIEnv *env, jobject);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainSocketImpl_create (JNIEnv *env, jobject, jboolean);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainSocketImpl_connect (JNIEnv *env, jobject, jobject, jint);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainSocketImpl_bind (JNIEnv *env, jobject, jobject, jint);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainSocketImpl_listen (JNIEnv *env, jobject, jint);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainSocketImpl_accept (JNIEnv *env, jobject, jobject);
-JNIEXPORT jint JNICALL Java_gnu_java_net_PlainSocketImpl_available (JNIEnv *env, jobject);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainSocketImpl_close (JNIEnv *env, jobject);
-JNIEXPORT jint JNICALL Java_gnu_java_net_PlainSocketImpl_read (JNIEnv *env, jobject, jbyteArray, jint, jint);
-JNIEXPORT void JNICALL Java_gnu_java_net_PlainSocketImpl_write (JNIEnv *env, jobject, jbyteArray, jint, jint);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gnu_java_net_PlainSocketImpl__ */
diff --git a/libjava/classpath/include/gnu_java_net_VMPlainDatagramSocketImpl.h b/libjava/classpath/include/gnu_java_net_VMPlainDatagramSocketImpl.h
new file mode 100644 (file)
index 0000000..616c753
--- /dev/null
@@ -0,0 +1,95 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class gnu_java_net_VMPlainDatagramSocketImpl */
+
+#ifndef _Included_gnu_java_net_VMPlainDatagramSocketImpl
+#define _Included_gnu_java_net_VMPlainDatagramSocketImpl
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef gnu_java_net_VMPlainDatagramSocketImpl_IP_TTL
+#define gnu_java_net_VMPlainDatagramSocketImpl_IP_TTL 7777L
+/*
+ * Class:     gnu_java_net_VMPlainDatagramSocketImpl
+ * Method:    bind
+ * Signature: (Lgnu/java/net/PlainDatagramSocketImpl;ILjava/net/InetAddress;)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_bind
+  (JNIEnv *, jclass, jobject, jint, jobject);
+
+/*
+ * Class:     gnu_java_net_VMPlainDatagramSocketImpl
+ * Method:    create
+ * Signature: (Lgnu/java/net/PlainDatagramSocketImpl;)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_create
+  (JNIEnv *, jclass, jobject);
+
+/*
+ * Class:     gnu_java_net_VMPlainDatagramSocketImpl
+ * Method:    connect
+ * Signature: (Lgnu/java/net/PlainDatagramSocketImpl;Ljava/net/InetAddress;I)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_connect
+  (JNIEnv *, jclass, jobject, jobject, jint);
+
+/*
+ * Class:     gnu_java_net_VMPlainDatagramSocketImpl
+ * Method:    nativeSendTo
+ * Signature: (Lgnu/java/net/PlainDatagramSocketImpl;Ljava/net/InetAddress;I[BII)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_nativeSendTo
+  (JNIEnv *, jclass, jobject, jobject, jint, jbyteArray, jint, jint);
+
+/*
+ * Class:     gnu_java_net_VMPlainDatagramSocketImpl
+ * Method:    nativeReceive
+ * Signature: (Lgnu/java/net/PlainDatagramSocketImpl;[BII[B[I[I)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_nativeReceive
+  (JNIEnv *, jclass, jobject, jbyteArray, jint, jint, jbyteArray, jintArray, jintArray);
+
+/*
+ * Class:     gnu_java_net_VMPlainDatagramSocketImpl
+ * Method:    setOption
+ * Signature: (Lgnu/java/net/PlainDatagramSocketImpl;ILjava/lang/Object;)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_setOption
+  (JNIEnv *, jclass, jobject, jint, jobject);
+
+/*
+ * Class:     gnu_java_net_VMPlainDatagramSocketImpl
+ * Method:    getOption
+ * Signature: (Lgnu/java/net/PlainDatagramSocketImpl;I)Ljava/lang/Object;
+ */
+JNIEXPORT jobject JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_getOption
+  (JNIEnv *, jclass, jobject, jint);
+
+/*
+ * Class:     gnu_java_net_VMPlainDatagramSocketImpl
+ * Method:    close
+ * Signature: (Lgnu/java/net/PlainDatagramSocketImpl;)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_close
+  (JNIEnv *, jclass, jobject);
+
+/*
+ * Class:     gnu_java_net_VMPlainDatagramSocketImpl
+ * Method:    join
+ * Signature: (Lgnu/java/net/PlainDatagramSocketImpl;Ljava/net/InetAddress;)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_join
+  (JNIEnv *, jclass, jobject, jobject);
+
+/*
+ * Class:     gnu_java_net_VMPlainDatagramSocketImpl
+ * Method:    leave
+ * Signature: (Lgnu/java/net/PlainDatagramSocketImpl;Ljava/net/InetAddress;)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainDatagramSocketImpl_leave
+  (JNIEnv *, jclass, jobject, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h b/libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h
new file mode 100644 (file)
index 0000000..1e22aef
--- /dev/null
@@ -0,0 +1,117 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class gnu_java_net_VMPlainSocketImpl */
+
+#ifndef _Included_gnu_java_net_VMPlainSocketImpl
+#define _Included_gnu_java_net_VMPlainSocketImpl
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class:     gnu_java_net_VMPlainSocketImpl
+ * Method:    setOption
+ * Signature: (Lgnu/java/net/PlainSocketImpl;ILjava/lang/Object;)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_setOption
+  (JNIEnv *, jclass, jobject, jint, jobject);
+
+/*
+ * Class:     gnu_java_net_VMPlainSocketImpl
+ * Method:    getOption
+ * Signature: (Lgnu/java/net/PlainSocketImpl;I)Ljava/lang/Object;
+ */
+JNIEXPORT jobject JNICALL Java_gnu_java_net_VMPlainSocketImpl_getOption
+  (JNIEnv *, jclass, jobject, jint);
+
+/*
+ * Class:     gnu_java_net_VMPlainSocketImpl
+ * Method:    create
+ * Signature: (Lgnu/java/net/PlainSocketImpl;)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_create
+  (JNIEnv *, jclass, jobject);
+
+/*
+ * Class:     gnu_java_net_VMPlainSocketImpl
+ * Method:    connect
+ * Signature: (Lgnu/java/net/PlainSocketImpl;Ljava/net/InetAddress;I)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_connect
+  (JNIEnv *, jclass, jobject, jobject, jint);
+
+/*
+ * Class:     gnu_java_net_VMPlainSocketImpl
+ * Method:    bind
+ * Signature: (Lgnu/java/net/PlainSocketImpl;Ljava/net/InetAddress;I)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_bind
+  (JNIEnv *, jclass, jobject, jobject, jint);
+
+/*
+ * Class:     gnu_java_net_VMPlainSocketImpl
+ * Method:    listen
+ * Signature: (Lgnu/java/net/PlainSocketImpl;I)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_listen
+  (JNIEnv *, jclass, jobject, jint);
+
+/*
+ * Class:     gnu_java_net_VMPlainSocketImpl
+ * Method:    accept
+ * Signature: (Lgnu/java/net/PlainSocketImpl;Ljava/net/SocketImpl;)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_accept
+  (JNIEnv *, jclass, jobject, jobject);
+
+/*
+ * Class:     gnu_java_net_VMPlainSocketImpl
+ * Method:    available
+ * Signature: (Lgnu/java/net/PlainSocketImpl;)I
+ */
+JNIEXPORT jint JNICALL Java_gnu_java_net_VMPlainSocketImpl_available
+  (JNIEnv *, jclass, jobject);
+
+/*
+ * Class:     gnu_java_net_VMPlainSocketImpl
+ * Method:    close
+ * Signature: (Lgnu/java/net/PlainSocketImpl;)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_close
+  (JNIEnv *, jclass, jobject);
+
+/*
+ * Class:     gnu_java_net_VMPlainSocketImpl
+ * Method:    read
+ * Signature: (Lgnu/java/net/PlainSocketImpl;[BII)I
+ */
+JNIEXPORT jint JNICALL Java_gnu_java_net_VMPlainSocketImpl_read
+  (JNIEnv *, jclass, jobject, jbyteArray, jint, jint);
+
+/*
+ * Class:     gnu_java_net_VMPlainSocketImpl
+ * Method:    write
+ * Signature: (Lgnu/java/net/PlainSocketImpl;[BII)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_write
+  (JNIEnv *, jclass, jobject, jbyteArray, jint, jint);
+
+/*
+ * Class:     gnu_java_net_VMPlainSocketImpl
+ * Method:    shutdownInput
+ * Signature: (Lgnu/java/net/PlainSocketImpl;)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_shutdownInput
+  (JNIEnv *, jclass, jobject);
+
+/*
+ * Class:     gnu_java_net_VMPlainSocketImpl
+ * Method:    shutdownOutput
+ * Signature: (Lgnu/java/net/PlainSocketImpl;)V
+ */
+JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_shutdownOutput
+  (JNIEnv *, jclass, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
index 1b67c01cfcb88b7f677d9c520eaf2aa97cdd6292..7c8c582a96b5a633dd1989e7b072f8c77b6edb7f 100644 (file)
@@ -415,7 +415,7 @@ public class BorderLayout implements LayoutManager2, java.io.Serializable
    */
   public Dimension maximumLayoutSize(Container target)
   {
-    return calcSize(target, MAX);
+    return new Dimension (Integer.MAX_VALUE, Integer.MAX_VALUE);
   }
 
   /**
index ec03d631dcfd76bd6b058e8b5f862edae00d4543..bd22ea3c984a4501fd93401e1bf5a4a9eb051e7a 100644 (file)
@@ -1038,14 +1038,10 @@ public abstract class Component
     if ((c != null) && c.equals(background))
       return;
 
-    // If c is null, inherit from closest ancestor whose bg is set.
-    if (c == null && parent != null)
-      c = parent.getBackground();
-    if (peer != null && c != null)
-      peer.setBackground(c);
-    
     Color previous = background;
     background = c;
+    if (peer != null && c != null)
+      peer.setBackground(c);
     firePropertyChange("background", previous, c);
   }
 
@@ -2642,7 +2638,7 @@ public abstract class Component
   {
     mouseMotionListener = AWTEventMulticaster.add(mouseMotionListener, listener);
     if (mouseMotionListener != null)
-      enableEvents(AWTEvent.MOUSE_EVENT_MASK);
+      enableEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK);
   }
 
   /**
@@ -2775,10 +2771,19 @@ public abstract class Component
   }
 
   /**
-   * Returns all registered EventListers of the given listenerType.
+   * Returns all registered {@link EventListener}s of the given 
+   * <code>listenerType</code>.
    *
-   * @param listenerType the class of listeners to filter
-   * @return an array of registered listeners
+   * @param listenerType the class of listeners to filter (<code>null</code> 
+   *                     not permitted).
+   *                     
+   * @return An array of registered listeners.
+   * 
+   * @throws ClassCastException if <code>listenerType</code> does not implement
+   *                            the {@link EventListener} interface.
+   * @throws NullPointerException if <code>listenerType</code> is 
+   *                              <code>null</code>.
+   *                            
    * @see #getComponentListeners()
    * @see #getFocusListeners()
    * @see #getHierarchyListeners()
@@ -4786,7 +4791,12 @@ p   * <li>the set of backward traversal keys
   void dispatchEventImpl(AWTEvent e)
   {
     Event oldEvent = translateEvent (e);
-
+    // This boolean tells us not to process focus events when the focus
+    // opposite component is the same as the focus component.
+    boolean ignoreFocus = 
+      (e instanceof FocusEvent && 
+       ((FocusEvent)e).getComponent() == ((FocusEvent)e).getOppositeComponent());
+    
     if (oldEvent != null)
       postEvent (oldEvent);
 
@@ -4817,7 +4827,8 @@ p   * <li>the set of backward traversal keys
                 break;
               }
           }
-        if (e.id != PaintEvent.PAINT && e.id != PaintEvent.UPDATE)
+        if (e.id != PaintEvent.PAINT && e.id != PaintEvent.UPDATE
+            && !ignoreFocus)
           processEvent(e);
       }
 
@@ -4853,11 +4864,12 @@ p   * <li>the set of backward traversal keys
       case MouseEvent.MOUSE_EXITED:
       case MouseEvent.MOUSE_PRESSED:
       case MouseEvent.MOUSE_RELEASED:
-      case MouseEvent.MOUSE_MOVED:
-      case MouseEvent.MOUSE_DRAGGED:
         return (mouseListener != null
-                || mouseMotionListener != null
                 || (eventMask & AWTEvent.MOUSE_EVENT_MASK) != 0);
+      case MouseEvent.MOUSE_MOVED:
+      case MouseEvent.MOUSE_DRAGGED:
+        return (mouseMotionListener != null
+                || (eventMask & AWTEvent.MOUSE_MOTION_EVENT_MASK) != 0);
         
       case FocusEvent.FOCUS_GAINED:
       case FocusEvent.FOCUS_LOST:
index ed791dc8b8803a86bebed1e52aaea1694b0afdb3..67f0ed184d4dae67f5be107c7ca34c5f676bab6a 100644 (file)
@@ -449,9 +449,6 @@ public class Container extends Component
                                                    ContainerEvent.COMPONENT_REMOVED,
                                                    r);
             getToolkit().getSystemEventQueue().postEvent(ce);
-
-            // Repaint this container.
-            repaint();
           }
       }
   }
@@ -896,13 +893,21 @@ public class Container extends Component
   }
 
   /**
-   * Returns an array of all the objects currently registered as FooListeners
-   * upon this Container. FooListeners are registered using the addFooListener
-   * method.
-   *
-   * @exception ClassCastException If listenerType doesn't specify a class or
-   * interface that implements @see java.util.EventListener.
+   * Returns all registered {@link EventListener}s of the given 
+   * <code>listenerType</code>.
    *
+   * @param listenerType the class of listeners to filter (<code>null</code> 
+   *                     not permitted).
+   *                     
+   * @return An array of registered listeners.
+   * 
+   * @throws ClassCastException if <code>listenerType</code> does not implement
+   *                            the {@link EventListener} interface.
+   * @throws NullPointerException if <code>listenerType</code> is 
+   *                              <code>null</code>.
+   *                            
+   * @see #getContainerListeners()
+   * 
    * @since 1.3
    */
   public EventListener[] getListeners(Class listenerType)
@@ -1094,7 +1099,7 @@ public class Container extends Component
       {
         if (!contains(x, y))
           return null;
-
+          
         for (int i = 0; i < ncomponents; ++i)
           {
             // Ignore invisible children...
@@ -1117,7 +1122,8 @@ public class Container extends Component
           }
 
         //don't return transparent components with no MouseListeners
-        if (this.getMouseListeners().length == 0)
+        if (getMouseListeners().length == 0
+            && getMouseMotionListeners().length == 0)
           return null;
         return this;
       }
@@ -1625,30 +1631,19 @@ public class Container extends Component
                           Component comp)
   {
     Rectangle bounds = comp.getBounds();
-    Rectangle oldClip = gfx.getClipBounds();
-    if (oldClip == null)
-      oldClip = bounds;
-
-    Rectangle clip = oldClip.intersection(bounds);
 
-    if (clip.isEmpty()) return;
+    if(!gfx.hitClip(bounds.x,bounds.y, bounds.width, bounds.height))
+      return;
 
-    boolean clipped = false;
-    boolean translated = false;
+    Graphics g2 = gfx.create(bounds.x, bounds.y, bounds.width,
+                             bounds.height);
     try
       {
-        gfx.setClip(clip.x, clip.y, clip.width, clip.height);
-        clipped = true;
-        gfx.translate(bounds.x, bounds.y);
-        translated = true;
-        visitor.visit(comp, gfx);
+        visitor.visit(comp, g2);
       }
     finally
       {
-        if (translated)
-          gfx.translate (-bounds.x, -bounds.y);
-        if (clipped)
-          gfx.setClip (oldClip.x, oldClip.y, oldClip.width, oldClip.height);
+        g2.dispose();
       }
   }
 
@@ -2148,12 +2143,18 @@ class LightweightDispatcher implements Serializable
         break;
       }
 
-    if (me.getID() == MouseEvent.MOUSE_PRESSED && modifiers > 0
+    if (me.getID() == MouseEvent.MOUSE_RELEASED
+        || me.getID() == MouseEvent.MOUSE_PRESSED && modifiers > 0
         || me.getID() == MouseEvent.MOUSE_DRAGGED)
       {
         // If any of the following events occur while a button is held down,
         // they should be dispatched to the same component to which the
         // original MOUSE_PRESSED event was dispatched:
+        //   - MOUSE_RELEASED: This is important for correct dragging
+        //     behaviour, otherwise the release goes to an arbitrary component
+        //     outside of the dragged component. OTOH, if there is no mouse
+        //     drag while the mouse is pressed, the component under the mouse
+        //     is the same as the previously pressed component anyway.
         //   - MOUSE_PRESSED: another button pressed while the first is held
         //     down
         //   - MOUSE_DRAGGED
index 083c0b7a7a301486e25655bdedc2b65b411c2548..714e080d7b29925a10f88aa4686a68be47030f09 100644 (file)
@@ -341,11 +341,14 @@ public class GridBagLayout
       GridBagLayoutInfo info = getLayoutInfo (parent, PREFERREDSIZE);
       if (info.cols == 0 && info.rows == 0)
         return;
-      layoutInfo = info;
 
       // DEBUG
-      //dumpLayoutInfo (layoutInfo);
-    
+      //dumpLayoutInfo (info);
+
+      // Calling setBounds on these components causes this layout to
+      // be invalidated, clearing the layout information cache,
+      // layoutInfo.  So we wait until after this for loop to set
+      // layoutInfo.
       for(int i = 0; i < components.length; i++)
        {
           Component component = components [i];
@@ -357,11 +360,11 @@ public class GridBagLayout
           GridBagConstraints constraints =
               lookupInternalConstraints(component);
 
-          int cellx = sumIntArray(layoutInfo.colWidths, constraints.gridx);
-          int celly = sumIntArray(layoutInfo.rowHeights, constraints.gridy);
-          int cellw = sumIntArray(layoutInfo.colWidths,
+          int cellx = sumIntArray(info.colWidths, constraints.gridx);
+          int celly = sumIntArray(info.rowHeights, constraints.gridy);
+          int cellw = sumIntArray(info.colWidths,
                                   constraints.gridx + constraints.gridwidth) - cellx;
-          int cellh = sumIntArray(layoutInfo.rowHeights,
+          int cellh = sumIntArray(info.rowHeights,
                                   constraints.gridy + constraints.gridheight) - celly;
 
           Insets insets = constraints.insets;
@@ -438,11 +441,14 @@ public class GridBagLayout
               break;
            }
 
-          component.setBounds(layoutInfo.pos_x + x, layoutInfo.pos_y + y, dim.width, dim.height);
+          component.setBounds(info.pos_x + x, info.pos_y + y, dim.width, dim.height);
        }
 
       // DEBUG
-      //dumpLayoutInfo (layoutInfo);
+      //dumpLayoutInfo (info);
+
+      // Cache layout information.
+      layoutInfo = getLayoutInfo (parent, PREFERREDSIZE);
     }
 
     /**
index 38f415b7526bc36ca86956849fd1420bc153e08b..32bf4d6cf37b5f3b868bac5df1647cf267948877 100644 (file)
@@ -1,5 +1,5 @@
 /* DataFlavor.java -- A type of data to transfer via the clipboard.
-   Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2001, 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -49,6 +49,7 @@ import java.io.StringReader;
 import java.io.UnsupportedEncodingException;
 import java.nio.ByteBuffer;
 import java.nio.CharBuffer;
+import java.nio.charset.Charset;
 import java.rmi.Remote;
 
 /**
@@ -63,946 +64,818 @@ public class DataFlavor implements java.io.Externalizable, Cloneable
 
   // FIXME: Serialization: Need to write methods for.
 
-/**
- * This is the data flavor used for tranferring plain text.  The MIME
- * type is "text/plain; charset=unicode".  The representation class
- * is <code>java.io.InputStream</code>.
- *
- * @deprecated The charset unicode is platform specific and InputStream
- * deals with bytes not chars. Use <code>getRederForText()</code>.
- */
-public static final DataFlavor plainTextFlavor;
-
-/**
- * This is the data flavor used for transferring Java strings.  The
- * MIME type is "application/x-java-serialized-object" and the 
- * representation class is <code>java.lang.String</code>.
- */
-public static final DataFlavor stringFlavor;
-
-/**
- * This is a data flavor used for transferring lists of files.  The
- * representation type is a <code>java.util.List</code>, with each element of 
- * the list being a <code>java.io.File</code>.
- */
-public static final DataFlavor javaFileListFlavor;
-
-/**
- * This is an image flavor used for transferring images.  The
- * representation type is a <code>java.awt.Image</code>.
- */
-public static final DataFlavor imageFlavor;
-
-/**
- * This is the MIME type used for transferring a serialized object.
- * The representation class is the type of object be deserialized.
- */
-public static final String javaSerializedObjectMimeType =
-  "application/x-java-serialized-object";
-
-/**
- * This is the MIME type used to transfer a Java object reference within
- * the same JVM.  The representation class is the class of the object
- * being transferred.
- */
-public static final String javaJVMLocalObjectMimeType =
-  "application/x-java-jvm-local-objectref";
-
-/**
- * This is the MIME type used to transfer a link to a remote object.
- * The representation class is the type of object being linked to.
- */
-public static final String javaRemoteObjectMimeType =
-  "application/x-java-remote-object";
-
-static
-{
-  plainTextFlavor
-      = new DataFlavor(java.io.InputStream.class,
-                      "text/plain; charset=unicode",
-                      "plain unicode text");
-
-  stringFlavor
-      = new DataFlavor(java.lang.String.class,
-                      "Java Unicode String");
-
-  javaFileListFlavor
-      = new DataFlavor(java.util.List.class,
-                      "application/x-java-file-list; class=java.util.List",
-                      "Java File List");
-
-  imageFlavor
-      = new DataFlavor(java.awt.Image.class,
-                       "Java Image");
-}
-
-/*************************************************************************/
+  /**
+   * This is the data flavor used for tranferring plain text.  The MIME
+   * type is "text/plain; charset=unicode".  The representation class
+   * is <code>java.io.InputStream</code>.
+   *
+   * @deprecated The charset unicode is platform specific and InputStream
+   * deals with bytes not chars. Use <code>getRederForText()</code>.
+   */
+  public static final DataFlavor plainTextFlavor = 
+    new DataFlavor(java.io.InputStream.class,
+                   "text/plain; charset=unicode",
+                   "plain unicode text");
 
-/*
- * Instance Variables
- */
+  /**
+   * This is the data flavor used for transferring Java strings.  The
+   * MIME type is "application/x-java-serialized-object" and the 
+   * representation class is <code>java.lang.String</code>.
+   */
+  public static final DataFlavor stringFlavor = 
+    new DataFlavor(java.lang.String.class, "Java Unicode String");
 
-// The MIME type for this flavor
-private final String mimeType;
+  /**
+   * This is a data flavor used for transferring lists of files.  The
+   * representation type is a <code>java.util.List</code>, with each 
+   * element of the list being a <code>java.io.File</code>.
+   */
+  public static final DataFlavor javaFileListFlavor = 
+    new DataFlavor(java.util.List.class,
+                   "application/x-java-file-list; class=java.util.List",
+                   "Java File List");
 
-// The representation class for this flavor
-private final Class representationClass;
+  /**
+   * This is an image flavor used for transferring images.  The
+   * representation type is a <code>java.awt.Image</code>.
+   */
+  public static final DataFlavor imageFlavor = 
+    new DataFlavor(java.awt.Image.class, "Java Image");
 
-// The human readable name of this flavor
-private String humanPresentableName;
+  /**
+   * This is the MIME type used for transferring a serialized object.
+   * The representation class is the type of object be deserialized.
+   */
+  public static final String javaSerializedObjectMimeType =
+    "application/x-java-serialized-object";
 
-/*************************************************************************/
+  /**
+   * This is the MIME type used to transfer a Java object reference within
+   * the same JVM.  The representation class is the class of the object
+   * being transferred.
+   */
+  public static final String javaJVMLocalObjectMimeType =
+    "application/x-java-jvm-local-objectref";
 
-/*
- * Static Methods
- */
+  /**
+   * This is the MIME type used to transfer a link to a remote object.
+   * The representation class is the type of object being linked to.
+   */
+  public static final String javaRemoteObjectMimeType =
+    "application/x-java-remote-object";
 
-/**
- * This method attempts to load the named class.  The following class
- * loaders are searched in order: the bootstrap class loader, the
- * system class loader, the context class loader (if it exists), and
- * the specified fallback class loader.
- *
- * @param className The name of the class to load.
- * @param classLoader The class loader to use if all others fail, which
- * may be <code>null</code>.
- *
- * @exception ClassNotFoundException If the class cannot be loaded.
- */
-protected static final Class
-tryToLoadClass(String className, ClassLoader classLoader)
-               throws ClassNotFoundException
-{
-  try
-    {
-      return(Class.forName(className));
-    }
-  catch(Exception e) { ; }
-  // Commented out for Java 1.1
   /*
-  try
-    {
-      return(className.getClass().getClassLoader().findClass(className));
-    }
-  catch(Exception e) { ; }
-
-  try
-    {
-      return(ClassLoader.getSystemClassLoader().findClass(className));
-    }
-  catch(Exception e) { ; }
-  */
+   * Instance Variables
+   */
+  
+  // The MIME type for this flavor
+  private final String mimeType;
+  
+  // The representation class for this flavor
+  private final Class representationClass;
+  
+  // The human readable name of this flavor
+  private String humanPresentableName;
 
-  // FIXME: What is the context class loader?
   /*
-  try
+   * Static Methods
+   */
+  
+  /**
+   * This method attempts to load the named class.  The following class
+   * loaders are searched in order: the bootstrap class loader, the
+   * system class loader, the context class loader (if it exists), and
+   * the specified fallback class loader.
+   *
+   * @param className The name of the class to load.
+   * @param classLoader The class loader to use if all others fail, which
+   * may be <code>null</code>.
+   *
+   * @exception ClassNotFoundException If the class cannot be loaded.
+   */
+  protected static final Class tryToLoadClass(String className,
+                                             ClassLoader classLoader)
+    throws ClassNotFoundException
+  {
+    try
+      {
+        return(Class.forName(className));
+      }
+    catch(Exception e) { ; }
+    // Commented out for Java 1.1
+    /*
+    try
+      {
+        return(className.getClass().getClassLoader().findClass(className));
+      }
+    catch(Exception e) { ; }
+  
+    try
+      {
+        return(ClassLoader.getSystemClassLoader().findClass(className));
+      }
+    catch(Exception e) { ; }
+    */
+  
+    // FIXME: What is the context class loader?
+    /*
+    try
+      {
+      }
+    catch(Exception e) { ; }
+    */
+  
+    if (classLoader != null)
+      return(classLoader.loadClass(className));
+    else
+      throw new ClassNotFoundException(className);
+  }
+  
+  private static Class getRepresentationClassFromMime(String mimeString,
+                                                      ClassLoader classLoader)
     {
+      String classname = getParameter("class", mimeString);
+      if (classname != null)
+        {
+          try
+            {
+              return tryToLoadClass(classname, classLoader);
+            }
+          catch(Exception e)
+            {
+              throw new IllegalArgumentException("classname: " + e.getMessage());
+            }
+        }
+      else
+        return java.io.InputStream.class;
     }
-  catch(Exception e) { ; }
-  */
-
-  if (classLoader != null)
-    return(classLoader.loadClass(className));
-  else
-    throw new ClassNotFoundException(className);
-}
-
-/*************************************************************************/
+  
+  /**
+   * Returns the value of the named MIME type parameter, or <code>null</code>
+   * if the parameter does not exist. Given the parameter name and the mime
+   * string.
+   *
+   * @param paramName The name of the parameter.
+   * @param mimeString The mime string from where the name should be found.
+   *
+   * @return The value of the parameter or null.
+   */
+  private static String getParameter(String paramName, String mimeString)
+  {
+    int idx = mimeString.indexOf(paramName + "=");
+    if (idx == -1)
+      return(null);
+  
+    String value = mimeString.substring(idx + paramName.length() + 1);
+  
+    idx = value.indexOf(" ");
+    if (idx == -1)
+      return(value);
+    else
+      return(value.substring(0, idx));
+  }
+  
+  /**
+   * XXX - Currently returns <code>plainTextFlavor</code>.
+   */
+  public static final DataFlavor getTextPlainUnicodeFlavor()
+  {
+    return plainTextFlavor;
+  }
+  
+  /**
+   * Selects the best supported text flavor on this implementation.
+   * Returns <code>null</code> when none of the given flavors is liked.
+   *
+   * The <code>DataFlavor</code> returned the first data flavor in the
+   * array that has either a representation class which is (a subclass of)
+   * <code>Reader</code> or <code>String</code>, or has a representation
+   * class which is (a subclass of) <code>InputStream</code> and has a
+   * primary MIME type of "text" and has an supported encoding.
+   */
+  public static final DataFlavor 
+    selectBestTextFlavor(DataFlavor[] availableFlavors)
+  {
+    for(int i = 0; i < availableFlavors.length; i++)
+      {
+        DataFlavor df = availableFlavors[i];
+        Class c = df.representationClass;
+  
+        // A Reader or String is good.
+        if ((Reader.class.isAssignableFrom(c))
+           || (String.class.isAssignableFrom(c)))
+      return df;
+  
+        // A InputStream is good if the mime primary type is "text"
+        if ((InputStream.class.isAssignableFrom(c))
+           && ("text".equals(df.getPrimaryType())))
+          {
+            String encoding = availableFlavors[i].getParameter("charset");
+            if (encoding == null)
+              encoding = "us-ascii";
+            Reader r = null;
+            try
+              {
+                // Try to construct a dummy reader with the found encoding
+                r = new InputStreamReader
+                      (new ByteArrayInputStream(new byte[0]), encoding);
+              }
+            catch(UnsupportedEncodingException uee) { /* ignore */ }
+
+            if (r != null)
+              return df;
+          }
+      }
+  
+    // Nothing found
+    return null;
+  }
 
-/*
- * Constructors
- */
 
-/**
- * Empty public constructor needed for externalization.
- * Should not be used for normal instantiation.
- */
-public
-DataFlavor()
-{
+  /*
+   * Constructors
+   */
+  
+  /**
+   * Empty public constructor needed for externalization.
+   * Should not be used for normal instantiation.
+   */
+  public DataFlavor()
+  {
     mimeType = null;
     representationClass = null;
     humanPresentableName = null;
-}
-
-/*************************************************************************/
+  }
 
-/**
- * Private constructor.
- */
-private
-DataFlavor(Class representationClass,
-          String mimeType,
-          String humanPresentableName)
-{
+  /**
+   * Private constructor.
+   */
+  private DataFlavor(Class representationClass,
+                    String mimeType,
+                    String humanPresentableName)
+  {
     this.representationClass = representationClass;
     this.mimeType = mimeType;
     if (humanPresentableName != null)
-       this.humanPresentableName = humanPresentableName;
+      this.humanPresentableName = humanPresentableName;
     else
-       this.humanPresentableName = mimeType;
-}
-
-/*************************************************************************/
+      this.humanPresentableName = mimeType;
+  }
 
-/**
- * Initializes a new instance of <code>DataFlavor</code>.  The class
- * and human readable name are specified, the MIME type will be
- * "application/x-java-serialized-object". If the human readable name
- * is not specified (<code>null</code>) then the human readable name
- * will be the same as the MIME type.
- *
- * @param representationClass The representation class for this object.
- * @param humanPresentableName The display name of the object.
- */
-public
-DataFlavor(Class representationClass, String humanPresentableName)
-{
+  /**
+   * Initializes a new instance of <code>DataFlavor</code>.  The class
+   * and human readable name are specified, the MIME type will be
+   * "application/x-java-serialized-object". If the human readable name
+   * is not specified (<code>null</code>) then the human readable name
+   * will be the same as the MIME type.
+   *
+   * @param representationClass The representation class for this object.
+   * @param humanPresentableName The display name of the object.
+   */
+  public DataFlavor(Class representationClass, String humanPresentableName)
+  {
     this(representationClass,
-       "application/x-java-serialized-object"
-       + "; class="
-       + representationClass.getName(),
-       humanPresentableName);
-}
-
-/*************************************************************************/
-
-/**
- * Initializes a new instance of <code>DataFlavor</code> with the
- * specified MIME type and description.  If the MIME type has a
- * "class=&lt;rep class&gt;" parameter then the representation class will
- * be the class name specified. Otherwise the class defaults to
- * <code>java.io.InputStream</code>. If the human readable name
- * is not specified (<code>null</code>) then the human readable name
- * will be the same as the MIME type.
- *
- * @param mimeType The MIME type for this flavor.
- * @param humanPresentableName The display name of this flavor.
- * @param classLoader The class loader for finding classes if the default
- * class loaders do not work.
- *
- * @exception IllegalArgumentException If the representation class
- * specified cannot be loaded.
- * @exception ClassNotFoundException If the class is not loaded.
- */
-public
-DataFlavor(String mimeType, String humanPresentableName, 
-           ClassLoader classLoader) throws ClassNotFoundException
-{
-  this(getRepresentationClassFromMime(mimeType, classLoader),
-       mimeType, humanPresentableName);
-}
-
-private static Class
-getRepresentationClassFromMime(String mimeString, ClassLoader classLoader)
-{
-  String classname = getParameter("class", mimeString);
-  if (classname != null)
-    {
-      try
-        {
-          return tryToLoadClass(classname, classLoader);
-        }
-      catch(Exception e)
-        {
-          throw new IllegalArgumentException("classname: " + e.getMessage());
-        }
-    }
-  else
-    {
-      return java.io.InputStream.class;
-    }
-}
-
-/*************************************************************************/
-
-/**
- * Initializes a new instance of <code>DataFlavor</code> with the
- * specified MIME type and description.  If the MIME type has a
- * "class=&lt;rep class&gt;" parameter then the representation class will
- * be the class name specified. Otherwise the class defaults to
- * <code>java.io.InputStream</code>. If the human readable name
- * is not specified (<code>null</code>) then the human readable name
- * will be the same as the MIME type. This is the same as calling
- * <code>new DataFlavor(mimeType, humanPresentableName, null)</code>.
- *
- * @param mimeType The MIME type for this flavor.
- * @param humanPresentableName The display name of this flavor.
- *
- * @exception IllegalArgumentException If the representation class
- * specified cannot be loaded.
- */
-public
-DataFlavor(String mimeType, String humanPresentableName)
-{
-  this (getRepresentationClassFromMime (mimeType, null),
-       mimeType, humanPresentableName);
-}
-
-/*************************************************************************/
-
-/**
- * Initializes a new instance of <code>DataFlavor</code> with the specified
- * MIME type.  This type can have a "class=" parameter to specify the
- * representation class, and then the class must exist or an exception will
- * be thrown. If there is no "class=" parameter then the representation class
- * will be <code>java.io.InputStream</code>. This is the same as calling
- * <code>new DataFlavor(mimeType, null)</code>.
- *
- * @param mimeType The MIME type for this flavor.
- *
- * @exception IllegalArgumentException If a class is not specified in
- * the MIME type.
- * @exception ClassNotFoundException If the class cannot be loaded.
- */
-public
-DataFlavor(String mimeType) throws ClassNotFoundException
-{
-  this(mimeType, null);
-}
-
-/*************************************************************************/
-
-/**
- * Returns the MIME type of this flavor.
- *
- * @return The MIME type for this flavor.
- */
-public String
-getMimeType()
-{
-  return(mimeType);
-}
-
-/*************************************************************************/
-
-/**
- * Returns the representation class for this flavor.
- *
- * @return The representation class for this flavor.
- */
-public Class
-getRepresentationClass()
-{
-  return(representationClass);
-}
-
-/*************************************************************************/
-
-/**
- * Returns the human presentable name for this flavor.
- *
- * @return The human presentable name for this flavor.
- */
-public String
-getHumanPresentableName()
-{
-  return(humanPresentableName);
-} 
-
-/*************************************************************************/
-
-/**
- * Returns the primary MIME type for this flavor.
- *
- * @return The primary MIME type for this flavor.
- */
-public String
-getPrimaryType()
-{
-  int idx = mimeType.indexOf("/");
-  if (idx == -1)
-    return(mimeType);
-
-  return(mimeType.substring(0, idx));
-}
-
-/*************************************************************************/
-
-/**
- * Returns the MIME subtype for this flavor.
- *
- * @return The MIME subtype for this flavor.
- */
-public String
-getSubType()
-{
-  int start = mimeType.indexOf("/");
-  if (start == -1)
-    return "";
-
-  int end = mimeType.indexOf(";", start + 1);
-  if (end == -1)
-    return mimeType.substring(start + 1);
-  else
-    return mimeType.substring(start + 1, end);
-}
-
-/*************************************************************************/
-
-/**
- * Returns the value of the named MIME type parameter, or <code>null</code>
- * if the parameter does not exist. Given the parameter name and the mime
- * string.
- *
- * @param paramName The name of the parameter.
- * @param mimeString The mime string from where the name should be found.
- *
- * @return The value of the parameter or null.
- */
-private static String
-getParameter(String paramName, String mimeString)
-{
-  int idx = mimeString.indexOf(paramName + "=");
-  if (idx == -1)
-    return(null);
-
-  String value = mimeString.substring(idx + paramName.length() + 1);
-
-  idx = value.indexOf(" ");
-  if (idx == -1)
-    return(value);
-  else
-    return(value.substring(0, idx));
-}
-
-/*************************************************************************/
-
-/**
- * Returns the value of the named MIME type parameter, or <code>null</code>
- * if the parameter does not exist.
- *
- * @param paramName The name of the paramter.
- *
- * @return The value of the parameter.
- */
-public String
-getParameter(String paramName)
-{
-  if ("humanPresentableName".equals(paramName))
-    return getHumanPresentableName();
-
-  return getParameter(paramName, mimeType);
-}
-
-/*************************************************************************/
-
-/**
- * Sets the human presentable name to the specified value.
- *
- * @param humanPresentableName The new display name.
- */
-public void
-setHumanPresentableName(String humanPresentableName)
-{
-  this.humanPresentableName = humanPresentableName;
-}
-
-/*************************************************************************/
-
-/**
- * Tests the MIME type of this object for equality against the specified
- * MIME type. Ignores parameters.
- *
- * @param mimeType The MIME type to test against.
- *
- * @return <code>true</code> if the MIME type is equal to this object's
- * MIME type (ignoring parameters), <code>false</code> otherwise.
- *
- * @exception NullPointerException If mimeType is null.
- */
-public boolean
-isMimeTypeEqual(String mimeType)
-{
-  String mime = getMimeType();
-  int i = mime.indexOf(";");
-  if (i != -1)
-    mime = mime.substring(0, i);
-
-  i = mimeType.indexOf(";");
-  if (i != -1)
-    mimeType = mimeType.substring(0, i);
-
-  return mime.equals(mimeType);
-}
-
-/*************************************************************************/
-
-/**
- * Tests the MIME type of this object for equality against the specified
- * data flavor's MIME type
- *
- * @param flavor The flavor to test against.
- *
- * @return <code>true</code> if the flavor's MIME type is equal to this 
- * object's MIME type, <code>false</code> otherwise.
- */
-public final boolean
-isMimeTypeEqual(DataFlavor flavor)
-{
-  return(isMimeTypeEqual(flavor.getMimeType()));
-}
-
-/*************************************************************************/
-
-/**
- * Tests whether or not this flavor represents a serialized object.
- *
- * @return <code>true</code> if this flavor represents a serialized
- * object, <code>false</code> otherwise.
- */
-public boolean
-isMimeTypeSerializedObject()
-{
-  return(mimeType.startsWith(javaSerializedObjectMimeType));
-}
-
-/*************************************************************************/
-
-/**
- * Tests whether or not this flavor has a representation class of
- * <code>java.io.InputStream</code>.
- *
- * @return <code>true</code> if the representation class of this flavor
- * is <code>java.io.InputStream</code>, <code>false</code> otherwise.
- */
-public boolean
-isRepresentationClassInputStream()
-{
-  return(representationClass.getName().equals("java.io.InputStream"));
-}
-
-/*************************************************************************/
-
-/**
- * Tests whether the representation class for this flavor is
- * serializable.
- *
- * @return <code>true</code> if the representation class is serializable,
- * <code>false</code> otherwise.
- */
-public boolean
-isRepresentationClassSerializable()
-{
-  Class[] interfaces = representationClass.getInterfaces();
-
-  int i = 0;
-  while (i < interfaces.length)
-    {
-      if (interfaces[i].getName().equals("java.io.Serializable"))
-        return(true);
-      ++i;
-    }
-
-  return(false);
-}
-
-/*************************************************************************/
-
-/**
- * Tests whether the representation class for his flavor is remote.
- *
- * @return <code>true</code> if the representation class is remote,
- * <code>false</code> otherwise.
- */
-public boolean
-isRepresentationClassRemote()
-{
-  return Remote.class.isAssignableFrom (representationClass);
-}
-
-/*************************************************************************/
-
-/**
- * Tests whether or not this flavor represents a serialized object.
- *
- * @return <code>true</code> if this flavor represents a serialized
- * object, <code>false</code> otherwise.
- */
-public boolean
-isFlavorSerializedObjectType()
-{
-  // FIXME: What is the diff between this and isMimeTypeSerializedObject?
-  return(mimeType.startsWith(javaSerializedObjectMimeType));
-}
-
-/*************************************************************************/
-
-/**
- * Tests whether or not this flavor represents a remote object.
- *
- * @return <code>true</code> if this flavor represents a remote object,
- * <code>false</code> otherwise.
- */
-public boolean
-isFlavorRemoteObjectType()
-{
-  return(mimeType.startsWith(javaRemoteObjectMimeType));
-}
-
-/*************************************************************************/
-
-/**
- * Tests whether or not this flavor represents a list of files.
- *
- * @return <code>true</code> if this flavor represents a list of files,
- * <code>false</code> otherwise.
- */
-public boolean
-isFlavorJavaFileListType()
-{
-  if (this.mimeType.equals(javaFileListFlavor.mimeType) &&
-      this.representationClass.equals(javaFileListFlavor.representationClass))
-    return(true);
-
-  return(false);
-}
-
-/*************************************************************************/
+         "application/x-java-serialized-object"
+         + "; class="
+         + representationClass.getName(),
+         humanPresentableName);
+  }
 
-/**
- * Returns a copy of this object.
- *
- * @return A copy of this object.
- *
- * @exception CloneNotSupportedException If the object's class does not support
- * the Cloneable interface. Subclasses that override the clone method can also
- * throw this exception to indicate that an instance cannot be cloned.
- */
-public Object clone () throws CloneNotSupportedException
-{
-  try
-    {
-      return(super.clone());
-    }
-  catch(Exception e)
-    {
-      return(null);
-    }
-}
+  /**
+   * Initializes a new instance of <code>DataFlavor</code> with the
+   * specified MIME type and description.  If the MIME type has a
+   * "class=&lt;rep class&gt;" parameter then the representation class will
+   * be the class name specified. Otherwise the class defaults to
+   * <code>java.io.InputStream</code>. If the human readable name
+   * is not specified (<code>null</code>) then the human readable name
+   * will be the same as the MIME type.
+   *
+   * @param mimeType The MIME type for this flavor.
+   * @param humanPresentableName The display name of this flavor.
+   * @param classLoader The class loader for finding classes if the default
+   * class loaders do not work.
+   *
+   * @exception IllegalArgumentException If the representation class
+   * specified cannot be loaded.
+   * @exception ClassNotFoundException If the class is not loaded.
+   */
+  public DataFlavor(String mimeType, String humanPresentableName, 
+                   ClassLoader classLoader)
+    throws ClassNotFoundException
+  {
+    this(getRepresentationClassFromMime(mimeType, classLoader),
+         mimeType, humanPresentableName);
+  }
 
-/*************************************************************************/
+  /**
+   * Initializes a new instance of <code>DataFlavor</code> with the
+   * specified MIME type and description.  If the MIME type has a
+   * "class=&lt;rep class&gt;" parameter then the representation class will
+   * be the class name specified. Otherwise the class defaults to
+   * <code>java.io.InputStream</code>. If the human readable name
+   * is not specified (<code>null</code>) then the human readable name
+   * will be the same as the MIME type. This is the same as calling
+   * <code>new DataFlavor(mimeType, humanPresentableName, null)</code>.
+   *
+   * @param mimeType The MIME type for this flavor.
+   * @param humanPresentableName The display name of this flavor.
+   *
+   * @exception IllegalArgumentException If the representation class
+   * specified cannot be loaded.
+   */
+  public DataFlavor(String mimeType, String humanPresentableName)
+  {
+    this(getRepresentationClassFromMime (mimeType, null),
+        mimeType, humanPresentableName);
+  }
 
-/**
- * This method test the specified <code>DataFlavor</code> for equality
- * against this object.  This will be true if the MIME type and
- * representation type are the equal.
- *
- * @param flavor The <code>DataFlavor</code> to test against.
- *
- * @return <code>true</code> if the flavor is equal to this object,
- * <code>false</code> otherwise.
- */
-public boolean
-equals(DataFlavor flavor)
-{
-  if (flavor == null)
-    return(false);
+  /**
+   * Initializes a new instance of <code>DataFlavor</code> with the specified
+   * MIME type.  This type can have a "class=" parameter to specify the
+   * representation class, and then the class must exist or an exception will
+   * be thrown. If there is no "class=" parameter then the representation class
+   * will be <code>java.io.InputStream</code>. This is the same as calling
+   * <code>new DataFlavor(mimeType, null)</code>.
+   *
+   * @param mimeType The MIME type for this flavor.
+   *
+   * @exception IllegalArgumentException If a class is not specified in
+   * the MIME type.
+   * @exception ClassNotFoundException If the class cannot be loaded.
+   */
+  public DataFlavor(String mimeType) throws ClassNotFoundException
+  {
+    this(mimeType, null);
+  }
 
-  if (!this.mimeType.toLowerCase().equals(flavor.mimeType.toLowerCase()))
-    return(false);
+  /**
+   * Returns the MIME type of this flavor.
+   *
+   * @return The MIME type for this flavor.
+   */
+  public String getMimeType()
+  {
+    return(mimeType);
+  }
 
-  if (!this.representationClass.equals(flavor.representationClass))
-    return(false);
+  /**
+   * Returns the representation class for this flavor.
+   *
+   * @return The representation class for this flavor.
+   */
+  public Class getRepresentationClass()
+  {
+    return(representationClass);
+  }
 
-  return(true);
-}
+  /**
+   * Returns the human presentable name for this flavor.
+   *
+   * @return The human presentable name for this flavor.
+   */
+  public String getHumanPresentableName()
+  {
+    return(humanPresentableName);
+  } 
 
-/*************************************************************************/
+  /**
+   * Returns the primary MIME type for this flavor.
+   *
+   * @return The primary MIME type for this flavor.
+   */
+  public String getPrimaryType()
+  {
+    int idx = mimeType.indexOf("/");
+    if (idx == -1)
+      return(mimeType);
+  
+    return(mimeType.substring(0, idx));
+  }
 
-/**
- * This method test the specified <code>Object</code> for equality
- * against this object.  This will be true if the following conditions
- * are met:
- * <p>
- * <ul>
- * <li>The object is not <code>null</code>.</li>
- * <li>The object is an instance of <code>DataFlavor</code>.</li>
- * <li>The object's MIME type and representation class are equal to
- * this object's.</li>
- * </ul>
- *
- * @param obj The <code>Object</code> to test against.
- *
- * @return <code>true</code> if the flavor is equal to this object,
- * <code>false</code> otherwise.
- */
-public boolean
-equals(Object obj)
-{
-  if (!(obj instanceof DataFlavor))
-    return(false);
+  /**
+   * Returns the MIME subtype for this flavor.
+   *
+   * @return The MIME subtype for this flavor.
+   */
+  public String getSubType()
+  {
+    int start = mimeType.indexOf("/");
+    if (start == -1)
+      return "";
+  
+    int end = mimeType.indexOf(";", start + 1);
+    if (end == -1)
+      return mimeType.substring(start + 1);
+    else
+      return mimeType.substring(start + 1, end);
+  }
 
-  return(equals((DataFlavor)obj));
-}
+  /**
+   * Returns the value of the named MIME type parameter, or <code>null</code>
+   * if the parameter does not exist.
+   *
+   * @param paramName The name of the paramter.
+   *
+   * @return The value of the parameter.
+   */
+  public String getParameter(String paramName)
+  {
+    if ("humanPresentableName".equals(paramName))
+      return getHumanPresentableName();
+  
+    return getParameter(paramName, mimeType);
+  }
 
-/*************************************************************************/
+  /**
+   * Sets the human presentable name to the specified value.
+   *
+   * @param humanPresentableName The new display name.
+   */
+  public void setHumanPresentableName(String humanPresentableName)
+  {
+    this.humanPresentableName = humanPresentableName;
+  }
 
-/**
- * Tests whether or not the specified string is equal to the MIME type
- * of this object.
- *
- * @param str The string to test against.
- *
- * @return <code>true</code> if the string is equal to this object's MIME
- * type, <code>false</code> otherwise.
- *
- * @deprecated Not compatible with <code>hashCode()</code>.
- *             Use <code>isMimeTypeEqual()</code>
- */
-public boolean
-equals(String str)
-{
-  return(isMimeTypeEqual(str));
-}
+  /**
+   * Tests the MIME type of this object for equality against the specified
+   * MIME type. Ignores parameters.
+   *
+   * @param mimeType The MIME type to test against.
+   *
+   * @return <code>true</code> if the MIME type is equal to this object's
+   * MIME type (ignoring parameters), <code>false</code> otherwise.
+   *
+   * @exception NullPointerException If mimeType is null.
+   */
+  public boolean isMimeTypeEqual(String mimeType)
+  {
+    String mime = getMimeType();
+    int i = mime.indexOf(";");
+    if (i != -1)
+      mime = mime.substring(0, i);
+  
+    i = mimeType.indexOf(";");
+    if (i != -1)
+      mimeType = mimeType.substring(0, i);
+  
+    return mime.equals(mimeType);
+  }
 
-/*************************************************************************/
+  /**
+   * Tests the MIME type of this object for equality against the specified
+   * data flavor's MIME type
+   *
+   * @param flavor The flavor to test against.
+   *
+   * @return <code>true</code> if the flavor's MIME type is equal to this 
+   * object's MIME type, <code>false</code> otherwise.
+   */
+  public final boolean isMimeTypeEqual(DataFlavor flavor)
+  {
+    return isMimeTypeEqual(flavor.getMimeType());
+  }
 
-/**
* Returns the hash code for this data flavor.
- * The hash code is based on the (lower case) mime type and the
- * representation class.
- */
-public int
-hashCode()
-{
-  return(mimeType.toLowerCase().hashCode()^representationClass.hashCode());
-}
+  /**
  * Tests whether or not this flavor represents a serialized object.
+   *
+   * @return <code>true</code> if this flavor represents a serialized
+   * object, <code>false</code> otherwise.
+   */
+  public boolean isMimeTypeSerializedObject()
+  {
+    return mimeType.startsWith(javaSerializedObjectMimeType);
+  }
 
-/*************************************************************************/
+  /**
+   * Tests whether or not this flavor has a representation class of
+   * <code>java.io.InputStream</code>.
+   *
+   * @return <code>true</code> if the representation class of this flavor
+   * is <code>java.io.InputStream</code>, <code>false</code> otherwise.
+   */
+  public boolean isRepresentationClassInputStream()
+  {
+    return representationClass.getName().equals("java.io.InputStream");
+  }
 
-/**
- * Returns <code>true</code> when the given <code>DataFlavor</code>
- * matches this one.
- */
-public boolean
-match(DataFlavor dataFlavor)
-{
-  // XXX - How is this different from equals?
-  return(equals(dataFlavor));
-}
+  /**
+   * Tests whether the representation class for this flavor is
+   * serializable.
+   *
+   * @return <code>true</code> if the representation class is serializable,
+   * <code>false</code> otherwise.
+   */
+  public boolean isRepresentationClassSerializable()
+  {
+    Class[] interfaces = representationClass.getInterfaces();
+  
+    int i = 0;
+    while (i < interfaces.length)
+      {
+        if (interfaces[i].getName().equals("java.io.Serializable"))
+          return true;
+        ++i;
+      }
+  
+    return false;
+  }
 
-/*************************************************************************/
+  /**
+   * Tests whether the representation class for his flavor is remote.
+   *
+   * @return <code>true</code> if the representation class is remote,
+   * <code>false</code> otherwise.
+   */
+  public boolean isRepresentationClassRemote()
+  {
+    return Remote.class.isAssignableFrom (representationClass);
+  }
 
-/**
- * This method exists for backward compatibility.  It simply returns
- * the same name/value pair passed in.
- *
- * @param name The parameter name.
- * @param value The parameter value.
- *
- * @return The name/value pair.
- *
- * @deprecated
- */
-protected String
-normalizeMimeTypeParameter(String name, String value)
-{
-  return(name + "=" + value);
-}
+  /**
+   * Tests whether or not this flavor represents a serialized object.
+   *
+   * @return <code>true</code> if this flavor represents a serialized
+   * object, <code>false</code> otherwise.
+   */
+  public boolean isFlavorSerializedObjectType()
+  {
+    // FIXME: What is the diff between this and isMimeTypeSerializedObject?
+    return(mimeType.startsWith(javaSerializedObjectMimeType));
+  }
 
-/*************************************************************************/
+  /**
+   * Tests whether or not this flavor represents a remote object.
+   *
+   * @return <code>true</code> if this flavor represents a remote object,
+   * <code>false</code> otherwise.
+   */
+  public boolean isFlavorRemoteObjectType()
+  {
+    return(mimeType.startsWith(javaRemoteObjectMimeType));
+  }
 
-/**
- * This method exists for backward compatibility.  It simply returns
- * the MIME type string unchanged.
- *
- * @param type The MIME type.
- * 
- * @return The MIME type.
- *
- * @deprecated
- */
-protected String
-normalizeMimeType(String type)
-{
-  return(type);
-}
+  /**
+   * Tests whether or not this flavor represents a list of files.
+   *
+   * @return <code>true</code> if this flavor represents a list of files,
+   * <code>false</code> otherwise.
+   */
+  public boolean isFlavorJavaFileListType()
+  {
+    if (mimeType.equals(javaFileListFlavor.mimeType)
+        && representationClass.equals(javaFileListFlavor.representationClass))
+      return true;
+  
+    return false ;
+  }
 
-/*************************************************************************/
+  /**
+   * Returns a copy of this object.
+   *
+   * @return A copy of this object.
+   *
+   * @exception CloneNotSupportedException If the object's class does not support
+   * the Cloneable interface. Subclasses that override the clone method can also
+   * throw this exception to indicate that an instance cannot be cloned.
+   */
+  public Object clone () throws CloneNotSupportedException
+  {
+    // FIXME - This cannot be right.
+    try
+      {
+        return super.clone();
+      }
+    catch(Exception e)
+      {
+        return null;
+      }
+  }
 
-/**
- * Serialize this class.
- *
- * @param stream The <code>ObjectOutput</code> stream to serialize to.
- *
- * @exception IOException If an error occurs.
- */
-public void
-writeExternal(ObjectOutput stream) throws IOException
-{
-  // FIXME: Implement me
-}
+  /**
+   * This method test the specified <code>DataFlavor</code> for equality
+   * against this object.  This will be true if the MIME type and
+   * representation type are the equal.
+   *
+   * @param flavor The <code>DataFlavor</code> to test against.
+   *
+   * @return <code>true</code> if the flavor is equal to this object,
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(DataFlavor flavor)
+  {
+    if (flavor == null)
+      return false;
+  
+    if (! this.mimeType.toLowerCase().equals(flavor.mimeType.toLowerCase()))
+      return false;
+  
+    if (! this.representationClass.equals(flavor.representationClass))
+      return false;
+  
+    return true;
+  }
 
-/*************************************************************************/
+  /**
+   * This method test the specified <code>Object</code> for equality
+   * against this object.  This will be true if the following conditions
+   * are met:
+   * <p>
+   * <ul>
+   * <li>The object is not <code>null</code>.</li>
+   * <li>The object is an instance of <code>DataFlavor</code>.</li>
+   * <li>The object's MIME type and representation class are equal to
+   * this object's.</li>
+   * </ul>
+   *
+   * @param obj The <code>Object</code> to test against.
+   *
+   * @return <code>true</code> if the flavor is equal to this object,
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if (! (obj instanceof DataFlavor))
+      return false;
+  
+    return equals((DataFlavor) obj);
+  }
 
-/**
- * De-serialize this class.
- *
- * @param stream The <code>ObjectInput</code> stream to deserialize from.
- *
- * @exception IOException If an error ocurs.
- * @exception ClassNotFoundException If the class for an object being restored
- * cannot be found.
- */
-public void
-readExternal(ObjectInput stream) throws IOException, ClassNotFoundException
-{
-  // FIXME: Implement me
-}
+  /**
+   * Tests whether or not the specified string is equal to the MIME type
+   * of this object.
+   *
+   * @param str The string to test against.
+   *
+   * @return <code>true</code> if the string is equal to this object's MIME
+   * type, <code>false</code> otherwise.
+   *
+   * @deprecated Not compatible with <code>hashCode()</code>.
+   *             Use <code>isMimeTypeEqual()</code>
+   */
+  public boolean equals(String str)
+  {
+    return isMimeTypeEqual(str);
+  }
 
-/*************************************************************************/
+  /**
+   * Returns the hash code for this data flavor.
+   * The hash code is based on the (lower case) mime type and the
+   * representation class.
+   */
+  public int hashCode()
+  {
+    return mimeType.toLowerCase().hashCode() ^ representationClass.hashCode();
+  }
 
-/**
- * Returns a string representation of this DataFlavor. Including the
- * representation class name, MIME type and human presentable name.
- */
-public String
-toString()
-{
-  return(getClass().getName()
-        + "[representationClass=" + getRepresentationClass().getName()
-         + ",mimeType=" + getMimeType()
-         + ",humanPresentableName=" + getHumanPresentableName()
-        + "]");
-}
+  /**
+   * Returns <code>true</code> when the given <code>DataFlavor</code>
+   * matches this one.
+   */
+  public boolean match(DataFlavor dataFlavor)
+  {
+    // XXX - How is this different from equals?
+    return equals(dataFlavor);
+  }
 
-/*************************************************************************/
+  /**
+   * This method exists for backward compatibility.  It simply returns
+   * the same name/value pair passed in.
+   *
+   * @param name The parameter name.
+   * @param value The parameter value.
+   *
+   * @return The name/value pair.
+   *
+   * @deprecated
+   */
+  protected String normalizeMimeTypeParameter(String name, String value)
+  {
+    return name + "=" + value;
+  }
 
-/**
- * XXX - Currently returns <code>plainTextFlavor</code>.
- */
-public static final DataFlavor
-getTextPlainUnicodeFlavor()
-{
-  return(plainTextFlavor);
-}
+  /**
+   * This method exists for backward compatibility.  It simply returns
+   * the MIME type string unchanged.
+   *
+   * @param type The MIME type.
+   * 
+   * @return The MIME type.
+   *
+   * @deprecated
+   */
+  protected String normalizeMimeType(String type)
+  {
+    return type;
+  }
 
-/*************************************************************************/
+  /**
+   * Serialize this class.
+   *
+   * @param stream The <code>ObjectOutput</code> stream to serialize to.
+   *
+   * @exception IOException If an error occurs.
+   */
+  public void writeExternal(ObjectOutput stream) throws IOException
+  {
+    // FIXME: Implement me
+  }
 
-/**
- * XXX - Currently returns <code>java.io.InputStream</code>.
- *
- * @since 1.3
- */
-public final Class
-getDefaultRepresentationClass()
-{
-  return(java.io.InputStream.class);
-}
-/*************************************************************************/
 
-/**
- * XXX - Currently returns <code>java.io.InputStream</code>.
- */
-public final String
-getDefaultRepresentationClassAsString()
-{
-  return(getDefaultRepresentationClass().getName());
-}
+  /**
+   * De-serialize this class.
+   *
+   * @param stream The <code>ObjectInput</code> stream to deserialize from.
+   *
+   * @exception IOException If an error ocurs.
+   * @exception ClassNotFoundException If the class for an object being restored
+   * cannot be found.
+   */
+  public void readExternal(ObjectInput stream) 
+    throws IOException, ClassNotFoundException
+  {
+    // FIXME: Implement me
+  }
 
-/*************************************************************************/
+  /**
+   * Returns a string representation of this DataFlavor. Including the
+   * representation class name, MIME type and human presentable name.
+   */
+  public String toString()
+  {
+    return (getClass().getName()
+           + "[representationClass=" + getRepresentationClass().getName()
+           + ",mimeType=" + getMimeType()
+           + ",humanPresentableName=" + getHumanPresentableName()
+           + "]");
+  }
 
-/**
- * Selects the best supported text flavor on this implementation.
- * Returns <code>null</code> when none of the given flavors is liked.
- *
- * The <code>DataFlavor</code> returned the first data flavor in the
- * array that has either a representation class which is (a subclass of)
- * <code>Reader</code> or <code>String</code>, or has a representation
- * class which is (a subclass of) <code>InputStream</code> and has a
- * primary MIME type of "text" and has an supported encoding.
- */
-public static final DataFlavor
-selectBestTextFlavor(DataFlavor[] availableFlavors)
-{
-  for(int i=0; i<availableFlavors.length; i++)
-    {
-      DataFlavor df = availableFlavors[i];
-      Class c = df.representationClass;
+  /**
+   * XXX - Currently returns <code>java.io.InputStream</code>.
+   *
+   * @since 1.3
+   */
+  public final Class getDefaultRepresentationClass()
+  {
+    return java.io.InputStream.class;
+  }
 
-      // A Reader or String is good.
-      if ((Reader.class.isAssignableFrom(c))
-         || (String.class.isAssignableFrom(c)))
-       {
-         return df;
-       }
+  /**
+   * XXX - Currently returns <code>java.io.InputStream</code>.
+   */
+  public final String getDefaultRepresentationClassAsString()
+  {
+    return getDefaultRepresentationClass().getName();
+  }
 
-      // A InputStream is good if the mime primary type is "text"
-      if ((InputStream.class.isAssignableFrom(c))
-         && ("text".equals(df.getPrimaryType())))
+  /**
+   * Creates a <code>Reader</code> for a given <code>Transferable</code>.
+   *
+   * If the representation class is a (subclass of) <code>Reader</code>
+   * then an instance of the representation class is returned. If the
+   * representatation class is a <code>String</code> then a
+   * <code>StringReader</code> is returned. And if the representation class
+   * is a (subclass of) <code>InputStream</code> and the primary MIME type
+   * is "text" then a <code>InputStreamReader</code> for the correct charset
+   * encoding is returned.
+   *
+   * @param transferable The <code>Transferable</code> for which a text
+   *                     <code>Reader</code> is requested.
+   *
+   * @exception IllegalArgumentException If the representation class is not one
+   * of the seven listed above or the Transferable has null data.
+   * @exception NullPointerException If the Transferable is null.
+   * @exception UnsupportedFlavorException when the transferable doesn't
+   * support this <code>DataFlavor</code>. Or if the representable class
+   * isn't a (subclass of) <code>Reader</code>, <code>String</code>,
+   * <code>InputStream</code> and/or the primary MIME type isn't "text".
+   * @exception IOException when any IOException occurs.
+   * @exception UnsupportedEncodingException if the "charset" isn't supported
+   * on this platform.
+   */
+  public Reader getReaderForText(Transferable transferable)
+    throws UnsupportedFlavorException, IOException
+  {
+      if (!transferable.isDataFlavorSupported(this))
+          throw new UnsupportedFlavorException(this);
+  
+      if (Reader.class.isAssignableFrom(representationClass))
+          return (Reader)transferable.getTransferData(this);
+  
+      if (String.class.isAssignableFrom(representationClass))
+          return new StringReader((String)transferable.getTransferData(this));
+  
+      if (InputStream.class.isAssignableFrom(representationClass)
+          && "text".equals(getPrimaryType()))
         {
-          String encoding = availableFlavors[i].getParameter("charset");
+          InputStream in = (InputStream)transferable.getTransferData(this);
+          String encoding = getParameter("charset");
           if (encoding == null)
-            encoding = "us-ascii";
-          Reader r = null;
-          try
-            {
-              // Try to construct a dummy reader with the found encoding
-              r = new InputStreamReader
-                    (new ByteArrayInputStream(new byte[0]), encoding);
-            }
-          catch(UnsupportedEncodingException uee) { /* ignore */ }
-          if (r != null)
-            return df;
+              encoding = "us-ascii";
+          return new InputStreamReader(in, encoding);
         }
-    }
-
-  // Nothing found
-  return(null);
-}
-
-/*************************************************************************/
-
-/**
- * Creates a <code>Reader</code> for a given <code>Transferable</code>.
- *
- * If the representation class is a (subclass of) <code>Reader</code>
- * then an instance of the representation class is returned. If the
- * representatation class is a <code>String</code> then a
- * <code>StringReader</code> is returned. And if the representation class
- * is a (subclass of) <code>InputStream</code> and the primary MIME type
- * is "text" then a <code>InputStreamReader</code> for the correct charset
- * encoding is returned.
- *
- * @param transferable The <code>Transferable</code> for which a text
- *                     <code>Reader</code> is requested.
- *
- * @exception IllegalArgumentException If the representation class is not one
- * of the seven listed above or the Transferable has null data.
- * @exception NullPointerException If the Transferable is null.
- * @exception UnsupportedFlavorException when the transferable doesn't
- * support this <code>DataFlavor</code>. Or if the representable class
- * isn't a (subclass of) <code>Reader</code>, <code>String</code>,
- * <code>InputStream</code> and/or the primary MIME type isn't "text".
- * @exception IOException when any IOException occurs.
- * @exception UnsupportedEncodingException if the "charset" isn't supported
- * on this platform.
- */
-public Reader getReaderForText(Transferable transferable)
-  throws UnsupportedFlavorException, IOException
-{
-    if (!transferable.isDataFlavorSupported(this))
-        throw new UnsupportedFlavorException(this);
-
-    if (Reader.class.isAssignableFrom(representationClass))
-        return((Reader)transferable.getTransferData(this));
-
-    if (String.class.isAssignableFrom(representationClass))
-        return(new StringReader((String)transferable.getTransferData(this)));
-
-    if (InputStream.class.isAssignableFrom(representationClass)
-        && "text".equals(getPrimaryType()))
-      {
-        InputStream in = (InputStream)transferable.getTransferData(this);
-        String encoding = getParameter("charset");
-        if (encoding == null)
-            encoding = "us-ascii";
-        return(new InputStreamReader(in, encoding));
-      }
-
-    throw new UnsupportedFlavorException(this);
-}
+  
+      throw new UnsupportedFlavorException(this);
+  }
 
   /**
    * Returns whether the representation class for this DataFlavor is
@@ -1010,9 +883,9 @@ public Reader getReaderForText(Transferable transferable)
    *
    * @since 1.4
    */
-  public boolean isRepresentationClassByteBuffer ()
+  public boolean isRepresentationClassByteBuffer()
   {
-    return ByteBuffer.class.isAssignableFrom (representationClass);
+    return ByteBuffer.class.isAssignableFrom(representationClass);
   }
 
   /**
@@ -1021,9 +894,9 @@ public Reader getReaderForText(Transferable transferable)
    *
    * @since 1.4
    */
-  public boolean isRepresentationClassCharBuffer ()
+  public boolean isRepresentationClassCharBuffer()
   {
-    return CharBuffer.class.isAssignableFrom (representationClass);
+    return CharBuffer.class.isAssignableFrom(representationClass);
   }
 
   /**
@@ -1032,10 +905,67 @@ public Reader getReaderForText(Transferable transferable)
    *
    * @since 1.4
    */
-  public boolean isRepresentationClassReader ()
+  public boolean isRepresentationClassReader()
   {
-    return Reader.class.isAssignableFrom (representationClass);
+    return Reader.class.isAssignableFrom(representationClass);
+  }
+  
+  /**
+   * Returns whether this <code>DataFlavor</code> is a valid text flavor for
+   * this implementation of the Java platform. Only flavors equivalent to
+   * <code>DataFlavor.stringFlavor</code> and <code>DataFlavor</code>s with
+   * a primary MIME type of "text" can be valid text flavors.
+   * <p>
+   * If this flavor supports the charset parameter, it must be equivalent to
+   * <code>DataFlavor.stringFlavor</code>, or its representation must be
+   * <code>java.io.Reader</code>, <code>java.lang.String</code>,
+   * <code>java.nio.CharBuffer</code>, <code>java.io.InputStream</code> or 
+   * <code>java.nio.ByteBuffer</code>,
+   * If the representation is <code>java.io.InputStream</code> or 
+   * <code>java.nio.ByteBuffer</code>, then this flavor's <code>charset</code> 
+   * parameter must be supported by this implementation of the Java platform. 
+   * If a charset is not specified, then the platform default charset, which 
+   * is always supported, is assumed.
+   * <p>
+   * If this flavor does not support the charset parameter, its
+   * representation must be <code>java.io.InputStream</code>,
+   * <code>java.nio.ByteBuffer</code>.
+   * <p>
+   * See <code>selectBestTextFlavor</code> for a list of text flavors which
+   * support the charset parameter.
+   *
+   * @return <code>true</code> if this <code>DataFlavor</code> is a valid
+   *         text flavor as described above; <code>false</code> otherwise
+   * @see #selectBestTextFlavor
+   * @since 1.4
+   */
+  public boolean isFlavorTextType() {
+    // FIXME: I'm not 100% sure if this implementation does the same like sun's does    
+    if(equals(DataFlavor.stringFlavor) || getPrimaryType().equals("text"))
+      {
+        String charset = getParameter("charset");
+        Class c = getRepresentationClass();
+        if(charset != null) 
+          {            
+            if(Reader.class.isAssignableFrom(c) 
+                || CharBuffer.class.isAssignableFrom(c) 
+                || String.class.isAssignableFrom(c)) 
+              {
+                return true;
+              }
+            else if(InputStream.class.isAssignableFrom(c)
+                    || ByteBuffer.class.isAssignableFrom(c))
+              {
+                return Charset.isSupported(charset);
+              }
+          }
+        else if(InputStream.class.isAssignableFrom(c)
+            || ByteBuffer.class.isAssignableFrom(c))
+          {
+            return true;
+          }
+      }
+    return false;
   }
-
 } // class DataFlavor
 
index f6530f5117c1e7e2e046fd494671c7e246b52f7b..7b4d2fbd38f86306d19ee6e94686833aab8e26f5 100644 (file)
@@ -38,9 +38,11 @@ exception statement from your version. */
 
 package java.awt.datatransfer;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.WeakHashMap;
 
 /**
   * This class maps between native platform type names and DataFlavors.
@@ -54,10 +56,28 @@ import java.util.Map;
 public final class SystemFlavorMap implements FlavorMap, FlavorTable
 {
   /**
-   * The default (instance) flavor map.
+   * The map which maps the thread's <code>ClassLoaders</code> to 
+   * <code>SystemFlavorMaps</code>.
    */
-  private static FlavorMap defaultFlavorMap;
-
+  private static final Map systemFlavorMaps = new WeakHashMap();
+  
+  /**
+   * Constant which is used to prefix encode Java MIME types.
+   */
+  private static final String GNU_JAVA_MIME_PREFIX = "gnu.java:";
+  
+  /**
+   * This map maps native <code>String</code>s to lists of 
+   * <code>DataFlavor</code>s
+   */
+  private HashMap nativeToFlavorMap = new HashMap();
+  
+  /**
+   * This map maps <code>DataFlavor</code>s to lists of native 
+   * <code>String</code>s
+   */
+  private HashMap flavorToNativeMap = new HashMap();
+  
   /**
    * Private constructor.
    */
@@ -98,47 +118,118 @@ public final class SystemFlavorMap implements FlavorMap, FlavorTable
   }
 
   /**
-   * Returns the default (instance) (System)FlavorMap.
+   * Returns the (System)FlavorMap for the current thread's
+   * ClassLoader.
    */
   public static FlavorMap getDefaultFlavorMap ()
   {
-    if (defaultFlavorMap == null)
-      defaultFlavorMap = new SystemFlavorMap ();
-
-    return defaultFlavorMap;
+    ClassLoader classLoader = Thread.currentThread()
+        .getContextClassLoader();
+    
+    //if ContextClassLoader not set, use system default 
+    if (classLoader == null)
+      {
+        classLoader = ClassLoader.getSystemClassLoader();
+      }
+    
+    synchronized(systemFlavorMaps)
+      {
+        FlavorMap map = (FlavorMap) 
+            systemFlavorMaps.get(classLoader);
+        if (map == null) 
+          {
+            map = new SystemFlavorMap();
+            systemFlavorMaps.put(classLoader, map);
+          }
+        return map;
+      }
   }
 
   /**
-   * Returns the native type name for the given java mime type.
+   * Encodes a MIME type for use as a <code>String</code> native. The format
+   * of an encoded representation of a MIME type is implementation-dependent.
+   * The only restrictions are:
+   * <ul>
+   * <li>The encoded representation is <code>null</code> if and only if the
+   * MIME type <code>String</code> is <code>null</code>.</li>
+   * <li>The encoded representations for two non-<code>null</code> MIME type
+   * <code>String</code>s are equal if and only if these <code>String</code>s
+   * are equal according to <code>String.equals(Object)</code>.</li>
+   * </ul>
+   * <p>
+   * The present implementation of this method returns the specified MIME
+   * type <code>String</code> prefixed with <code>gnu.java:</code>.
+   *
+   * @param mime the MIME type to encode
+   * @return the encoded <code>String</code>, or <code>null</code> if
+   *         mimeType is <code>null</code>
    */
   public static String encodeJavaMIMEType (String mime)
   {
-    return null;
+    if (mime != null)
+      return GNU_JAVA_MIME_PREFIX + mime;
+    else
+      return null;
   }
 
   /**
-   * Returns the native type name for the given data flavor.
+   * Encodes a <code>DataFlavor</code> for use as a <code>String</code>
+   * native. The format of an encoded <code>DataFlavor</code> is 
+   * implementation-dependent. The only restrictions are:
+   * <ul>
+   * <li>The encoded representation is <code>null</code> if and only if the
+   * specified <code>DataFlavor</code> is <code>null</code> or its MIME type
+   * <code>String</code> is <code>null</code>.</li>
+   * <li>The encoded representations for two non-<code>null</code>
+   * <code>DataFlavor</code>s with non-<code>null</code> MIME type
+   * <code>String</code>s are equal if and only if the MIME type
+   * <code>String</code>s of these <code>DataFlavor</code>s are equal
+   * according to <code>String.equals(Object)</code>.</li>
+   * </ul>
+   * <p>
+   * The present implementation of this method returns the MIME type
+   * <code>String</code> of the specified <code>DataFlavor</code> prefixed
+   * with <code>gnu.java:</code>.
+   *
+   * @param df the <code>DataFlavor</code> to encode
+   * @return the encoded <code>String</code>, or <code>null</code> if
+   *         flav is <code>null</code> or has a <code>null</code> MIME type
    */
   public static String encodeDataFlavor (DataFlavor df)
   {
-    return null;
+    if (df != null)
+      {
+        return encodeJavaMIMEType(df.getMimeType());
+      }
+    else
+      return null;
   }
 
   /**
    * Returns true if the native type name can be represented as
-   * a java mime type.
+   * a java mime type. Returns <code>false</code> if parameter is
+   * <code>null</code>.
    */
   public static boolean isJavaMIMEType (String name)
   {
-    return false;
+    return (name != null && name.startsWith(GNU_JAVA_MIME_PREFIX));
   }
 
   /**
-   * Returns the java mime type for the given the native type name.
+   * Decodes a <code>String</code> native for use as a Java MIME type.
+   *
+   * @param name the <code>String</code> to decode
+   * @return the decoded Java MIME type, or <code>null</code> if nat 
+   *         is not an encoded <code>String</code> native
    */
   public static String decodeJavaMIMEType (String name)
   {
-    return null;
+    if (isJavaMIMEType(name))
+      {
+        return name.substring(GNU_JAVA_MIME_PREFIX.length());
+      }
+    else 
+      return null;
   }
 
   /**
@@ -156,6 +247,20 @@ public final class SystemFlavorMap implements FlavorMap, FlavorTable
       return null;
   }
 
+  /** 
+   * Returns a List of <code>DataFlavors</code> to which the specified 
+   * <code>String</code> native can be translated by the data transfer 
+   * subsystem. The <code>List</code> will be sorted from best 
+   * <code>DataFlavor</code> to worst. That is, the first <code>DataFlavor 
+   * </code> will best reflect data in the specified native to a Java 
+   * application. 
+   * <p>
+   * If the specified native is previously unknown to the data transfer 
+   * subsystem, and that native has been properly encoded, then invoking 
+   * this method will establish a mapping in both directions between the 
+   * specified native and a DataFlavor whose MIME type is a decoded 
+   * version of the native.
+   */ 
   public List getFlavorsForNative (String nat)
   {
     throw new Error ("Not implemented");
@@ -165,5 +270,160 @@ public final class SystemFlavorMap implements FlavorMap, FlavorTable
   {
     throw new Error ("Not implemented");
   }
+  
+  /**
+   * Adds a mapping from a single <code>String</code> native to a single
+   * <code>DataFlavor</code>. Unlike <code>getFlavorsForNative</code>, the
+   * mapping will only be established in one direction, and the native will
+   * not be encoded. To establish a two-way mapping, call
+   * <code>addUnencodedNativeForFlavor</code> as well. The new mapping will
+   * be of lower priority than any existing mapping.
+   * This method has no effect if a mapping from the specified
+   * <code>String</code> native to the specified or equal
+   * <code>DataFlavor</code> already exists.
+   *
+   * @param nativeStr the <code>String</code> native key for the mapping
+   * @param flavor the <code>DataFlavor</code> value for the mapping
+   * @throws NullPointerException if nat or flav is <code>null</code>
+   *
+   * @see #addUnencodedNativeForFlavor
+   * @since 1.4
+   */
+  public synchronized void addFlavorForUnencodedNative(String nativeStr, 
+                                                       DataFlavor flavor)
+  {
+    if ((nativeStr == null) || (flavor == null))
+      throw new NullPointerException();
+    List flavors = (List) nativeToFlavorMap.get(nativeStr);
+    if (flavors == null) 
+      {
+        flavors = new ArrayList();
+        nativeToFlavorMap.put(nativeStr, flavors);
+      }
+    else
+      {
+        if (! flavors.contains(flavor))
+          flavors.add(flavor);
+      }
+  }
+  
+  /**
+   * Adds a mapping from the specified <code>DataFlavor</code> (and all
+   * <code>DataFlavor</code>s equal to the specified <code>DataFlavor</code>)
+   * to the specified <code>String</code> native.
+   * Unlike <code>getNativesForFlavor</code>, the mapping will only be
+   * established in one direction, and the native will not be encoded. To
+   * establish a two-way mapping, call
+   * <code>addFlavorForUnencodedNative</code> as well. The new mapping will 
+   * be of lower priority than any existing mapping.
+   * This method has no effect if a mapping from the specified or equal
+   * <code>DataFlavor</code> to the specified <code>String</code> native
+   * already exists.
+   *
+   * @param flavor the <code>DataFlavor</code> key for the mapping
+   * @param nativeStr the <code>String</code> native value for the mapping
+   * @throws NullPointerException if flav or nat is <code>null</code>
+   *
+   * @see #addFlavorForUnencodedNative
+   * @since 1.4
+   */
+  public synchronized void addUnencodedNativeForFlavor(DataFlavor flavor,
+                                                       String nativeStr) 
+  {
+    if ((nativeStr == null) || (flavor == null))
+      throw new NullPointerException();
+    List natives = (List) flavorToNativeMap.get(flavor);
+    if (natives == null) 
+      {
+        natives = new ArrayList();
+        flavorToNativeMap.put(flavor, natives);
+      }
+    else
+      {
+        if (! natives.contains(nativeStr))
+          natives.add(nativeStr);
+      }
+  }
+  
+  /**
+   * Discards the current mappings for the specified <code>DataFlavor</code>
+   * and all <code>DataFlavor</code>s equal to the specified
+   * <code>DataFlavor</code>, and creates new mappings to the 
+   * specified <code>String</code> natives.
+   * Unlike <code>getNativesForFlavor</code>, the mappings will only be
+   * established in one direction, and the natives will not be encoded. To
+   * establish two-way mappings, call <code>setFlavorsForNative</code>
+   * as well. The first native in the array will represent the highest
+   * priority mapping. Subsequent natives will represent mappings of
+   * decreasing priority.
+   * <p>
+   * If the array contains several elements that reference equal
+   * <code>String</code> natives, this method will establish new mappings
+   * for the first of those elements and ignore the rest of them.
+   * <p> 
+   * It is recommended that client code not reset mappings established by the
+   * data transfer subsystem. This method should only be used for
+   * application-level mappings.
+   *
+   * @param flavor the <code>DataFlavor</code> key for the mappings
+   * @param natives the <code>String</code> native values for the mappings
+   * @throws NullPointerException if flav or natives is <code>null</code>
+   *         or if natives contains <code>null</code> elements
+   *
+   * @see #setFlavorsForNative
+   * @since 1.4
+   */
+  public synchronized void setNativesForFlavor(DataFlavor flavor,
+                                               String[] natives) 
+  {
+    if ((natives == null) || (flavor == null))
+      throw new NullPointerException();
+    
+    flavorToNativeMap.remove(flavor);
+    for (int i = 0; i < natives.length; i++) 
+      {
+        addUnencodedNativeForFlavor(flavor, natives[i]);
+      }
+  }
+  
+  /**
+   * Discards the current mappings for the specified <code>String</code>
+   * native, and creates new mappings to the specified
+   * <code>DataFlavor</code>s. Unlike <code>getFlavorsForNative</code>, the
+   * mappings will only be established in one direction, and the natives need
+   * not be encoded. To establish two-way mappings, call
+   * <code>setNativesForFlavor</code> as well. The first
+   * <code>DataFlavor</code> in the array will represent the highest priority
+   * mapping. Subsequent <code>DataFlavor</code>s will represent mappings of
+   * decreasing priority.
+   * <p>
+   * If the array contains several elements that reference equal
+   * <code>DataFlavor</code>s, this method will establish new mappings
+   * for the first of those elements and ignore the rest of them.
+   * <p>
+   * It is recommended that client code not reset mappings established by the
+   * data transfer subsystem. This method should only be used for
+   * application-level mappings.
+   *
+   * @param nativeStr the <code>String</code> native key for the mappings
+   * @param flavors the <code>DataFlavor</code> values for the mappings
+   * @throws NullPointerException if nat or flavors is <code>null</code>
+   *         or if flavors contains <code>null</code> elements
+   *
+   * @see #setNativesForFlavor
+   * @since 1.4
+   */
+  public synchronized void setFlavorsForNative(String nativeStr,
+                                               DataFlavor[] flavors) 
+  {
+    if ((nativeStr == null) || (flavors == null))
+      throw new NullPointerException();
+    
+    nativeToFlavorMap.remove(nativeStr);
+    for (int i = 0; i < flavors.length; i++) 
+      {
+        addFlavorForUnencodedNative(nativeStr, flavors[i]);
+      }
+  }
 
 } // class SystemFlavorMap
diff --git a/libjava/classpath/java/beans/DefaultPersistenceDelegate.java b/libjava/classpath/java/beans/DefaultPersistenceDelegate.java
new file mode 100644 (file)
index 0000000..9dd1ae5
--- /dev/null
@@ -0,0 +1,194 @@
+/* DefaultPersistenceDelegate.java
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package java.beans;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+/** <p><code>DefaultPersistenceDelegate</code> is a {@link PersistenceDelegate}
+ * implementation that can be used to serialize objects which adhere to the
+ * Java Beans naming convention.</p>
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ * @since 1.4
+ */
+public class DefaultPersistenceDelegate extends PersistenceDelegate
+{
+
+  private String[] constructorPropertyNames;
+
+  /** Using this constructor the object to be serialized will be instantiated
+   * with the default non-argument constructor.
+   */
+  public DefaultPersistenceDelegate()
+  {
+  }
+
+  /** This constructor allows to specify which Bean properties appear
+   * in the constructor.
+   * 
+   * <p>The implementation reads the mentioned properties from the Bean
+   * instance and applies it in the given order to a corresponding
+   * constructor.</p>
+   * 
+   * @param constructorPropertyNames The properties the Bean's constructor
+   * should be given to.
+   */
+  public DefaultPersistenceDelegate(String[] constructorPropertyNames)
+  {
+    this.constructorPropertyNames = constructorPropertyNames;
+  }
+
+  protected boolean mutatesTo(Object oldInstance, Object newInstance)
+  {
+    try
+      {
+
+        return (constructorPropertyNames != null
+               && constructorPropertyNames.length > 0
+               && oldInstance.getClass()
+               .getDeclaredMethod("equals",
+                                  new Class[] { Object.class }) != null)
+                                  ? oldInstance.equals(newInstance)
+                                  : super.mutatesTo(oldInstance, newInstance);
+      }
+    catch (NoSuchMethodException nsme)
+      {
+        return super.mutatesTo(oldInstance, newInstance);
+      }
+  }
+
+  protected Expression instantiate(Object oldInstance, Encoder out)
+  {
+    Object[] args = null;
+
+    try
+      {
+        // If there are property names in the array, then we create
+        // a corresponding argument array and store every
+        // argument in it. To retrieve an argument object we have
+        // dig up the right property in the bean class' BeanInfo
+        // object.
+        // This is so costly in terms of execution time I better
+        // not think twice about it ...
+        if (constructorPropertyNames != null)
+          {
+            args = new Object[constructorPropertyNames.length];
+
+            // Look up the properties of oldInstance's class to find matches for
+            // the
+            // names given in the constructor.
+            PropertyDescriptor[] propertyDescs = Introspector.getBeanInfo(
+                                                                          oldInstance.getClass()).getPropertyDescriptors();
+
+            for (int i = 0; i < constructorPropertyNames.length; i++)
+              {
+                // Scan the property descriptions for a matching name.
+                for (int j = 0; j < propertyDescs.length; j++)
+                  {
+                    if (propertyDescs[i].getName().equals(
+                                                          constructorPropertyNames[i]))
+                      {
+                        Method readMethod = propertyDescs[i].getReadMethod();
+
+                        args[i] = readMethod.invoke(oldInstance, null);
+                      }
+                  }
+              }
+          }
+
+      }
+    catch (IllegalAccessException iae)
+      {
+        out.getExceptionListener().exceptionThrown(iae);
+      }
+    catch (IllegalArgumentException iarge)
+      {
+        out.getExceptionListener().exceptionThrown(iarge);
+      }
+    catch (InvocationTargetException ite)
+      {
+        out.getExceptionListener().exceptionThrown(ite);
+      }
+    catch (IntrospectionException ie)
+      {
+        out.getExceptionListener().exceptionThrown(ie);
+      }
+
+    return new Expression(oldInstance, oldInstance.getClass(), "new", args);
+  }
+
+  protected void initialize(Class type, Object oldInstance, Object newInstance,
+                            Encoder out)
+  {
+    try
+      {
+        PropertyDescriptor[] propertyDescs = Introspector.getBeanInfo(
+                                                                      oldInstance.getClass()).getPropertyDescriptors();
+
+        for (int i = 0; i < propertyDescs.length; i++)
+          {
+            Method readMethod = propertyDescs[i].getReadMethod();
+            Method writeMethod = propertyDescs[i].getWriteMethod();
+
+            if (readMethod != null && writeMethod != null)
+              {
+                Object oldValue = readMethod.invoke(oldInstance, null);
+
+                if (oldValue != null)
+                  out.writeStatement(new Statement(oldInstance,
+                                                   writeMethod.getName(),
+                                                   new Object[] { oldValue }));
+              }
+          }
+      }
+    catch (IntrospectionException ie)
+      {
+        out.getExceptionListener().exceptionThrown(ie);
+      }
+    catch (IllegalAccessException iae)
+      {
+        out.getExceptionListener().exceptionThrown(iae);
+      }
+    catch (InvocationTargetException ite)
+      {
+        out.getExceptionListener().exceptionThrown(ite);
+      }
+  }
+}
diff --git a/libjava/classpath/java/beans/Encoder.java b/libjava/classpath/java/beans/Encoder.java
new file mode 100644 (file)
index 0000000..9b96aaa
--- /dev/null
@@ -0,0 +1,463 @@
+/* Encoder.java
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package java.beans;
+
+import gnu.java.beans.encoder.ArrayPersistenceDelegate;
+import gnu.java.beans.encoder.ClassPersistenceDelegate;
+import gnu.java.beans.encoder.CollectionPersistenceDelegate;
+import gnu.java.beans.encoder.MapPersistenceDelegate;
+import gnu.java.beans.encoder.PrimitivePersistenceDelegate;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.IdentityHashMap;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
+import java.util.TreeMap;
+import java.util.TreeSet;
+import java.util.Vector;
+
+/**
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ * @since 1.4
+ */
+public class Encoder
+{
+
+  /**
+   * An internal DefaultPersistenceDelegate instance that is used for every
+   * class that does not a have a special special PersistenceDelegate.
+   */
+  private static PersistenceDelegate defaultPersistenceDelegate;
+
+  private static PersistenceDelegate fakePersistenceDelegate;
+
+  /**
+   * Stores the relation Class->PersistenceDelegate.
+   */
+  private static HashMap delegates = new HashMap();
+
+  /**
+   * Stores the relation oldInstance->newInstance
+   */
+  private IdentityHashMap candidates = new IdentityHashMap();
+
+  private ExceptionListener exceptionListener;
+
+  /**
+   * A simple number that is used to restrict the access to writeExpression and
+   * writeStatement. The rule is that both methods should only be used when an
+   * object is written to the stream (= writeObject). Therefore accessCounter is
+   * incremented just before the call to writeObject and decremented afterwards.
+   * Then writeStatement and writeExpression allow execution only if
+   * accessCounter is bigger than zero.
+   */
+  private int accessCounter = 0;
+
+  public Encoder()
+  {
+    setupDefaultPersistenceDelegates();
+
+    setExceptionListener(null);
+  }
+
+  /**
+   * Sets up a bunch of {@link PersistenceDelegate} instances which are needed
+   * for the basic working of a {@link Encoder}s.
+   */
+  private static void setupDefaultPersistenceDelegates()
+  {
+    synchronized (delegates)
+      {
+        if (defaultPersistenceDelegate != null)
+          return;
+
+        delegates.put(Class.class, new ClassPersistenceDelegate());
+
+        PersistenceDelegate pd = new PrimitivePersistenceDelegate();
+        delegates.put(Boolean.class, pd);
+        delegates.put(Byte.class, pd);
+        delegates.put(Short.class, pd);
+        delegates.put(Integer.class, pd);
+        delegates.put(Long.class, pd);
+        delegates.put(Float.class, pd);
+        delegates.put(Double.class, pd);
+
+        delegates.put(Object[].class, new ArrayPersistenceDelegate());
+
+        pd = new CollectionPersistenceDelegate();
+        delegates.put(ArrayList.class, pd);
+        delegates.put(LinkedList.class, pd);
+        delegates.put(Vector.class, pd);
+        delegates.put(HashSet.class, pd);
+        delegates.put(LinkedHashSet.class, pd);
+        delegates.put(TreeSet.class, pd);
+        
+        pd = new MapPersistenceDelegate();
+        delegates.put(HashMap.class, pd);
+        delegates.put(TreeMap.class, pd);
+        delegates.put(java.util.Hashtable.class, pd);
+        delegates.put(java.util.IdentityHashMap.class, pd);
+        
+        delegates.put(java.util.LinkedHashMap.class, pd);
+        delegates.put(java.util.Properties.class, pd);
+
+        delegates.put(java.awt.RenderingHints.class, pd);
+        delegates.put(java.util.WeakHashMap.class, pd);
+        delegates.put(javax.swing.UIDefaults.class, pd);
+        
+        // TODO: These classes need to be implemented first
+        //delegates.put(java.security.AuthProvider.class, pd);
+        //delegates.put(java.util.concurrent.ConcurrentHashMap.class, pd);
+        //delegates.put(java.util.EnumMap.class, pd);
+        //delegates.put(javax.management.openmbean.TabularDataSupport.class, pd);
+        
+        defaultPersistenceDelegate = new DefaultPersistenceDelegate();
+        delegates.put(Object.class, defaultPersistenceDelegate);
+
+        // Creates a PersistenceDelegate implementation which is
+        // returned for 'null'. In practice this instance is
+        // not used in any way and is just here to be compatible
+        // with the reference implementation which returns a
+        // similar instance when calling getPersistenceDelegate(null) .
+        fakePersistenceDelegate = new PersistenceDelegate()
+        {
+          protected Expression instantiate(Object o, Encoder e)
+          {
+            return null;
+          }
+        };
+
+      }
+  }
+
+  protected void writeObject(Object o)
+  {
+    // 'null' has no PersistenceDelegate and will not
+    // create an Expression which has to be cloned.
+    // However subclasses should be aware that writeObject
+    // may be called with a 'null' argument and should
+    // write the proper representation of it.
+    if (o == null)
+      return;
+
+    PersistenceDelegate pd = getPersistenceDelegate(o.getClass());
+
+    accessCounter++;
+    pd.writeObject(o, this);
+    accessCounter--;
+    
+  }
+
+  /**
+   * Sets the {@link ExceptionListener} instance to be used for reporting
+   * recorable exceptions in the instantiation and initialization sequence. If
+   * the argument is <code>null</code> a default instance will be used that
+   * prints the thrown exception to <code>System.err</code>.
+   */
+  public void setExceptionListener(ExceptionListener listener)
+  {
+    exceptionListener = (listener != null) ? listener : new ExceptionListener()
+    {
+      public void exceptionThrown(Exception e)
+      {
+        System.err.println("exception thrown: " + e);
+        e.printStackTrace();
+      }
+    };
+  }
+
+  /**
+   * Returns the currently active {@link ExceptionListener} instance.
+   */
+  public ExceptionListener getExceptionListener()
+  {
+    return exceptionListener;
+  }
+
+  public PersistenceDelegate getPersistenceDelegate(Class type)
+  {
+    // This is not specified but the JDK behaves like this.
+    if (type == null)
+      return fakePersistenceDelegate;
+
+    // Treats all array classes in the same way and assigns
+    // them a shared PersistenceDelegate implementation tailored
+    // for array instantation and initialization.
+    if (type.isArray())
+      return (PersistenceDelegate) delegates.get(Object[].class);
+
+    PersistenceDelegate pd = (PersistenceDelegate) delegates.get(type);
+
+    return (pd != null) ? pd : (PersistenceDelegate) defaultPersistenceDelegate;
+  }
+
+  /**
+   * Sets the {@link PersistenceDelegate} instance for the given class.
+   * <p>
+   * Note: Throws a <code>NullPointerException</code> if the argument is
+   * <code>null</code>.
+   * </p>
+   * <p>
+   * Note: Silently ignores PersistenceDelegates for Array types and primitive
+   * wrapper classes.
+   * </p>
+   * <p>
+   * Note: Although this method is not declared <code>static</code> changes to
+   * the {@link PersistenceDelegate}s affect <strong>all</strong>
+   * {@link Encoder} instances. <strong>In this implementation</strong> the
+   * access is thread safe.
+   * </p>
+   */
+  public void setPersistenceDelegate(Class type, PersistenceDelegate delegate)
+  {
+    // If the argument is null this will cause a NullPointerException
+    // which is expected behavior.
+
+    // This makes custom PDs for array, primitive types and their wrappers
+    // impossible but this is how the JDK behaves.
+    if (type.isArray() || type.isPrimitive() || type == Boolean.class
+        || type == Byte.class || type == Short.class || type == Integer.class
+        || type == Long.class || type == Float.class || type == Double.class)
+      return;
+
+    synchronized (delegates)
+      {
+        delegates.put(type, delegate);
+      }
+
+  }
+
+  public Object remove(Object oldInstance)
+  {
+    return candidates.remove(oldInstance);
+  }
+
+  /**
+   * Returns the replacement object which has been created by the encoder during
+   * the instantiation sequence or <code>null</code> if the object has not
+   * been processed yet.
+   * <p>
+   * Note: The <code>String</code> class acts as an endpoint for the
+   * inherently recursive algorithm of the {@link Encoder}. Therefore instances
+   * of <code>String</code> will always be returned by this method. In other
+   * words the assertion: <code>
+   * assert (anyEncoder.get(anyString) == anyString)
+   * </code<
+   * will always hold.</p>
+   *
+   * <p>Note: If <code>null</code> is requested, the result will
+   * always be <code>null</code>.</p>
+   */
+  public Object get(Object oldInstance)
+  {
+    // String instances are handled in a special way.
+    // No one knows why this is not officially specified
+    // because this is a rather important design decision.
+    return (oldInstance == null) ? null : 
+             (oldInstance.getClass() == String.class) ?
+               oldInstance : candidates.get(oldInstance);
+  }
+
+  /**
+   * <p>
+   * Note: If you call this method not from within an object instantiation and
+   * initialization sequence it will be silently ignored.
+   * </p>
+   */
+  public void writeStatement(Statement stmt)
+  {
+    // Silently ignore out of bounds calls.
+    if (accessCounter <= 0)
+      return;
+
+    Object target = stmt.getTarget();
+
+    Object newTarget = get(target);
+    if (newTarget == null)
+      {
+        writeObject(target);
+        newTarget = get(target);
+      }
+
+    Object[] args = stmt.getArguments();
+    Object[] newArgs = new Object[args.length];
+
+    for (int i = 0; i < args.length; i++)
+      {
+        newArgs[i] = get(args[i]);
+        if (newArgs[i] == null || isImmutableType(args[i].getClass()))
+          {
+            writeObject(args[i]);
+            newArgs[i] = get(args[i]);
+          }
+      }
+
+    Statement newStmt = new Statement(newTarget, stmt.getMethodName(), newArgs);
+
+    try
+      {
+        newStmt.execute();
+      }
+    catch (Exception e)
+      {
+        exceptionListener.exceptionThrown(e);
+      }
+
+  }
+
+  /**
+   * <p>
+   * Note: If you call this method not from within an object instantiation and
+   * initialization sequence it will be silently ignored.
+   * </p>
+   */
+  public void writeExpression(Expression expr)
+  {
+    // Silently ignore out of bounds calls.
+    if (accessCounter <= 0)
+      return;
+
+    Object target = expr.getTarget();
+    Object value = null;
+    Object newValue = null;
+
+    try
+      {
+        value = expr.getValue();
+      }
+    catch (Exception e)
+      {
+        exceptionListener.exceptionThrown(e);
+        return;
+      }
+    
+    
+    newValue = get(value);
+
+    if (newValue == null)
+      {
+        Object newTarget = get(target);
+        if (newTarget == null)
+          {
+            writeObject(target);
+            newTarget = get(target);
+
+            // May happen if exception was thrown.
+            if (newTarget == null)
+              {
+                return;
+              }
+          }
+
+        Object[] args = expr.getArguments();
+        Object[] newArgs = new Object[args.length];
+
+        for (int i = 0; i < args.length; i++)
+          {
+            newArgs[i] = get(args[i]);
+            if (newArgs[i] == null || isImmutableType(args[i].getClass()))
+              {
+                writeObject(args[i]);
+                newArgs[i] = get(args[i]);
+              }
+          }
+        
+        Expression newExpr = new Expression(newTarget, expr.getMethodName(),
+                                            newArgs);
+        
+        // Fakes the result of Class.forName(<primitiveType>) to make it possible
+        // to hand such a type to the encoding process.
+        if (value instanceof Class && ((Class) value).isPrimitive())
+          newExpr.setValue(value);
+        
+        // Instantiates the new object.
+        try
+          {
+            newValue = newExpr.getValue();
+
+            candidates.put(value, newValue);
+          }
+        catch (Exception e)
+          {
+            exceptionListener.exceptionThrown(e);
+            
+            return;
+          }
+        
+        writeObject(value);
+
+      }
+    else if(value.getClass() == String.class || value.getClass() == Class.class)
+      {
+        writeObject(value);
+      }
+
+  }
+
+  /** Returns whether the given class is an immutable
+   * type which has to be handled differently when serializing it.
+   * 
+   * <p>Immutable objects always have to be instantiated instead of
+   * modifying an existing instance.</p>
+   * 
+   * @param type The class to test.
+   * @return Whether the first argument is an immutable type.
+   */
+  boolean isImmutableType(Class type)
+  {
+    return type == String.class || type == Class.class
+      || type == Integer.class || type == Boolean.class
+      || type == Byte.class || type == Short.class
+      || type == Long.class || type == Float.class
+      || type == Double.class;
+  }
+  
+  /** Sets the stream candidate for a given object.
+   * 
+   * @param oldObject The object given to the encoder.
+   * @param newObject The object the encoder generated.
+   */
+  void putCandidate(Object oldObject, Object newObject)
+  {
+    candidates.put(oldObject, newObject);
+  }
+  
+}
index 8624e6434761c25b022946b35cac8fbe6de475b4..381a453031e61e23d0ce3311634ef1a603315166 100644 (file)
@@ -1,39 +1,39 @@
 /* java.beans.EventSetDescriptor
  Copyright (C) 1998 Free Software Foundation, Inc.
Copyright (C) 1998, 2006 Free Software Foundation, Inc.
 
-This file is part of GNU Classpath.
+ This file is part of GNU Classpath.
 
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
  
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
 
 
 package java.beans;
@@ -45,398 +45,719 @@ import java.lang.reflect.Modifier;
 import java.util.Vector;
 
 /**
- ** EventSetDescriptor describes the hookup between an event source
- ** class and an event listener class.
- **
- ** EventSets have several attributes: the listener class, the events
- ** that can be fired to the listener (methods in the listener class), and
- ** an add and remove listener method from the event firer's class.<P>
- **
- ** The methods have these constraints on them:<P>
- ** <UL>
- ** <LI>event firing methods: must have <CODE>void</CODE> return value.  Any
- ** parameters and exceptions are allowed.  May be public, protected or
- ** package-protected. (Don't ask me why that is, I'm just following the spec.
- ** The only place it is even mentioned is in the Java Beans white paper, and
- ** there it is only implied.)</LI>
- ** <LI>add listener method: must have <CODE>void</CODE> return value.  Must
- ** take exactly one argument, of the listener class's type.  May fire either
- ** zero exceptions, or one exception of type <CODE>java.util.TooManyListenersException</CODE>.
- ** Must be public.</LI>
- ** <LI>remove listener method: must have <CODE>void</CODE> return value.
- ** Must take exactly one argument, of the listener class's type.  May not
- ** fire any exceptions.  Must be public.</LI>
- ** </UL>
- **
- ** A final constraint is that event listener classes must extend from EventListener.<P>
- **
- ** There are also various design patterns associated with some of the methods
- ** of construction. Those are explained in more detail in the appropriate
- ** constructors.<P>
- **
- ** <STRONG>Documentation Convention:</STRONG> for proper
- ** Internalization of Beans inside an RAD tool, sometimes there
- ** are two names for a property or method: a programmatic, or
- ** locale-independent name, which can be used anywhere, and a
- ** localized, display name, for ease of use.  In the
- ** documentation I will specify different String values as
- ** either <EM>programmatic</EM> or <EM>localized</EM> to
- ** make this distinction clear.
- **
- ** @author John Keiser
- ** @since JDK1.1
- ** @version 1.1.0, 31 May 1998
- **/
-
-public class EventSetDescriptor extends FeatureDescriptor {
-       private Method addListenerMethod;
-       private Method removeListenerMethod;
-       private Class listenerType;
-       private MethodDescriptor[] listenerMethodDescriptors;
-       private Method[] listenerMethods;
-
-       private boolean unicast;
-       private boolean inDefaultEventSet = true;
-
-       /** Create a new EventSetDescriptor.
-        ** This version of the constructor enforces the rules imposed on the methods
-        ** described at the top of this class, as well as searching for:<P>
-        ** <OL>
-        ** <LI>The event-firing method must be non-private with signature
-        ** <CODE>void &lt;listenerMethodName&gt;(&lt;eventSetName&gt;Event)</CODE>
-        ** (where <CODE>&lt;eventSetName&gt;</CODE> has its first character capitalized
-        ** by the constructor and the Event is a descendant of
-        ** <CODE>java.util.EventObject</CODE>) in class <CODE>listenerType</CODE>
-        ** (any exceptions may be thrown).
-        ** <B>Implementation note:</B> Note that there could conceivably be multiple
-        ** methods with this type of signature (example: java.util.MouseEvent vs.
-        ** my.very.own.MouseEvent).  In this implementation, all methods fitting the
-        ** description will be put into the <CODE>EventSetDescriptor</CODE>, even
-        ** though the spec says only one should be chosen (they probably weren't thinking as
-        ** pathologically as I was).  I don't like arbitrarily choosing things.
-        ** If your class has only one such signature, as most do, you'll have no problems.</LI>
-        ** <LI>The add and remove methods must be public and named
-        ** <CODE>void add&lt;eventSetName&gt;Listener(&lt;listenerType&gt;)</CODE> and
-        ** <CODE>void remove&lt;eventSetName&gt;Listener(&lt;listenerType&gt;)</CODE> in
-        ** in class <CODE>eventSourceClass</CODE>, where
-        ** <CODE>&lt;eventSetName&gt;</CODE> will have its first letter capitalized.
-        ** Standard exception rules (see class description) apply.</LI>
-        ** </OL>
-        ** @param eventSourceClass the class containing the add/remove listener methods.
-        ** @param eventSetName the programmatic name of the event set, generally starting
-        ** with a lowercase letter (i.e. fooManChu instead of FooManChu).  This will be used
-        ** to generate the name of the event object as well as the names of the add and
-        ** remove methods.
-        ** @param listenerType the class containing the event firing method.
-        ** @param listenerMethodName the name of the event firing method.
-        ** @exception IntrospectionException if listenerType is not an EventListener,
-        **                                   or if methods are not found or are invalid.
-        **/
-       public EventSetDescriptor(Class  eventSourceClass,
-                                 String eventSetName,
-                                 Class  listenerType,
-                                 String listenerMethodName) throws IntrospectionException {
-               setName(eventSetName);
-               if(!java.util.EventListener.class.isAssignableFrom(listenerType)) {
-                       throw new IntrospectionException("Listener type is not an EventListener.");
-               }
-
-               String[] names = new String[1];
-               names[0] = listenerMethodName;
-
-               try {
-                       eventSetName = Character.toUpperCase(eventSetName.charAt(0)) + eventSetName.substring(1);
-               } catch(StringIndexOutOfBoundsException e) {
-                       eventSetName = "";
-               }
-
-               findMethods(eventSourceClass,listenerType,names,"add"+eventSetName+"Listener","remove"+eventSetName+"Listener",eventSetName+"Event");
-               this.listenerType = listenerType;
-               checkAddListenerUnicast();
-               if(this.removeListenerMethod.getExceptionTypes().length > 0) {
-                       throw new IntrospectionException("Listener remove method throws exceptions.");
-               }
-       }
-
-       /** Create a new EventSetDescriptor.
-        ** This form of the constructor allows you to specify the names of the methods and adds
-        ** no new constraints on top of the rules already described at the top of the class.<P>
-        ** 
-        ** @param eventSourceClass the class containing the add and remove listener methods.
-        ** @param eventSetName the programmatic name of the event set, generally starting
-        ** with a lowercase letter (i.e. fooManChu instead of FooManChu).
-        ** @param listenerType the class containing the event firing methods.
-        ** @param listenerMethodNames the names of the even firing methods.
-        ** @param addListenerMethodName the name of the add listener method.
-        ** @param removeListenerMethodName the name of the remove listener method.
-        ** @exception IntrospectionException if listenerType is not an EventListener
-        **                                   or if methods are not found or are invalid.
-        **/
-       public EventSetDescriptor(Class eventSourceClass,
-                                  String eventSetName,
-                                  Class listenerType,
-                                  String[] listenerMethodNames,
-                                  String addListenerMethodName,
-                                  String removeListenerMethodName) throws IntrospectionException {
-               setName(eventSetName);
-               if(!java.util.EventListener.class.isAssignableFrom(listenerType)) {
-                       throw new IntrospectionException("Listener type is not an EventListener.");
-               }
-
-               findMethods(eventSourceClass,listenerType,listenerMethodNames,addListenerMethodName,removeListenerMethodName,null);
-               this.listenerType = listenerType;
-               checkAddListenerUnicast();
-               if(this.removeListenerMethod.getExceptionTypes().length > 0) {
-                       throw new IntrospectionException("Listener remove method throws exceptions.");
-               }
-       }
-
-       /** Create a new EventSetDescriptor.
-        ** This form of constructor allows you to explicitly say which methods do what, and
-        ** no reflection is done by the EventSetDescriptor.  The methods are, however,
-        ** checked to ensure that they follow the rules set forth at the top of the class.
-        ** @param eventSetName the programmatic name of the event set, generally starting
-        ** with a lowercase letter (i.e. fooManChu instead of FooManChu).
-        ** @param listenerType the class containing the listenerMethods.
-        ** @param listenerMethods the event firing methods.
-        ** @param addListenerMethod the add listener method.
-        ** @param removeListenerMethod the remove listener method.
-        ** @exception IntrospectionException if the listenerType is not an EventListener,
-        **                                   or any of the methods are invalid.
-        **/
-       public EventSetDescriptor(String eventSetName,
-                                  Class listenerType,
-                                  Method[] listenerMethods,
-                                  Method addListenerMethod,
-                                  Method removeListenerMethod) throws IntrospectionException {
-               setName(eventSetName);
-               if(!java.util.EventListener.class.isAssignableFrom(listenerType)) {
-                       throw new IntrospectionException("Listener type is not an EventListener.");
-               }
-
-               this.listenerMethods = listenerMethods;
-               this.addListenerMethod = addListenerMethod;
-               this.removeListenerMethod = removeListenerMethod;
-               this.listenerType = listenerType;
-               checkMethods();
-               checkAddListenerUnicast();
-               if(this.removeListenerMethod.getExceptionTypes().length > 0) {
-                       throw new IntrospectionException("Listener remove method throws exceptions.");
-               }
-       }
-
-       /** Create a new EventSetDescriptor.
-        ** This form of constructor allows you to explicitly say which methods do what, and
-        ** no reflection is done by the EventSetDescriptor.  The methods are, however,
-        ** checked to ensure that they follow the rules set forth at the top of the class.
-        ** @param eventSetName the programmatic name of the event set, generally starting
-        ** with a lowercase letter (i.e. fooManChu instead of FooManChu).
-        ** @param listenerType the class containing the listenerMethods.
-        ** @param listenerMethodDescriptors the event firing methods.
-        ** @param addListenerMethod the add listener method.
-        ** @param removeListenerMethod the remove listener method.
-        ** @exception IntrospectionException if the listenerType is not an EventListener,
-        **                                   or any of the methods are invalid.
-        **/
-       public EventSetDescriptor(String eventSetName,
-                                  Class listenerType,
-                                  MethodDescriptor[] listenerMethodDescriptors,
-                                  Method addListenerMethod,
-                                  Method removeListenerMethod) throws IntrospectionException {
-               setName(eventSetName);
-               if(!java.util.EventListener.class.isAssignableFrom(listenerType)) {
-                       throw new IntrospectionException("Listener type is not an EventListener.");
-               }
-
-               this.listenerMethodDescriptors = listenerMethodDescriptors;
-               this.listenerMethods = new Method[listenerMethodDescriptors.length];
-               for(int i=0;i<this.listenerMethodDescriptors.length;i++) {
-                       this.listenerMethods[i] = this.listenerMethodDescriptors[i].getMethod();
-               }
-
-               this.addListenerMethod = addListenerMethod;
-               this.removeListenerMethod = removeListenerMethod;
-               this.listenerType = listenerType;
-               checkMethods();
-               checkAddListenerUnicast();
-               if(this.removeListenerMethod.getExceptionTypes().length > 0) {
-                       throw new IntrospectionException("Listener remove method throws exceptions.");
-               }
-       }
-
-       /** Get the class that contains the event firing methods. **/
-       public Class getListenerType() {
-               return listenerType;
-       }
-
-       /** Get the event firing methods. **/
-       public Method[] getListenerMethods() {
-               return listenerMethods;
-       }
-
-       /** Get the event firing methods as MethodDescriptors. **/
-       public MethodDescriptor[] getListenerMethodDescriptors() {
-               if(listenerMethodDescriptors == null) {
-                       listenerMethodDescriptors = new MethodDescriptor[listenerMethods.length];
-                       for(int i=0;i<listenerMethods.length;i++) {
-                               listenerMethodDescriptors[i] = new MethodDescriptor(listenerMethods[i]);
-                       }
-               }
-               return listenerMethodDescriptors;
-       }
-
-       /** Get the add listener method. **/
-       public Method getAddListenerMethod() {
-               return addListenerMethod;
-       }
-
-       /** Get the remove listener method. **/
-       public Method getRemoveListenerMethod() {
-               return removeListenerMethod;
-       }
-
-       /** Set whether or not multiple listeners may be added.
-        ** @param unicast whether or not multiple listeners may be added.
-        **/
-       public void setUnicast(boolean unicast) {
-               this.unicast = unicast;
-       }
-
-       /** Get whether or not multiple listeners may be added.  (Defaults to false.) **/
-       public boolean isUnicast() {
-               return unicast;
-       }
-
-       /** Set whether or not this is in the default event set.
-        ** @param inDefaultEventSet whether this is in the default event set.
-        **/
-       public void setInDefaultEventSet(boolean inDefaultEventSet) {
-               this.inDefaultEventSet = inDefaultEventSet;
-       }
-
-       /** Get whether or not this is in the default event set.  (Defaults to true.)**/
-       public boolean isInDefaultEventSet() {
-               return inDefaultEventSet;
-       }
-
-       private void checkAddListenerUnicast() throws IntrospectionException {
-               Class[] addListenerExceptions = this.addListenerMethod.getExceptionTypes();
-               if(addListenerExceptions.length > 1) {
-                       throw new IntrospectionException("Listener add method throws too many exceptions.");
-               } else if(addListenerExceptions.length == 1
-                         && !java.util.TooManyListenersException.class.isAssignableFrom(addListenerExceptions[0])) {
-                       throw new IntrospectionException("Listener add method throws too many exceptions.");
-               }
-       }
-
-       private void checkMethods() throws IntrospectionException {
-               if(!addListenerMethod.getDeclaringClass().isAssignableFrom(removeListenerMethod.getDeclaringClass())
-                  && !removeListenerMethod.getDeclaringClass().isAssignableFrom(addListenerMethod.getDeclaringClass())) {
-                       throw new IntrospectionException("add and remove listener methods do not come from the same class.  This is bad.");
-               }
-               if(!addListenerMethod.getReturnType().equals(java.lang.Void.TYPE)
-                   || addListenerMethod.getParameterTypes().length != 1
-                  || !listenerType.equals(addListenerMethod.getParameterTypes()[0])
-                  || !Modifier.isPublic(addListenerMethod.getModifiers())) {
-                       throw new IntrospectionException("Add Listener Method invalid.");
-               }
-               if(!removeListenerMethod.getReturnType().equals(java.lang.Void.TYPE)
-                   || removeListenerMethod.getParameterTypes().length != 1
-                  || !listenerType.equals(removeListenerMethod.getParameterTypes()[0])
-                  || removeListenerMethod.getExceptionTypes().length > 0
-                  || !Modifier.isPublic(removeListenerMethod.getModifiers())) {
-                       throw new IntrospectionException("Remove Listener Method invalid.");
-               }
-
-               for(int i=0;i<listenerMethods.length;i++) {
-                       if(!listenerMethods[i].getReturnType().equals(java.lang.Void.TYPE)
-                          || Modifier.isPrivate(listenerMethods[i].getModifiers())) {
-                               throw new IntrospectionException("Event Method " + listenerMethods[i].getName() + " non-void or private.");
-                       }
-                       if(!listenerMethods[i].getDeclaringClass().isAssignableFrom(listenerType)) {
-                               throw new IntrospectionException("Event Method " + listenerMethods[i].getName() + " not from class " + listenerType.getName());
-                       }
-               }
-       }
-
-       private void findMethods(Class eventSourceClass,
-               Class listenerType,
-               String listenerMethodNames[],
-               String addListenerMethodName,
-               String removeListenerMethodName,
-               String absurdEventClassCheckName) throws IntrospectionException {
-
-               /* Find add listener method and remove listener method. */
-               Class[] listenerArgList = new Class[1];
-               listenerArgList[0] = listenerType;
-               try {
-                       this.addListenerMethod = eventSourceClass.getMethod(addListenerMethodName,listenerArgList);
-               } catch(SecurityException E) {
-                       throw new IntrospectionException("SecurityException trying to access method " + addListenerMethodName + ".");
-               } catch(NoSuchMethodException E) {
-                       throw new IntrospectionException("Could not find method " + addListenerMethodName + ".");
-               }
-
-               if(this.addListenerMethod == null || !this.addListenerMethod.getReturnType().equals(java.lang.Void.TYPE)) {
-                       throw new IntrospectionException("Add listener method does not exist, is not public, or is not void.");
-               }
-
-               try {
-                       this.removeListenerMethod = eventSourceClass.getMethod(removeListenerMethodName,listenerArgList);
-               } catch(SecurityException E) {
-                       throw new IntrospectionException("SecurityException trying to access method " + removeListenerMethodName + ".");
-               } catch(NoSuchMethodException E) {
-                       throw new IntrospectionException("Could not find method " + removeListenerMethodName + ".");
-               }
-               if(this.removeListenerMethod == null || !this.removeListenerMethod.getReturnType().equals(java.lang.Void.TYPE)) {
-                       throw new IntrospectionException("Remove listener method does not exist, is not public, or is not void.");
-               }
-
-               /* Find the listener methods. */
-               Method[] methods;
-               try {
-                       methods = ClassHelper.getAllMethods(listenerType);
-               } catch(SecurityException E) {
-                       throw new IntrospectionException("Security: You cannot access fields in this class.");
-               }
-
-               Vector chosenMethods = new Vector();
-               boolean[] listenerMethodFound = new boolean[listenerMethodNames.length];
-               for(int i=0;i<methods.length;i++) {
-                       if(Modifier.isPrivate(methods[i].getModifiers())) {
-                               continue;
-                       }
-                       Method currentMethod = methods[i];
-                       Class retval = currentMethod.getReturnType();
-                       if(retval.equals(java.lang.Void.TYPE)) {
-                               for(int j=0;j<listenerMethodNames.length;j++) {
-                                       if(currentMethod.getName().equals(listenerMethodNames[j])
-                                          && (absurdEventClassCheckName == null
-                                              || (currentMethod.getParameterTypes().length == 1
-                                                  && ((currentMethod.getParameterTypes()[0]).getName().equals(absurdEventClassCheckName)
-                                                      || (currentMethod.getParameterTypes()[0]).getName().endsWith("."+absurdEventClassCheckName)
-                                                     )
-                                                 )
-                                             )
-                                         ) {
-                                               chosenMethods.addElement(currentMethod);
-                                               listenerMethodFound[j] = true;
-                                       }
-                               }
-                       }
-               }
-
-               /* Make sure we found all the methods we were looking for. */
-               for(int i=0;i<listenerMethodFound.length;i++) {
-                       if(!listenerMethodFound[i]) {
-                               throw new IntrospectionException("Could not find event method " + listenerMethodNames[i]);
-                       }
-               }
-
-               /* Now that we've chosen the listener methods we want, store them. */
-               this.listenerMethods = new Method[chosenMethods.size()];
-               for(int i=0;i<chosenMethods.size();i++) {
-                       this.listenerMethods[i] = (Method)chosenMethods.elementAt(i);
-               }
-       }
+ * EventSetDescriptor describes the hookup between an event source class and
+ * an event listener class.
+ * 
+ * <p>EventSets have several attributes: the listener class,
+ * the events that can be fired to the listener (methods in the listener
+ * class), and an add and remove listener method from the event firer's
+ * class.
+ * </p>
+ * 
+ * <p>
+ * The methods have these constraints on them:
+ * <ul>
+ * <li>event firing methods: must have <code>void</code> return value. Any
+ * parameters and exceptions are allowed. May be public, protected or
+ * package-protected. (Don't ask me why that is, I'm just following the spec.
+ * The only place it is even mentioned is in the Java Beans white paper, and
+ * there it is only implied.)</li>
+ * 
+ * <li>add listener method: must have <code>void</code> return value. Must
+ * take exactly one argument, of the listener class's type. May fire either
+ * zero exceptions, or one exception of type
+ * <code>java.util.TooManyListenersException</code>.
+ * Must be public.</li>
+ * 
+ * <li>remove listener method: must have <code>void</code> return value. Must
+ * take exactly one argument, of the listener class's type. May not fire any
+ * exceptions. Must be public.</li>
+ * </ul>
+ * 
+ * <p>
+ * A final constraint is that event listener classes must extend from
+ * EventListener.
+ * </p>
+ * 
+ * <p>
+ * There are also various design patterns associated with some of the methods
+ * of construction. Those are explained in more detail in the appropriate
+ * constructors.
+ * </p>
+ * 
+ * <p>
+ * <strong>Documentation Convention:</strong> for proper Internalization of
+ * Beans inside an RAD tool, sometimes there are two names for a property or
+ * method: a programmatic, or locale-independent name, which can be used
+ * anywhere, and a localized, display name, for ease of use. In the
+ * documentation I will specify different String values as either
+ * <em>programmatic</em> or <em>localized</em> to make this distinction clear.
+ * 
+ * @author John Keiser
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ * @since 1.1
+ */
+
+public class EventSetDescriptor extends FeatureDescriptor
+{
+  private Method addListenerMethod;
+
+  private Method removeListenerMethod;
+
+  private Class listenerType;
+
+  private MethodDescriptor[] listenerMethodDescriptors;
+
+  private Method[] listenerMethods;
+
+  private Method getListenerMethod;
+
+  private boolean unicast;
+
+  private boolean inDefaultEventSet = true;
+
+  /**
+   * Creates a new <code>EventSetDescriptor</code<.
+   * 
+   * <p>
+   * This version of the constructor enforces the rules imposed on the methods
+   * described at the top of this class, as well as searching for:
+   * </p>
+   * 
+   * <ol>
+   * <li>
+   * The event-firing method must be non-private with signature <code>void
+   * &lt;listenerMethodName&gt;(&lt;eventSetName&gt;Event)</code> (where
+   * <code>&lt;eventSetName&gt;</code> has its first character capitalized
+   * by the constructor and the Event is a descendant of
+   * {@link java.util.EventObject}) in class <code>listenerType</code>
+   * (any exceptions may be thrown). <b>Implementation note:</b> Note that
+   * there could conceivably be multiple methods with this type of signature
+   * (example: <code>java.util.MouseEvent</code> vs.
+   * <code>my.very.own.MouseEvent</code>). In this implementation, all
+   * methods fitting the description will be put into the
+   * <code>EventSetDescriptor</code>, even though the spec says only one
+   * should be chosen (they probably weren't thinking as pathologically as I
+   * was). I don't like arbitrarily choosing things. If your class has only one
+   * such signature, as most do, you'll have no problems.</li>
+   * 
+   * <li>The add and remove methods must be public and named <code>void
+   * add&lt;eventSetName&gt;Listener(&lt;listenerType&gt;)</code> and
+   * <code>void remove&lt;eventSetName&gt;Listener(&lt;listenerType&gt;)</code>
+   * in in class <code>eventSourceClass</code>, where
+   * <code>&lt;eventSetName&gt;</code> will have its first letter capitalized.
+   * Standard exception rules (see class description) apply.</li>
+   * </ol>
+   * 
+   * @param eventSourceClass
+   *          the class containing the add/remove listener methods.
+   * @param eventSetName
+   *          the programmatic name of the event set, generally starting with a
+   *          lowercase letter (i.e. fooManChu instead of FooManChu). This will
+   *          be used to generate the name of the event object as well as the
+   *          names of the add and remove methods.
+   * @param listenerType
+   *          the class containing the event firing method.
+   * @param listenerMethodName
+   *          the name of the event firing method.
+   * @exception IntrospectionException
+   *              if listenerType is not an EventListener, or if methods are not
+   *              found or are invalid.
+   */
+  public EventSetDescriptor(Class eventSourceClass, String eventSetName,
+                            Class listenerType, String listenerMethodName)
+      throws IntrospectionException
+  {
+    setName(eventSetName);
+    if (!java.util.EventListener.class.isAssignableFrom(listenerType))
+      {
+        throw new IntrospectionException(
+                  "Listener type is not an EventListener.");
+      }
+
+    String[] names = new String[1];
+    names[0] = listenerMethodName;
+
+    try
+      {
+        eventSetName = Character.toUpperCase(eventSetName.charAt(0))
+                       + eventSetName.substring(1);
+      }
+    catch (StringIndexOutOfBoundsException e)
+      {
+        eventSetName = "";
+      }
+
+    findMethods(eventSourceClass, listenerType, names,
+                "add" + eventSetName + "Listener",
+                "remove" + eventSetName + "Listener", eventSetName + "Event");
+    this.listenerType = listenerType;
+    checkAddListenerUnicast();
+    if (this.removeListenerMethod.getExceptionTypes().length > 0)
+      {
+        throw new IntrospectionException(
+                  "Listener remove method throws exceptions.");
+      }
+  }
+
+  /**
+   * Creates a new <code>EventSetDescriptor</code>.
+   * 
+   * <p>This form of the constructor allows you to specify the names of the
+   * methods and adds no new constraints on top of the rules already described
+   * at the top of the class.
+   * </p>
+   * 
+   * @param eventSourceClass
+   *          the class containing the add and remove listener methods.
+   * @param eventSetName
+   *          the programmatic name of the event set, generally starting with a
+   *          lowercase letter (i.e. fooManChu instead of FooManChu).
+   * @param listenerType
+   *          the class containing the event firing methods.
+   * @param listenerMethodNames
+   *          the names of the even firing methods.
+   * @param addListenerMethodName
+   *          the name of the add listener method.
+   * @param removeListenerMethodName
+   *          the name of the remove listener method.
+   * @exception IntrospectionException
+   *              if listenerType is not an EventListener or if methods are not
+   *              found or are invalid.
+   */
+  public EventSetDescriptor(Class eventSourceClass, String eventSetName,
+                            Class listenerType, String[] listenerMethodNames,
+                            String addListenerMethodName,
+                            String removeListenerMethodName)
+      throws IntrospectionException
+  {
+    setName(eventSetName);
+    if (!java.util.EventListener.class.isAssignableFrom(listenerType))
+      {
+        throw new IntrospectionException(
+                  "Listener type is not an EventListener.");
+      }
+
+    findMethods(eventSourceClass, listenerType, listenerMethodNames,
+                addListenerMethodName, removeListenerMethodName, null);
+    this.listenerType = listenerType;
+    checkAddListenerUnicast();
+    if (this.removeListenerMethod.getExceptionTypes().length > 0)
+      {
+        throw new IntrospectionException(
+                  "Listener remove method throws exceptions.");
+      }
+  }
+
+  /**
+   * Creates a new <code>EventSetDescriptor</code>.
+   * 
+   * <p>
+   * This variant of the constructor allows you to specify the names of the
+   * methods and adds no new constraints on top of the rules already described
+   * at the top of the class.
+   * </p>
+   * <p>
+   * A valid GetListener method is public, flags no exceptions and has one
+   * argument which is of type <code>Class</code>
+   * {@link java.awt.Component#getListeners(Class)} is such a method.
+   * </p>
+   * <p>
+   * Note: The validity of the return value of the GetListener method is not
+   * checked.
+   * </p>
+   * 
+   * @param eventSourceClass
+   *          the class containing the add and remove listener methods.
+   * @param eventSetName
+   *          the programmatic name of the event set, generally starting with a
+   *          lowercase letter (i.e. fooManChu instead of FooManChu).
+   * @param listenerType
+   *          the class containing the event firing methods.
+   * @param listenerMethodNames
+   *          the names of the even firing methods.
+   * @param addListenerMethodName
+   *          the name of the add listener method.
+   * @param removeListenerMethodName
+   *          the name of the remove listener method.
+   * @param getListenerMethodName
+   *          Name of a method which returns the array of listeners.
+   * @exception IntrospectionException
+   *              if listenerType is not an EventListener or if methods are not
+   *              found or are invalid.
+   * @since 1.4
+   */
+  public EventSetDescriptor(Class eventSourceClass, String eventSetName,
+                            Class listenerType, String[] listenerMethodNames,
+                            String addListenerMethodName,
+                            String removeListenerMethodName,
+                            String getListenerMethodName)
+      throws IntrospectionException
+  {
+    this(eventSourceClass, eventSetName, listenerType, listenerMethodNames,
+         addListenerMethodName, removeListenerMethodName);
+
+    Method newGetListenerMethod = null;
+
+    try
+      {
+        newGetListenerMethod 
+          = eventSourceClass.getMethod(getListenerMethodName,
+                                       new Class[] { Class.class });
+      }
+    catch (NoSuchMethodException nsme)
+      {
+        throw (IntrospectionException) 
+          new IntrospectionException("No method named " + getListenerMethodName
+                                      + " in class " + listenerType
+                                      + " which can be used as"
+                                      + " getListenerMethod.").initCause(nsme);
+      }
+
+    // Note: This does not check the return value (which
+    // should be EventListener[]) but the JDK does not either.
+
+    getListenerMethod = newGetListenerMethod;
+
+  }
+
+  /**
+   * Creates a new <code>EventSetDescriptor.</code>
+   * 
+   * <p>
+   * This variant of the constructor allows you to specify the names of the
+   * methods and adds no new constraints on top of the rules already described
+   * at the top of the class.
+   * </p>
+   * <p>
+   * A valid GetListener method is public, flags no exceptions and has one
+   * argument which is of type <code>Class</code>
+   * {@link java.awt.Component#getListeners(Class)} is such a method.
+   * </p>
+   * <p>
+   * Note: The validity of the return value of the GetListener method is not
+   * checked.
+   * </p>
+   * 
+   * @param eventSetName
+   *          the programmatic name of the event set, generally starting with a
+   *          lowercase letter (i.e. fooManChu instead of FooManChu).
+   * @param listenerType
+   *          the class containing the listenerMethods.
+   * @param listenerMethods
+   *          the event firing methods.
+   * @param addListenerMethod
+   *          the add listener method.
+   * @param removeListenerMethod
+   *          the remove listener method.
+   * @param getListenerMethod
+   *          The method which returns an array of the listeners.
+   * @exception IntrospectionException
+   *              if the listenerType is not an EventListener, or any of the
+   *              methods are invalid.
+   * @since 1.4
+   */
+  public EventSetDescriptor(String eventSetName, Class listenerType,
+                            Method[] listenerMethods, Method addListenerMethod,
+                            Method removeListenerMethod,
+                            Method getListenerMethod)
+      throws IntrospectionException
+  {
+    this(eventSetName, listenerType, listenerMethods, addListenerMethod,
+         removeListenerMethod);
+
+    // Do no checks if the getListenerMethod is null.
+    if (getListenerMethod.getParameterTypes().length != 1
+        || getListenerMethod.getParameterTypes()[0] != Class.class
+        || getListenerMethod.getExceptionTypes().length > 0
+        || !Modifier.isPublic(getListenerMethod.getModifiers()))
+      throw new IntrospectionException("GetListener method is invalid.");
+
+    // Note: This does not check the return value (which
+    // should be EventListener[]) but the JDK does not either.
+
+    this.getListenerMethod = getListenerMethod;
+  }
+
+  /**
+   * Creates a new <code>EventSetDescriptor</code>.
+   * 
+   * <p>This form of constructor allows you to explicitly say which methods
+   * do what, and no reflection is done by the <code>EventSetDescriptor</code>.
+   * The methods are, however, checked to ensure that they follow the rules
+   * set forth at the top of the class.
+   * 
+   * @param eventSetName
+   *          the programmatic name of the event set, generally starting with a
+   *          lowercase letter (i.e. fooManChu instead of FooManChu).
+   * @param listenerType
+   *          the class containing the listenerMethods.
+   * @param listenerMethods
+   *          the event firing methods.
+   * @param addListenerMethod
+   *          the add listener method.
+   * @param removeListenerMethod
+   *          the remove listener method.
+   * @exception IntrospectionException
+   *              if the listenerType is not an EventListener, or any of the
+   *              methods are invalid.
+   */
+  public EventSetDescriptor(String eventSetName, Class listenerType,
+                            Method[] listenerMethods, Method addListenerMethod,
+                            Method removeListenerMethod)
+      throws IntrospectionException
+  {
+    setName(eventSetName);
+    if (!java.util.EventListener.class.isAssignableFrom(listenerType))
+      {
+        throw new IntrospectionException(
+                  "Listener type is not an EventListener.");
+      }
+
+    this.listenerMethods = listenerMethods;
+    this.addListenerMethod = addListenerMethod;
+    this.removeListenerMethod = removeListenerMethod;
+    this.listenerType = listenerType;
+    checkMethods();
+    checkAddListenerUnicast();
+    if (this.removeListenerMethod.getExceptionTypes().length > 0)
+      {
+        throw new IntrospectionException(
+                  "Listener remove method throws exceptions.");
+      }
+  }
+
+  /** Creates a new <code>EventSetDescriptor</code>.
+   * 
+   * <p>This form of constructor allows you to explicitly say which methods do
+   * what, and no reflection is done by the <code>EventSetDescriptor</code>.
+   * The methods are, however, checked to ensure that they follow the rules
+   * set forth at the top of the class.
+   * 
+   * @param eventSetName
+   *          the programmatic name of the event set, generally starting with a
+   *          lowercase letter (i.e. fooManChu instead of FooManChu).
+   * @param listenerType
+   *          the class containing the listenerMethods.
+   * @param listenerMethodDescriptors
+   *          the event firing methods.
+   * @param addListenerMethod
+   *          the add listener method.
+   * @param removeListenerMethod
+   *          the remove listener method.
+   * @exception IntrospectionException
+   *              if the listenerType is not an EventListener, or any of the
+   *              methods are invalid.
+   */
+  public EventSetDescriptor(String eventSetName, Class listenerType,
+                            MethodDescriptor[] listenerMethodDescriptors,
+                            Method addListenerMethod,
+                            Method removeListenerMethod)
+      throws IntrospectionException
+  {
+    setName(eventSetName);
+    if (!java.util.EventListener.class.isAssignableFrom(listenerType))
+      {
+        throw new IntrospectionException(
+                  "Listener type is not an EventListener.");
+      }
+
+    this.listenerMethodDescriptors = listenerMethodDescriptors;
+    this.listenerMethods = new Method[listenerMethodDescriptors.length];
+    for (int i = 0; i < this.listenerMethodDescriptors.length; i++)
+      {
+        this.listenerMethods[i]
+           = this.listenerMethodDescriptors[i].getMethod();
+      }
+
+    this.addListenerMethod = addListenerMethod;
+    this.removeListenerMethod = removeListenerMethod;
+    this.listenerType = listenerType;
+    checkMethods();
+    checkAddListenerUnicast();
+    if (this.removeListenerMethod.getExceptionTypes().length > 0)
+      {
+        throw new IntrospectionException(
+                  "Listener remove method throws exceptions.");
+      }
+  }
+
+  /** Returns the class that contains the event firing methods.
+   */
+  public Class getListenerType()
+  {
+    return listenerType;
+  }
+
+  /** Returns the event firing methods.
+   */
+  public Method[] getListenerMethods()
+  {
+    return listenerMethods;
+  }
+
+  /** Returns the event firing methods as {@link MethodDescriptor}.
+   */
+  public MethodDescriptor[] getListenerMethodDescriptors()
+  {
+    if (listenerMethodDescriptors == null)
+      {
+        listenerMethodDescriptors
+          = new MethodDescriptor[listenerMethods.length];
+        
+        for (int i = 0; i < listenerMethods.length; i++)
+          {
+            listenerMethodDescriptors[i]
+              = new MethodDescriptor(listenerMethods[i]);
+          }
+      }
+    
+    return listenerMethodDescriptors;
+  }
+
+  /** Returns the add listener method.
+   */
+  public Method getAddListenerMethod()
+  {
+    return addListenerMethod;
+  }
+
+  /* Returns the remove listener method.
+   */
+  public Method getRemoveListenerMethod()
+  {
+    return removeListenerMethod;
+  }
+
+  /**
+   * Returns the method that retrieves the listeners or <code>null</code> if
+   * it does not exist.
+   */
+  public Method getGetListenerMethod()
+  {
+    return getListenerMethod;
+  }
+
+  /** Sets whether or not multiple listeners may be added.
+   * 
+   * @param unicast
+   *          whether or not multiple listeners may be added.
+   */
+  public void setUnicast(boolean unicast)
+  {
+    this.unicast = unicast;
+  }
+
+  /** Returns whether or not multiple listeners may be added.
+   * (Defaults to false.)
+   */
+  public boolean isUnicast()
+  {
+    return unicast;
+  }
+
+  /** Sets whether or not this is in the default event set.
+   * 
+   * @param inDefaultEventSet
+   *          whether this is in the default event set.
+   */
+  public void setInDefaultEventSet(boolean inDefaultEventSet)
+  {
+    this.inDefaultEventSet = inDefaultEventSet;
+  }
+
+  /** Returns whether or not this is in the default event set.
+   * (Defaults to true.)
+   */
+  public boolean isInDefaultEventSet()
+  {
+    return inDefaultEventSet;
+  }
+
+  private void checkAddListenerUnicast() throws IntrospectionException
+  {
+    Class[] addListenerExceptions = this.addListenerMethod.getExceptionTypes();
+    if (addListenerExceptions.length > 1)
+      {
+        throw new IntrospectionException(
+                  "Listener add method throws too many exceptions.");
+      }
+    else if (addListenerExceptions.length == 1
+             && !java.util.TooManyListenersException.class
+                .isAssignableFrom(addListenerExceptions[0]))
+      {
+        throw new IntrospectionException(
+                  "Listener add method throws too many exceptions.");
+      }
+  }
+
+  private void checkMethods() throws IntrospectionException
+  {
+    if (!addListenerMethod.getDeclaringClass()
+        .isAssignableFrom(removeListenerMethod.getDeclaringClass())
+        && !removeListenerMethod.getDeclaringClass()
+        .isAssignableFrom(addListenerMethod.getDeclaringClass()))
+      {
+        throw new IntrospectionException(
+                  "add and remove listener methods do not come from the"
+                  + " same class.  This is bad.");
+      }
+    if (!addListenerMethod.getReturnType().equals(java.lang.Void.TYPE)
+        || addListenerMethod.getParameterTypes().length != 1
+        || !listenerType.equals(addListenerMethod.getParameterTypes()[0])
+        || !Modifier.isPublic(addListenerMethod.getModifiers()))
+      {
+        throw new IntrospectionException("Add Listener Method invalid.");
+      }
+    if (!removeListenerMethod.getReturnType().equals(java.lang.Void.TYPE)
+        || removeListenerMethod.getParameterTypes().length != 1
+        || !listenerType.equals(removeListenerMethod.getParameterTypes()[0])
+        || removeListenerMethod.getExceptionTypes().length > 0
+        || !Modifier.isPublic(removeListenerMethod.getModifiers()))
+      {
+        throw new IntrospectionException("Remove Listener Method invalid.");
+      }
+
+    for (int i = 0; i < listenerMethods.length; i++)
+      {
+        if (!listenerMethods[i].getReturnType().equals(java.lang.Void.TYPE)
+            || Modifier.isPrivate(listenerMethods[i].getModifiers()))
+          {
+            throw new IntrospectionException("Event Method "
+                                             + listenerMethods[i].getName()
+                                             + " non-void or private.");
+          }
+        if (!listenerMethods[i].getDeclaringClass()
+            .isAssignableFrom(listenerType))
+          {
+            throw new IntrospectionException("Event Method "
+                                             + listenerMethods[i].getName()
+                                             + " not from class "
+                                             + listenerType.getName());
+          }
+      }
+  }
+
+  private void findMethods(Class eventSourceClass, Class listenerType,
+                           String listenerMethodNames[],
+                           String addListenerMethodName,
+                           String removeListenerMethodName,
+                           String absurdEventClassCheckName)
+      throws IntrospectionException
+  {
+
+    /* Find add listener method and remove listener method. */
+    Class[] listenerArgList = new Class[1];
+    listenerArgList[0] = listenerType;
+    try
+      {
+        this.addListenerMethod
+          = eventSourceClass.getMethod(addListenerMethodName,
+                                       listenerArgList);
+      }
+    catch (SecurityException E)
+      {
+        throw new IntrospectionException(
+                  "SecurityException trying to access method "
+                  + addListenerMethodName + ".");
+      }
+    catch (NoSuchMethodException E)
+      {
+        throw new IntrospectionException("Could not find method "
+                                         + addListenerMethodName + ".");
+      }
+
+    if (this.addListenerMethod == null
+        || !this.addListenerMethod.getReturnType().equals(java.lang.Void.TYPE))
+      {
+        throw new IntrospectionException(
+                  "Add listener method does not exist, is not public,"
+                  + " or is not void.");
+      }
+
+    try
+      {
+        this.removeListenerMethod
+          = eventSourceClass.getMethod(removeListenerMethodName,
+                                       listenerArgList);
+      }
+    catch (SecurityException E)
+      {
+        throw new IntrospectionException(
+                  "SecurityException trying to access method "
+                  + removeListenerMethodName + ".");
+      }
+    catch (NoSuchMethodException E)
+      {
+        throw new IntrospectionException("Could not find method "
+                                         + removeListenerMethodName + ".");
+      }
+    if (this.removeListenerMethod == null
+        || !this.removeListenerMethod.getReturnType()
+           .equals(java.lang.Void.TYPE))
+      {
+        throw new IntrospectionException(
+                  "Remove listener method does not exist, is not public,"
+                  + " or is not void.");
+      }
+
+    /* Find the listener methods. */
+    Method[] methods;
+    try
+      {
+        methods = ClassHelper.getAllMethods(listenerType);
+      }
+    catch (SecurityException E)
+      {
+        throw new IntrospectionException(
+                  "Security: You cannot access fields in this class.");
+      }
+
+    Vector chosenMethods = new Vector();
+    boolean[] listenerMethodFound = new boolean[listenerMethodNames.length];
+    for (int i = 0; i < methods.length; i++)
+      {
+        if (Modifier.isPrivate(methods[i].getModifiers()))
+          {
+            continue;
+          }
+        Method currentMethod = methods[i];
+        Class retval = currentMethod.getReturnType();
+        if (retval.equals(java.lang.Void.TYPE))
+          {
+            for (int j = 0; j < listenerMethodNames.length; j++)
+              {
+                if (currentMethod.getName().equals(listenerMethodNames[j])
+                    && (absurdEventClassCheckName == null
+                    || (currentMethod.getParameterTypes().length == 1
+                    && ((currentMethod.getParameterTypes()[0])
+                        .getName().equals(absurdEventClassCheckName)
+                    || (currentMethod.getParameterTypes()[0])
+                       .getName().endsWith("." + absurdEventClassCheckName)))))
+                  {
+                    chosenMethods.addElement(currentMethod);
+                    listenerMethodFound[j] = true;
+                  }
+              }
+          }
+      }
+
+    /* Make sure we found all the methods we were looking for. */
+    for (int i = 0; i < listenerMethodFound.length; i++)
+      {
+        if (!listenerMethodFound[i])
+          {
+            throw new IntrospectionException("Could not find event method "
+                                             + listenerMethodNames[i]);
+          }
+      }
+
+    /* Now that we've chosen the listener methods we want, store them. */
+    this.listenerMethods = new Method[chosenMethods.size()];
+    for (int i = 0; i < chosenMethods.size(); i++)
+      {
+        this.listenerMethods[i] = (Method) chosenMethods.elementAt(i);
+      }
+  }
+  
 }
index d92cb7284aabb077b7e448c6022c20e55bc64500..b327864d95f23e73bf572b70e50b230751dd968d 100644 (file)
@@ -35,16 +35,19 @@ this exception to your version of the library, but you are not
 obligated to do so.  If you do not wish to do so, delete this
 exception statement from your version. */
 
-
 package java.beans;
 
 /**
- * class Expression
- *
- * An Expression captures the execution of an object method that
- * returns a value.  It stores an object, the method to call, and the
- * arguments to pass to the method.
- *
+ * <p>An Expression captures the execution of an object method
+ * that returns a value.</p>
+ * 
+ * <p>It stores an object, the method to call, and the arguments to pass to
+ * the method.</p>
+ * 
+ * <p>While this class can generally be used to describe method calls it is
+ * part of the XML serialization API.</p> 
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
  * @since 1.4
  */
 public class Expression extends Statement
@@ -53,38 +56,40 @@ public class Expression extends Statement
   // yet;
   private static final Object UNSET = new Object();
 
-  // The value to return.  This is equal to unset until getValue is called.
+  // The value to return. This is equal to unset until getValue is called.
   private Object value;
-   
 
   /**
-   * Constructor
-   *
-   * Constructs an Expression representing the invocation of
-   * object.methodName(arg[0], arg[1], ...);  However, it will never
-   * be executed.  Instead, value will always be returned.
-   *
-   * @param value The value to return.
-   * @param target The object to invoke the method on.
-   * @param methodName The object method to invoke.
-   * @param arguments An array of arguments to pass to the method.
+   * Constructor Constructs an Expression representing the invocation of
+   * object.methodName(arg[0], arg[1], ...); However, it will never be executed.
+   * Instead, value will always be returned.
+   * 
+   * @param value
+   *          The value to return.
+   * @param target
+   *          The object to invoke the method on.
+   * @param methodName
+   *          The object method to invoke.
+   * @param arguments
+   *          An array of arguments to pass to the method.
    */
   public Expression(Object value, Object target, String methodName,
-                   Object[] arguments)
+                    Object[] arguments)
   {
     super(target, methodName, arguments);
     this.value = value;
   }
 
   /**
-   * Constructor
-   *
-   * Constructs an Expression representing the invocation of
+   * Constructor Constructs an Expression representing the invocation of
    * object.methodName(arg[0], arg[1], ...);
-   *
-   * @param target The object to invoke the method on.
-   * @param methodName The object method to invoke.
-   * @param arguments An array of arguments to pass to the method.
+   * 
+   * @param target
+   *          The object to invoke the method on.
+   * @param methodName
+   *          The object method to invoke.
+   * @param arguments
+   *          An array of arguments to pass to the method.
    */
   public Expression(Object target, String methodName, Object[] arguments)
   {
@@ -93,15 +98,14 @@ public class Expression extends Statement
   }
 
   /**
-   * Return the result of executing the method.
-   *
-   * If the cached value has not yet been set, the method is
-   * executed in the same way as Statement.execute(), except that
-   * the value is cached, and then returned.  If the value has been
+   * Return the result of executing the method. If the cached value has not yet
+   * been set, the method is executed in the same way as Statement.execute(),
+   * except that the value is cached, and then returned. If the value has been
    * set, it is returned without executing the method again.
-   *
+   * 
    * @return the result of executing the method.
-   * @exception Exception if an error occurs
+   * @exception Exception
+   *              if an error occurs
    */
   public Object getValue() throws Exception
   {
@@ -112,14 +116,15 @@ public class Expression extends Statement
 
   /**
    * Set the cached value to be returned by getValue()
-   *
-   * @param value the value to cache and return.
+   * 
+   * @param value
+   *          the value to cache and return.
    */
   public void setValue(Object value)
   {
     this.value = value;
   }
-    
+
   /**
    * Return a string representation of this expression.
    */
@@ -127,7 +132,7 @@ public class Expression extends Statement
   {
     String result = super.toString();
     if (value != UNSET)
-      return value.getClass().getName() + " " + result;
+      return value.getClass().getName() + "=" + result;
     return result;
   }
 }
diff --git a/libjava/classpath/java/beans/IndexedPropertyChangeEvent.java b/libjava/classpath/java/beans/IndexedPropertyChangeEvent.java
new file mode 100644 (file)
index 0000000..1a7306d
--- /dev/null
@@ -0,0 +1,81 @@
+/* Indexed property change event
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.beans;
+
+/**
+ * This is like a PropertyChangeEvent, but also carries with it the
+ * index of the property which changed.
+ * @author Tom Tromey (tromey@redhat.com)
+ * @since 1.5
+ */
+public class IndexedPropertyChangeEvent extends PropertyChangeEvent
+{
+  private static final long serialVersionUID = -320227448495806870L;
+
+  /**
+   * Index of the item that was changed.
+   */
+  private int index;
+
+  /**
+   * Create a new IndexedPropertyChangeEvent.
+   * @param source the Bean containing the property
+   * @param name the property's name
+   * @param oldValue the old value of the property
+   * @param newValue the new value of the property
+   * @param index the index of the element in the property which changed
+   * @throws IllegalArgumentException if source is null
+   */
+  public IndexedPropertyChangeEvent(Object source, String name,
+                                    Object oldValue, Object newValue,
+                                    int index)
+  {
+    super(source, name, oldValue, newValue);
+    this.index = index;
+  }
+
+  /**
+   * Return the index of the changed property. 
+   * @return the index
+   */
+  public int getIndex()
+  {
+    return index;
+  }
+}
index 02781b46e0da1f8219d8b980e9c0c39bd8aead0e..23c3cde5e3d699a76bd4bc4ad5242f950a3aeac7 100644 (file)
@@ -211,6 +211,82 @@ public class Introspector {
        return cachedInfo;
       }
   }
+  
+  /**
+   * Returns a {@BeanInfo} instance for the given Bean class where a flag
+   * controls the usage of explicit BeanInfo class to retrieve that
+   * information.
+   * 
+   * <p>You have three options:</p>
+   * <p>With {@link #USE_ALL_BEANINFO} the result is the same as
+   * {@link #getBeanInfo(Class)}.</p>
+   * 
+   * <p>Calling the method with <code>flag</code> set to
+   * {@link #IGNORE_IMMEDIATE_BEANINFO} will let it use all
+   * explicit BeanInfo classes for the beans superclasses
+   * but not for the bean class itself. Furthermore eventset,
+   * property and method information is retrieved by introspection
+   * if the explicit <code>BeanInfos</code> did not provide such data
+   * (ie. return <code>null</code> on {@link BeanInfo.getMethodDescriptors},
+   * {@link BeanInfo.getEventSetDescriptors} and
+   * {@link BeanInfo.getPropertyDescriptors}.)
+   * </p>
+   * 
+   * <p>When the method is called with <code>flag</code< set to
+   * {@link #IGNORE_ALL_BEANINFO} all the bean data is retrieved
+   * by inspecting the class.</p>
+   * 
+   * <p>Note: Any unknown value for <code>flag</code> is interpreted
+   * as {@link #IGNORE_ALL_BEANINFO}</p>.
+   * 
+   * @param beanClass The class whose BeanInfo should be returned.
+   * @param flag Controls the usage of explicit <code>BeanInfo</code> classes.
+   * @return A BeanInfo object describing the class. 
+   * @throws IntrospectionException If something goes wrong while retrieving
+   *    the bean data.
+   */
+  public static BeanInfo getBeanInfo(Class beanClass, int flag)
+    throws IntrospectionException
+  {
+    IntrospectionIncubator ii;
+    BeanInfoEmbryo infoEmbryo;
+    
+    switch(flag)
+    {
+      case USE_ALL_BEANINFO:
+        return getBeanInfo(beanClass);
+      case IGNORE_IMMEDIATE_BEANINFO:
+        Class superclass = beanClass.getSuperclass();
+        ExplicitInfo explicit = new ExplicitInfo(superclass, null);
+        
+        ii = new IntrospectionIncubator();
+        if (explicit.explicitEventSetDescriptors != null)
+          ii.setEventStopClass(superclass);
+        
+        if (explicit.explicitMethodDescriptors != null)
+          ii.setMethodStopClass(superclass);
+        
+        if (explicit.explicitPropertyDescriptors != null)
+          ii.setPropertyStopClass(superclass);
+        
+        ii.addMethods(beanClass.getMethods());
+
+        infoEmbryo = ii.getBeanInfoEmbryo();
+        merge(infoEmbryo, explicit);
+
+        infoEmbryo.setBeanDescriptor(new BeanDescriptor(beanClass, null));
+        
+        return infoEmbryo.getBeanInfo();
+      case IGNORE_ALL_BEANINFO:
+      default:
+        ii = new IntrospectionIncubator();
+        ii.addMethods(beanClass.getMethods());
+        infoEmbryo = ii.getBeanInfoEmbryo();
+        infoEmbryo.setBeanDescriptor(new BeanDescriptor(beanClass, null));
+        
+        return infoEmbryo.getBeanInfo();
+    }
+  }
 
   /**
    * Flush all of the Introspector's internal caches.
@@ -244,6 +320,69 @@ public class Introspector {
       }
   }
 
+  /** Adds all explicity given bean info data to the introspected
+   * data.
+   * 
+   * @param infoEmbryo Bean info data retrieved by introspection.
+   * @param explicit Bean info data retrieved by BeanInfo classes.
+   */
+  private static void merge(BeanInfoEmbryo infoEmbryo, ExplicitInfo explicit)
+  {
+    PropertyDescriptor[] p = explicit.explicitPropertyDescriptors;
+    if(p!=null) 
+      {
+    for(int i=0;i<p.length;i++) 
+      {
+        if(!infoEmbryo.hasProperty(p[i])) 
+          {
+        infoEmbryo.addProperty(p[i]);
+          }
+      }
+    
+    // -1 should be used to denote a missing default property but
+    // for robustness reasons any value below zero is discarded.
+    // Not doing so would let Classpath fail where the JDK succeeds.
+    if(explicit.defaultProperty > -1) 
+      {
+        infoEmbryo.setDefaultPropertyName(p[explicit.defaultProperty].getName());
+      }
+      }
+    EventSetDescriptor[] e = explicit.explicitEventSetDescriptors;
+    if(e!=null) 
+      {
+    for(int i=0;i<e.length;i++) 
+      {
+        if(!infoEmbryo.hasEvent(e[i])) 
+          {
+        infoEmbryo.addEvent(e[i]);
+          }
+      }
+    
+    // -1 should be used to denote a missing default event but
+    // for robustness reasons any value below zero is discarded.
+    // Not doing so would let Classpath fail where the JDK succeeds.
+    if(explicit.defaultEvent > -1) 
+      {
+        infoEmbryo.setDefaultEventName(e[explicit.defaultEvent].getName());
+      }
+      }
+    MethodDescriptor[] m = explicit.explicitMethodDescriptors;
+    if(m!=null) 
+      {
+    for(int i=0;i<m.length;i++) 
+      {
+        if(!infoEmbryo.hasMethod(m[i])) 
+          {
+        infoEmbryo.addMethod(m[i]);
+          }
+      }
+      }
+
+    infoEmbryo.setAdditionalBeanInfo(explicit.explicitBeanInfo);
+    infoEmbryo.setIcons(explicit.im);
+    
+  }
+  
   /** 
    * Get the BeanInfo for class <CODE>beanClass</CODE>,
    * first by looking for explicit information, next by
@@ -267,62 +406,19 @@ public class Introspector {
     ii.addMethods(beanClass.getMethods());
     
     BeanInfoEmbryo currentInfo = ii.getBeanInfoEmbryo();
-    PropertyDescriptor[] p = explicit.explicitPropertyDescriptors;
-    if(p!=null) 
-      {
-       for(int i=0;i<p.length;i++) 
-         {
-           if(!currentInfo.hasProperty(p[i])) 
-             {
-               currentInfo.addProperty(p[i]);
-             }
-         }
-       if(explicit.defaultProperty != -1) 
-         {
-           currentInfo.setDefaultPropertyName(p[explicit.defaultProperty].getName());
-         }
-      }
-    EventSetDescriptor[] e = explicit.explicitEventSetDescriptors;
-    if(e!=null) 
-      {
-       for(int i=0;i<e.length;i++) 
-         {
-           if(!currentInfo.hasEvent(e[i])) 
-             {
-               currentInfo.addEvent(e[i]);
-             }
-         }
-       if(explicit.defaultEvent != -1) 
-         {
-           currentInfo.setDefaultEventName(e[explicit.defaultEvent].getName());
-         }
-      }
-    MethodDescriptor[] m = explicit.explicitMethodDescriptors;
-    if(m!=null) 
-      {
-       for(int i=0;i<m.length;i++) 
-         {
-           if(!currentInfo.hasMethod(m[i])) 
-             {
-               currentInfo.addMethod(m[i]);
-             }
-         }
-      }
     
-       // Sets the info's BeanDescriptor to the one we extracted from the
-       // explicit BeanInfo instance(s) if they contained one. Otherwise we
-       // create the BeanDescriptor from scratch.
-       // Note: We do not create a copy the retrieved BeanDescriptor which will allow
-       // the user to modify the instance while it is cached. However this is how
-       // the RI does it.
-       currentInfo.setBeanDescriptor(
-               (explicit.explicitBeanDescriptor == null ? 
-                       new BeanDescriptor(beanClass, null) :
-                       explicit.explicitBeanDescriptor));
-
-    currentInfo.setAdditionalBeanInfo(explicit.explicitBeanInfo);
-    currentInfo.setIcons(explicit.im);
+    merge(currentInfo, explicit);
     
+    //  Sets the info's BeanDescriptor to the one we extracted from the
+    // explicit BeanInfo instance(s) if they contained one. Otherwise we
+    // create the BeanDescriptor from scratch.
+    // Note: We do not create a copy the retrieved BeanDescriptor which will allow
+    // the user to modify the instance while it is cached. However this is how
+    // the RI does it.
+    currentInfo.setBeanDescriptor(
+        (explicit.explicitBeanDescriptor == null ? 
+            new BeanDescriptor(beanClass, null) :
+            explicit.explicitBeanDescriptor));    
     return currentInfo.getBeanInfo();
   }
   
diff --git a/libjava/classpath/java/beans/PersistenceDelegate.java b/libjava/classpath/java/beans/PersistenceDelegate.java
new file mode 100644 (file)
index 0000000..b33cbcb
--- /dev/null
@@ -0,0 +1,91 @@
+/* java.beans.PersistenceDelegate
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.beans;
+
+/** <p>A <code>PersistenceDelegate</code> describes how a another object
+ * has to constructed and transformed in order to create a complete
+ * replicate.</p>
+ * 
+ * <p>For custom classes you will need to implement
+ * <code>PersistenceDelegate</code> in a way that is suitable for them.
+ * To make use of the implementation you have to register it with an
+ * {@link Encoder} using the {Encoder#setPersistenceDelegate} method.</p>
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ * @since 1.4
+ */
+public abstract class PersistenceDelegate
+{
+
+  protected void initialize(Class type, Object oldInstance, Object newInstance,
+                            Encoder out)
+  {
+    if (type != Object.class)
+      {
+        type = type.getSuperclass();
+
+        PersistenceDelegate pd = out.getPersistenceDelegate(
+          oldInstance.getClass().getSuperclass());
+
+        pd.initialize(type, oldInstance, newInstance, out);
+      }
+  }
+
+  public void writeObject(Object oldInstance, Encoder out)
+  {
+    Object streamCandidate = out.get(oldInstance);
+
+    if (mutatesTo(oldInstance, streamCandidate))
+      {
+        initialize(oldInstance.getClass(), oldInstance, streamCandidate, out);
+      }
+    else
+      {
+        out.remove(oldInstance);
+        out.writeExpression(instantiate(oldInstance, out));
+      }
+  }
+
+  protected boolean mutatesTo(Object oldInstance, Object newInstance)
+  {
+    return (newInstance != null)
+           && oldInstance.getClass() == newInstance.getClass();
+  }
+
+  protected abstract Expression instantiate(Object oldInstance, Encoder out);
+}
index a0e64af4d29a26ea648cca822fdef9000726ca29..991390b563142a976bc19fa701f75f5e2c8a51b6 100644 (file)
@@ -396,6 +396,58 @@ public class PropertyChangeSupport implements Serializable
       }
   }
 
+  /**
+   * Fire an indexed property change event.  This will only fire
+   * an event if the old and new values are not equal and not null. 
+   * @param name the name of the property which changed
+   * @param index the index of the property which changed
+   * @param oldValue the old value of the property
+   * @param newValue the new value of the property
+   * @since 1.5
+   */
+  public void fireIndexedPropertyChange(String name, int index,
+                                        Object oldValue, Object newValue)
+  {
+    // Argument checking is done in firePropertyChange(PropertyChangeEvent) .
+    firePropertyChange(new IndexedPropertyChangeEvent(source, name,
+                                                      oldValue, newValue,
+                                                      index));
+  }
+
+  /**
+   * Fire an indexed property change event.  This will only fire
+   * an event if the old and new values are not equal.
+   * @param name the name of the property which changed
+   * @param index the index of the property which changed
+   * @param oldValue the old value of the property
+   * @param newValue the new value of the property
+   * @since 1.5
+   */
+  public void fireIndexedPropertyChange(String name, int index,
+                                        int oldValue, int newValue)
+  {
+    if (oldValue != newValue)
+      fireIndexedPropertyChange(name, index, Integer.valueOf(oldValue),
+                                Integer.valueOf(newValue));
+  }
+
+  /**
+   * Fire an indexed property change event.  This will only fire
+   * an event if the old and new values are not equal.
+   * @param name the name of the property which changed
+   * @param index the index of the property which changed
+   * @param oldValue the old value of the property
+   * @param newValue the new value of the property
+   * @since 1.5
+   */
+  public void fireIndexedPropertyChange(String name, int index,
+                                        boolean oldValue, boolean newValue)
+  {
+    if (oldValue != newValue)
+      fireIndexedPropertyChange(name, index, Boolean.valueOf(oldValue),
+                                Boolean.valueOf(newValue));
+  }
+
   /**
    * Tell whether the specified property is being listened on or not. This
    * will only return <code>true</code> if there are listeners on all
index 8e916a286bee3f8da7419874b517fe234f7d8155..62a5ad7b6f806739f965c45a5a7a9cb18e0fbb35 100644 (file)
@@ -1,4 +1,4 @@
-/* java.beans.Statement
+/* Statement.java
    Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -42,32 +42,26 @@ import java.lang.reflect.Array;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
 
-import java.util.HashMap;
-import java.util.WeakHashMap;
-
 /**
- * class Statement
- *
- * A Statement captures the execution of an object method.  It stores
+ * <p>A Statement captures the execution of an object method.  It stores
  * the object, the method to call, and the arguments to the method and
  * provides the ability to execute the method on the object, using the
- * provided arguments.
+ * provided arguments.</p>
  *
+ * @author Jerry Quinn (jlquinn@optonline.net)
+ * @author Robert Schuster (robertschuster@fsfe.org)
  * @since 1.4
  */
 public class Statement
 {
-  /** Nested map for the relation between a class, its instances and their
-    * names.
-    */
-  private static HashMap classMaps = new HashMap();
-
   private Object target;
   private String methodName;
   private Object[] arguments;
 
-  // One or the other of these will get a value after execute is
-  // called once, but not both.
+  /**
+   * One or the other of these will get a value after execute is
+   * called once, but not both.
+   */
   private transient Method method;
   private transient Constructor ctor;
 
@@ -87,76 +81,44 @@ public class Statement
     this.target = target;
     this.methodName = methodName;
     this.arguments = (arguments != null) ? arguments : new Object[0];
-    storeTargetName(target);
-  }
-
-  /** Creates a name for the target instance or does nothing if the object's
-   * name is already known. This makes sure that there *is* a name for every
-   * target instance.
-   */
-  private static synchronized void storeTargetName(Object obj)
-  {
-    Class klass = obj.getClass();
-    WeakHashMap names = (WeakHashMap) classMaps.get(klass);
-
-    if ( names == null )
-    {
-      names = new WeakHashMap();
-
-      names.put(obj,
-        ( klass == String.class ? ("\"" + obj + "\"") :
-        (klass.getName() + names.size()) ));
-
-      classMaps.put(klass, names);
-
-      return;
-    }
-
-    String targetName = (String) names.get(obj);
-    if ( targetName == null )
-    {
-      names.put(obj,
-        ( klass == String.class ? ("\"" + obj + "\"") :
-        (klass.getName() + names.size()) ));
-    }
-
-    // Nothing to do. The given object was already stored.
   }
 
   /**
    * Execute the statement.
    *
-   * Finds the specified method in the target object and calls it with
-   * the arguments given in the constructor.
+   * <p>Finds the specified method in the target object and calls it with
+   * the arguments given in the constructor.</p>
    *
-   * The most specific method according to the JLS(15.11) is used when
-   * there are multiple methods with the same name.
+   * <p>The most specific method according to the JLS(15.11) is used when
+   * there are multiple methods with the same name.</p>
    *
-   * Execute performs some special handling for methods and
+   * <p>Execute performs some special handling for methods and
    * parameters:
+   * <ul>
+   * <li>Static methods can be executed by providing the class as a
+   * target.</li>
    *
-   * Static methods can be executed by providing the class as a
-   * target.
-   *
-   * The method name new is reserved to call the constructor 
+   * <li>The method name new is reserved to call the constructor 
    * new() will construct an object and return it.  Not useful unless
-   * an expression :-)
+   * an expression :-)</li>
    *
-   * If the target is an array, get and set as defined in
+   * <li>If the target is an array, get and set as defined in
    * java.util.List are recognized as valid methods and mapped to the
-   * methods of the same name in java.lang.reflect.Array.
+   * methods of the same name in java.lang.reflect.Array.</li>
    *
-   * The native datatype wrappers Boolean, Byte, Character, Double,
+   * <li>The native datatype wrappers Boolean, Byte, Character, Double,
    * Float, Integer, Long, and Short will map to methods that have
    * native datatypes as parameters, in the same way as Method.invoke.
    * However, these wrappers also select methods that actually take
-   * the wrapper type as an argument.
+   * the wrapper type as an argument.</li>
+   * </ul>
+   * </p>
    *
-   * The Sun spec doesn't deal with overloading between int and
+   * <p>The Sun spec doesn't deal with overloading between int and
    * Integer carefully.  If there are two methods, one that takes an
    * Integer and the other taking an int, the method chosen is not
    * specified, and can depend on the order in which the methods are
-   * declared in the source file.
+   * declared in the source file.</p>
    *
    * @throws Exception if an exception occurs while locating or
    *                  invoking the method.
@@ -178,8 +140,10 @@ public class Statement
       Integer.TYPE, Long.TYPE, Short.TYPE
     };
 
-  // Given a wrapper class, return the native class for it.  For
-  // example, if c is Integer, Integer.TYPE is returned.
+  /** Given a wrapper class, return the native class for it.
+   * <p>For example, if <code>c</code> is <code>Integer</code>, 
+   * <code>Integer.TYPE</code> is returned.</p>
+   */
   private Class unwrap(Class c)
   {
     for (int i = 0; i < wrappers.length; i++)
@@ -188,13 +152,22 @@ public class Statement
     return null;
   }
 
-  // Return true if all args can be assigned to params, false
-  // otherwise.  Arrays are guaranteed to be the same length.
+  /** Returns <code>true</code> if all args can be assigned to
+   * <code>params</code>, <code>false</code> otherwise.
+   *
+   * <p>Arrays are guaranteed to be the same length.</p>
+   */
   private boolean compatible(Class[] params, Class[] args)
   {
     for (int i = 0; i < params.length; i++)
       {
-       // Treat Integer like int if appropriate
+    // Argument types are derived from argument values. If one of them was
+    // null then we cannot deduce its type. However null can be assigned to
+    // any type.
+    if (args[i] == null)
+      continue;
+    
+    // Treat Integer like int if appropriate
        Class nativeType = unwrap(args[i]);
        if (nativeType != null && params[i].isPrimitive()
            && params[i].isAssignableFrom(nativeType))
@@ -208,14 +181,15 @@ public class Statement
   }
 
   /**
-   * Return true if the method arguments in first are more specific
-   * than the method arguments in second, i.e. all args in first can
-   * be assigned to those in second.
+   * Returns <code>true</code> if the method arguments in first are
+   * more specific than the method arguments in second, i.e. all
+   * arguments in <code>first</code> can be assigned to those in
+   * <code>second</code>.
    *
-   * A method is more specific if all parameters can also be fed to
+   * <p>A method is more specific if all parameters can also be fed to
    * the less specific method, because, e.g. the less specific method
    * accepts a base class of the equivalent argument for the more
-   * specific one.
+   * specific one.</p>
    *
    * @param first a <code>Class[]</code> value
    * @param second a <code>Class[]</code> value
@@ -238,8 +212,11 @@ public class Statement
        ? (Class) target : target.getClass();
     Object args[] = (arguments == null) ? new Object[0] : arguments;
     Class argTypes[] = new Class[args.length];
+    
+    // Retrieve type or use null if the argument is null. The null argument
+    // type is later used in compatible().
     for (int i = 0; i < args.length; i++)
-      argTypes[i] = args[i].getClass();
+      argTypes[i] = (args[i] != null) ? args[i].getClass() : null;
 
     if (target.getClass().isArray())
       {
@@ -333,7 +310,29 @@ public class Statement
       }
     if (method == null)
       throw new NoSuchMethodException("No matching method for statement " + toString());
+
+    // If we were calling Class.forName(String) we intercept and call the
+    // forName-variant that allows a ClassLoader argument. We take the
+    // system classloader (aka application classloader) here to make sure
+    // that application defined classes can be resolved. If we would not
+    // do that the Class.forName implementation would use the class loader
+    // of java.beans.Statement which is <null> and cannot resolve application
+    // defined classes.
+    if (method.equals(
+           Class.class.getMethod("forName", new Class[] { String.class })))
+      return Class.forName(
+               (String) args[0], true, ClassLoader.getSystemClassLoader());
+
+    try {
     return method.invoke(target, args);
+    } catch(IllegalArgumentException iae){
+      System.err.println("method: " + method);
+      
+      for(int i=0;i<args.length;i++){
+        System.err.println("args[" + i + "]: " + args[i]);
+      }
+      throw iae;
+    }
   }
 
   
@@ -352,9 +351,13 @@ public class Statement
   {
     StringBuffer result = new StringBuffer(); 
 
-    Class klass = target.getClass();
+    String targetName = target.getClass().getName();
+    if ( targetName.startsWith("java"))
+      {
+        targetName = targetName.substring(targetName.lastIndexOf('.') + 1);
+      }
 
-    result.append( ((WeakHashMap) classMaps.get(klass)).get(target));
+    result.append(targetName);
     result.append(".");
     result.append(methodName);
     result.append("(");
@@ -363,11 +366,15 @@ public class Statement
     for (int i = 0; i < arguments.length; i++)
       {
         result.append(sep);
-        result.append(arguments[i].getClass().getName());
+        result.append(
+          ( arguments[i] == null ) ? "null" : 
+            ( arguments[i] instanceof String ) ? "\"" + arguments[i] + "\"" :
+            arguments[i].getClass().getName());
         sep = ", ";
       }
     result.append(")");
 
     return result.toString();
   }
+  
 }
diff --git a/libjava/classpath/java/beans/XMLEncoder.java b/libjava/classpath/java/beans/XMLEncoder.java
new file mode 100644 (file)
index 0000000..f9cbe63
--- /dev/null
@@ -0,0 +1,265 @@
+/* XMLEncoder.java
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library.  Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module.  An independent module is a module which is not derived from
+ or based on this library.  If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so.  If you do not wish to do so, delete this
+ exception statement from your version. */
+
+
+package java.beans;
+
+import gnu.java.beans.encoder.ScanEngine;
+
+import java.io.OutputStream;
+
+/**
+ * This class uses the {@link PersistenceDelegate} and {@link Encoder}
+ * infrastructure to generate an XML representation of the objects it
+ * serializes.
+ * 
+ * @author Robert Schuster (robertschuster@fsfe.org)
+ * @since 1.4
+ */
+public class XMLEncoder extends Encoder
+{
+  Object owner;
+
+  Exception exception;
+
+  ScanEngine scanEngine;
+
+  private int accessCounter = 0;
+
+  public XMLEncoder(OutputStream os)
+  {
+    scanEngine = new ScanEngine(os);
+  }
+
+  public void close()
+  {
+    if (scanEngine != null)
+      {
+        scanEngine.close();
+        scanEngine = null;
+      }
+  }
+
+  public void flush()
+  {
+    scanEngine.flush();
+  }
+
+  public void writeExpression(Expression expr)
+  {
+    // Implementation note: Why is this method overwritten and nearly exactly
+    // reimplemented as in Encoder?
+    // The Encoder class can (and should be) subclassed by users outside of the
+    // java.beans package. While I have doubts that this is possible from an
+    // API design point of view I tried to replicate the Encoder's behavior
+    // in the JDK as exactly as possible. This strictness however made it
+    // extremely complicated to implement the XMLEncoder's backend. Therefore
+    // I decided to copy the Encoder's implementation and make all changes
+    // I needed for a succesfull operation of XMLEncoder.
+    //
+    // The same is true for the writeStatement method.
+    
+    //  Silently ignore out of bounds calls.
+    if (accessCounter <= 0)
+      return;
+    
+    scanEngine.writeExpression(expr);
+
+
+    Object target = expr.getTarget();
+    Object value = null;
+    Object newValue = null;
+
+    try
+      {
+        value = expr.getValue();
+      }
+    catch (Exception e)
+      {
+        getExceptionListener().exceptionThrown(e);
+        return;
+      }
+    
+    
+    newValue = get(value);
+
+    if (newValue == null)
+      {
+        Object newTarget = get(target);
+        if (newTarget == null)
+          {
+            writeObject(target);
+            newTarget = get(target);
+
+            // May happen if exception was thrown.
+            if (newTarget == null)
+              {
+                return;
+              }
+          }
+
+        Object[] args = expr.getArguments();
+        Object[] newArgs = new Object[args.length];
+
+        for (int i = 0; i < args.length; i++)
+          {
+            newArgs[i] = get(args[i]);
+            if (newArgs[i] == null || isImmutableType(args[i].getClass()))
+              {
+                writeObject(args[i]);
+                newArgs[i] = get(args[i]);
+              }
+          }
+        
+        Expression newExpr = new Expression(newTarget, expr.getMethodName(),
+                                            newArgs);
+        
+        // Fakes the result of Class.forName(<primitiveType>) to make it possible
+        // to hand such a type to the encoding process.
+        if (value instanceof Class && ((Class) value).isPrimitive())
+          newExpr.setValue(value);
+        
+        // Instantiates the new object.
+        try
+          {
+            newValue = newExpr.getValue();
+
+            putCandidate(value, newValue);
+          }
+        catch (Exception e)
+          {
+            getExceptionListener().exceptionThrown(e);
+            
+            // In Statement.writeExpression we had no possibility to flags
+            // an erroneous state to the ScanEngine without behaving different
+            // to the JDK.            
+            scanEngine.revoke();
+          }
+        
+        writeObject(value);
+
+      }
+    else if(value.getClass() == String.class || value.getClass() == Class.class)
+      {
+        writeObject(value);
+      }
+
+    scanEngine.end();
+  }
+
+  public void writeStatement(Statement stmt)
+  {
+    // In case of questions have a at the implementation note in
+    // writeExpression.
+    
+    scanEngine.writeStatement(stmt);
+
+    //  Silently ignore out of bounds calls.
+    if (accessCounter <= 0)
+      return;
+
+    Object target = stmt.getTarget();
+
+    Object newTarget = get(target);
+    if (newTarget == null)
+      {
+        writeObject(target);
+        newTarget = get(target);
+      }
+
+    Object[] args = stmt.getArguments();
+    Object[] newArgs = new Object[args.length];
+
+    for (int i = 0; i < args.length; i++)
+      {
+        // Here is the difference to the original writeStatement
+        // method in Encoder. In case that the object is known or
+        // not an immutable we put it directly into the ScanEngine
+        // which will then generate an object reference for it.
+        newArgs[i] = get(args[i]);
+        if (newArgs[i] == null || isImmutableType(args[i].getClass()))
+          {
+            writeObject(args[i]);
+            newArgs[i] = get(args[i]);
+          }
+        else
+          scanEngine.writeObject(args[i]);
+      }
+
+    Statement newStmt = new Statement(newTarget, stmt.getMethodName(), newArgs);
+
+    try
+      {
+        newStmt.execute();
+      }
+    catch (Exception e)
+      {
+        getExceptionListener().exceptionThrown(e);
+
+        // In Statement.writeStatement we had no possibility to flags
+        // an erroneous state to the ScanEngine without behaving different
+        // to the JDK.            
+        scanEngine.revoke();
+        return;
+      }
+
+    scanEngine.end();
+  }
+
+  public void writeObject(Object o)
+  {
+    accessCounter++;
+    
+    scanEngine.writeObject(o);
+    
+    if (get(o) == null);
+      super.writeObject(o);
+      
+    accessCounter--;
+  }
+  
+  public void setOwner(Object o)
+  {
+    owner = o;
+  }
+
+  public Object getOwner()
+  {
+    return owner;
+  }
+
+}
index 3c7ac21301ce6616e4baf13c22c693510fb3276e..43e8e5ded6c83033aece473aeeb6dc24145c6d9c 100644 (file)
@@ -396,7 +396,8 @@ public class File implements Serializable, Comparable
    * This method initializes a new <code>File</code> object to represent
    * a file corresponding to the specified <code>file:</code> protocol URI.
    *
-   * @param uri The uri.
+   * @param uri The URI
+   * @throws IllegalArgumentException if the URI is not hierarchical
    */
   public File(URI uri)
   {
@@ -406,7 +407,11 @@ public class File implements Serializable, Comparable
     if (!uri.getScheme().equals("file"))
        throw new IllegalArgumentException("invalid uri protocol");
 
-    path = normalizePath(uri.getPath());
+    String name = uri.getPath();
+    if (name == null)
+      throw new IllegalArgumentException("URI \"" + uri
+                     + "\" is not hierarchical");
+    path = normalizePath(name);
   }
 
   /**
index 57cdc53ed224161a480525acf8893aaa86829a76..ef8fd4542db9631dc6cbaf7ebb0c15c548ebdcfc 100644 (file)
@@ -230,6 +230,8 @@ public class InputStreamReader extends Reader
    * Creates an InputStreamReader that uses a decoder of the given
    * charset to decode the bytes in the InputStream into
    * characters.
+   * 
+   * @since 1.5
    */
   public InputStreamReader(InputStream in, Charset charset) {
     this.in = in;
@@ -244,6 +246,8 @@ public class InputStreamReader extends Reader
   /**
    * Creates an InputStreamReader that uses the given charset decoder
    * to decode the bytes in the InputStream into characters.
+   * 
+   * @since 1.5
    */
   public InputStreamReader(InputStream in, CharsetDecoder decoder) {
     this.in = in;
index 98a11dae3e18922701332a5efe7d079a22bc977a..750c6989f25e1052edad2d6a1b282e1284b19613 100644 (file)
@@ -50,7 +50,6 @@ import java.lang.reflect.Modifier;
 import java.lang.reflect.Proxy;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
-import java.util.Arrays;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.TreeSet;
index 573b9cfa1de4e6e1086fe160e925cd4191f9308b..961d5e3099fb370a8ceec9cc57b257bea3b6f720 100644 (file)
@@ -442,6 +442,11 @@ public class ObjectOutputStream extends OutputStream
         realOutput.writeByte(flags);
 
         ObjectStreamField[] fields = osc.fields;
+
+       if (fields == ObjectStreamClass.INVALID_FIELDS)
+         throw new InvalidClassException
+                 (osc.getName(), "serialPersistentFields is invalid");
+
         realOutput.writeShort(fields.length);
 
         ObjectStreamField field;
index 975dbfc66d00d7c4517204f0c59c47193435c28d..203e4a5abaaa2c3d4d0838df36881eacd4125a47 100644 (file)
@@ -63,6 +63,8 @@ import java.util.Vector;
 
 public class ObjectStreamClass implements Serializable
 {
+  static final ObjectStreamField[] INVALID_FIELDS = new ObjectStreamField[0];
+
   /**
    * Returns the <code>ObjectStreamClass</code> for <code>cl</code>.
    * If <code>cl</code> is null, or is not <code>Serializable</code>,
@@ -71,6 +73,11 @@ public class ObjectStreamClass implements Serializable
    * same <code>ObjectStreamClass</code> object and no recalculation
    * will be done.
    *
+   * Warning: If this class contains an invalid serialPersistentField arrays
+   * lookup will not throw anything. However {@link #getFields()} will return
+   * an empty array and {@link java.io.ObjectOutputStream#writeObject} will throw an 
+   * {@link java.io.InvalidClassException}.
+   *
    * @see java.io.Serializable
    */
   public static ObjectStreamClass lookup(Class cl)
@@ -148,6 +155,8 @@ public class ObjectStreamClass implements Serializable
    * Returns the serializable (non-static and non-transient) Fields
    * of the class represented by this ObjectStreamClass.  The Fields
    * are sorted by name.
+   * If fields were obtained using serialPersistentFields and this array
+   * is faulty then the returned array of this method will be empty.
    *
    * @return the fields.
    */
@@ -608,6 +617,28 @@ outer:
            fields = getSerialPersistentFields(cl);
            if (fields != null)
              {
+               ObjectStreamField[] fieldsName = new ObjectStreamField[fields.length];
+               System.arraycopy(fields, 0, fieldsName, 0, fields.length);
+
+               Arrays.sort (fieldsName, new Comparator() {
+                       public int compare(Object o1, Object o2)
+                       {
+                         ObjectStreamField f1 = (ObjectStreamField)o1;
+                         ObjectStreamField f2 = (ObjectStreamField)o2;
+                           
+                         return f1.getName().compareTo(f2.getName());
+                       }
+                   });
+               
+               for (int i=1; i < fields.length; i++)
+                 {
+                   if (fieldsName[i-1].getName().equals(fieldsName[i].getName()))
+                       {
+                           fields = INVALID_FIELDS;
+                           return;
+                       }
+                 }
+
                Arrays.sort (fields);
                // Retrieve field reference.
                for (int i=0; i < fields.length; i++)
index 29fb631faf413ef20b50c5e38241594ea1500712..572683834be1e0703989a56c1f6ce064aec24c80 100644 (file)
@@ -213,6 +213,8 @@ public class OutputStreamWriter extends Writer
    *
    * @param out The <code>OutputStream</code> to write to
    * @param cs The <code>Charset</code> of the encoding to use
+   * 
+   * @since 1.5
    */
   public OutputStreamWriter(OutputStream out, Charset cs)
   {
@@ -230,6 +232,8 @@ public class OutputStreamWriter extends Writer
    *
    * @param out The <code>OutputStream</code> to write to
    * @param enc The <code>CharsetEncoder</code> to encode the output with
+   * 
+   * @since 1.5
    */
   public OutputStreamWriter(OutputStream out, CharsetEncoder enc)
   {
index 8e50559b310d16e51e0b7844480f3267f9060e14..99af25583b0e897426a3b6df7825970865b96656 100644 (file)
@@ -1,5 +1,6 @@
 /* PrintStream.java -- OutputStream for printing output
-   Copyright (C) 1998, 1999, 2001, 2003, 2004, 2005  Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2001, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -38,6 +39,8 @@ exception statement from your version. */
 
 package java.io;
 
+import gnu.classpath.SystemProperties;
+
 /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
  * "The Java Language Specification", ISBN 0-201-63451-1
  * Status:  Believed complete and correct to 1.3
@@ -64,7 +67,7 @@ public class PrintStream extends FilterOutputStream
 
   // Line separator string.
   private static final char[] line_separator
-    = System.getProperty("line.separator").toCharArray();
+    = SystemProperties.getProperty("line.separator").toCharArray();
 
   /**
    *  Encoding name
@@ -112,7 +115,7 @@ public class PrintStream extends FilterOutputStream
     super (out);
 
     try {
-       this.encoding = System.getProperty("file.encoding");
+       this.encoding = SystemProperties.getProperty("file.encoding");
     } catch (SecurityException e){
        this.encoding = "ISO8859_1";
     } catch (IllegalArgumentException e){
index 23be5a31947f7db8d7c71b674db389947c4551db..84ee5dec01ed65bca07798746d62c8a73b300612 100644 (file)
@@ -124,7 +124,10 @@ public class RandomAccessFile implements DataOutput, DataInput
 
     ch = FileChannelImpl.create(file, fdmode);
     fd = new FileDescriptor(ch);
-    out = new DataOutputStream (new FileOutputStream (fd));
+    if ((fdmode & FileChannelImpl.WRITE) != 0)
+      out = new DataOutputStream (new FileOutputStream (fd));
+    else
+      out = null;
     in = new DataInputStream (new FileInputStream (fd));
   }
 
@@ -766,6 +769,9 @@ public class RandomAccessFile implements DataOutput, DataInput
    */
   public void write (int oneByte) throws IOException
   {
+    if (out == null)
+      throw new IOException("Bad file descriptor");
+
     out.write(oneByte);
   }
 
@@ -777,6 +783,9 @@ public class RandomAccessFile implements DataOutput, DataInput
    */
   public void write (byte[] buffer) throws IOException
   {
+    if (out == null)
+      throw new IOException("Bad file descriptor");
+
     out.write(buffer);
   }
 
@@ -792,6 +801,9 @@ public class RandomAccessFile implements DataOutput, DataInput
    */
   public void write (byte[] buffer, int offset, int len) throws IOException
   {
+    if (out == null)
+      throw new IOException("Bad file descriptor");
+
     out.write (buffer, offset, len);
   }
 
@@ -806,6 +818,9 @@ public class RandomAccessFile implements DataOutput, DataInput
    */
   public final void writeBoolean (boolean val) throws IOException
   {
+    if (out == null)
+      throw new IOException("Bad file descriptor");
+
     out.writeBoolean(val);
   }
 
@@ -820,6 +835,9 @@ public class RandomAccessFile implements DataOutput, DataInput
    */
   public final void writeByte (int val) throws IOException
   {
+    if (out == null)
+      throw new IOException("Bad file descriptor");
+
     out.writeByte(val);
   }
 
@@ -834,6 +852,9 @@ public class RandomAccessFile implements DataOutput, DataInput
    */
   public final void writeShort (int val) throws IOException
   {
+    if (out == null)
+      throw new IOException("Bad file descriptor");
+
     out.writeShort(val);
   }
 
@@ -848,6 +869,9 @@ public class RandomAccessFile implements DataOutput, DataInput
    */
   public final void writeChar (int val) throws IOException
   {
+    if (out == null)
+      throw new IOException("Bad file descriptor");
+
     out.writeChar(val);
   }
 
@@ -861,6 +885,9 @@ public class RandomAccessFile implements DataOutput, DataInput
    */
   public final void writeInt (int val) throws IOException
   {
+    if (out == null)
+      throw new IOException("Bad file descriptor");
+
     out.writeInt(val);
   }
 
@@ -874,6 +901,9 @@ public class RandomAccessFile implements DataOutput, DataInput
    */
   public final void writeLong (long val) throws IOException
   {
+    if (out == null)
+      throw new IOException("Bad file descriptor");
+
     out.writeLong(val);
   }
 
@@ -893,6 +923,9 @@ public class RandomAccessFile implements DataOutput, DataInput
    */
   public final void writeFloat (float val) throws IOException
   {
+    if (out == null)
+      throw new IOException("Bad file descriptor");
+
     out.writeFloat(val);
   }
 
@@ -913,6 +946,9 @@ public class RandomAccessFile implements DataOutput, DataInput
    */
   public final void writeDouble (double val) throws IOException
   {
+    if (out == null)
+      throw new IOException("Bad file descriptor");
+
     out.writeDouble(val);
   }
 
@@ -927,6 +963,9 @@ public class RandomAccessFile implements DataOutput, DataInput
    */
   public final void writeBytes (String val) throws IOException
   {
+    if (out == null)
+      throw new IOException("Bad file descriptor");
+
     out.writeBytes(val);
   }
   
@@ -941,6 +980,9 @@ public class RandomAccessFile implements DataOutput, DataInput
    */
   public final void writeChars (String val) throws IOException
   {
+    if (out == null)
+      throw new IOException("Bad file descriptor");
+
     out.writeChars(val);
   }
   
@@ -975,6 +1017,9 @@ public class RandomAccessFile implements DataOutput, DataInput
    */
   public final void writeUTF (String val) throws IOException
   {
+    if (out == null)
+      throw new IOException("Bad file descriptor");
+
     out.writeUTF(val);
   }
   
index bd7773b19906251aa845ad24396cc49e9fc243bd..b4695ab3d09094958ea6a833621715ecc6541a2e 100644 (file)
@@ -550,6 +550,12 @@ public class StreamTokenizer
   /**
    * This method sets the numeric attribute on the characters '0' - '9' and
    * the characters '.' and '-'.
+   * When this method is used, the result of giving other attributes
+   * (whitespace, quote, or comment) to the numeric characters may
+   * vary depending on the implementation. For example, if
+   * parseNumbers() and then whitespaceChars('1', '1') are called,
+   * this implementation reads "121" as 2, while some other implementation
+   * will read it as 21.
    */
   public void parseNumbers()
   {
index 78db41ef21650e825a33be8abee5cd58faf061e3..3c88ff805c7ac77da368ec5452b3c4fbd476ac34 100644 (file)
@@ -2410,11 +2410,11 @@ public final class Character implements Serializable, Comparable
       {
         // Write second char first to cause IndexOutOfBoundsException
         // immediately.
-        dst[dstIndex + 1] = (char) ((codePoint & 0x3ff)
-                                    + (int) MIN_LOW_SURROGATE );
-        dst[dstIndex] = (char) ((codePoint >> 10) + (int) MIN_HIGH_SURROGATE);
+        final int cp2 = codePoint - 0x10000;
+        dst[dstIndex + 1] = (char) ((cp2 % 0x400) + (int) MIN_LOW_SURROGATE);
+        dst[dstIndex] = (char) ((cp2 / 0x400) + (int) MIN_HIGH_SURROGATE);
         result = 2;
-    }
+      }
     else
       {
         dst[dstIndex] = (char) codePoint;
@@ -2523,7 +2523,8 @@ public final class Character implements Serializable, Comparable
    */
   public static int toCodePoint(char high, char low)
   {
-    return ((high - MIN_HIGH_SURROGATE) << 10) + (low - MIN_LOW_SURROGATE);
+    return ((high - MIN_HIGH_SURROGATE) * 0x400) +
+      (low - MIN_LOW_SURROGATE) + 0x10000;
   }
 
   /**
index 726c794a4133d67e9212de3fcbad627379266242..c4235e6808c97a4afd65a5ead9513d7610de4c1b 100644 (file)
@@ -583,8 +583,7 @@ public final class Class implements Serializable
   /**
    * Returns the <code>Package</code> in which this class is defined
    * Returns null when this information is not available from the
-   * classloader of this class or when the classloader of this class
-   * is null.
+   * classloader of this class.
    *
    * @return the package for this class, if it is available
    * @since 1.2
@@ -837,7 +836,10 @@ public final class Class implements Serializable
    */
   public int getModifiers()
   {
-    return VMClass.getModifiers (this, false);
+    int mod = VMClass.getModifiers (this, false);
+    return (mod & (Modifier.PUBLIC | Modifier.PROTECTED | Modifier.PRIVATE |
+          Modifier.FINAL | Modifier.STATIC | Modifier.ABSTRACT |
+          Modifier.INTERFACE));
   }
   
   /**
index 26b398bb695f4a99e2585e373d6e5f64df184433..03c560689210cd3838315812f6065fe55030e74f 100644 (file)
@@ -172,6 +172,81 @@ public final class Double extends Number implements Comparable
     return VMDouble.toString(d, false);
   }
 
+  /**
+   * Convert a double value to a hexadecimal string.  This converts as
+   * follows:
+   * <ul>
+   * <li> A NaN value is converted to the string "NaN".
+   * <li> Positive infinity is converted to the string "Infinity".
+   * <li> Negative infinity is converted to the string "-Infinity".
+   * <li> For all other values, the first character of the result is '-'
+   * if the value is negative.  This is followed by '0x1.' if the
+   * value is normal, and '0x0.' if the value is denormal.  This is
+   * then followed by a (lower-case) hexadecimal representation of the
+   * mantissa, with leading zeros as required for denormal values.
+   * The next character is a 'p', and this is followed by a decimal
+   * representation of the unbiased exponent.
+   * </ul>
+   * @param d the double value
+   * @return the hexadecimal string representation
+   * @since 1.5
+   */
+  public static String toHexString(double d)
+  {
+    if (isNaN(d))
+      return "NaN";
+    if (isInfinite(d))
+      return d < 0 ? "-Infinity" : "Infinity";
+
+    long bits = doubleToLongBits(d);
+    StringBuilder result = new StringBuilder();
+    
+    if (bits < 0)
+      result.append('-');
+    result.append("0x");
+
+    final int mantissaBits = 52;
+    final int exponentBits = 11;
+    long mantMask = (1L << mantissaBits) - 1;
+    long mantissa = bits & mantMask;
+    long expMask = (1L << exponentBits) - 1;
+    long exponent = (bits >>> mantissaBits) & expMask;
+
+    result.append(exponent == 0 ? '0' : '1');
+    result.append('.');
+    result.append(Long.toHexString(mantissa));
+    if (exponent == 0 && mantissa != 0)
+      {
+        // Treat denormal specially by inserting '0's to make
+        // the length come out right.  The constants here are
+        // to account for things like the '0x'.
+        int offset = 4 + ((bits < 0) ? 1 : 0);
+        // The silly +3 is here to keep the code the same between
+        // the Float and Double cases.  In Float the value is
+        // not a multiple of 4.
+        int desiredLength = offset + (mantissaBits + 3) / 4;
+        while (result.length() < desiredLength)
+          result.insert(offset, '0');
+      }
+    result.append('p');
+    if (exponent == 0 && mantissa == 0)
+      {
+        // Zero, so do nothing special.
+      }
+    else
+      {
+        // Apply bias.
+        boolean denormal = exponent == 0;
+        exponent -= (1 << (exponentBits - 1)) - 1;
+        // Handle denormal.
+        if (denormal)
+          ++exponent;
+      }
+
+    result.append(Long.toString(exponent));
+    return result.toString();
+  }
+
   /**
    * Returns a <code>Double</code> object wrapping the value.
    * In contrast to the <code>Double</code> constructor, this method
index eef34a0abebe246736cee7e4887ed3130fa746e1..dcd5b221197e3e1c8777b29bb95a97e6174ae15b 100644 (file)
@@ -182,6 +182,83 @@ public final class Float extends Number implements Comparable
     return VMDouble.toString(f, true);
   }
 
+  /**
+   * Convert a float value to a hexadecimal string.  This converts as
+   * follows:
+   * <ul>
+   * <li> A NaN value is converted to the string "NaN".
+   * <li> Positive infinity is converted to the string "Infinity".
+   * <li> Negative infinity is converted to the string "-Infinity".
+   * <li> For all other values, the first character of the result is '-'
+   * if the value is negative.  This is followed by '0x1.' if the
+   * value is normal, and '0x0.' if the value is denormal.  This is
+   * then followed by a (lower-case) hexadecimal representation of the
+   * mantissa, with leading zeros as required for denormal values.
+   * The next character is a 'p', and this is followed by a decimal
+   * representation of the unbiased exponent.
+   * </ul>
+   * @param f the float value
+   * @return the hexadecimal string representation
+   * @since 1.5
+   */
+  public static String toHexString(float f)
+  {
+    if (isNaN(f))
+      return "NaN";
+    if (isInfinite(f))
+      return f < 0 ? "-Infinity" : "Infinity";
+
+    int bits = floatToIntBits(f);
+    StringBuilder result = new StringBuilder();
+    
+    if (bits < 0)
+      result.append('-');
+    result.append("0x");
+
+    final int mantissaBits = 23;
+    final int exponentBits = 8;
+    int mantMask = (1 << mantissaBits) - 1;
+    int mantissa = bits & mantMask;
+    int expMask = (1 << exponentBits) - 1;
+    int exponent = (bits >>> mantissaBits) & expMask;
+
+    result.append(exponent == 0 ? '0' : '1');
+    result.append('.');
+    // For Float only, we have to adjust the mantissa.
+    mantissa <<= 1;
+    result.append(Integer.toHexString(mantissa));
+    if (exponent == 0 && mantissa != 0)
+      {
+        // Treat denormal specially by inserting '0's to make
+        // the length come out right.  The constants here are
+        // to account for things like the '0x'.
+        int offset = 4 + ((bits < 0) ? 1 : 0);
+        // The silly +3 is here to keep the code the same between
+        // the Float and Double cases.  In Float the value is
+        // not a multiple of 4.
+        int desiredLength = offset + (mantissaBits + 3) / 4;
+        while (result.length() < desiredLength)
+          result.insert(offset, '0');
+      }
+    result.append('p');
+    if (exponent == 0 && mantissa == 0)
+      {
+        // Zero, so do nothing special.
+      }
+    else
+      {
+        // Apply bias.
+        boolean denormal = exponent == 0;
+        exponent -= (1 << (exponentBits - 1)) - 1;
+        // Handle denormal.
+        if (denormal)
+          ++exponent;
+      }
+
+    result.append(Integer.toString(exponent));
+    return result.toString();
+  }
+
   /**
    * Creates a new <code>Float</code> object using the <code>String</code>.
    *
index 69ff6138dc67adbbec0e5916e1e81f7790a264cd..b9c7624ef44531d0ca4a06153688d640caed577a 100644 (file)
@@ -1,5 +1,5 @@
 /* InheritableThreadLocal -- a ThreadLocal which inherits values across threads
-   Copyright (C) 2000, 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+   Copyright (C) 2000, 2001, 2002, 2003, 2005, 2006  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -37,8 +37,9 @@ exception statement from your version. */
 
 package java.lang;
 
+import gnu.java.util.WeakIdentityHashMap;
+
 import java.util.Iterator;
-import java.util.WeakHashMap;
 
 /**
  * A ThreadLocal whose value is inherited by child Threads. The value of the
@@ -98,15 +99,15 @@ public class InheritableThreadLocal extends ThreadLocal
         Iterator keys = parentThread.locals.keySet().iterator();
         while (keys.hasNext())
           {
-            Key key = (Key)keys.next();
-            if (key.get() instanceof InheritableThreadLocal)
+            Object key = keys.next();
+            if (key instanceof InheritableThreadLocal)
               {
-                InheritableThreadLocal local = (InheritableThreadLocal)key.get();
+                InheritableThreadLocal local = (InheritableThreadLocal)key;
                 Object parentValue = parentThread.locals.get(key);
                 Object childValue = local.childValue(parentValue == NULL
                                                      ? null : parentValue);
                 if (childThread.locals == null)
-                    childThread.locals = new WeakHashMap();
+                    childThread.locals = new WeakIdentityHashMap();
                 childThread.locals.put(key, (childValue == null
                                              ? NULL : childValue));
               }
index 26d56a64bf344a62e9ac3d778922acadd3ca6291..30ee1be086fdec412c2f7fea5d2522c9885cf18b 100644 (file)
@@ -41,9 +41,6 @@ package java.lang;
 import gnu.classpath.VMStackWalker;
 
 import java.awt.AWTPermission;
-import java.awt.Frame;
-import java.awt.Toolkit;
-import java.awt.Window;
 import java.io.File;
 import java.io.FileDescriptor;
 import java.io.FileInputStream;
@@ -424,7 +421,7 @@ public class SecurityManager
   public void checkAccess(Thread thread)
   {
     if (thread.getThreadGroup() != null 
-       && thread.getThreadGroup().getParent() != null)
+       && thread.getThreadGroup().getParent() == null)
       checkPermission(new RuntimePermission("modifyThread"));
   }
 
@@ -457,7 +454,7 @@ public class SecurityManager
    */
   public void checkAccess(ThreadGroup g)
   {
-    if (g.getParent() != null)
+    if (g.getParent() == null)
       checkPermission(new RuntimePermission("modifyThreadGroup"));
   }
 
@@ -837,7 +834,7 @@ public class SecurityManager
    * @param window the window to create
    * @return true if there is permission to show the window without warning
    * @throws NullPointerException if window is null
-   * @see Window#Window(Frame)
+   * @see java.awt.Window#Window(java.awt.Frame)
    */
   public boolean checkTopLevelWindow(Object window)
   {
@@ -862,7 +859,7 @@ public class SecurityManager
    * an exception.
    *
    * @throws SecurityException if permission is denied
-   * @see Toolkit#getPrintJob(Frame, String, Properties)
+   * @see java.awt.Toolkit#getPrintJob(java.awt.Frame, String, Properties)
    * @since 1.1
    */
   public void checkPrintJobAccess()
@@ -878,7 +875,7 @@ public class SecurityManager
    * rather than throwing an exception.
    *
    * @throws SecurityException if permission is denied
-   * @see Toolkit#getSystemClipboard()
+   * @see java.awt.Toolkit#getSystemClipboard()
    * @since 1.1
    */
   public void checkSystemClipboardAccess()
@@ -894,7 +891,7 @@ public class SecurityManager
    * rather than throwing an exception.
    *
    * @throws SecurityException if permission is denied
-   * @see Toolkit#getSystemEventQueue()
+   * @see java.awt.Toolkit#getSystemEventQueue()
    * @since 1.1
    */
   public void checkAwtEventQueueAccess()
index 6dd4d8532e8d71ac2e902b7fae6086c51ada894f..cf4d1c76f4dc6300f80c68bf8b5ae42ab032a1e9 100644 (file)
@@ -49,7 +49,7 @@ import java.io.Serializable;
  * @author Mark Wielaard (mark@klomp.org)
  * @author Eric Blake (ebb9@email.byu.edu)
  * @since 1.4
- * @status updated to 1.4
+ * @status updated to 1.5
  */
 public final class StackTraceElement implements Serializable
 {
@@ -111,6 +111,26 @@ public final class StackTraceElement implements Serializable
     this.isNative = isNative;
   }
 
+  /**
+   * Create a new StackTraceElement representing a given source location.
+   *
+   * @param className the fully qualified name of the class
+   * @param methodName the name of the method
+   * @param fileName the name of the file, null if unknown
+   * @param lineNumber the line in the file, negative if unknown, or -2
+   * if this method is native
+   * 
+   * @since 1.5
+   */
+  public StackTraceElement(String className, String methodName, String fileName,
+                           int lineNumber)
+  {
+    this(fileName, lineNumber, className, methodName, lineNumber == -2);
+    // The public constructor doesn't allow certain values to be null.
+    if (className == null || methodName == null)
+      throw new NullPointerException("invalid argument to constructor");
+  }
+
   /**
    * Returns the name of the file, or null if unknown. This is usually
    * obtained from the <code>SourceFile</code> attribute of the class file
index 369d8085a02aa4b3c10e57d2c9387b77157b1a26..231afc77b9228ddabf80c56e222feb174c4e52e0 100644 (file)
@@ -273,7 +273,8 @@ public final class String implements Serializable, Comparable, CharSequence
       throw new StringIndexOutOfBoundsException("offset: " + offset);
     if (count < 0)
       throw new StringIndexOutOfBoundsException("count: " + count);
-    if (offset + count < 0 || offset + count > ascii.length)
+    // equivalent to: offset + count < 0 || offset + count > ascii.length
+    if (ascii.length - offset < count)
       throw new StringIndexOutOfBoundsException("offset + count: "
                                                + (offset + count));
     value = new char[count];
@@ -338,7 +339,8 @@ public final class String implements Serializable, Comparable, CharSequence
       throw new StringIndexOutOfBoundsException("offset: " + offset);
     if (count < 0)
       throw new StringIndexOutOfBoundsException("count: " + count);
-    if (offset + count < 0 || offset + count > data.length)
+    // equivalent to: offset + count < 0 || offset + count > data.length
+    if (data.length - offset < count)
       throw new StringIndexOutOfBoundsException("offset + count: "
                                                + (offset + count));
     try 
@@ -418,7 +420,8 @@ public final class String implements Serializable, Comparable, CharSequence
       throw new StringIndexOutOfBoundsException("offset: " + offset);
     if (count < 0)
       throw new StringIndexOutOfBoundsException("count: " + count);
-    if (offset + count < 0 || offset + count > data.length)
+    // equivalent to: offset + count < 0 || offset + count > data.length
+    if (data.length - offset < count)
       throw new StringIndexOutOfBoundsException("offset + count: "
                                                + (offset + count));
     int o, c;
@@ -533,7 +536,8 @@ public final class String implements Serializable, Comparable, CharSequence
       throw new StringIndexOutOfBoundsException("offset: " + offset);
     if (count < 0)
       throw new StringIndexOutOfBoundsException("count: " + count);
-    if (offset + count < 0 || offset + count > data.length)
+    // equivalent to: offset + count < 0 || offset + count > data.length
+    if (data.length - offset < count)
       throw new StringIndexOutOfBoundsException("offset + count: "
                                                + (offset + count));
     if (dont_copy)
@@ -1761,7 +1765,7 @@ public final class String implements Serializable, Comparable, CharSequence
 
   /**
    * Return the number of code points between two indices in the
-   * <code>StringBuffer</code>.  An unpaired surrogate counts as a
+   * <code>String</code>.  An unpaired surrogate counts as a
    * code point for this purpose.  Characters outside the indicated
    * range are not examined, even if the range ends in the middle of a
    * surrogate pair.
@@ -1879,6 +1883,8 @@ public final class String implements Serializable, Comparable, CharSequence
    * described in s.
    * @param s the CharSequence
    * @return true iff this String contains s
+   * 
+   * @since 1.5
    */
   public boolean contains (CharSequence s)
   {
index 763228c16ef56849e010f4f19c1c24bb3dee10f0..9afde5bfd0337867220fb1420271f9920e129ba7 100644 (file)
@@ -38,9 +38,9 @@ exception statement from your version. */
 
 package java.lang;
 
+import gnu.java.util.WeakIdentityHashMap;
 import java.security.Permission;
 import java.util.Map;
-import java.util.WeakHashMap;
 
 /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
  * "The Java Language Specification", ISBN 0-201-63451-1
@@ -137,7 +137,7 @@ public class Thread implements Runnable
   /** Thread local storage. Package accessible for use by
     * InheritableThreadLocal.
     */
-  WeakHashMap locals;
+  WeakIdentityHashMap locals;
 
   /**
    * Allocates a new <code>Thread</code> object. This constructor has
@@ -996,7 +996,7 @@ public class Thread implements Runnable
     Map locals = thread.locals;
     if (locals == null)
       {
-        locals = thread.locals = new WeakHashMap();
+        locals = thread.locals = new WeakIdentityHashMap();
       }
     return locals;
   }
index bc839044574879f6b3501781d9db41e644cfbd38..aceb2557a54a93fb98455d16b2076b483cf9f054 100644 (file)
@@ -1,5 +1,5 @@
 /* ThreadLocal -- a variable with a unique value per thread
-   Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2002, 2003, 2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -95,21 +95,6 @@ public class ThreadLocal
    */
   static final Object NULL = new Object();
 
-  /**
-   * Serves as a key for the Thread.locals WeakHashMap.
-   * We can't use "this", because a subclass may override equals/hashCode
-   * and we need to use object identity for the map.
-   */
-  final Key key = new Key();
-
-  class Key
-  {
-    ThreadLocal get()
-    {
-      return ThreadLocal.this;
-    }
-  }
-
   /**
    * Creates a ThreadLocal object without associating any value to it yet.
    */
@@ -143,11 +128,11 @@ public class ThreadLocal
     Map map = Thread.getThreadLocals();
     // Note that we don't have to synchronize, as only this thread will
     // ever modify the map.
-    Object value = map.get(key);
+    Object value = map.get(this);
     if (value == null)
       {
         value = initialValue();
-        map.put(key, value == null ? NULL : value);
+        map.put(this, value == null ? NULL : value);
       }
     return value == NULL ? null : value;
   }
@@ -165,6 +150,6 @@ public class ThreadLocal
     Map map = Thread.getThreadLocals();
     // Note that we don't have to synchronize, as only this thread will
     // ever modify the map.
-    map.put(key, value == null ? NULL : value);
+    map.put(this, value == null ? NULL : value);
   }
 }
index 40bafbb34dd19cea7c0a32ca58d4ce5013aded1f..d8837c006b5d82c281bd64f5cafa078b3682a5a0 100644 (file)
@@ -176,7 +176,12 @@ public class DatagramSocket
   {
     String propVal = SystemProperties.getProperty("impl.prefix");
     if (propVal == null || propVal.equals(""))
-      impl = new PlainDatagramSocketImpl();
+      {
+        if (factory != null)
+          impl = factory.createDatagramSocketImpl();
+        else
+          impl = new PlainDatagramSocketImpl();
+      }
     else
       try
         {
index 94dc6cb6d84bda296cd6cf88504944a245dfc200..7277331bb26eb708447121296471f13e450133d4 100644 (file)
@@ -43,7 +43,6 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.ObjectStreamException;
 import java.io.Serializable;
-import java.util.HashMap;
 import java.util.StringTokenizer;
 
 /**
@@ -65,22 +64,6 @@ public class InetAddress implements Serializable
 {
   private static final long serialVersionUID = 3286316764910316507L;
 
-  /**
-   * The default DNS hash table size,
-   * Use a prime number happy with hash table.
-   */
-  private static final int DEFAULT_CACHE_SIZE = 89;
-
-  /**
-   * The default caching period in minutes.
-   */
-  private static final int DEFAULT_CACHE_PERIOD = 4 * 60;
-
-  /**
-   * Percentage of cache entries to purge when the table gets full.
-   */
-  private static final int DEFAULT_CACHE_PURGE_PCT = 30;
-
   /**
    * The special IP address INADDR_ANY.
    */
@@ -96,50 +79,8 @@ public class InetAddress implements Serializable
    */
   static InetAddress LOCALHOST;
 
-  /**
-   * The size of the cache.
-   */
-  private static int cache_size = 0;
-
-  /**
-   * The length of time we will continue to read the address from cache
-   * before forcing another lookup.
-   */
-  private static int cache_period = 0;
-
-  /**
-   * What percentage of the cache we will purge if it gets full.
-   */
-  private static int cache_purge_pct = 0;
-
-  /**
-   * HashMap to use as DNS lookup cache.
-   * Use HashMap because all accesses to cache are already synchronized.
-   */
-  private static HashMap cache;
-
   static
   {
-    // Look for properties that override default caching behavior
-    cache_size =
-      Integer.getInteger("gnu.java.net.dns_cache_size", DEFAULT_CACHE_SIZE)
-             .intValue();
-    cache_period =
-      Integer.getInteger("gnu.java.net.dns_cache_period",
-                         DEFAULT_CACHE_PERIOD * 60 * 1000).intValue();
-
-    cache_purge_pct =
-      Integer.getInteger("gnu.java.net.dns_cache_purge_pct",
-                         DEFAULT_CACHE_PURGE_PCT).intValue();
-
-    // Fallback to  defaults if necessary
-    if ((cache_purge_pct < 1) || (cache_purge_pct > 100))
-      cache_purge_pct = DEFAULT_CACHE_PURGE_PCT;
-
-    // Create the cache
-    if (cache_size != 0)
-      cache = new HashMap(cache_size);
-
     // precompute the ANY_IF address
     try
       {
@@ -173,11 +114,6 @@ public class InetAddress implements Serializable
    */
   String hostName;
 
-  /**
-   * The time this address was looked up.
-   */
-  transient long lookup_time;
-
   /**
    * The field 'family' seems to be the AF_ value.
    * FIXME: Much of the code in the other java.net classes does not make
@@ -200,8 +136,6 @@ public class InetAddress implements Serializable
     addr = (null == ipaddr) ? null : (byte[]) ipaddr.clone();
     hostName = hostname;
     
-    lookup_time = System.currentTimeMillis();
-
     family = 2; /* AF_INET */
   }
 
@@ -649,20 +583,17 @@ public class InetAddress implements Serializable
 
     InetAddress[] addresses;
 
+    if (hostname != null)
+      hostname = hostname.trim();
+
     // Default to current host if necessary
-    if (hostname == null)
+    if (hostname == null || hostname.equals(""))
       {
        addresses = new InetAddress[1];
        addresses[0] = LOCALHOST;
        return addresses;
       }
 
-    // Check the cache for this host before doing a lookup
-    addresses = checkCacheFor(hostname);
-
-    if (addresses != null)
-      return addresses;
-
     // Not in cache, try the lookup
     byte[][] iplist = VMInetAddress.getHostByName(hostname);
 
@@ -679,70 +610,9 @@ public class InetAddress implements Serializable
        addresses[i] = new Inet4Address(iplist[i], hostname);
       }
 
-    addToCache(hostname, addresses);
     return addresses;
   }
 
-  /**
-   * This method checks the DNS cache to see if we have looked this hostname
-   * up before. If so, we return the cached addresses unless it has been in the
-   * cache too long.
-   *
-   * @param hostname The hostname to check for
-   *
-   * @return The InetAddress for this hostname or null if not available
-   */
-  private static synchronized InetAddress[] checkCacheFor(String hostname)
-  {
-    InetAddress[] addresses = null;
-
-    if (cache_size == 0)
-      return null;
-
-    Object obj = cache.get(hostname);
-    if (obj == null)
-      return null;
-
-    if (obj instanceof InetAddress[])
-      addresses = (InetAddress[]) obj;
-
-    if (addresses == null)
-      return null;
-
-    if (cache_period != -1)
-      if ((System.currentTimeMillis() - addresses[0].lookup_time) > cache_period)
-        {
-         cache.remove(hostname);
-         return null;
-        }
-
-    return addresses;
-  }
-
-  /**
-   * This method adds an InetAddress object to our DNS cache.  Note that
-   * if the cache is full, then we run a purge to get rid of old entries.
-   * This will cause a performance hit, thus applications using lots of
-   * lookups should set the cache size to be very large.
-   *
-   * @param hostname The hostname to cache this address under
-   * @param obj The InetAddress or InetAddress array to store
-   */
-  private static synchronized void addToCache(String hostname, Object obj)
-  {
-    if (cache_size == 0)
-      return;
-
-    // Check to see if hash table is full
-    if (cache_size != -1)
-      if (cache.size() == cache_size)
-        {
-         // FIXME Add code to purge later.
-        }
-
-    cache.put(hostname, obj);
-  }
-
   /**
    * Returns the special address INADDR_ANY used for binding to a local
    * port on all IP addresses hosted by a the local host.
@@ -757,6 +627,7 @@ public class InetAddress implements Serializable
       {
        byte[] tmp = VMInetAddress.lookupInaddrAny();
        inaddr_any = new Inet4Address(tmp, null);
+       inaddr_any.hostName = inaddr_any.getHostName();
       }
 
     return inaddr_any;
index 1d947a0b46a694d8b6ddffdd97e80dfcad2e76dc..168c67a19ee6ffca81860fc5077dec21a8104e4b 100644 (file)
@@ -1,5 +1,5 @@
 /* URL.java -- Uniform Resource Locator Class
-   Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005
+   Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006
    Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -38,6 +38,7 @@ exception statement from your version. */
 
 package java.net;
 
+import gnu.classpath.SystemProperties;
 import gnu.java.net.URLParseError;
 
 import java.io.IOException;
@@ -198,7 +199,7 @@ public final class URL implements Serializable
 
   static
     {
-      String s = System.getProperty("gnu.java.net.nocache_protocol_handlers");
+      String s = SystemProperties.getProperty("gnu.java.net.nocache_protocol_handlers");
 
       if (s == null)
        cache_handlers = true;
@@ -342,7 +343,7 @@ public final class URL implements Serializable
    */
   public URL(URL context, String spec) throws MalformedURLException
   {
-    this(context, spec, (URLStreamHandler) null);
+    this(context, spec, (context == null) ? (URLStreamHandler)null : context.ph);
   }
 
   /**
@@ -867,7 +868,7 @@ public final class URL implements Serializable
        // Except in very unusual environments the JDK specified one shouldn't
        // ever be needed (or available).
        String ph_search_path =
-         System.getProperty("java.protocol.handler.pkgs");
+         SystemProperties.getProperty("java.protocol.handler.pkgs");
 
        // Tack our default package on at the ends.
        if (ph_search_path != null)
index 91801ddac8786e37019db983410189fd5e974cd9..3637703a32ca76fa3c37a938be9744a62fc11b31 100644 (file)
@@ -121,6 +121,8 @@ public abstract class Charset implements Comparable
    *
    * This may be set by the user or VM with the file.encoding
    * property.
+   * 
+   * @since 1.5
    */
   public static Charset defaultCharset()
   {
index f0d40ab85913daf7fb597c38d88038837b5ea196..496ccf92789b0b86c322ea8676263b96be621783 100644 (file)
@@ -1,5 +1,5 @@
 /* CharsetProvider.java -- charset service provider interface
-   Copyright (C) 2002 Free Software Foundation
+   Copyright (C) 2002, 2006 Free Software Foundation
 
 This file is part of GNU Classpath.
 
@@ -67,8 +67,12 @@ public abstract class CharsetProvider
    */
   protected CharsetProvider()
   {
+    // We only do the security check for custom providers, not for the
+    // built in ones.
     SecurityManager s = System.getSecurityManager();
-    if (s != null)
+    if (s != null &&
+        ! (this instanceof gnu.java.nio.charset.Provider
+        || this instanceof gnu.java.nio.charset.iconv.IconvProvider))
       s.checkPermission(new RuntimePermission("charsetProvider"));
   }
 
index 8684f2083b12d0b034a900f089028a84dee853e8..8a6af645be1ea3c15c13edf91fbf120388f57c41 100644 (file)
@@ -1,5 +1,5 @@
 /* MessageDigest.java --- The message digest interface.
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -167,6 +167,9 @@ public abstract class MessageDigest extends MessageDigestSpi
   public static MessageDigest getInstance(String algorithm, String provider)
     throws NoSuchAlgorithmException, NoSuchProviderException
   {
+    if (provider != null)
+      provider = provider.trim();
+
     if (provider == null || provider.length() == 0)
       throw new IllegalArgumentException("Illegal provider");
 
index fd51d0535b3a3d681a3d4555c755d73f65538e70..d26d049c524be9df13c412ef96b6610bdd5f2ef8 100644 (file)
@@ -1,5 +1,6 @@
 /* Security.java --- Java base security class implementation
-   Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005  Free Software Foundation, Inc.
+   Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,6 +42,7 @@ package java.security;
 import gnu.classpath.SystemProperties;
 
 import gnu.classpath.Configuration;
+import gnu.classpath.VMStackWalker;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -354,6 +356,14 @@ public final class Security
    */
   public static Provider getProvider(String name)
   {
+    if (name == null)
+      return null;
+    else
+      {
+        name = name.trim();
+        if (name.length() == 0)
+          return null;
+      }
     Provider p;
     int max = providers.size ();
     for (int i = 0; i < max; i++)
@@ -383,8 +393,11 @@ public final class Security
    */
   public static String getProperty(String key)
   {
+    // XXX To prevent infinite recursion when the SecurityManager calls us,
+    // don't do a security check if the caller is trusted (by virtue of having
+    // been loaded by the bootstrap class loader).
     SecurityManager sm = System.getSecurityManager();
-    if (sm != null)
+    if (sm != null && VMStackWalker.getCallingClassLoader() != null)
       sm.checkSecurityAccess("getProperty." + key);
 
     return secprops.getProperty(key);
@@ -399,20 +412,23 @@ public final class Security
    * </p>
    *
    * @param key the name of the property to be set.
-   * @param datnum the value of the property to be set.
+   * @param datum the value of the property to be set.
    * @throws SecurityException if a security manager exists and its
    * {@link SecurityManager#checkPermission(Permission)} method denies access
    * to set the specified security property value.
    * @see #getProperty(String)
    * @see SecurityPermission
    */
-  public static void setProperty(String key, String datnum)
+  public static void setProperty(String key, String datum)
   {
     SecurityManager sm = System.getSecurityManager();
     if (sm != null)
       sm.checkSecurityAccess("setProperty." + key);
 
-    secprops.put(key, datnum);
+    if (datum == null)
+      secprops.remove(key);
+    else
+      secprops.put(key, datum);
   }
 
   /**
diff --git a/libjava/classpath/java/text/Bidi.java b/libjava/classpath/java/text/Bidi.java
new file mode 100644 (file)
index 0000000..57b9a88
--- /dev/null
@@ -0,0 +1,78 @@
+/* Bidi.java -- Bidirectional Algorithm implementation
+   Copyright (C) 2005  Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.text;
+
+/**
+ * Bidirectional Algorithm implementation.
+ *
+ * TODO/FIXME Only one method <code>requiresBidi</code> is implemented
+ * for now by using <code>Character</code>. The full algorithm is <a
+ * href="http://www.unicode.org/unicode/reports/tr9/">Unicode Standard
+ * Annex #9: The Bidirectional Algorithm</a>. A full implementation is
+ * <a href="http://fribidi.org/">GNU FriBidi</a>.
+ */
+public class Bidi
+{
+  /**
+   * Returns false if all characters in the text between start and end
+   * are all left-to-right text. This implementation is just calls
+   * <code>Character.getDirectionality(char)</code> on all characters
+   * and makes sure all characters are either explicitly left-to-right
+   * or neutral in directionality (character types L, EN, ES, ET, AN,
+   * CS, S and WS).
+   */
+  public static boolean requiresBidi(char[] text, int start, int end)
+  {
+    for (int i = start; i < end; i++)
+      {
+       byte dir = Character.getDirectionality(text[i]);
+       if (dir != Character.DIRECTIONALITY_LEFT_TO_RIGHT
+           && dir != Character.DIRECTIONALITY_EUROPEAN_NUMBER
+           && dir != Character.DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR
+           && dir != Character.DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR
+           && dir != Character.DIRECTIONALITY_ARABIC_NUMBER
+           && dir != Character.DIRECTIONALITY_COMMON_NUMBER_SEPARATOR
+           && dir != Character.DIRECTIONALITY_SEGMENT_SEPARATOR
+           && dir != Character.DIRECTIONALITY_WHITESPACE)
+         return true;
+      }
+
+    return false;
+  }
+}
index 6dadb0ce333219e251c5283294112eecce73a34a..a9ec7767f94668ce5807a9c281671831873f0426 100644 (file)
@@ -182,7 +182,9 @@ public class DecimalFormat extends NumberFormat
       {
        groupingUsed = saw_group;
        groupingSize = (byte) countSinceGroup;
-       minimumIntegerDigits = zeroCount;
+       // Checking "zeroCount > 0" avoids 0 being formatted into "" with "#".
+       if (zeroCount > 0)
+         minimumIntegerDigits = zeroCount;
       }
 
     // Early termination.
index 7cd6436a3088689d520cbd70ecd02413520f70c9..b4ab882addf07f40adb46bc8c483d1d5699deadf 100644 (file)
@@ -594,13 +594,13 @@ public abstract class AbstractMap implements Map
    *
    * @param o1 the first object
    * @param o2 the second object
-   * @return o1 == null ? o2 == null : o1.equals(o2)
+   * @return o1 == o2 || (o1 != null && o1.equals(o2))
    */
   // Package visible for use throughout java.util.
   // It may be inlined since it is final.
   static final boolean equals(Object o1, Object o2)
   {
-    return o1 == null ? o2 == null : o1.equals(o2);
+    return o1 == o2 || (o1 != null && o1.equals(o2));
   }
 
   /**
index 752f9da4ee053a3c67b2d36ddf24fd4f05fbea50..50b5638ede0faf304b188a973705a909fff492df 100644 (file)
@@ -92,7 +92,7 @@ public class ArrayList extends AbstractList
   /**
    * The default capacity for new ArrayLists.
    */
-  private static final int DEFAULT_CAPACITY = 16;
+  private static final int DEFAULT_CAPACITY = 10;
 
   /**
    * The number of elements in this list.
index e650bf8bda9649c17fbc702d17d4968b42accdf9..dc37bad8a93252260fee80725d70930c5e2ab7ad 100644 (file)
@@ -670,10 +670,10 @@ public class Collections
                for ( ; i != pos; i--, o = itr.previous());
                forward = false;
              }
-           final int d = compare(key, o, c);
+           final int d = compare(o, key, c);
            if (d == 0)
               return pos;
-           else if (d < 0)
+           else if (d > 0)
               hi = pos - 1;
            else
               // This gets the insertion point right on the last loop
@@ -685,10 +685,10 @@ public class Collections
        while (low <= hi)
          {
            pos = (low + hi) >> 1;
-           final int d = compare(key, l.get(pos), c);
+           final int d = compare(l.get(pos), key, c);
            if (d == 0)
               return pos;
-           else if (d < 0)
+           else if (d > 0)
               hi = pos - 1;
            else
               // This gets the insertion point right on the last loop
index 011cafaa85582f011e81058939207b93b8840f84..76b0d5c15bd1a40a5331032b03ee276ef81a613f 100644 (file)
@@ -1,6 +1,7 @@
 /* Hashtable.java -- a class providing a basic hashtable data structure,
    mapping Object --> Object
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005  Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006
+   Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -110,12 +111,6 @@ public class Hashtable extends Dictionary
    */
   private static final int DEFAULT_CAPACITY = 11;
 
-  /** An "enum" of iterator types. */
-  // Package visible for use by nested classes.
-  static final int KEYS = 0,
-                   VALUES = 1,
-                   ENTRIES = 2;
-
   /**
    * The default load factor; this is explicitly specified by the spec.
    */
@@ -302,7 +297,7 @@ public class Hashtable extends Dictionary
    */
   public Enumeration keys()
   {
-    return new Enumerator(KEYS);
+    return new KeyEnumerator();
   }
 
   /**
@@ -316,7 +311,7 @@ public class Hashtable extends Dictionary
    */
   public Enumeration elements()
   {
-    return new Enumerator(VALUES);
+    return new ValueEnumerator();
   }
 
   /**
@@ -333,20 +328,19 @@ public class Hashtable extends Dictionary
    */
   public synchronized boolean contains(Object value)
   {
+    if (value == null)
+      throw new NullPointerException();
+
     for (int i = buckets.length - 1; i >= 0; i--)
       {
         HashEntry e = buckets[i];
         while (e != null)
           {
-            if (value.equals(e.value))
+            if (e.value.equals(value))
               return true;
             e = e.next;
           }
       }
-
-    // Must throw on null argument even if the table is empty
-    if (value == null)
-      throw new NullPointerException();
  
     return false;  
   }
@@ -385,7 +379,7 @@ public class Hashtable extends Dictionary
     HashEntry e = buckets[idx];
     while (e != null)
       {
-        if (key.equals(e.key))
+        if (e.key.equals(key))
           return true;
         e = e.next;
       }
@@ -408,7 +402,7 @@ public class Hashtable extends Dictionary
     HashEntry e = buckets[idx];
     while (e != null)
       {
-        if (key.equals(e.key))
+        if (e.key.equals(key))
           return e.value;
         e = e.next;
       }
@@ -438,7 +432,7 @@ public class Hashtable extends Dictionary
 
     while (e != null)
       {
-        if (key.equals(e.key))
+        if (e.key.equals(key))
           {
             // Bypass e.setValue, since we already know value is non-null.
             Object r = e.value;
@@ -484,7 +478,7 @@ public class Hashtable extends Dictionary
 
     while (e != null)
       {
-        if (key.equals(e.key))
+        if (e.key.equals(key))
           {
             modCount++;
             if (last == null)
@@ -581,8 +575,8 @@ public class Hashtable extends Dictionary
   {
     // Since we are already synchronized, and entrySet().iterator()
     // would repeatedly re-lock/release the monitor, we directly use the
-    // unsynchronized HashIterator instead.
-    Iterator entries = new HashIterator(ENTRIES);
+    // unsynchronized EntryIterator instead.
+    Iterator entries = new EntryIterator();
     StringBuffer r = new StringBuffer("{");
     for (int pos = size; pos > 0; pos--)
       {
@@ -624,7 +618,7 @@ public class Hashtable extends Dictionary
 
           public Iterator iterator()
           {
-            return new HashIterator(KEYS);
+            return new KeyIterator();
           }
 
           public void clear()
@@ -682,7 +676,7 @@ public class Hashtable extends Dictionary
 
           public Iterator iterator()
           {
-            return new HashIterator(VALUES);
+            return new ValueIterator();
           }
 
           public void clear()
@@ -734,7 +728,7 @@ public class Hashtable extends Dictionary
 
           public Iterator iterator()
           {
-            return new HashIterator(ENTRIES);
+            return new EntryIterator();
           }
 
           public void clear()
@@ -798,8 +792,8 @@ public class Hashtable extends Dictionary
   {
     // Since we are already synchronized, and entrySet().iterator()
     // would repeatedly re-lock/release the monitor, we directly use the
-    // unsynchronized HashIterator instead.
-    Iterator itr = new HashIterator(ENTRIES);
+    // unsynchronized EntryIterator instead.
+    Iterator itr = new EntryIterator();
     int hashcode = 0;
     for (int pos = size; pos > 0; pos--)
       hashcode += itr.next().hashCode();
@@ -844,7 +838,7 @@ public class Hashtable extends Dictionary
     HashEntry e = buckets[idx];
     while (e != null)
       {
-        if (o.equals(e))
+        if (e.equals(o))
           return e;
         e = e.next;
       }
@@ -904,8 +898,12 @@ public class Hashtable extends Dictionary
 
             if (dest != null)
               {
-                while (dest.next != null)
-                  dest = dest.next;
+                HashEntry next = dest.next;
+                while (next != null)
+                  {
+                    dest = next;
+                    next = dest.next;
+                  }
                 dest.next = e;
               }
             else
@@ -940,8 +938,8 @@ public class Hashtable extends Dictionary
     s.writeInt(size);
     // Since we are already synchronized, and entrySet().iterator()
     // would repeatedly re-lock/release the monitor, we directly use the
-    // unsynchronized HashIterator instead.
-    Iterator it = new HashIterator(ENTRIES);
+    // unsynchronized EntryIterator instead.
+    Iterator it = new EntryIterator();
     while (it.hasNext())
       {
         HashEntry entry = (HashEntry) it.next();
@@ -980,21 +978,17 @@ public class Hashtable extends Dictionary
   /**
    * A class which implements the Iterator interface and is used for
    * iterating over Hashtables.
-   * This implementation is parameterized to give a sequential view of
-   * keys, values, or entries; it also allows the removal of elements,
-   * as per the Javasoft spec.  Note that it is not synchronized; this is
-   * a performance enhancer since it is never exposed externally and is
-   * only used within synchronized blocks above.
+   * This implementation iterates entries. Subclasses are used to
+   * iterate key and values. It also allows the removal of elements,
+   * as per the Javasoft spec.  Note that it is not synchronized; this
+   * is a performance enhancer since it is never exposed externally
+   * and is only used within synchronized blocks above.
    *
    * @author Jon Zeppieri
+   * @author Fridjof Siebert
    */
-  private final class HashIterator implements Iterator
+  private class EntryIterator implements Iterator
   {
-    /**
-     * The type of this Iterator: {@link #KEYS}, {@link #VALUES},
-     * or {@link #ENTRIES}.
-     */
-    final int type;
     /**
      * The number of modifications to the backing Hashtable that we know about.
      */
@@ -1013,14 +1007,13 @@ public class Hashtable extends Dictionary
     HashEntry next;
 
     /**
-     * Construct a new HashIterator with the supplied type.
-     * @param type {@link #KEYS}, {@link #VALUES}, or {@link #ENTRIES}
+     * Construct a new EtryIterator
      */
-    HashIterator(int type)
+    EntryIterator()
     {
-      this.type = type;
     }
 
+
     /**
      * Returns true if the Iterator has more elements.
      * @return true if there are more elements
@@ -1049,14 +1042,13 @@ public class Hashtable extends Dictionary
       HashEntry e = next;
 
       while (e == null)
-        e = buckets[--idx];
+       if (idx <= 0)
+         return null;
+       else
+         e = buckets[--idx];
 
       next = e.next;
       last = e;
-      if (type == VALUES)
-        return e.value;
-      if (type == KEYS)
-        return e.key;
       return e;
     }
 
@@ -1077,29 +1069,70 @@ public class Hashtable extends Dictionary
       last = null;
       knownMod++;
     }
-  } // class HashIterator
+  } // class EntryIterator
+
+  /**
+   * A class which implements the Iterator interface and is used for
+   * iterating over keys in Hashtables.
+   *
+   * @author Fridtjof Siebert
+   */
+  private class KeyIterator extends EntryIterator
+  {
+    /**
+     * Returns the next element in the Iterator's sequential view.
+     *
+     * @return the next element
+     *
+     * @throws ConcurrentModificationException if the hashtable was modified
+     * @throws NoSuchElementException if there is none
+     */
+    public Object next()
+    {
+      return ((HashEntry)super.next()).key;
+    }
+  } // class KeyIterator
+
 
 
   /**
-   * Enumeration view of this Hashtable, providing sequential access to its
-   * elements; this implementation is parameterized to provide access either
-   * to the keys or to the values in the Hashtable.
+   * A class which implements the Iterator interface and is used for
+   * iterating over values in Hashtables.
+   *
+   * @author Fridtjof Siebert
+   */
+  private class ValueIterator extends EntryIterator
+  {
+    /**
+     * Returns the next element in the Iterator's sequential view.
+     *
+     * @return the next element
+     *
+     * @throws ConcurrentModificationException if the hashtable was modified
+     * @throws NoSuchElementException if there is none
+     */
+    public Object next()
+    {
+      return ((HashEntry)super.next()).value;
+    }
+  } // class ValueIterator
+
+  /**
+   * Enumeration view of the entries in this Hashtable, providing
+   * sequential access to its elements.
    *
    * <b>NOTE</b>: Enumeration is not safe if new elements are put in the table
    * as this could cause a rehash and we'd completely lose our place.  Even
    * without a rehash, it is undetermined if a new element added would
    * appear in the enumeration.  The spec says nothing about this, but
-   * the "Java Class Libraries" book infers that modifications to the
+   * the "Java Class Libraries" book implies that modifications to the
    * hashtable during enumeration causes indeterminate results.  Don't do it!
    *
    * @author Jon Zeppieri
+   * @author Fridjof Siebert
    */
-  private final class Enumerator implements Enumeration
+  private class EntryEnumerator implements Enumeration
   {
-    /**
-     * The type of this Iterator: {@link #KEYS} or {@link #VALUES}.
-     */
-    final int type;
     /** The number of elements remaining to be returned by next(). */
     int count = size;
     /** Current index in the physical hash table. */
@@ -1113,11 +1146,10 @@ public class Hashtable extends Dictionary
 
     /**
      * Construct the enumeration.
-     * @param type either {@link #KEYS} or {@link #VALUES}.
      */
-    Enumerator(int type)
+    EntryEnumerator()
     {
-      this.type = type;
+      // Nothing to do here.
     }
 
     /**
@@ -1142,10 +1174,78 @@ public class Hashtable extends Dictionary
       HashEntry e = next;
 
       while (e == null)
-        e = buckets[--idx];
+        if (idx <= 0)
+          return null;
+        else
+          e = buckets[--idx];
 
       next = e.next;
-      return type == VALUES ? e.value : e.key;
+      return e;
+    }
+  } // class EntryEnumerator
+
+
+  /**
+   * Enumeration view of this Hashtable, providing sequential access to its
+   * elements.
+   *
+   * <b>NOTE</b>: Enumeration is not safe if new elements are put in the table
+   * as this could cause a rehash and we'd completely lose our place.  Even
+   * without a rehash, it is undetermined if a new element added would
+   * appear in the enumeration.  The spec says nothing about this, but
+   * the "Java Class Libraries" book implies that modifications to the
+   * hashtable during enumeration causes indeterminate results.  Don't do it!
+   *
+   * @author Jon Zeppieri
+   * @author Fridjof Siebert
+   */
+  private final class KeyEnumerator extends EntryEnumerator
+  {
+    /**
+     * Returns the next element.
+     * @return the next element
+     * @throws NoSuchElementException if there is none.
+     */
+    public Object nextElement()
+    {
+      HashEntry entry = (HashEntry) super.nextElement();
+      Object retVal = null;
+      if (entry != null)
+        retVal = entry.key;
+      return retVal;
     }
-  } // class Enumerator
+  } // class KeyEnumerator
+
+
+  /**
+   * Enumeration view of this Hashtable, providing sequential access to its
+   * values.
+   *
+   * <b>NOTE</b>: Enumeration is not safe if new elements are put in the table
+   * as this could cause a rehash and we'd completely lose our place.  Even
+   * without a rehash, it is undetermined if a new element added would
+   * appear in the enumeration.  The spec says nothing about this, but
+   * the "Java Class Libraries" book implies that modifications to the
+   * hashtable during enumeration causes indeterminate results.  Don't do it!
+   *
+   * @author Jon Zeppieri
+   * @author Fridjof Siebert
+   */
+  private final class ValueEnumerator extends EntryEnumerator
+  {
+    /**
+     * Returns the next element.
+     * @return the next element
+     * @throws NoSuchElementException if there is none.
+     */
+    public Object nextElement()
+    {
+      HashEntry entry = (HashEntry) super.nextElement();
+      Object retVal = null;
+      if (entry != null)
+        retVal = entry.value;
+      return retVal;
+    }
+  } // class ValueEnumerator
+
 } // class Hashtable
index 7c468da8b4f3ee504ea5d296780dcc6b9fa7545c..eb208f5a93d5a44122b98c484031b11c25bb44dd 100644 (file)
@@ -47,15 +47,10 @@ import java.io.OutputStreamWriter;
 import java.io.PrintStream;
 import java.io.PrintWriter;
 
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.ext.DefaultHandler2;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
 
 import org.w3c.dom.Document;
 import org.w3c.dom.DocumentType;
@@ -743,173 +738,64 @@ label   = Name:\\u0020</pre>
       throw new NullPointerException("Null input stream supplied.");
     try
       {
-       SAXParserFactory factory = SAXParserFactory.newInstance();
-       factory.setValidating(false); /* Don't use the URI */
-       XMLReader parser = factory.newSAXParser().getXMLReader();
-       PropertiesHandler handler = new PropertiesHandler();
-       parser.setContentHandler(handler);
-       parser.setProperty("http://xml.org/sax/properties/lexical-handler",
-                          handler);
-       parser.parse(new InputSource(in));
+        XMLInputFactory factory = XMLInputFactory.newInstance();
+        // Don't resolve external entity references
+        factory.setProperty("javax.xml.stream.isSupportingExternalEntities",
+                            Boolean.FALSE);
+        XMLStreamReader reader = factory.createXMLStreamReader(in);
+        String name, key = null;
+        StringBuffer buf = null;
+        while (reader.hasNext())
+          {
+            switch (reader.next())
+              {
+              case XMLStreamConstants.START_ELEMENT:
+                name = reader.getLocalName();
+                if (buf == null && "entry".equals(name))
+                  {
+                    key = reader.getAttributeValue(null, "key");
+                    if (key == null)
+                      {
+                        String msg = "missing 'key' attribute";
+                        throw new InvalidPropertiesFormatException(msg);
+                      }
+                    buf = new StringBuffer();
+                  }
+                else if (!"properties".equals(name) && !"comment".equals(name))
+                  {
+                    String msg = "unexpected element name '" + name + "'";
+                    throw new InvalidPropertiesFormatException(msg);
+                  }
+                break;
+              case XMLStreamConstants.END_ELEMENT:
+                name = reader.getLocalName();
+                if (buf != null && "entry".equals(name))
+                  {
+                    put(key, buf.toString());
+                    buf = null;
+                  }
+                else if (!"properties".equals(name) && !"comment".equals(name))
+                  {
+                    String msg = "unexpected element name '" + name + "'";
+                    throw new InvalidPropertiesFormatException(msg);
+                  }
+                break;
+              case XMLStreamConstants.CHARACTERS:
+              case XMLStreamConstants.SPACE:
+              case XMLStreamConstants.CDATA:
+                if (buf != null)
+                  buf.append(reader.getText());
+                break;
+              }
+          }
+        reader.close();
       }
-    catch (SAXException e)
+    catch (XMLStreamException e)
       {
        throw (InvalidPropertiesFormatException)
          new InvalidPropertiesFormatException("Error in parsing XML.").
          initCause(e);
       }
-    catch (ParserConfigurationException e)
-      {
-       throw (IOException)
-         new IOException("An XML parser could not be found.").
-         initCause(e);
-      }
   }
 
-  /**
-   * This class deals with the parsing of XML using 
-   * <a href="http://java.sun.com/dtd/properties.dtd">
-   * http://java.sun.com/dtd/properties.dtd</a>.
-   *   
-   * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
-   * @since 1.5
-   */
-  private class PropertiesHandler
-    extends DefaultHandler2
-  {
-    
-    /**
-     * The current key.
-     */
-    private String key;
-    
-    /**
-     * The current value.
-     */
-    private String value;
-
-    /**
-     * A flag to check whether a valid DTD declaration has been seen.
-     */
-    private boolean dtdDeclSeen;
-
-    /**
-     * Constructs a new Properties handler.
-     */
-    public PropertiesHandler()
-    {
-      key = null;
-      value = null;
-      dtdDeclSeen = false;
-    }
-
-    /**
-     * <p>
-     * Captures the start of the DTD declarations, if they exist.
-     * A valid properties file must declare the following doctype:
-     * </p>
-     * <p>
-     * <code>!DOCTYPE properties SYSTEM
-     * "http://java.sun.com/dtd/properties.dtd"</code>
-     * </p>
-     * 
-     * @param name the name of the document type.
-     * @param publicId the public identifier that was declared, or
-     *                 null if there wasn't one.
-     * @param systemId the system identifier that was declared, or
-     *                 null if there wasn't one.
-     * @throws SAXException if some error occurs in parsing.
-     */
-    public void startDTD(String name, String publicId, String systemId)
-      throws SAXException
-    {
-      if (name.equals("properties") &&
-         publicId == null &&
-         systemId.equals("http://java.sun.com/dtd/properties.dtd"))
-       {
-         dtdDeclSeen = true;
-       }
-      else
-       throw new SAXException("Invalid DTD declaration: " + name);
-    }
-
-    /**
-     * Captures the start of an XML element.
-     *
-     * @param uri the namespace URI.
-     * @param localName the local name of the element inside the namespace.
-     * @param qName the local name qualified with the namespace URI.
-     * @param attributes the attributes of this element.
-     * @throws SAXException if some error occurs in parsing.
-     */
-    public void startElement(String uri, String localName,
-                            String qName, Attributes attributes)
-      throws SAXException
-    {
-      if (qName.equals("entry"))
-       {
-         int index = attributes.getIndex("key");
-         if (index != -1)
-           key = attributes.getValue(index);
-       }
-      else if (qName.equals("comment") || qName.equals("properties"))
-       {
-         /* Ignore it */
-       }
-      else
-       throw new SAXException("Invalid tag: " + qName);
-    }
-    
-    /**
-     * Captures characters within an XML element.
-     *
-     * @param ch the array of characters.
-     * @param start the start index of the characters to use.
-     * @param length the number of characters to use from the start index on.
-     * @throws SAXException if some error occurs in parsing.
-     */
-    public void characters(char[] ch, int start, int length)
-      throws SAXException
-    {
-      if (key != null)
-       value = new String(ch,start,length);
-    }
-    
-    /**
-     * Captures the end of an XML element.
-     *
-     * @param uri the namespace URI.
-     * @param localName the local name of the element inside the namespace.
-     * @param qName the local name qualified with the namespace URI.
-     * @throws SAXException if some error occurs in parsing.
-     */
-    public void endElement(String uri, String localName,
-                          String qName)
-      throws SAXException
-    {
-      if (qName.equals("entry"))
-       {
-         if (value == null)
-           value = "";
-         setProperty(key, value);
-         key = null;
-         value = null;
-       }
-    }
-
-    /**
-     * Captures the end of the XML document.  If a DTD declaration has
-     * not been seen, the document is erroneous and an exception is thrown.
-     *
-     * @throws SAXException if the correct DTD declaration didn't appear.
-     */
-    public void endDocument()
-      throws SAXException
-    {
-      if (!dtdDeclSeen)
-       throw new SAXException("No appropriate DTD declaration was seen.");
-    }
-
-  } // class PropertiesHandler
-
 } // class Properties
index dcc192c855a3c20c25e8f33fb8da4a838e6a3656..21298c75ec71a2ea0fee4cba5b64bd28bcb8bc4e 100644 (file)
@@ -132,8 +132,7 @@ public class StringTokenizer implements Enumeration
   {
     len = str.length();
     this.str = str;
-    // The toString() hack causes the NullPointerException.
-    this.delim = delim.toString();
+    this.delim = delim;
     this.retDelims = returnDelims;
     this.pos = 0;
   }
index 514ad8cd29f0089d2420673af6ebeca8bc9f8810..2ed982ac32d87e71696eaa6cd0f87f5719c6517e 100644 (file)
@@ -475,7 +475,7 @@ public class WeakHashMap extends AbstractMap implements Map
         if (o instanceof Map.Entry)
           {
             Map.Entry e = (Map.Entry) o;
-            return key.equals(e.getKey())
+            return WeakHashMap.equals(getKey(), e.getKey())
               && WeakHashMap.equals(value, e.getValue());
           }
         return false;
@@ -483,7 +483,7 @@ public class WeakHashMap extends AbstractMap implements Map
 
       public String toString()
       {
-        return key + "=" + value;
+        return getKey() + "=" + value;
       }
     }
 
@@ -657,7 +657,7 @@ public class WeakHashMap extends AbstractMap implements Map
     while (bucket != null)
       {
         WeakBucket.WeakEntry entry = bucket.getEntry();
-        if (entry != null && key.equals(entry.key))
+        if (entry != null && equals(key, entry.key))
           return entry;
 
         bucket = bucket.next;
index 8bd83ba3973881382343366bf443c32eb7733833..8f5769be1b9483a014873d810507b4f3bf855e4b 100644 (file)
@@ -194,7 +194,7 @@ public class XMLFormatter
     
     
     appendTag(buf, 1, "date", iso8601.format(new Date(millis)));
-    appendTag(buf, 1, "millis", record.getMillis());
+    appendTag(buf, 1, "millis", millis);
     appendTag(buf, 1, "sequence", record.getSequenceNumber());
     appendTag(buf, 1, "logger", record.getLoggerName());
 
index 6a31ef9bfd2a32b4517dd66cb3ff076e6178eb58..d39f1cfb04de985f179bda6872449c53c2fddc09 100644 (file)
@@ -103,8 +103,11 @@ public final class Pattern implements Serializable
       }
     catch (REException e)
       {
-       throw new PatternSyntaxException(e.getMessage(),
+       PatternSyntaxException pse;
+       pse = new PatternSyntaxException(e.getMessage(),
                                         regex, e.getPosition());
+       pse.initCause(e);
+       throw pse;
       }
   }
  
index 01c9976a17488ea13bc7be4b6c6ba6784cd83af3..dff7edcf152882d13f0427817bfff9e172abfb8d 100644 (file)
@@ -38,10 +38,16 @@ exception statement from your version. */
 
 package javax.crypto;
 
+import gnu.classpath.Configuration;
+import gnu.classpath.debug.Component;
+import gnu.classpath.debug.SystemLogger;
+
 import java.io.FilterInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 
+import java.util.logging.Logger;
+
 /**
  * This is an {@link java.io.InputStream} that filters its data
  * through a {@link Cipher} before returning it. The <code>Cipher</code>
@@ -56,10 +62,12 @@ public class CipherInputStream extends FilterInputStream
   // Constants and variables.
   // ------------------------------------------------------------------------
 
+  private static final Logger logger = SystemLogger.SYSTEM;
+
   /**
    * The underlying {@link Cipher} instance.
    */
-  private Cipher cipher;
+  private final Cipher cipher;
 
   /**
    * Data that has been transformed but not read.
@@ -71,33 +79,16 @@ public class CipherInputStream extends FilterInputStream
    */
   private int outOffset;
 
-  /**
-   * The number of valid bytes in the {@link #outBuffer}.
-   */
-  private int outLength;
-
-  /**
-   * Byte buffer that is filled with raw data from the underlying input
-   * stream.
-   */
-  private byte[][] inBuffer;
-
-  /**
-   * The amount of bytes in inBuffer[0] that may be input to the cipher.
-   */
-  private int inLength;
-
   /**
    * We set this when the cipher block size is 1, meaning that we can
    * transform any amount of data.
    */
-  private boolean isStream;
+  private final boolean isStream;
 
-  private static final int VIRGIN = 0;  // I am born.
-  private static final int LIVING = 1;  // I am nailed to the hull.
-  private static final int DYING  = 2;  // I am eaten by sharks.
-  private static final int DEAD   = 3;
-  private int state;
+  /**
+   * Whether or not we've reached the end of the stream.
+   */
+  private boolean eof;
 
   // Constructors.
   // ------------------------------------------------------------------------
@@ -110,18 +101,14 @@ public class CipherInputStream extends FilterInputStream
    */
   public CipherInputStream(InputStream in, Cipher cipher)
   {
-    this(in);
+    super (in);
     this.cipher = cipher;
-    if (!(isStream = cipher.getBlockSize() == 1))
-      {
-        inBuffer = new byte[2][];
-        inBuffer[0] = new byte[cipher.getBlockSize()];
-        inBuffer[1] = new byte[cipher.getBlockSize()];
-        inLength = 0;
-        outBuffer = new byte[cipher.getBlockSize()];
-        outOffset = outLength = 0;
-        state = VIRGIN;
-      }
+    isStream = cipher.getBlockSize () == 1;
+    eof = false;
+    if (Configuration.DEBUG)
+      logger.log (Component.CRYPTO, "I am born; cipher: {0}, stream? {1}",
+                  new Object[] { cipher.getAlgorithm (),
+                                 Boolean.valueOf (isStream) });
   }
 
   /**
@@ -133,7 +120,7 @@ public class CipherInputStream extends FilterInputStream
    */
   protected CipherInputStream(InputStream in)
   {
-    super(in);
+    this (in, new NullCipher ());
   }
 
   // Instance methods overriding java.io.FilterInputStream.
@@ -141,8 +128,8 @@ public class CipherInputStream extends FilterInputStream
 
   /**
    * Returns the number of bytes available without blocking. The value
-   * returned by this method is never greater than the underlying
-   * cipher's block size.
+   * returned is the number of bytes that have been processed by the
+   * cipher, and which are currently buffered by this class.
    *
    * @return The number of bytes immediately available.
    * @throws java.io.IOException If an I/O exception occurs.
@@ -151,7 +138,9 @@ public class CipherInputStream extends FilterInputStream
   {
     if (isStream)
       return super.available();
-    return outLength - outOffset;
+    if (outBuffer == null || outOffset >= outBuffer.length)
+      nextBlock ();
+    return outBuffer.length - outOffset;
   }
 
   /**
@@ -160,7 +149,7 @@ public class CipherInputStream extends FilterInputStream
    *
    * @throws java.io.IOException If an I/O exception occurs.
    */
-  public void close() throws IOException
+  public synchronized void close() throws IOException
   {
     super.close();
   }
@@ -172,7 +161,7 @@ public class CipherInputStream extends FilterInputStream
    * @return The byte read, or -1 if there are no more bytes.
    * @throws java.io.IOExcpetion If an I/O exception occurs.
    */
-  public int read() throws IOException
+  public synchronized int read() throws IOException
   {
     if (isStream)
       {
@@ -191,10 +180,14 @@ public class CipherInputStream extends FilterInputStream
           }
         return buf[0] & 0xFF;
       }
-    if (state == DEAD) return -1;
-    if (available() == 0) nextBlock();
-    if (state == DEAD) return -1;
-    return outBuffer[outOffset++] & 0xFF;
+
+    if (outBuffer == null || outOffset == outBuffer.length)
+      {
+        if (eof)
+          return -1;
+        nextBlock ();
+      }
+    return outBuffer [outOffset++] & 0xFF;
   }
 
   /**
@@ -207,18 +200,29 @@ public class CipherInputStream extends FilterInputStream
    * @return The number of bytes read, or -1 on the end-of-file.
    * @throws java.io.IOException If an I/O exception occurs.
    */
-  public int read(byte[] buf, int off, int len) throws IOException
+  public synchronized int read(byte[] buf, int off, int len)
+    throws IOException
   {
+    // CipherInputStream has this wierd implementation where if
+    // the buffer is null, this call is the same as `skip'.
+    if (buf == null)
+      return (int) skip (len);
+
     if (isStream)
       {
         len = super.read(buf, off, len);
-        try
-          {
-            cipher.update(buf, off, len, buf, off);
-          }
-        catch (ShortBufferException shouldNotHappen)
+        if (len > 0)
           {
-            throw new IOException(shouldNotHappen.getMessage());
+            try
+              {
+                cipher.update(buf, off, len, buf, off);
+              }
+            catch (ShortBufferException shouldNotHappen)
+              {
+                IOException ioe = new IOException ("Short buffer for stream cipher -- this should not happen");
+                ioe.initCause (shouldNotHappen);
+                throw ioe;
+              }
           }
         return len;
       }
@@ -226,17 +230,20 @@ public class CipherInputStream extends FilterInputStream
     int count = 0;
     while (count < len)
       {
-        if (available() == 0)
-          nextBlock();
-        if (state == DEAD)
+        if (outBuffer == null || outOffset >= outBuffer.length)
           {
-            if (count > 0) return count;
-            else return -1;
+            if (eof)
+              {
+                if (count == 0)
+                  count = -1;
+                break;
+              }
+            nextBlock();
           }
-        int l = Math.min(available(), len - count);
-        System.arraycopy(outBuffer, outOffset, buf, count+off, l);
+        int l = Math.min (outBuffer.length - outOffset, len - count);
+        System.arraycopy (outBuffer, outOffset, buf, count+off, l);
         count += l;
-        outOffset = outLength = 0;
+        outOffset += l;
       }
     return count;
   }
@@ -269,10 +276,10 @@ public class CipherInputStream extends FilterInputStream
         return super.skip(bytes);
       }
     long ret = 0;
-    if (bytes > 0 && available() > 0)
+    if (bytes > 0 && outBuffer != null && outOffset >= outBuffer.length)
       {
-        ret = available();
-        outOffset = outLength = 0;
+        ret = outBuffer.length - outOffset;
+        outOffset = outBuffer.length;
       }
     return ret;
   }
@@ -309,75 +316,53 @@ public class CipherInputStream extends FilterInputStream
   // Own methods.
   // -------------------------------------------------------------------------
 
+  // FIXME: I don't fully understand how this class is supposed to work.
+
   private void nextBlock() throws IOException
   {
-    byte[] temp = inBuffer[0];
-    inBuffer[0] = inBuffer[1];
-    inBuffer[1] = temp;
-    int count = 0;
-    boolean eof = false;
+    byte[] buf = new byte[cipher.getBlockSize ()];
+    if (Configuration.DEBUG)
+      logger.log (Component.CRYPTO, "getting a new data block");
 
-    if (state == VIRGIN || state == LIVING)
+    try
       {
-        do
+        outBuffer = null;
+        outOffset = 0;
+        while (outBuffer == null)
           {
-            int l = in.read(inBuffer[1], count, inBuffer[1].length - count);
+            int l = in.read (buf);
+            if (Configuration.DEBUG)
+              logger.log (Component.CRYPTO, "we read {0} bytes",
+                          Integer.valueOf (l));
             if (l == -1)
               {
+                outBuffer = cipher.doFinal ();
                 eof = true;
-                break;
+                return;
               }
-            count += l;
-          }
-        while (count < inBuffer[1].length);
-      }
 
-    try
-      {
-        switch (state)
-          {
-          case VIRGIN:
-            state = LIVING;
-            nextBlock();
-            break;
-          case LIVING:
-            if (eof)
-              {
-                if (count > 0)
-                  {
-                    outOffset = cipher.update(inBuffer[0], 0, inLength, outBuffer, 0);
-                    state = DYING;
-                  }
-                else
-                  {
-                    outOffset = cipher.doFinal(inBuffer[0], 0, inLength, outBuffer, 0);
-                    state = DEAD;
-                  }
-              }
-            else
-              {
-                outOffset = cipher.update(inBuffer[0], 0, inLength, outBuffer, 0);
-              }
-            break;
-          case DYING:
-            outOffset = cipher.doFinal(inBuffer[0], 0, inLength, outBuffer, 0);
-            state = DEAD;
-            break;
-          case DEAD:
+            outOffset = 0;
+            outBuffer = cipher.update (buf, 0, l);
           }
       }
-    catch (ShortBufferException sbe)
-      {
-        throw new IOException(sbe.toString());
-      }
     catch (BadPaddingException bpe)
       {
-        throw new IOException(bpe.toString());
+        IOException ioe = new IOException ("bad padding");
+        ioe.initCause (bpe);
+        throw ioe;
       }
     catch (IllegalBlockSizeException ibse)
       {
-        throw new IOException(ibse.toString());
+        IOException ioe = new IOException ("illegal block size");
+        ioe.initCause (ibse);
+        throw ioe;
+      }
+    finally
+      {
+        if (Configuration.DEBUG)
+          logger.log (Component.CRYPTO,
+                      "decrypted {0} bytes for reading",
+                      Integer.valueOf (outBuffer.length));
       }
-    inLength = count;
   }
 }
diff --git a/libjava/classpath/javax/management/Attribute.java b/libjava/classpath/javax/management/Attribute.java
new file mode 100644 (file)
index 0000000..5c4a65e
--- /dev/null
@@ -0,0 +1,138 @@
+/* Attribute.java --
+   Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.management;
+
+import java.io.Serializable;
+
+/**
+ * Represents an MBean attribute, having the name and the assigned value. The
+ * MBean objects use this class to get and set attributes values.
+ * 
+ * @since 1.5
+ * 
+ * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
+ */
+public class Attribute
+  implements Serializable
+{
+  /**
+   * The attribute name.
+   */
+  final String m_name;
+
+  /**
+   * The attribute value.
+   */
+  final Object m_value;
+
+  /**
+   * Create the attribute with the given name and value.
+   * 
+   * @param name the attribute name
+   * @param value the attribute value
+   */
+  public Attribute(String name, Object value)
+  {
+    m_name = name;
+    m_value = value;
+  }
+
+  /**
+   * Compares the attribute with another attribute.
+   * 
+   * @param other the other object to compare with
+   * 
+   * @return true if both value and object are equal, false otherwise.
+   */
+  public boolean equals(Object other)
+  {
+    if (other instanceof Attribute)
+      {
+        Attribute oa = (Attribute) other;
+        boolean n, v;
+        if (oa.m_name == null || m_name == null)
+          n = oa.m_name == m_name;
+        else
+          n = oa.m_name.equals(m_name);
+
+        if (oa.m_value == null || m_value == null)
+          v = oa.m_value == m_value;
+        else
+          v = oa.m_value.equals(m_value);
+        
+        return n && v;
+
+      }
+    else
+      return false;
+  }
+
+  /**
+   * Returns the attribute name.
+   * 
+   * @return the attribute name
+   */
+  public String getName()
+  {
+    return m_name;
+  }
+
+  /**
+   * Returns the attribute value.
+   * 
+   * @return the attribute value.
+   */
+  public Object getValue()
+  {
+    return m_value;
+  }
+
+  /**
+   * Need to override as {@link #equals} is overridden.
+   * 
+   * @return the expression, dependent of the object and name hashcodes.
+   */
+  public int hashCode()
+  {
+    int n = m_name == null ? 0 : m_name.hashCode();
+    int v = m_value == null ? 0 : m_value.hashCode();
+    
+    return n ^ v;
+  }
+
+}
index d22c5bfab59978f1a4e4b53dbf3aac37caeb6a55..1251b00bb3512ef5bacb53b1e33dfd3dbafcc4a6 100644 (file)
@@ -1,5 +1,5 @@
-/* CancelablePrintJob.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+/* AttributeException.java --
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,23 +41,36 @@ package javax.print;
 import javax.print.attribute.Attribute;
 
 /**
+ * <code>AttributeException</code> specifies two methods a specific
+ * subclass of {@link javax.print.PrintException} may implement to
+ * provide further information of printing errors if unsupported
+ * attribute classes or values of attributes are involved.
+ * <p>
+ * There exists no <code>PrintException</code> class implementing this 
+ * interface. Providing these extensions in <code>PrintException</code> 
+ * subclasses is left to the concrete print service implementation. 
+ * </p> 
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public interface AttributeException
 {
   /**
    * Returns the unsupported printing attribute classes for a print service
-   * that does not support them.
+   * that does not support the attribute category at all. The returned 
+   * class instances are sublcasses of the base interface {@link Attribute}.
    * 
-   * @return array of unsupported attribute classes, or null
+   * @return The unsupported attribute classes, or <code>null</code> if there
+   * are no such attribute classes.
    */
   Class[] getUnsupportedAttributes();
   
   /**
-   * Returns the unsupported values of printing attributes for a print service
-   * that does not support them.
+   * Returns the unsupported attribute values of printing attributes a specific
+   * print service does support but not the particular provided value.
    *   
-   * @return array of unsupperted attribute values, or null
+   * @return The unsupported attribute values, or <code>null</code> if there
+   * are no such attributes values.
    */
   Attribute[] getUnsupportedValues();
 }
index 1de6a22e32dfeab675c1d57c5da7e46bd211c78c..879f10807d7a66d7f5cc9541894cb748a47b36f5 100644 (file)
@@ -1,5 +1,5 @@
 /* FlavorException.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -39,6 +39,16 @@ exception statement from your version. */
 package javax.print;
 
 /**
+ * <code>FlavorException</code> specifies a method a specific
+ * subclass of {@link javax.print.PrintException} may implement to
+ * provide further information of printing errors if unsupported
+ * document flavors are involved.
+ * <p>
+ * There exists no <code>PrintException</code> class implementing this 
+ * interface. Providing this extension in <code>PrintException</code> 
+ * subclasses is left to the concrete print service implementation.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public interface FlavorException
@@ -46,7 +56,7 @@ public interface FlavorException
   /**
    * Returns the unsupported document flavors.
    * 
-   * @return the unsupported document flavors
+   * @return The unsupported document flavors.
    */
   DocFlavor[] getUnsupportedFlavors();
 }
\ No newline at end of file
index 3eef243e725118946cd2eed9fc89e432be9383d3..6fd46b506252d12b285611e1a025d3d02decee71 100644 (file)
@@ -1,5 +1,5 @@
 /* PrintException.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -39,6 +39,20 @@ exception statement from your version. */
 package javax.print;
 
 /**
+ * <code>PrintException</code> is used to report exceptions during the
+ * usage of a print service implementation.
+ * <p>
+ * This base class only provides the possibility to report a message as 
+ * exception. A concrete print service implementation may provide 
+ * specialised subclasses implementing one or more of the following
+ * exception interfaces:<br>
+ * <ul>
+ * <li>{@link javax.print.AttributeException}</li>
+ * <li>{@link javax.print.FlavorException}</li>
+ * <li>{@link javax.print.URIException}</li>
+ * </ul>
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public class PrintException extends Exception
index 5cc4c0ddd2601d64ef42d91680478442870bed18..9b22bdf2ff675d5a904e123f0ea9f32dc981f87c 100644 (file)
@@ -1,5 +1,5 @@
 /* URIException.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,25 +41,48 @@ package javax.print;
 import java.net.URI;
 
 /**
+ * <code>URIException</code> specifies methods a specific subclass of 
+ * {@link javax.print.PrintException} may implement to provide further 
+ * informations of printing errors if URI problems are involved.
+ * <p>
+ * There exists no <code>PrintException</code> class implementing this 
+ * interface. Providing this extension in <code>PrintException</code> 
+ * subclasses is left to the concrete print service implementation. 
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public interface URIException
 {
+  /**
+   * Indicates that the provided <code>URI</code> is not accessible.
+   */
   int URIInaccessible = 1;
+  
+  /**
+   * Indicates any other problem which is not defined by
+   * the other reason constants.
+   */
   int URIOtherProblem = -1;
+  
+  /**
+   * Indicates that the print service does not support a specific
+   * uri scheme (for example the ftp scheme).
+   */
   int URISchemeNotSupported = 2;
   
   /**
-   * Returns the reason for this exception.
+   * Returns the reason for this exception as
+   * predefined constants in this interface.
    * 
-   * @return the reason
+   * @return The reason.
    */
   int getReason();
   
   /**
-   * Returns the unsupported <code>URI</code> for this exception.
+   * Returns the unsupported <code>URI</code> which caused this exception.
    * 
-   * @return the unsupported <code>URI</code>.
+   * @return The unsupported <code>URI</code>.
    */
   URI getUnsupportedURI();
 }
index a7878c50b9ea7bd4c797d0823bc92294bb00cb74..aca4c0188ec804f7290b73cbbc226145e1be96f6 100644 (file)
@@ -1,5 +1,5 @@
 /* ResolutionSyntax.java -- 
-   Copyright (C) 2003, 2004  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -40,7 +40,42 @@ package javax.print.attribute;
 import java.io.Serializable;
 
 /**
- * @author Michael Koch
+ * <code>ResolutionSyntax</code> is the abstract base class of all attribute 
+ * classes which provide a resolution as value (e.g. printer resolution).
+ * <p>
+ * A <code>ResolutionSyntax</code> instance consists of two integer values
+ * describing the resolution in feed and cross feed direction. The units of 
+ * the given values is determined by two defined constants:
+ * <ul>
+ * <li>DPCM - dots per centimeter</li>
+ * <li>DPI - dots per inch</li>
+ * </ul>
+ * </p>
+ * <p>
+ * A resolutions attribute is constructed by two values for the resolution and
+ * one of the two constants defining the actual units of the given values.
+ * </p>
+ * <p>
+ * There are different methods provided to return the resolution values in 
+ * either of the both units and to compare if a resolution is less than or
+ * equal to a given other resolution attribute.
+ * </p>
+ * <p>
+ * <b>Internal storage:</b><br>
+ * The resolutions are stored internally as dots per 100 inches (dphi). The 
+ * values of the provided constants for dots per inch (value 100) and dots
+ * per centimeter (value 254) are used as conversion factors to the internal
+ * storage units. To get the internal dphi values a multiplication of a given
+ * resolution value with its units constant value is needed. Retrieving the 
+ * resolution for specific units is done by dividing the internal stored 
+ * value through the units constant value. Clients are therefore able to 
+ * provide their own resolution units by supplying other conversion factors.
+ * Subclasses of <code>ResolutionSyntax</code> have access to the internal
+ * resolution values through the protected methods 
+ * {@link #getCrossFeedResolutionDphi()} and {@link #getFeedResolutionDphi()}.
+ * </p>
+ * 
+ * @author Michael Koch (konqueror@gmx.de)
  */
 public abstract class ResolutionSyntax
   implements Cloneable, Serializable
@@ -65,7 +100,7 @@ public abstract class ResolutionSyntax
    *
    * @param crossFeedResolution the cross feed resolution
    * @param feedResolution the feed resolution
-   * @param units the unit to use
+   * @param units the unit to use (e.g. {@link #DPCM} or {@link #DPI})
    *
    * @exception IllegalArgumentException if preconditions fail
    */
@@ -82,11 +117,12 @@ public abstract class ResolutionSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -100,24 +136,25 @@ public abstract class ResolutionSyntax
   }
 
   /**
-   * Returns the cross feed resolution in units.
+   * Returns the cross feed resolution for the given units.
    *
-   * @return the resolution
+   * @param units the unit to use (e.g. {@link #DPCM} or {@link #DPI})
+   * @return The resolution for the given units.
    *
-   * @exception IllegalArgumentException if units < 1
+   * @exception IllegalArgumentException if units &lt; 1
    */
   public int getCrossFeedResolution(int units)
   {
     if (units < 1)
       throw new IllegalArgumentException("units may not be less then 1");
 
-    return (crossFeedResolution + units) / units;
+    return crossFeedResolution / units;
   }
 
   /**
-   * Returns the raw cross feed resolution in units.
+   * Returns the raw cross feed resolution in dots per 100 inches.
    *
-   * @return the raw resolution
+   * @return The raw resolution.
    */
   protected int getCrossFeedResolutionDphi()
   {
@@ -125,24 +162,25 @@ public abstract class ResolutionSyntax
   }
 
   /**
-   * Returns the feed resolution in units.
+   * Returns the feed resolution for the given units.
    *
-   * @return the resolution
+   * @param units the unit to use (e.g. {@link #DPCM} or {@link #DPI})
+   * @return The resolution for the given units.
    *
-   * @exception IllegalArgumentException if units < 1
+   * @exception IllegalArgumentException if units &lt; 1
    */
   public int getFeedResolution(int units)
   {
     if (units < 1)
       throw new IllegalArgumentException("units may not be less then 1");
 
-    return (crossFeedResolution + units) / units;
+    return feedResolution / units;
   }
 
   /**
-   * Returns the raw feed resolution in units.
+   * Returns the raw feed resolution in dots per 100 inches.
    *
-   * @return the raw resolution
+   * @return The raw resolution.
    */
   protected int getFeedResolutionDphi()
   {
@@ -155,7 +193,7 @@ public abstract class ResolutionSyntax
    *
    * @param units the units to use
    *
-   * @return the array with the resolutions
+   * @return The array with the resolutions.
    */
   public int[] getResolution(int units)
   {
@@ -168,7 +206,7 @@ public abstract class ResolutionSyntax
   /**
    * Returns the hashcode for this object.
    *
-   * @return the hashcode
+   * @return The hashcode.
    */
   public int hashCode()
   {
@@ -176,11 +214,13 @@ public abstract class ResolutionSyntax
   }
 
   /**
-   * Checks of other is a lower or equal resolution.
+   * Checks if the given resolution attribute is a lower or equal 
+   * to this resolution object.
    *
    * @param other the resolution to check against
    *
-   * @return true if other describes a lower or equal resolution
+   * @return <code>true</code> if other resolution attribute describes
+   * a lower or equal resolution, <code>false</code> otherwise.
    */
   public boolean lessThanOrEquals(ResolutionSyntax other)
   {
@@ -193,8 +233,12 @@ public abstract class ResolutionSyntax
 
   /**
    * Returns the string representation for this object.
-   *
-   * @return the string representation
+   * <p>
+   * The returned string is in the form "CxF dphi" with C standing
+   * for the cross feed and F for the feed direction resolution.
+   * Units used are dots per 100 inches (dphi).
+   * </p>
+   * @return The string representation.
    */
   public String toString()
   {
@@ -203,14 +247,23 @@ public abstract class ResolutionSyntax
 
   /**
    * Returns the string representation for this object.
-   *
+   * <p>
+   * The returned string is in the form "CxF U" with C standing
+   * for the cross feed and F for the feed direction resolution.
+   * U denotes the units name if one is supplied.
+   * </p>
+   * 
    * @param units the units to use
-   * @param unitsName the name of the units
+   * @param unitsName the name of the units. If <code>null</code>
+   * it is ommitted from the string representation.
    *
-   * @return the string representation
+   * @return The string representation.
    */
   public String toString(int units, String unitsName)
   {
+    if (unitsName == null)
+      return getCrossFeedResolution(units) + "x" + getFeedResolution(units);
+    
     return ("" + getCrossFeedResolution(units)
             + "x" + getFeedResolution(units)
             + " " + unitsName);
index 3990b66c50a9d729491463a144043fc48d42fcd9..4c0dd2f19a9bb3599f2c2ff7adc3e1ac8204258b 100644 (file)
@@ -1,5 +1,5 @@
 /* SetOfIntegerSyntax.java -- 
-   Copyright (C) 2003, 2004  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -45,7 +45,55 @@ import java.util.Arrays;
 import java.util.Comparator;
 
 /**
- * @author Michael Koch
+ * <code>SetOfIntegerSyntax</code> is the abstract base class of all attribute 
+ * classes which provide a set of non-negative integers as value (e.g. the
+ * page ranges to print) represented as single values or ranges of values.
+ * <p>
+ * A <code>SetOfIntegerSyntax</code> instance consists of an integer array of
+ * ranges. Ranges may have the same lower and upper bound representing a single
+ * integer value. Ranges with a lower bound greater than the upper bound are 
+ * null ranges and discarded. Ranges may overlap in their values. In no case 
+ * negative integers are allowed.
+ * </p>
+ * <p>
+ * There are several constructors available:
+ * <ul>
+ * <li><code>SetOfIntegerSyntax(int member)</code><br>
+ * Constructor for an instance with only one integer value.
+ * </li><br>
+ * <li><code>SetOfIntegerSyntax(int lowerBound, int upperBound)</code><br>
+ * Constructor for an instance with one range of integer values.
+ * </li><br>
+ * <li><code>SetOfIntegerSyntax(int[][] members)</code><br>
+ * Flexible constructor for an instance with several single integer values 
+ * and/or several ranges of integer values. The allowed array form is an 
+ * array of integer arrays of length one or two. Examples are: 
+ * <code>int[0][]</code> for empty set of integers, <code>int[][] {{1}}</code>
+ * , <code>int[][] {{1,5}}</code>, <code>int[][] {{1,5},{7,9}}</code>,
+ * <code>int[][] {{3,7},{19}}</code>.
+ * </li><br>
+ * <li><code>SetOfIntegerSyntax(String s)</code><br>
+ * Flexible constructor for an instance with several single integer values 
+ * and/or several ranges of integer values. The allowed String instance have
+ * to be a String with comma separated ranges of integer values or single 
+ * values. Ranges are represented by two integer with a hypen (-) or colon (:)
+ * between the lower and upper bound value. Whitespace characters are ignored.
+ * Examples are: <code>""</code> for an empty set of integers, 
+ * <code>"1"</code>, <code>"1-5"</code>, <code>"1-5,7-9"</code>, 
+ * <code>"3-7,19"</code> and <code>"1:2,4"</code>.
+ * </li>
+ * </ul>
+ * </p>
+ * <p>
+ * <b>Internal storage:</b><br>
+ * The set of integers are stored internally in a normalized array form.
+ * In the normalized array form the set of integer ranges are represented
+ * in as few ranges as possible and overlapping ranges are merged. The ranges 
+ * are always represented as an integer array of length two with ranges 
+ * stored in {lower bound, upper bound} form. The ranges are stored in 
+ * ascending order, without any null ranges.
+ * </p>
+ * @author Michael Koch (konqueror@gmx.de)
  */
 public abstract class SetOfIntegerSyntax
   implements Cloneable, Serializable
@@ -96,7 +144,7 @@ public abstract class SetOfIntegerSyntax
    *
    * @param member the member value
    *
-   * @exception IllegalArgumentException if member is < 0
+   * @exception IllegalArgumentException if member is &lt; 0
    */
   protected SetOfIntegerSyntax(int member)
   {
@@ -109,7 +157,8 @@ public abstract class SetOfIntegerSyntax
   /**
    * Creates a <code>SetOfIntegerSyntax</code> object.
    *
-   * @param members the members to use in this set
+   * @param members the members to use in this set. If
+   * <code>null</code> an empty set is created.
    *
    * @exception IllegalArgumentException if any element is invalid
    * @exception NullPointerException if any element of members is null
@@ -176,55 +225,68 @@ public abstract class SetOfIntegerSyntax
     return readAny;
   }
 
+  /**
+   * Creates a <code>SetOfIntegerSyntax</code> object.
+   *
+   * @param s the members to use in this set in string form. If
+   * <code>null</code> an empty set is created.
+   *
+   * @exception IllegalArgumentException if any element is invalid
+   */
   protected SetOfIntegerSyntax(String s)
   {
-    ArrayList vals = new ArrayList();
-
-    StringCharacterIterator it = new StringCharacterIterator(s);
-
-    while (true)
-      {
-        // Skip whitespace.
-        if (skipWhitespace(it))
-          break;
-
-        // Parse integer.
-        int index = it.getIndex();
-        if (! skipNumber(it))
-          throw new IllegalArgumentException();
-        int[] item = new int[2];
-        item[0] = Integer.parseInt(s.substring(index, it.getIndex()));
-
-        if (! skipWhitespace(it))
+    if (s == null)
+      this.members = normalize(new int[0][], 0);
+    else
+      {      
+        ArrayList vals = new ArrayList();
+        
+        StringCharacterIterator it = new StringCharacterIterator(s);
+        
+        while (true)
           {
-            char c = it.current();
-            if (c == ':' || c == '-')
+            // Skip whitespace.
+            if (skipWhitespace(it))
+              break;
+            
+            // Parse integer.
+            int index = it.getIndex();
+            if (! skipNumber(it))
+              throw new IllegalArgumentException();
+            int[] item = new int[2];
+            item[0] = Integer.parseInt(s.substring(index, it.getIndex()));
+            
+            if (! skipWhitespace(it))
               {
-                it.next();
-                if (skipWhitespace(it))
-                  throw new IllegalArgumentException();
-                index = it.getIndex();
-                if (! skipNumber(it))
-                  throw new IllegalArgumentException();
-                item[1] = Integer.parseInt(s.substring(index, it.getIndex()));
+                char c = it.current();
+                if (c == ':' || c == '-')
+                  {
+                  it.next();
+                  if (skipWhitespace(it))
+                    throw new IllegalArgumentException();
+                  index = it.getIndex();
+                  if (! skipNumber(it))
+                    throw new IllegalArgumentException();
+                  item[1] = Integer.parseInt(s.substring(index, it.getIndex()));
+                  }
+                else
+                  item[1] = item[0];
               }
             else
               item[1] = item[0];
+            
+            if (item[0] <= item[1]) 
+              vals.add(item);
+            
+            if (skipWhitespace(it))
+              break;
+            if (it.current() != ',')
+              throw new IllegalArgumentException();
+            it.next();
           }
-        else
-          item[1] = item[0];
-
-        if (item[0] <= item[1]) 
-          vals.add(item);
         
-        if (skipWhitespace(it))
-          break;
-        if (it.current() != ',')
-          throw new IllegalArgumentException();
-        it.next();
+        members = normalize((int[][]) vals.toArray(new int[0][]), vals.size());
       }
-
-    members = normalize((int[][]) vals.toArray(new int[0][]), vals.size());
   }
 
   /**
@@ -248,7 +310,7 @@ public abstract class SetOfIntegerSyntax
   }
 
   /**
-   * Checks if this set contains value.
+   * Checks if this set contains the given value.
    *
    * @param value the value to test for
    *
@@ -269,7 +331,7 @@ public abstract class SetOfIntegerSyntax
   }
 
   /**
-   * Checks if this set contains value.
+   * Checks if this set contains the given value.
    *
    * @param value the value to test for
    *
@@ -281,7 +343,7 @@ public abstract class SetOfIntegerSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
@@ -306,7 +368,7 @@ public abstract class SetOfIntegerSyntax
   /**
    * Returns an array describing the members included in this set.
    *
-   * @return the array with the members
+   * @return The members in normalized array form.
    */
   public int[][] getMembers()
   {
@@ -316,7 +378,7 @@ public abstract class SetOfIntegerSyntax
   /**
    * Returns the hashcode for this object.
    *
-   * @return the hashcode
+   * @return The hashcode.
    */
   public int hashCode()
   {
@@ -331,7 +393,8 @@ public abstract class SetOfIntegerSyntax
    *
    * @param x an integer value
    *
-   * @return the next value
+   * @return The next smallest integer value, or <code>-1</code> if there 
+   * is no greater integer in the set.
    */
   public int next(int x)
   {
@@ -349,8 +412,10 @@ public abstract class SetOfIntegerSyntax
 
   /**
    * Returns the string representation for this object.
+   * The value is a zero length string for an empty set, or a comma seperated
+   * list of ranges and single values in the form <code>"1-2,5-7,10"</code>.
    *
-   * @return the string representation
+   * @return The string representation.
    */
   public String toString()
   {
index c8d6ec781ba33d7729be426a787e68987b25c280..0b5c10070f1f78658bd11cb6f114428bffe1c40a 100644 (file)
@@ -1,5 +1,5 @@
 /* Size2DSyntax.java -- 
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -40,21 +40,62 @@ package javax.print.attribute;
 import java.io.Serializable;
 
 /**
- * @author Michael Koch
+ * <code>Size2DSyntax</code> is the abstract base class of all attribute 
+ * classes which provide a two dimensional size as value (e.g. the size of
+ * a media like Letter or A4).
+ * <p>
+ * A <code>Size2DSyntax</code> instance consists of two integer values
+ * describing the size in the x and y dimension. The units of 
+ * the given values is determined by two defined constants:
+ * <ul>
+ * <li>INCH - defines an inch</li>
+ * <li>MM - defines a millimeter</li>
+ * </ul>
+ * </p>
+ * <p>
+ * A size 2D attribute is constructed by two values for the size of the x and
+ * y dimension and the actual units of the given values as defined by the 
+ * constants.
+ * </p>
+ * <p>
+ * There are different methods provided to return the size values for the
+ * dimensions in either of the two predefined units or with a given client
+ * supplied units conversion factor.
+ * </p>
+ * <p>
+ * <b>Internal storage:</b><br>
+ * The size of the x,y dimensions are stored internally in micrometers. The 
+ * values of the provided constants for inch (value 25400) and millimeters
+ * (value 1000) are used as conversion factors to the internal storage units.
+ * To get the internal micrometers values a multiplication of a given
+ * size value with its units constant value is done. Retrieving the size value
+ * for specific units is done by dividing the internal stored value by the 
+ * units constant value. Clients are therefore able to provide their own 
+ * size units by supplying other conversion factors.
+ * Subclasses of <code>Size2DSyntax</code> have access to the internal
+ * size values through the protected methods 
+ * {@link #getXMicrometers()} and {@link #getYMicrometers()}.
+ * </p>
+ *
+ * @author Michael Koch (konqueror@gmx.de)
  */
 public abstract class Size2DSyntax implements Cloneable, Serializable
 {
   /**
-   * Constant for units of dots per mircometer to describe an inch.
+   * Constant for the units of inches.
+   * The actual value is the conversion factor to micrometers.
    */
   public static final int INCH = 25400;
 
   /**
-   * Constant for units of dots per mircometer to describe a centimeter.
+   * Constant for the units of millimeters.
+   * The actual value is the conversion factor to micrometers.
    */
   public static final int MM = 1000;
 
+  /** x size in micrometers. */
   private int x;
+  /** y size in micrometers. */
   private int y;
 
   /**
@@ -64,7 +105,7 @@ public abstract class Size2DSyntax implements Cloneable, Serializable
    * @param y the size in y direction
    * @param units the units to use for the sizes
    *
-   * @exception IllegalArgumentException if preconditions fail
+   * @exception IllegalArgumentException if x or y &lt; 0 or units &lt; 1
    */
   protected Size2DSyntax(float x, float y, int units)
   {
@@ -85,7 +126,7 @@ public abstract class Size2DSyntax implements Cloneable, Serializable
    * @param y the size in y direction
    * @param units the units to use for the sizes
    *
-   * @exception IllegalArgumentException if preconditions fail
+   * @exception IllegalArgumentException if x or y &lt; 0 or units &lt; 1
    */
   protected Size2DSyntax(int x, int y, int units)
   {
@@ -100,11 +141,11 @@ public abstract class Size2DSyntax implements Cloneable, Serializable
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @returns true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -118,15 +159,15 @@ public abstract class Size2DSyntax implements Cloneable, Serializable
   }
 
   /**
-   * Return the size described in this object as a two field array.
+   * Returns the size described in this object as a two field array.
    * Index 0 contains the size in x direction, index 1 the size in
    * y direction.
    *
    * @param units the units to use
    *
-   * @return the array that describes the size
+   * @return The array with the size dimensions.
    *
-   * @exception IllegalArgumentException if units < 1
+   * @exception IllegalArgumentException if units &lt; 1
    */
   public float[] getSize(int units)
   {
@@ -137,13 +178,13 @@ public abstract class Size2DSyntax implements Cloneable, Serializable
   }
 
   /**
-   * Return the size in x direction.
+   * Returns the size in x direction.
    *
    * @param units the units to use
    *
-   * @return the size value
+   * @return The size in x direction.
    *
-   * @exception IllegalArgumentException if units < 1
+   * @exception IllegalArgumentException if units &lt; 1
    */
   public float getX(int units)
   {
@@ -155,8 +196,9 @@ public abstract class Size2DSyntax implements Cloneable, Serializable
 
   /**
    * Returns the size in x direction in mircometers.
+   * To be used by sublcasses that need access to the internal storage value.
    *
-   * @return the size value
+   * @return The size in x direction in micrometers.
    */
   protected int getXMicrometers()
   {
@@ -168,9 +210,9 @@ public abstract class Size2DSyntax implements Cloneable, Serializable
    *
    * @param units the units to use
    *
-   * @return the size value
+   * @return The size in y direction.
    *
-   * @exception IllegalArgumentException if units < 1
+   * @exception IllegalArgumentException if units &lt; 1
    */
   public float getY(int units)
   {
@@ -182,8 +224,9 @@ public abstract class Size2DSyntax implements Cloneable, Serializable
   
   /**
    * Returns the size in y direction in mircometers.
+   * To be used by sublcasses that need access to the internal storage value.
    *
-   * @return the size value
+   * @return The size in y direction in micrometers.
    */
   protected int getYMicrometers()
   {
@@ -193,7 +236,7 @@ public abstract class Size2DSyntax implements Cloneable, Serializable
   /**
    * Returns the hashcode for this object.
    *
-   * @return the hashcode
+   * @return The hashcode.
    */
   public int hashCode()
   {
@@ -202,24 +245,39 @@ public abstract class Size2DSyntax implements Cloneable, Serializable
 
   /**
    * Returns the string representation for this object.
-   *
-   * @return the string representation
+   * <p>
+   * The returned string is in the form "XxY um" with X standing
+   * for size in x and Y for the size in y direction. The used 
+   * micrometers units is indicated by the appended "um" notation.
+   * </p>
+   * 
+   * @return The string representation in micrometers.
    */
   public String toString()
   {
-    return toString(1, "um");
+    return getXMicrometers() + "x" + getYMicrometers() + " um";
   }
 
   /**
    * Returns the string representation for this object.
-   *
+   * <p>
+   * The returned string is in the form "XxY U" with X standing
+   * for size in x and Y for the size in y direction. U denotes 
+   * the units name if one is supplied. The values are given as
+   * floating point values.
+   * </p>
+   * 
    * @param units the units to use
-   * @param unitsName the name of the units
+   * @param unitsName the name of the units. If <code>null</code>
+   * it is ommitted from the string representation.
    *
-   * @return the string representation
+   * @return The string representation.
    */
   public String toString(int units, String unitsName)
   {
-    return "" + getX(units) + "x" + getY(units) + " " + unitsName;
+    if (unitsName == null)
+      return getX(units) + "x" + getY(units);
+    
+    return getX(units) + "x" + getY(units) + " " + unitsName;
   }
 }
index 98fabdc67779e84e51a78b5a54a77ef4102ef3c4..2daab6ec32579b0f7f6448894bd70d22886caec0 100644 (file)
@@ -1,5 +1,5 @@
 /* TextSyntax.java -- 
-   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,7 +41,14 @@ import java.io.Serializable;
 import java.util.Locale;
 
 /**
- * @author Michael Koch
+ * <code>TextSyntax</code> is the abstract base class of all attribute 
+ * classes which provide a string as value (e.g. the location of the printer).
+ * <p>
+ * A <code>TextSyntax</code> instance consists of a string value and a
+ * locale which indicates the language of the locale of the string.
+ * </p>
+ *
+ * @author Michael Koch (konqueror@gmx.de)
  */
 public abstract class TextSyntax implements Cloneable, Serializable
 {
@@ -55,23 +62,24 @@ public abstract class TextSyntax implements Cloneable, Serializable
    * and locale.
    *
    * @param value the value for this syntax
-   * @param locale the locale to use
+   * @param locale the locale to use, if <code>null</code> the default
+   * locale is used.
    *
-   * @exception NullPointerException if value and/or locale is null
+   * @exception NullPointerException if value is null
    */
   protected TextSyntax(String value, Locale locale)
   {
-    if (value == null || locale == null)
-      throw new NullPointerException("value and/or locale may not be null");
-
+    if (value == null)
+      throw new NullPointerException("value may not be null");
+    
     this.value = value;
-    this.locale = locale;
+    this.locale = (locale == null ? Locale.getDefault() : locale);
   }
 
   /**
    * Returns the value of this syntax object.
    *
-   * @return the value
+   * @return The value.
    */
   public String getValue()
   {
@@ -81,7 +89,7 @@ public abstract class TextSyntax implements Cloneable, Serializable
   /**
    * Returns the locale of this syntax object.
    *
-   * @return the locale
+   * @return The locale.
    */
   public Locale getLocale()
   {
@@ -91,7 +99,7 @@ public abstract class TextSyntax implements Cloneable, Serializable
   /**
    * Returns the hashcode for this object.
    *
-   * @return the hashcode
+   * @return The hashcode.
    */
   public int hashCode()
   {
@@ -99,7 +107,7 @@ public abstract class TextSyntax implements Cloneable, Serializable
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
@@ -117,7 +125,10 @@ public abstract class TextSyntax implements Cloneable, Serializable
   }
 
   /**
-   * Returns a string representing the object.
+   * Returns a string representing the object. The returned
+   * string is the underlying text value of this object.
+   * 
+   * @return The string representation.
    */
   public String toString()
   {
index 3d336a4822caf8472b4766ef70f989d0d4ff6d84..cc834f680a281692b2d9154f603d7c10342649ad 100644 (file)
@@ -44,15 +44,40 @@ import javax.print.attribute.PrintJobAttribute;
 import javax.print.attribute.PrintRequestAttribute;
 
 /**
+ * The <code>Chromaticity</code> printing attribute specifies if print data
+ * should be printed in monochrome or color.
+ * <p>
+ * The attribute interacts with the document to be printed. If the document
+ * to be printed is a monochrome document it will be printed monochrome 
+ * regardless of the value of this attribute category. However if it is a
+ * color document supplying the attribute value <code>MONOCHROME</code>
+ * will prepare the document to be printed in monochrome instead of color.
+ * </p>
+ * <p>
+ * This printing attribute has nothing to do with the capabilities of the
+ * printer device. To check if a specific printer service supports printing
+ * in color you have to use the attribute
+ * {@link javax.print.attribute.standard.ColorSupported}
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> Chromaticity is not an IPP 1.1 attribute.
+ * </p>
+ *  
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class Chromaticity extends EnumSyntax
   implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
 {
   private static final long serialVersionUID = 4660543931355214012L;
-
+  
+  /** Specifies monochrome printing. */
   public static final Chromaticity MONOCHROME = new Chromaticity(0);
+  
+  /** Specifies color printing. */
   public static final Chromaticity COLOR = new Chromaticity(1);
+  
+  private static final String[] stringTable = { "monochrome", "color" };
+  private static final Chromaticity[] enumValueTable = { MONOCHROME, COLOR };
 
   /**
    * Creates a <code>Chromaticity</code> object.
@@ -67,7 +92,7 @@ public final class Chromaticity extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>Sides</code> itself
+   * @return The class <code>Chromaticity</code> itself.
    */
   public Class getCategory()
   {
@@ -77,10 +102,32 @@ public final class Chromaticity extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "chromaticity".
    */
   public String getName()
   {
     return "chromaticity";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
+  
 }
index fad7ced0191342f9a23ed9b395460bd3b1521c27..bca932dd735ef3315aae93ee07e7bcbacd046a4e 100644 (file)
@@ -1,5 +1,5 @@
 /* ColorSupported.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,6 +42,20 @@ import javax.print.attribute.PrintServiceAttribute;
 
 
 /**
+ * The <code>ColorSupported</code> printing attribute specifies if a 
+ * printing device is capable of color printing.
+ * <p>
+ * This attributes just tells if a printer device supports color printing
+ * but does not specify how a specific print job is printed. Therefore the
+ * attribute {@link javax.print.attribute.standard.Chromaticity} exists.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> ColorSupported is an IPP 1.1 attribute. The IPP
+ * specification treats ColorSupported as a boolean type which is not available
+ * in the Java Print Service API. The IPP boolean value true corresponds
+ * to <code>SUPPORTED</code> and "false" to <code>NOT_SUPPORTED</code>.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class ColorSupported extends EnumSyntax
@@ -49,13 +63,20 @@ public final class ColorSupported extends EnumSyntax
 {
   private static final long serialVersionUID = -2700555589688535545L;
 
+  /** The printer does not support printing in color. */
   public static final ColorSupported NOT_SUPPORTED = new ColorSupported(0);
+  
+  /** The printer supports printing in color. */
   public static final ColorSupported SUPPORTED = new ColorSupported(1);
 
+  private static final String[] stringTable = { "not-supported", "supported" };
+  private static final ColorSupported[] enumValueTable = { NOT_SUPPORTED,
+                                                          SUPPORTED };
+  
   /**
    * Constructs a <code>ColorSupported</code> object.
    * 
-   * @param value the value
+   * @param value the enum value
    */
   protected ColorSupported(int value)
   {
@@ -65,7 +86,7 @@ public final class ColorSupported extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>ColorSupported</code> itself
+   * @return The class <code>ColorSupported</code> itself.
    */
   public Class getCategory()
   {
@@ -75,10 +96,31 @@ public final class ColorSupported extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "color-supported".
    */
   public String getName()
   {
     return "color-supported";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index 112202a0b4af0bbc1f3a904d46824d5e7237673f..d29ffa0fcaf7253f64295704d8f882cafcc89f3a 100644 (file)
@@ -1,5 +1,5 @@
 /* Compression.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,6 +42,16 @@ import javax.print.attribute.EnumSyntax;
 
 
 /**
+ * The <code>Compression</code> printing attribute specifies if and how the
+ * supplied print data is compressed.
+ * <p>
+ * If this attribute is ommitted from the attributes set of the print
+ * data it is assumed that no compression is done.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> Compression is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public class Compression extends EnumSyntax
@@ -49,15 +59,27 @@ public class Compression extends EnumSyntax
 {
   private static final long serialVersionUID = -5716748913324997674L;
 
+  /** The print data is not compressed. */
   public static final Compression NONE = new Compression(0);
+  
+  /** The print data is ZIP compressed. */
   public static final Compression DEFLATE = new Compression(1);
+  
+  /** The print data is GNU Zip compressed. */
   public static final Compression GZIP = new Compression(2);
+  
+  /** The print data is UNIX compressed. */
   public static final Compression COMPRESS = new Compression(3);
+  
+  private static final String[] stringTable = { "none", "deflate", 
+                                                "gzip", "compress" };
+  private static final Compression[] enumValueTable = { NONE, DEFLATE, 
+                                                        GZIP, COMPRESS };
 
   /**
    * Constructs a <code>Compression</code> object.
    * 
-   * @param value that value
+   * @param value the enum value
    */
   protected Compression(int value)
   {
@@ -67,7 +89,7 @@ public class Compression extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>Compression</code> itself
+   * @return The class <code>Compression</code> itself.
    */
   public Class getCategory()
   {
@@ -77,10 +99,31 @@ public class Compression extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "compression".
    */
   public String getName()
   {
     return "compression";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index 7c5fdff0cc7c342589763b0680120557a8926014..78ca6c6cc63a914ff65ac00dc20c459d3c7df6c5 100644 (file)
@@ -1,5 +1,5 @@
 /* Copies.java -- 
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -33,7 +33,7 @@ module.  An independent module is a module which is not derived from
 or based on this library.  If you modify this library, you may extend
 this exception to your version of the library, but you are not
 obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
+exception statement from your version.  */
 
 package javax.print.attribute.standard;
 
@@ -42,7 +42,19 @@ import javax.print.attribute.PrintJobAttribute;
 import javax.print.attribute.PrintRequestAttribute;
 
 /**
- * @author Michael Koch
+ * The <code>Copies</code> printing attribute specifies the number
+ * of copies to be printed.
+ * <p>
+ * <b>Note:</b> The effect of this attribute on jobs with multiple documents 
+ * is controlled by the job attribute 
+ * {@link javax.print.attribute.standard.MultipleDocumentHandling}.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> Copies is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.MultipleDocumentHandling
+ * 
+ * @author Michael Koch (konqueror@gmx.de)
  */
 public final class Copies extends IntegerSyntax
   implements PrintJobAttribute, PrintRequestAttribute
@@ -54,7 +66,7 @@ public final class Copies extends IntegerSyntax
    *
    * @param value the number of copies
    *
-   * @exception IllegalArgumentException if value < 1
+   * @exception IllegalArgumentException if value &lt; 1
    */
   public Copies(int value)
   {
@@ -65,11 +77,12 @@ public final class Copies extends IntegerSyntax
   }
   
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -82,7 +95,7 @@ public final class Copies extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>Copies</code> itself
+   * @return The class <code>Copies</code> itself.
    */
   public Class getCategory()
   {
@@ -90,9 +103,9 @@ public final class Copies extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "copies"
+   * @return The name "copies".
    */
   public String getName()
   {
index 8062ebca192e6be056733771dcd69a61efa76a27..fec426becd4b10b67532c0204a4f359b1c825174 100644 (file)
@@ -1,5 +1,5 @@
 /* CopiesSupported.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,7 +42,15 @@ import javax.print.attribute.SupportedValuesAttribute;
 
 
 /**
+ * The <code>CopiesSupported</code> attribute specifies the supported
+ * value or range of values for the 
+ * {@link javax.print.attribute.standard.Copies} attribute. 
+ * <p>
+ * <b>IPP Compatibility:</b> CopiesSupported is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class CopiesSupported extends SetOfIntegerSyntax
   implements SupportedValuesAttribute
@@ -50,25 +58,59 @@ public final class CopiesSupported extends SetOfIntegerSyntax
   private static final long serialVersionUID = 6927711687034846001L;
 
   /**
-   * Constructs a <code>CopiesSupported</code> object.
+   * Constructs a <code>CopiesSupported</code> object with
+   * the given value. This means that only this value is 
+   * supported for copies.
+   * 
+   * @param member the member value
+   * @exception IllegalArgumentException if member is &lt; 1
    */
   public CopiesSupported(int member)
   {
     super(member);
+    
+    if (member < 1)
+      throw new IllegalArgumentException("member may not be less than 1");
   }
 
   /**
-   * Constructs a <code>CopiesSupported</code> object.
+   * Constructs a <code>CopiesSupported</code> object with
+   * the given range of values. This means that values for 
+   * copies are supported inside the specified range.
+   * 
+   * @param lowerBound the lower bound value
+   * @param upperBound the upper bound value
+   *
+   * @exception IllegalArgumentException if lowerBound &lt; 1
    */
   public CopiesSupported(int lowerBound, int upperBound)
   {
     super(lowerBound, upperBound);
+    
+    if (lowerBound < 1)
+      throw new IllegalArgumentException("lowerBound may not be less than 1");
+  }
+  
+  /**
+   * Tests if the given object is equal to this object.
+   *
+   * @param obj the object to test
+   *
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if(! (obj instanceof CopiesSupported))
+      return false;
+
+    return super.equals(obj);
   }
 
   /**
    * Returns category of this class.
    *
-   * @return the class <code>CopiesSupported</code> itself
+   * @return The class <code>CopiesSupported</code> itself.
    */
   public Class getCategory()
   {
@@ -78,7 +120,7 @@ public final class CopiesSupported extends SetOfIntegerSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "copies-supported".
    */
   public String getName()
   {
index fbb9e084a202f763687974679d7f117fe27ed9cd..36b740ef30f8ee70530ffd4c92b76abd16dc2e73 100644 (file)
@@ -1,5 +1,5 @@
 /* DateTimeAtCompleted.java -- 
-   Copyright (C) 2003, 2004  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,14 @@ import javax.print.attribute.DateTimeSyntax;
 import javax.print.attribute.PrintJobAttribute;
 
 /**
+ * The <code>DateTimeAtCompleted</code> attribute specifies the date and 
+ * the time at which a print job completed (or was canceled or aborted).
+ * <p>
+ * <b>IPP Compatibility:</b> DateTimeAtCompleted is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.DateTimeAtCreation
+ * @see javax.print.attribute.standard.DateTimeAtProcessing
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class DateTimeAtCompleted extends DateTimeSyntax
@@ -64,11 +72,12 @@ public final class DateTimeAtCompleted extends DateTimeSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +90,7 @@ public final class DateTimeAtCompleted extends DateTimeSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>DateTimeAtCompleted</code> itself
+   * @return The class <code>DateTimeAtCompleted</code> itself.
    */
   public Class getCategory()
   {
@@ -89,9 +98,9 @@ public final class DateTimeAtCompleted extends DateTimeSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "date-time-at-completed"
+   * @return The name "date-time-at-completed".
    */
   public String getName()
   {
index b98af57a7c7e9d8b4003e4a58f72cdd276bdf925..b463c40ac88d3f5450d34c52fccd09cf2141bd12 100644 (file)
@@ -1,5 +1,5 @@
 /* DateTimeAtCreation.java -- 
-   Copyright (C) 2003, 2004  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,14 @@ import javax.print.attribute.DateTimeSyntax;
 import javax.print.attribute.PrintJobAttribute;
 
 /**
+ * The <code>DateTimeAtCreation</code> attribute specifies the 
+ * date and the time at which a print job was created.
+ * <p>
+ * <b>IPP Compatibility:</b> DateTimeAtCreation is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.DateTimeAtCompleted
+ * @see javax.print.attribute.standard.DateTimeAtProcessing
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class DateTimeAtCreation extends DateTimeSyntax
@@ -64,11 +72,12 @@ public final class DateTimeAtCreation extends DateTimeSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +90,7 @@ public final class DateTimeAtCreation extends DateTimeSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>DateTimeAtCreation</code> itself
+   * @return The class <code>DateTimeAtCreation</code> itself.
    */
   public Class getCategory()
   {
@@ -89,9 +98,9 @@ public final class DateTimeAtCreation extends DateTimeSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "date-time-at-creation"
+   * @return The name "date-time-at-creation".
    */
   public String getName()
   {
index ff537b98a85005057ad69bce250cea199407d6c8..42dee8048ebc088ccb89ef35fc414cd863c63f97 100644 (file)
@@ -1,5 +1,5 @@
 /* DateTimeAtProcessing.java -- 
-   Copyright (C) 2003, 2004  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,14 @@ import javax.print.attribute.DateTimeSyntax;
 import javax.print.attribute.PrintJobAttribute;
 
 /**
+ * The <code>DateTimeAtProcessing</code> attribute specifies the date
+ * and the time at which a print job started processing.
+ * <p>
+ * <b>IPP Compatibility:</b> DateTimeAtProcessing is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.DateTimeAtCompleted
+ * @see javax.print.attribute.standard.DateTimeAtCreation
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class DateTimeAtProcessing extends DateTimeSyntax
@@ -64,11 +72,12 @@ public final class DateTimeAtProcessing extends DateTimeSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +90,7 @@ public final class DateTimeAtProcessing extends DateTimeSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>DateTimeAtProcessing</code> itself
+   * @return The class <code>DateTimeAtProcessing</code> itself.
    */
   public Class getCategory()
   {
@@ -89,9 +98,9 @@ public final class DateTimeAtProcessing extends DateTimeSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "date-time-at-processing"
+   * @return The name "date-time-at-processing".
    */
   public String getName()
   {
index c2da19926f425ea08a298b9440ca62a09a16f44e..1a4e79dd8f83afbd43d1ebd90e5b26570c337b63 100644 (file)
@@ -45,7 +45,27 @@ import javax.print.attribute.PrintRequestAttribute;
 import javax.print.attribute.URISyntax;
 
 /**
+ * The <code>Destination</code> attribute provides a URI for an alternate
+ * destination of the printing output.
+ * <p>
+ * As not an IPP attribute many print services will not support this 
+ * attribute and only provide the printer device as a destination.
+ * An alternate output destination would be a file on the local harddisk
+ * given as a file scheme URI.
+ * </p>
+ * <p> 
+ * If a print service does not support the destination attributes URI it 
+ * will throw a PrintException. This exception may further implement the
+ * interface {@link javax.print.URIException}. 
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> Destination is not an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.PrintException
+ * @see javax.print.URIException
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class Destination extends URISyntax
   implements PrintJobAttribute, PrintRequestAttribute
@@ -54,16 +74,35 @@ public final class Destination extends URISyntax
 
   /**
    * Constructs a <code>Destination</code> object.
+   * 
+   * @param uri the URI of the output destination.
+   * @throws NullPointerException if the given uri is null.
    */
   public Destination(URI uri)
   {
     super(uri);
   }
+  
+  /**
+   * Tests if the given object is equal to this object.
+   *
+   * @param obj the object to test
+   *
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if(! (obj instanceof Destination))
+      return false;
+
+    return super.equals(obj);
+  }
 
   /**
    * Returns category of this class.
    *
-   * @return the class <code>Destination</code> itself
+   * @return The class <code>Destination</code> itself.
    */
   public Class getCategory()
   {
@@ -71,12 +110,12 @@ public final class Destination extends URISyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "printer-uri"
+   * @return The name "spool-data-destination"
    */
   public String getName()
   {
-    return "destination";
+    return "spool-data-destination";
   }
 }
index 2c472aa2012ab5720bc1693a09daf55395259984..d1428ed8b799c7940a388a1ed125538006201655 100644 (file)
@@ -1,5 +1,5 @@
 /* DocumentName.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,18 @@ import javax.print.attribute.DocAttribute;
 import javax.print.attribute.TextSyntax;
 
 /**
+ * The <code>DocumentName</code> printing attribute specifies a document name.
+ * <p>
+ * The document name may be different than the name of the job. It must not be
+ * unique across multiple documents in the same print job. Normally, an 
+ * application provides the document name for the user by using e.g. the file 
+ * name or a name generated automatically by the application.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> DocumentName is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.JobName
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class DocumentName extends TextSyntax
@@ -55,6 +67,8 @@ public final class DocumentName extends TextSyntax
    * Creates a <code>DocumentName</code> object.
    *
    * @param documentName the document name
+   * @param locale the locale to use, if <code>null</code> the default
+   * locale is used.
    *
    * @exception NullPointerException if documentName is null
    */
@@ -64,11 +78,12 @@ public final class DocumentName extends TextSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +96,7 @@ public final class DocumentName extends TextSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>DocumentName</code> itself
+   * @return The class <code>DocumentName</code> itself.
    */
   public Class getCategory()
   {
@@ -89,9 +104,9 @@ public final class DocumentName extends TextSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "document-name"
+   * @return The name "document-name".
    */
   public String getName()
   {
index 9b26906fdb62b5a1b168ec6a5b8d8e77bacaf5a9..02e292f58b4eabc227ba41b4108e96d555dc2a00 100644 (file)
@@ -1,5 +1,5 @@
 /* Fidelity.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -33,7 +33,8 @@ module.  An independent module is a module which is not derived from
 or based on this library.  If you modify this library, you may extend
 this exception to your version of the library, but you are not
 obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
+exception statement from your version.  */
+
 
 package javax.print.attribute.standard;
 
@@ -43,15 +44,53 @@ import javax.print.attribute.PrintRequestAttribute;
 
 
 /**
+ * The <code>Fidelity</code> attribute specifies how a print job is handled
+ * if the supplied attributes are not fully supported.
+ * <p>
+ * There may be conflicts between the client requested attributes and the
+ * attributes supported by the printer object. Such situations are controlled
+ * through the client by providing this attribute to indicate the wanted
+ * conflict handling mechanism:
+ * <ul>
+ * <li>{@link #FIDELITY_TRUE}: Reject the job since the job can not be 
+ * processed exactly as specified by the attributes of the client.</li>
+ * <li>{@link #FIDELITY_FALSE}: The Printer may make any changes necessary 
+ * to proceed with processing the Job as good as possible.</li>
+ * </ul>
+ * </p> 
+ * <p>
+ * <b>IPP Compatibility:</b> Fidelity is an IPP 1.1 attribute. The IPP name
+ * is "ipp-attribute-fidelity". The IPP specification treats Fidelity as a 
+ * boolean type which is not available in the Java Print Service API. The IPP
+ * boolean value "true" corresponds to <code>FIDELITY_TRUE</code> and "false" 
+ * to <code>FIDELITY_FALSE</code>.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class Fidelity extends EnumSyntax
   implements PrintJobAttribute, PrintRequestAttribute
 {
   private static final long serialVersionUID = 6320827847329172308L;
 
+  /** 
+   * Requests that the job is printed exactly as specified, 
+   * or rejected otherwise.
+   */
   public static final Fidelity FIDELITY_TRUE = new Fidelity(0);
+  
+  /** 
+   * Requests that the job is printed as exactly as reasonable. This means
+   * that the print service may choose to substitute the default value 
+   * associated with that attribute, or use some other supported value that 
+   * is similar to the unsupported requested value. 
+   */
   public static final Fidelity FIDELITY_FALSE = new Fidelity(1);
+  
+  private static final String[] stringTable = { "true", "false" };
+  private static final Fidelity[] enumValueTable = { FIDELITY_TRUE,
+                                                     FIDELITY_FALSE };
 
   /**
    * Constructs a <code>Fidelity</code> object.
@@ -66,7 +105,7 @@ public final class Fidelity extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>Fidelity</code> itself
+   * @return The class <code>Fidelity</code> itself.
    */
   public Class getCategory()
   {
@@ -76,10 +115,31 @@ public final class Fidelity extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "ipp-attribute-fidelity".
    */
   public String getName()
   {
-    return "fidelity";
+    return "ipp-attribute-fidelity";
+  }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
   }
 }
index 1224c1da163b4404901b8b6f62ea9b14a698f6b8..6d474a6ead182df5797e98e9b728cc58cc78e2f6 100644 (file)
@@ -1,5 +1,5 @@
 /* Finishings.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -33,7 +33,8 @@ module.  An independent module is a module which is not derived from
 or based on this library.  If you modify this library, you may extend
 this exception to your version of the library, but you are not
 obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
+exception statement from your version.  */
+
 
 package javax.print.attribute.standard;
 
@@ -44,32 +45,184 @@ import javax.print.attribute.PrintRequestAttribute;
 
 
 /**
+ * The <code>Finishings</code> attribute specifies the finishing operations
+ * that the Printer applies to every copy of each printed document in the Job.
+ * <p>
+ * Standard enum values are: <code>NONE</code>, <code>STAPLE</code>, 
+ * <code>COVER</code>, <code>BIND</code>, <code>SADDLE_STITCH</code>,
+ * <code>EDGE_STITCH</code>.
+ * <br><br>
+ * The following values are more specific: 
+ * <code>STAPLE_TOP_LEFT</code>, <code>STAPLE_BOTTOM_LEFT</code>, 
+ * <code>STAPLE_TOP_RIGHT</code>, <code>STAPLE_BOTTOM_RIGHT</code>, 
+ * <code>EDGE_STITCH_LEFT</code>, <code>EDGE_STITCH_TOP</code>, 
+ * <code>EDGE_STITCH_RIGHT</code>, <code>EDGE_STITCH_BOTTOM</code>, 
+ * <code>STAPLE_DUAL_LEFT</code>, <code>STAPLE_DUAL_TOP</code>, 
+ * <code>STAPLE_DUAL_RIGHT</code>, <code>STAPLE_DUAL_BOTTOM</code>.
+ * </p> 
+ * <p>
+ * <b>Note:</b> The effect of this attribute on jobs with multiple documents 
+ * is controlled by the job attribute 
+ * {@link javax.print.attribute.standard.MultipleDocumentHandling}.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> Finishings is an IPP 1.1 attribute. Differences 
+ * to the IPP specification are that in the Java Print Service API only one 
+ * enum value is supported (in IPP a set of enums). Further the enum 
+ * <code>punch</code> is not supported.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public class Finishings extends EnumSyntax
   implements DocAttribute, PrintJobAttribute, PrintRequestAttribute
 {
   private static final long serialVersionUID = -627840419548391754L;
 
-  public static final Finishings NONE = new Finishings(0);
-  public static final Finishings STAPLE = new Finishings(1);
-  public static final Finishings COVER = new Finishings(2);
-  public static final Finishings BIND = new Finishings(3);
-  public static final Finishings SADDLE_STITCH = new Finishings(4);
-  public static final Finishings EDGE_STITCH = new Finishings(5);
-  public static final Finishings STAPLE_TOP_LEFT = new Finishings(6);
-  public static final Finishings STAPLE_BOTTOM_LEFT = new Finishings(7);
-  public static final Finishings STAPLE_TOP_RIGHT = new Finishings(8);
-  public static final Finishings STAPLE_BOTTOM_RIGHT = new Finishings(9);
-  public static final Finishings EDGE_STITCH_LEFT = new Finishings(10);
-  public static final Finishings EDGE_STITCH_TOP = new Finishings(11);
-  public static final Finishings EDGE_STITCH_RIGHT = new Finishings(12);
-  public static final Finishings EDGE_STITCH_BOTTOM = new Finishings(13);
-  public static final Finishings STAPLE_DUAL_LEFT = new Finishings(14);
-  public static final Finishings STAPLE_DUAL_TOP = new Finishings(15);
-  public static final Finishings STAPLE_DUAL_RIGHT = new Finishings(16);
-  public static final Finishings STAPLE_DUAL_BOTTOM = new Finishings(17);
+  /** 
+   * Perform no finishings of the documents.
+   */
+  public static final Finishings NONE = new Finishings(3);
+  
+  /** 
+   * Selects binding of the documents with one or more staples.  
+   */
+  public static final Finishings STAPLE = new Finishings(4);
+  
+  /**
+   * Selects the use of a non-printed (or pre-printed) cover for 
+   * the document.
+   */
+  public static final Finishings COVER = new Finishings(6);
+  
+  /**
+   * Selects that a binding is to be applied to the document.
+   * The type and placement of the binding is site-defined.
+   */
+  public static final Finishings BIND = new Finishings(7);
+  
+  /**
+   * Selects binding of the documents with one or more staples
+   * along the middle fold.  
+   */
+  public static final Finishings SADDLE_STITCH = new Finishings(8);
+  
+  /**
+   * Selects binding of the documents with one or more staples 
+   * along one edge. 
+   */
+  public static final Finishings EDGE_STITCH = new Finishings(9);
+  
+  /** 
+   * Selects binding of the documents with one or more staples 
+   * in the top left corner. 
+   */
+  public static final Finishings STAPLE_TOP_LEFT = new Finishings(20);
+  
+  /** 
+   * Selects binding of the documents with one or more staples in the bottom 
+   * left corner. 
+   */
+  public static final Finishings STAPLE_BOTTOM_LEFT = new Finishings(21);
+  
+  /**
+   * Selects binding of the documents with one or more staples in 
+   * the top right corner.
+   */
+  public static final Finishings STAPLE_TOP_RIGHT = new Finishings(22);
+  
+  /**
+   * Selects binding of the documents with one or more staples in 
+   * the bottom right corner.
+   */
+  public static final Finishings STAPLE_BOTTOM_RIGHT = new Finishings(23);
+  
+  /**
+   * Selects binding of the documents with one or more staples
+   * along the left edge.
+   */
+  public static final Finishings EDGE_STITCH_LEFT = new Finishings(24);
+  
+  /**
+   * Selects binding of the documents with one or more staples along 
+   * the top edge.
+   */
+  public static final Finishings EDGE_STITCH_TOP = new Finishings(25);
+  
+  /**
+   * Selects binding of the documents with one or more staples along 
+   * the right edge.
+   */
+  public static final Finishings EDGE_STITCH_RIGHT = new Finishings(26);
+  
+  /**
+   * Selects binding of the documents with one or more staples along
+   * the bottom edge. 
+   */
+  public static final Finishings EDGE_STITCH_BOTTOM = new Finishings(27);
+  
+  /**
+   * Selects binding of the documents with two staples along the 
+   * left edge assuming a portrait document.
+   */
+  public static final Finishings STAPLE_DUAL_LEFT = new Finishings(28);
+  
+  /**
+   * Selects binding of the documents with two staples along the 
+   * top edge assuming a portrait document.
+   */
+  public static final Finishings STAPLE_DUAL_TOP = new Finishings(29);
+  
+  /**
+   * Selects binding of the documents with two staples along the 
+   * right edge assuming a portrait document.
+   */
+  public static final Finishings STAPLE_DUAL_RIGHT = new Finishings(30);
+  
+  /**
+   * Selects binding of the documents with two staples along the 
+   * bottom edge assuming a portrait document.
+   */
+  public static final Finishings STAPLE_DUAL_BOTTOM = new Finishings(31);
 
+  private static final String[] stringTable = { "none", "staple", null, 
+                                                "cover", "bind", "saddle-stitch",
+                                                "edge-stitch", null, null, null,
+                                                null, null, null, null, null,
+                                                null, null, "staple-top-left",
+                                                "staple-bottom-left", 
+                                                "staple-top-right", 
+                                                "staple-bottom-right",
+                                                "edge-stitch-left",
+                                                "edge-stitch-top",
+                                                "edge-stitch-right",
+                                                "edge-stitch-bottom",
+                                                "staple-dual-left",
+                                                "staple-dual-top",
+                                                "staple-dual-right",
+                                                "staple-dual-bottom" };
+  
+  private static final Finishings[] enumValueTable = { NONE, STAPLE, null, 
+                                                       COVER, BIND, 
+                                                       SADDLE_STITCH,
+                                                       EDGE_STITCH, null, 
+                                                       null, null, null, 
+                                                       null, null, null, 
+                                                       null, null, null, 
+                                                       STAPLE_TOP_LEFT,
+                                                       STAPLE_BOTTOM_LEFT,
+                                                       STAPLE_TOP_RIGHT,
+                                                       STAPLE_BOTTOM_RIGHT,
+                                                       EDGE_STITCH_LEFT,
+                                                       EDGE_STITCH_TOP,
+                                                       EDGE_STITCH_RIGHT,
+                                                       EDGE_STITCH_BOTTOM,
+                                                       STAPLE_DUAL_LEFT,
+                                                       STAPLE_DUAL_TOP,
+                                                       STAPLE_DUAL_RIGHT,
+                                                       STAPLE_DUAL_BOTTOM };
+  
   /**
    * Constructs a <code>Finishings</code> object.
    * 
@@ -93,10 +246,41 @@ public class Finishings extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "finishings".
    */
   public String getName()
   {
     return "finishings";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
+
+  /**
+   * Returns the lowest used value by the enumerations of this class.
+   * .
+   * @return The lowest value used.
+   */
+  protected int getOffset()
+  {
+    return 3;
+  }  
 }
index 5f054638280dedece90d20457373ccdc083fda90..768600f80655cc4fedd61b711a8321733dc66a4b 100644 (file)
@@ -1,5 +1,5 @@
 /* JobHoldUntil.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -45,6 +45,19 @@ import javax.print.attribute.PrintJobAttribute;
 import javax.print.attribute.PrintRequestAttribute;
 
 /**
+ * The <code>JobHoldUntil</code> attribute specifies the date
+ * and the time at which a print job must become a candidate
+ * for printing. 
+ * <p>
+ * <b>IPP Compatibility:</b> JobHoldUntil is an IPP 1.1 attribute.
+ * However the attribute in IPP is based on keywords of named
+ * time periods like day-time or evening. It will depend on the
+ * concrete implementation of a print service how a mapping of the 
+ * detailed provided date and time of this attribute to the named
+ * keyword or an alternate extension attribute will be done. E.g.
+ * CUPS supports also a HH:MM format as extension to the keywords.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class JobHoldUntil extends DateTimeSyntax
@@ -65,11 +78,12 @@ public final class JobHoldUntil extends DateTimeSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -82,7 +96,7 @@ public final class JobHoldUntil extends DateTimeSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobHoldUntil</code> itself
+   * @return The class <code>JobHoldUntil</code> itself.
    */
   public Class getCategory()
   {
@@ -90,9 +104,9 @@ public final class JobHoldUntil extends DateTimeSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "job-hold-until"
+   * @return The name "job-hold-until".
    */
   public String getName()
   {
index a29c24cd4e2db204120f3b997e1ae68713b3516e..0da3e59cf24c317c7be919c2005ea8ae11d88804 100644 (file)
@@ -1,5 +1,5 @@
 /* JobImpressions.java -- 
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,6 +42,31 @@ import javax.print.attribute.PrintJobAttribute;
 import javax.print.attribute.PrintRequestAttribute;
 
 /**
+ * The <code>JobImpressions</code> printing attribute specifies
+ * the total size in number of impressions of the documents
+ * of a a print job. 
+ * <p>
+ * An impression is specified by the IPP specification as the image 
+ * (possibly many print-stream pages in different configurations) 
+ * imposed onto a single media sheet. This attribute must not include
+ * a multiplication factor from the number of copies which maybe specified
+ * in a Copies attribute.
+ * </p>
+ * <p>
+ * This attribute belongs to a group of job size attributes which are 
+ * describing the size of a job to be printed. The values supplied by
+ * these attributes are intended to be used for routing and scheduling
+ * of jobs on the print service. A client may specify these attributes.
+ * If a clients supplies these attributes a print service may change
+ * the values if its be able to compute a more accurate value at the
+ * time of the job submission or also later.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> JobImpressions is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.JobKOctets
+ * @see javax.print.attribute.standard.JobMediaSheets
+ * 
  * @author Michael Koch
  */
 public final class JobImpressions extends IntegerSyntax
@@ -54,7 +79,7 @@ public final class JobImpressions extends IntegerSyntax
    *
    * @param value the number of impressions
    *
-   * @exception IllegalArgumentException if value < 0
+   * @exception IllegalArgumentException if value &lt; 0
    */
   public JobImpressions(int value)
   {
@@ -65,11 +90,12 @@ public final class JobImpressions extends IntegerSyntax
   }
   
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -82,7 +108,7 @@ public final class JobImpressions extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobImpressions</code> itself
+   * @return The class <code>JobImpressions</code> itself.
    */
   public Class getCategory()
   {
@@ -90,9 +116,9 @@ public final class JobImpressions extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "job-impressions"
+   * @return The name "job-impressions".
    */
   public String getName()
   {
index d1b3e964e23482721ae263ae341c6bfcd259f3c7..82da507a0444b5217c86d0aef2c4eb39d1a81bea 100644 (file)
@@ -1,5 +1,5 @@
 /* JobImpressionsCompleted.java -- 
-   Copyright (C) 2003, 2004  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,6 +41,23 @@ import javax.print.attribute.IntegerSyntax;
 import javax.print.attribute.PrintJobAttribute;
 
 /**
+ * The <code>JobImpressionsCompleted</code> printing attribute reports
+ * the number of impressions already processed.
+ * <p>
+ * An impression is specified by the IPP specification as the image imposed 
+ * onto a single media sheet. This attribute will not include a multiplication 
+ * factor from the number of copies.
+ * </p>
+ * <p>
+ * This attribute belongs to a group of job progress attributes which are 
+ * reporting on the progress of a print job.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> JobImpressionsCompleted is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.JobMediaSheetsCompleted
+ * @see javax.print.attribute.standard.JobKOctetsProcessed
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class JobImpressionsCompleted extends IntegerSyntax
@@ -53,7 +70,7 @@ public final class JobImpressionsCompleted extends IntegerSyntax
    *
    * @param value the number of completed impressions
    *
-   * @exception IllegalArgumentException if value < 0
+   * @exception IllegalArgumentException if value &lt; 0
    */
   public JobImpressionsCompleted(int value)
   {
@@ -64,11 +81,12 @@ public final class JobImpressionsCompleted extends IntegerSyntax
   }
   
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +99,7 @@ public final class JobImpressionsCompleted extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobImpressionsCompleted</code> itself
+   * @return The class <code>JobImpressionsCompleted</code> itself.
    */
   public Class getCategory()
   {
@@ -89,12 +107,12 @@ public final class JobImpressionsCompleted extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "job-impressions-completed"
+   * @return The name "job-impressions-completed".
    */
   public String getName()
   {
-    return "job-impressions";
+    return "job-impressions-completed";
   }
 }
index 0ba7089c6d3f5a5e2dbdbdd8fdfc604869ea8736..bd10457513cec5f368b30d965f7b7ae8934a6088 100644 (file)
@@ -1,5 +1,5 @@
 /* JobImpressionsSupported.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,7 +42,15 @@ import javax.print.attribute.SupportedValuesAttribute;
 
 
 /**
+ * The <code>JobImpressionsSupported</code> printing attribute specifies the 
+ * supported range of values for the 
+ * {@link javax.print.attribute.standard.JobImpressions} attribute.
+ * <p>
+ * <b>IPP Compatibility:</b> JobImpressionsSupported is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class JobImpressionsSupported extends SetOfIntegerSyntax
   implements SupportedValuesAttribute
@@ -50,17 +58,43 @@ public final class JobImpressionsSupported extends SetOfIntegerSyntax
   private static final long serialVersionUID = -4887354803843173692L;
 
   /**
-   * Constructs a <code>JobImpressionsSupported</code> object.
+   * Constructs a <code>JobImpressionsSupported</code> object with the 
+   * given range of supported job impressions values.
+   *
+   * @param lowerBound the lower bound value
+   * @param upperBound the upper bound value
+   *
+   * @exception IllegalArgumentException if lowerBound &lt;= upperbound
+   * and lowerBound &lt; 1
    */
   public JobImpressionsSupported(int lowerBound, int upperBound)
   {
     super(lowerBound, upperBound);
+    
+    if (lowerBound < 1)
+      throw new IllegalArgumentException("lowerBound may not be less than 1");
+  }
+  
+  /**
+   * Tests if the given object is equal to this object.
+   *
+   * @param obj the object to test
+   *
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if (! (obj instanceof JobImpressionsSupported))
+      return false;
+   
+    return super.equals(obj);
   }
 
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobImpressionsSupported</code> itself
+   * @return The class <code>JobImpressionsSupported</code> itself.
    */
   public Class getCategory()
   {
@@ -70,7 +104,7 @@ public final class JobImpressionsSupported extends SetOfIntegerSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "job-impressions-supported".
    */
   public String getName()
   {
index 71f02c577a78882cd141763e9877b413f71fe38f..b380aa17ce950e4f6a6a9213e9e40d32913ac6b6 100644 (file)
@@ -1,5 +1,5 @@
 /* JobKOctets.java -- 
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,6 +42,30 @@ import javax.print.attribute.PrintJobAttribute;
 import javax.print.attribute.PrintRequestAttribute;
 
 /**
+ * The <code>JobKOctets</code> printing attribute specifies
+ * the total size of all the documents of a print job in K octets.
+ * <p>
+ * The supplied value has to be rounded up, so that a range between
+ * 1 and 1024 octects is specified as 1 and a range between 1025 and
+ * 2048 octects as 2, etc.  This attribute must not include a multiplication 
+ * factor from the number of copies which maybe specified in a Copies 
+ * attribute.
+ * </p>
+ * <p>
+ * This attribute belongs to a group of job size attributes which are 
+ * describing the size of a job to be printed. The values supplied by
+ * these attributes are intended to be used for routing and scheduling
+ * of jobs on the print service. A client may specify these attributes.
+ * If a clients supplies these attributes a print service may change
+ * the values if its be able to compute a more accurate value at the
+ * time of the job submission or also later.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> JobKOctets is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.JobMediaSheets
+ * @see javax.print.attribute.standard.JobImpressions
+ * 
  * @author Michael Koch
  */
 public final class JobKOctets extends IntegerSyntax
@@ -51,10 +75,11 @@ public final class JobKOctets extends IntegerSyntax
   
   /**
    * Creates a <code>JobKOctets</code> object.
+   * The value is in units of K (1024) octets rounded up to the next highest K. 
    *
    * @param value the number of K octets
    *
-   * @exception IllegalArgumentException if value < 0
+   * @exception IllegalArgumentException if value &lt; 0
    */
   public JobKOctets(int value)
   {
@@ -65,11 +90,12 @@ public final class JobKOctets extends IntegerSyntax
   }
   
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -82,7 +108,7 @@ public final class JobKOctets extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobKOctets</code> itself
+   * @return The class <code>JobKOctets</code> itself.
    */
   public Class getCategory()
   {
@@ -90,9 +116,9 @@ public final class JobKOctets extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "job-k-octets"
+   * @return The name "job-k-octets".
    */
   public String getName()
   {
index 7561222ca6a21c3e0d9c63b099da328692d9f359..762369565e2f51902e90e917e795b2488b4e25c1 100644 (file)
@@ -1,5 +1,5 @@
 /* JobKOctetsProcessed.java -- 
-   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,6 +41,23 @@ import javax.print.attribute.IntegerSyntax;
 import javax.print.attribute.PrintJobAttribute;
 
 /**
+ * The <code>JobKOctetsProcessed</code> printing attribute reports
+ * the total number of octets already processed in K octets units.
+ * <p>
+ * The supplied value will be rounded up to the next highest K octets.
+ * This attribute will not include a multiplication factor from the number 
+ * of copies.
+ * </p>
+ * <p>
+ * This attribute belongs to a group of job progress attributes which are 
+ * reporting on the progress of a print job.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> JobKOctetsProcessed is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.JobMediaSheetsCompleted
+ * @see javax.print.attribute.standard.JobImpressionsCompleted
+ * 
  * @author Michael Koch
  */
 public final class JobKOctetsProcessed extends IntegerSyntax
@@ -50,10 +67,11 @@ public final class JobKOctetsProcessed extends IntegerSyntax
   
   /**
    * Creates a <code>JobKOctetsProcessed</code> object.
+   * The value is in units of K (1024) octets rounded up to the next highest K. 
    *
    * @param value the number of processed K octets
    *
-   * @exception IllegalArgumentException if value < 0
+   * @exception IllegalArgumentException if value &lt; 0
    */
   public JobKOctetsProcessed(int value)
   {
@@ -64,11 +82,12 @@ public final class JobKOctetsProcessed extends IntegerSyntax
   }
   
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +100,7 @@ public final class JobKOctetsProcessed extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobKOctetsProcessed</code> itself
+   * @return The class <code>JobKOctetsProcessed</code> itself.
    */
   public Class getCategory()
   {
@@ -89,9 +108,9 @@ public final class JobKOctetsProcessed extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "job-k-octets-processed"
+   * @return The name "job-k-octets-processed".
    */
   public String getName()
   {
index 303dc953bd0e9633ccc5567dbbff746e80a1a629..8a4cbfc8c16d57cd0d300fa02147465c00c2e784 100644 (file)
@@ -1,5 +1,5 @@
 /* JobKOctetsSupported.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,7 +42,15 @@ import javax.print.attribute.SupportedValuesAttribute;
 
 
 /**
+ * The <code>JobKOctetsSupported</code> printing attribute specifies the 
+ * supported range of values for the 
+ * {@link javax.print.attribute.standard.JobKOctets} attribute.
+ * <p>
+ * <b>IPP Compatibility:</b> JobKOctetsSupported is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class JobKOctetsSupported extends SetOfIntegerSyntax
   implements SupportedValuesAttribute
@@ -50,17 +58,43 @@ public final class JobKOctetsSupported extends SetOfIntegerSyntax
   private static final long serialVersionUID = -2867871140549897443L;
 
   /**
-   * Constructs a <code>JobKOctetsSupported</code> object.
+   * Constructs a <code>JobKOctetsSupported</code> object with the
+   * given range for supported K octets.
+   *
+   * @param lowerBound the lower bound value
+   * @param upperBound the upper bound value
+   *
+   * @exception IllegalArgumentException if lowerBound &lt;= upperbound
+   * and lowerBound &lt; 1
    */
   public JobKOctetsSupported(int lowerBound, int upperBound)
   {
     super(lowerBound, upperBound);
+    
+    if (lowerBound < 1)
+      throw new IllegalArgumentException("lowerBound may not be less than 1");
+  }
+  
+  /**
+   * Tests if the given object is equal to this object.
+   *
+   * @param obj the object to test
+   *
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if (! (obj instanceof JobKOctetsSupported))
+      return false;
+   
+    return super.equals(obj);
   }
 
   /**
    * Returns category of this class.
    *
-   * @return the class <code>ColorSupported</code> itself
+   * @return The class <code>JobKOctetsSupported</code> itself.
    */
   public Class getCategory()
   {
@@ -70,7 +104,7 @@ public final class JobKOctetsSupported extends SetOfIntegerSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "job-k-octets-supported".
    */
   public String getName()
   {
index 662c54acb22b5de38200738eff83560f41616707..75e072c54a6ac2459dd1703790a964342ec24e80 100644 (file)
@@ -1,5 +1,5 @@
 /* JobMediaSheets.java -- 
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,6 +42,28 @@ import javax.print.attribute.PrintJobAttribute;
 import javax.print.attribute.PrintRequestAttribute;
 
 /**
+ * The <code>JobMediaSheets</code> printing attribute specifies
+ * the total number of media sheets needed by a job.
+ * <p>
+ * In contrary to the other job size attributes this attribute must include
+ * the multiplication factor from the number of copies if a Copies attribute
+ * was specified for the job.
+ * </p>
+ * <p>
+ * This attribute belongs to a group of job size attributes which are 
+ * describing the size of a job to be printed. The values supplied by
+ * these attributes are intended to be used for routing and scheduling
+ * of jobs on the print service. A client may specify these attributes.
+ * If a clients supplies these attributes a print service may change
+ * the values if its be able to compute a more accurate value at the
+ * time of the job submission or also later.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> JobMediaSheets is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.JobKOctets
+ * @see javax.print.attribute.standard.JobImpressions
+ * 
  * @author Michael Koch
  */
 public class JobMediaSheets extends IntegerSyntax
@@ -54,7 +76,7 @@ public class JobMediaSheets extends IntegerSyntax
    *
    * @param value the number of media sheets for a print job
    *
-   * @exception IllegalArgumentException if value < 0
+   * @exception IllegalArgumentException if value &lt; 0
    */
   public JobMediaSheets(int value)
   {
@@ -65,11 +87,12 @@ public class JobMediaSheets extends IntegerSyntax
   }
   
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -82,7 +105,7 @@ public class JobMediaSheets extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobMediaSheets</code> itself
+   * @return The class <code>JobMediaSheets</code> itself.
    */
   public Class getCategory()
   {
@@ -90,9 +113,9 @@ public class JobMediaSheets extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "job-media-sheets"
+   * @return The name "job-media-sheets".
    */
   public String getName()
   {
index 09b82bfcdcccb923f5c0adf8964fd65464fece02..85b9ab0481e6ad2e9ea0e93993bd3a4385e6d9a8 100644 (file)
@@ -1,5 +1,5 @@
 /* JobMediaSheetsCompleted.java -- 
-   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,6 +41,18 @@ import javax.print.attribute.IntegerSyntax;
 import javax.print.attribute.PrintJobAttribute;
 
 /**
+ * The <code>JobMediaSheetsCompleted</code> printing attribute reports
+ * the number of media sheets already processed. 
+ * <p>
+ * This attribute belongs to a group of job progress attributes which are 
+ * reporting on the progress of a print job.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> JobMediaSheetsCompleted is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.JobImpressionsCompleted
+ * @see javax.print.attribute.standard.JobKOctetsProcessed
+ * 
  * @author Michael Koch
  */
 public final class JobMediaSheetsCompleted extends IntegerSyntax
@@ -51,9 +63,9 @@ public final class JobMediaSheetsCompleted extends IntegerSyntax
   /**
    * Creates a <code>JobMediaSheetsCompleted</code> object.
    *
-   * @param value the number of completed media sheets for a print job
+   * @param value the number of completed media sheets
    *
-   * @exception IllegalArgumentException if value < 0
+   * @exception IllegalArgumentException if value &lt; 0
    */
   public JobMediaSheetsCompleted(int value)
   {
@@ -64,11 +76,12 @@ public final class JobMediaSheetsCompleted extends IntegerSyntax
   }
   
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +94,7 @@ public final class JobMediaSheetsCompleted extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobMediaSheetsCompleted</code> itself
+   * @return The class <code>JobMediaSheetsCompleted</code> itself.
    */
   public Class getCategory()
   {
@@ -89,9 +102,9 @@ public final class JobMediaSheetsCompleted extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "job-media-sheets-completed"
+   * @return The name "job-media-sheets-completed".
    */
   public String getName()
   {
index 392fe7ed70887bb6c74d7c17ecca94f6974afc43..cb06af6fabe60eab2f594d39fbbe86e6d9363cbb 100644 (file)
@@ -1,5 +1,5 @@
 /* JobMediaSheetsSupported.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,7 +42,15 @@ import javax.print.attribute.SupportedValuesAttribute;
 
 
 /**
+ * The <code>JobMediaSheetsSupported</code> printing attribute specifies the 
+ * supported range of values for the 
+ * {@link javax.print.attribute.standard.JobMediaSheets} attribute.
+ * <p>
+ * <b>IPP Compatibility:</b> JobMediaSheetsSupported is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class JobMediaSheetsSupported extends SetOfIntegerSyntax
   implements SupportedValuesAttribute
@@ -50,17 +58,43 @@ public final class JobMediaSheetsSupported extends SetOfIntegerSyntax
   private static final long serialVersionUID = 2953685470388672940L;
 
   /**
-   * Constructs a <code>JobMediaSheetsSupported</code> object.
+   * Constructs a <code>JobMediaSheetsSupported</code> object with the 
+   * given range of supported job media sheets values.
+   *
+   * @param lowerBound the lower bound value
+   * @param upperBound the upper bound value
+   *
+   * @exception IllegalArgumentException if lowerBound &lt;= upperbound
+   * and lowerBound &lt; 1
    */
   public JobMediaSheetsSupported(int lowerBound, int upperBound)
   {
     super(lowerBound, upperBound);
+    
+    if (lowerBound < 1)
+      throw new IllegalArgumentException("lowerBound may not be less than 1");
+  }
+  
+  /**
+   * Tests if the given object is equal to this object.
+   *
+   * @param obj the object to test
+   *
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if (! (obj instanceof JobMediaSheetsSupported))
+      return false;
+   
+    return super.equals(obj);
   }
 
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobMediaSheetsSupported</code> itself
+   * @return The class <code>JobMediaSheetsSupported</code> itself.
    */
   public Class getCategory()
   {
@@ -70,7 +104,7 @@ public final class JobMediaSheetsSupported extends SetOfIntegerSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "job-media-sheets-supported".
    */
   public String getName()
   {
index 84eab8b6219e8df14481888bd837d3c92b9dec74..8eaae357c8810cbbc7e131f69bc7e0b8a457f529 100644 (file)
@@ -1,5 +1,5 @@
 /* JobMessageFromOperator.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,15 @@ import javax.print.attribute.PrintJobAttribute;
 import javax.print.attribute.TextSyntax;
 
 /**
+ * The <code>JobMessageFromOperator</code> printing attribute provides 
+ * a message from an operator or a system administrator related to the
+ * print job. This may include information why a certain action has been
+ * taken on the print job like a modification.
+ * <p>
+ * <b>IPP Compatibility:</b> JobMessageFromOperator is an IPP 1.1 
+ * attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class JobMessageFromOperator extends TextSyntax
@@ -55,8 +64,10 @@ public final class JobMessageFromOperator extends TextSyntax
    * Creates a <code>JobMessageFromOperator</code> object.
    *
    * @param message the message
+   * @param locale the locale to use, if <code>null</code> the default
+   * locale is used.
    *
-   * @exception NullPointerException if message is null
+   * @exception NullPointerException if message is <code>null</code>.
    */
   public JobMessageFromOperator(String message, Locale locale)
   {
@@ -64,11 +75,12 @@ public final class JobMessageFromOperator extends TextSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +93,7 @@ public final class JobMessageFromOperator extends TextSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobMessageFromOperator</code> itself
+   * @return The class <code>JobMessageFromOperator</code> itself.
    */
   public Class getCategory()
   {
@@ -89,9 +101,9 @@ public final class JobMessageFromOperator extends TextSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "job-message-from-operator"
+   * @return The name "job-message-from-operator".
    */
   public String getName()
   {
index a64a88cf395c3a9d44d49be375131c31b7a42fd4..c848a63d35e07749bea01a7bef014da5f5437aa3 100644 (file)
@@ -1,5 +1,5 @@
 /* JobName.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -45,6 +45,12 @@ import javax.print.attribute.PrintRequestAttribute;
 import javax.print.attribute.TextSyntax;
 
 /**
+ * The <code>JobName</code> printing attribute provides the name of a 
+ * print job for identification.
+ * <p>
+ * <b>IPP Compatibility:</b> JobName is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class JobName extends TextSyntax
@@ -55,9 +61,11 @@ public final class JobName extends TextSyntax
   /**
    * Creates a <code>JobName</code> object.
    *
-   * @param jobName the job name
+   * @param jobName the job name.
+   * @param locale the locale to use, if <code>null</code> the default
+   * locale is used.
    *
-   * @exception NullPointerException if jobName is null
+   * @exception NullPointerException if jobName is <code>null</code>.
    */
   public JobName(String jobName, Locale locale)
   {
@@ -65,11 +73,12 @@ public final class JobName extends TextSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -82,7 +91,7 @@ public final class JobName extends TextSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobName</code> itself
+   * @return The class <code>JobName</code> itself.
    */
   public Class getCategory()
   {
@@ -90,9 +99,9 @@ public final class JobName extends TextSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "job-name"
+   * @return The name "job-name".
    */
   public String getName()
   {
index 116de28cfb7c278fdf64082737c8ce15655fdfb1..2d6e79df65434b7f33ad1edb08e05235b9d9aae9 100644 (file)
@@ -1,5 +1,5 @@
 /* JobOriginatingUserName.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,12 @@ import javax.print.attribute.PrintJobAttribute;
 import javax.print.attribute.TextSyntax;
 
 /**
+ * The <code>JobOriginatingUserName</code> attribute specifies the name of 
+ * the user which submitted the print job.
+ * <p>
+ * <b>IPP Compatibility:</b> JobOriginatingUserName is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class JobOriginatingUserName extends TextSyntax
@@ -55,8 +61,10 @@ public final class JobOriginatingUserName extends TextSyntax
    * Creates a <code>JobOriginatingUserName</code> object.
    *
    * @param userName the user name
+   * @param locale the locale to use, if <code>null</code> the default
+   * locale is used.
    *
-   * @exception NullPointerException if userName is null
+   * @exception NullPointerException if userName is <code>null</code>.
    */
   public JobOriginatingUserName(String userName, Locale locale)
   {
@@ -64,11 +72,12 @@ public final class JobOriginatingUserName extends TextSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +90,7 @@ public final class JobOriginatingUserName extends TextSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobOriginatingUserName</code> itself
+   * @return The class <code>JobOriginatingUserName</code> itself.
    */
   public Class getCategory()
   {
@@ -89,9 +98,9 @@ public final class JobOriginatingUserName extends TextSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "job-originating-user-name"
+   * @return The name "job-originating-user-name".
    */
   public String getName()
   {
index 6c88dfc9ee52651833570de87ec1ff60988893bc..bcfb239ed9bba63a2a5c305f53aeb09dc5ca4bba 100644 (file)
@@ -1,5 +1,5 @@
 /* JobPriority.java -- 
-   Copyright (C) 2003, 2004  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -43,6 +43,17 @@ import javax.print.attribute.PrintRequestAttribute;
 
 
 /**
+ * The <code>JobPriority</code> printing attribute specifies
+ * the priority for scheduling a job on the print service.
+ * <p>
+ * A client may specify any value between 1 (lowest priority) and 100 
+ * (highest priority). A print service prints jobs with a priority
+ * value of n before those with a priority value of n-1.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> JobPriority is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class JobPriority extends IntegerSyntax
@@ -55,7 +66,7 @@ public final class JobPriority extends IntegerSyntax
    *
    * @param value the priority
    *
-   * @exception IllegalArgumentException if value < 1 or value > 100
+   * @exception IllegalArgumentException if value &lt; 1 or value &gt; 100
    */
   public JobPriority(int value)
   {
@@ -66,11 +77,12 @@ public final class JobPriority extends IntegerSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -83,7 +95,7 @@ public final class JobPriority extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobPriority</code> itself
+   * @return The class <code>JobPriority</code> itself.
    */
   public Class getCategory()
   {
@@ -91,9 +103,9 @@ public final class JobPriority extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "job-priority"
+   * @return The name "job-priority".
    */
   public String getName()
   {
index fdfe6c7c587bfda98054e8e81feb82e7305ed8cb..0db7107b304d829c6bbc2c29cbdd984e45627ea3 100644 (file)
@@ -1,5 +1,5 @@
 /* JobPrioritySupported.java -- 
-   Copyright (C) 2003, 2004  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,6 +42,20 @@ import javax.print.attribute.SupportedValuesAttribute;
 
 
 /**
+ * The <code>JobPrioritySupported</code> printing attribute provides
+ * the supported values for the <code>JobPriority</code> attribute.
+ * <p>
+ * A client may specify any JobPriority value between 1 and 100. If a
+ * print service supports fewer priority levels it indicates the maximum
+ * levels through this attribute. The print service then automatically 
+ * maps the job priority value provided by the client in an even distribution
+ * over the whole range of 1 to 100.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> JobPrioritySupported is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.JobPriority
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class JobPrioritySupported extends IntegerSyntax
@@ -54,7 +68,7 @@ public final class JobPrioritySupported extends IntegerSyntax
    *
    * @param value the priority
    *
-   * @exception IllegalArgumentException if value < 1 or value > 100
+   * @exception IllegalArgumentException if value &lt; 1 or value &gt; 100
    */
   public JobPrioritySupported(int value)
   {
@@ -65,11 +79,12 @@ public final class JobPrioritySupported extends IntegerSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -82,7 +97,7 @@ public final class JobPrioritySupported extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobPrioritySupported</code> itself
+   * @return The class <code>JobPrioritySupported</code> itself.
    */
   public Class getCategory()
   {
@@ -90,9 +105,9 @@ public final class JobPrioritySupported extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "job-priority-supported"
+   * @return The name "job-priority-supported".
    */
   public String getName()
   {
index 183aed2a1244e9c2175da651a889300363f29696..d61acfee99ca01797c9abc10b319068ae39cf463 100644 (file)
@@ -1,5 +1,5 @@
 /* JobSheets.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -43,18 +43,40 @@ import javax.print.attribute.PrintRequestAttribute;
 
 
 /**
+ * The <code>JobSheets</code> printing attribute specifies if a
+ * job start/end sheets should be printed. 
+ * <p>
+ * <b>IPP Compatibility:</b> JobSheets is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public class JobSheets extends EnumSyntax
   implements PrintJobAttribute, PrintRequestAttribute
 {
   private static final long serialVersionUID = -4735258056132519759L;
 
+  /**
+   * No job sheet is printed. 
+   */
   public static final JobSheets NONE = new JobSheets(0);
+  
+  /**
+   * The standard job sheet is printed. The sheet and if it 
+   * is printed only as start sheet or also as end sheet is
+   * site specific.
+   */
   public static final JobSheets STANDARD = new JobSheets(1);
 
+  private static final String[] stringTable = { "none", "standard" };
+  
+  private static final JobSheets[] enumValueTable = { NONE, STANDARD };
+  
   /**
    * Constructs a <code>JobSheets</code> object.
+   * 
+   * @param value the enum value.
    */
   protected JobSheets(int value)
   {
@@ -64,7 +86,7 @@ public class JobSheets extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobSheets</code> itself
+   * @return The class <code>JobSheets</code> itself.
    */
   public Class getCategory()
   {
@@ -74,10 +96,31 @@ public class JobSheets extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "job-sheets".
    */
   public String getName()
   {
     return "job-sheets";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index 1350e697f877eb3dde636b4ee713385c70a3915b..bd09e1fb1d29bde84ec78509c140df25665603dd 100644 (file)
@@ -1,5 +1,5 @@
 /* JobState.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,24 +42,90 @@ import javax.print.attribute.PrintJobAttribute;
 
 
 /**
+ * The <code>JobState</code> printing attribute reports
+ * the current state of a job.
+ * <p>
+ * The {@link javax.print.attribute.standard.JobStateReasons}
+ * attribute provides further detailed information about
+ * the given job state. Detailed information about the job
+ * state and job state reasons can be found in the RFC 2911.
+ * </p> 
+ * <p>
+ * <b>IPP Compatibility:</b> JobState is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public class JobState extends EnumSyntax
   implements PrintJobAttribute
 {
   private static final long serialVersionUID = 400465010094018920L;
 
+  /**
+   * The job state is currently unknown.
+   */
   public static final JobState UNKNOWN = new JobState(0);
-  public static final JobState PENDING = new JobState(1);
-  public static final JobState PENDING_HELD = new JobState(2);
-  public static final JobState PROCESSING = new JobState(3);
-  public static final JobState PROCESSING_STOPPED = new JobState(4);
-  public static final JobState CANCELED = new JobState(5);
-  public static final JobState ABORTED = new JobState(6);
-  public static final JobState COMPLETED = new JobState(7);
+  
+  /**
+   * The job is pending processing.
+   */
+  public static final JobState PENDING = new JobState(3);
+  
+  /**
+   * The job is currently not a candidate for printing because
+   * of reasons reported by the job-state-reasons attribute. If
+   * the reasons are no longer present it will return to the
+   * pending state.
+   */
+  public static final JobState PENDING_HELD = new JobState(4);
+  
+  /**
+   * The job is currently processed.
+   */
+  public static final JobState PROCESSING = new JobState(5);
+  
+  /**
+   * The job's processing has stopped. The job-state-reasons
+   * attribute may indicate the reason(s). The job will return
+   * to the processing state if the reasons are no longer present.
+   */
+  public static final JobState PROCESSING_STOPPED = new JobState(6);
+  
+  /**
+   * The job has been canceled by the client.
+   */
+  public static final JobState CANCELED = new JobState(7);
+  
+  /**
+   * The job has been aborted by the system.
+   */
+  public static final JobState ABORTED = new JobState(8);
+  
+  /**
+   * The job has completed successfully.
+   */
+  public static final JobState COMPLETED = new JobState(9);
 
+
+  private static final String[] stringTable = { "unknown", null, null, 
+                                                "pending", "pending-held",
+                                                "processing", 
+                                                "processing-stopped",
+                                                "canceled", "aborted", 
+                                                "completed"};
+  
+  private static final JobState[] enumValueTable = { UNKNOWN, null, null,
+                                                     PENDING, PENDING_HELD,
+                                                     PROCESSING,
+                                                     PROCESSING_STOPPED,
+                                                     CANCELED, ABORTED,
+                                                     COMPLETED };
+  
   /**
    * Constructs a <code>JobState</code> object.
+   * 
+   * @param value the enum value.
    */
   protected JobState(int value)
   {
@@ -69,7 +135,7 @@ public class JobState extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobState</code> itself
+   * @return The class <code>JobState</code> itself.
    */
   public Class getCategory()
   {
@@ -79,10 +145,31 @@ public class JobState extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "job-state".
    */
   public String getName()
   {
     return "job-state";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index 4a9f1a91a982a5b7c2e36a9156c018add27ecc11..bd831cda51f965f58ff8a86de3e9751b0a5a754d 100644 (file)
@@ -1,5 +1,5 @@
 /* JobStateReason.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,45 +42,215 @@ import javax.print.attribute.EnumSyntax;
 
 
 /**
+ * The <code>JobStateReason</code> attribute provides additional
+ * information about the current state of a job. Its always part
+ * of the {@link javax.print.attribute.standard.JobStateReasons}
+ * printing attribute. 
+ * <p>
+ * <b>IPP Compatibility:</b> JobStateReason is not an IPP 1.1 
+ * attribute itself but used inside the <code>JobStateReasons</code>
+ * attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public class JobStateReason extends EnumSyntax
   implements Attribute
 {
   private static final long serialVersionUID = -8765894420449009168L;
 
+  /**
+   * The printer has accepted the job or is retrieving document
+   * data for processing.
+   */
   public static final JobStateReason JOB_INCOMING = new JobStateReason(0);
+  
+  /**
+   * The printer is expecting additional document data before it
+   * can move this job into the processing state.
+   */
   public static final JobStateReason JOB_DATA_INSUFFICIENT = new JobStateReason(1);
+  
+  /**
+   * The printer is unable to access one or more documents provided
+   * by reference in the print job.
+   */
   public static final JobStateReason DOCUMENT_ACCESS_ERROR = new JobStateReason(2);
+  
+  /**
+   * The printer has not received the whole job submission. This
+   * indicates no reason for the interruption.
+   */
   public static final JobStateReason SUBMISSION_INTERRUPTED = new JobStateReason(3);
+  
+  /**
+   * The printer transfers the job to the actual output device.
+   */
   public static final JobStateReason JOB_OUTGOING = new JobStateReason(4);
+  
+  /**
+   * The job was submitted with a <code>JobHoldUntil</code> attribute which 
+   * specifies a time period still in the future and causes the job to 
+   * be on hold.
+   */
   public static final JobStateReason JOB_HOLD_UNTIL_SPECIFIED = new JobStateReason(5);
+  
+  /**
+   * One or more resources needed by the job are not ready. E.g. needed
+   * media type.
+   */
   public static final JobStateReason RESOURCES_ARE_NOT_READY = new JobStateReason(6);
+  
+  /**
+   * The printer stopped partly.
+   */
   public static final JobStateReason PRINTER_STOPPED_PARTLY = new JobStateReason(7);
+  
+  /**
+   * The printer stopped complete.
+   */
   public static final JobStateReason PRINTER_STOPPED = new JobStateReason(8);
+  
+  /**
+   * The printer is currently interpreting the jobs document data.
+   * Detailed state of the job's processing state.
+   */
   public static final JobStateReason JOB_INTERPRETING = new JobStateReason(9);
+  
+  /**
+   * The printer has queued the document data.
+   * Detailed state of the job's processing state.
+   */
   public static final JobStateReason JOB_QUEUED = new JobStateReason(10);
+  
+  /**
+   * The printer is transforming the document data to another representation.
+   * Detailed state of the job's processing state.
+   */
   public static final JobStateReason JOB_TRANSFORMING = new JobStateReason(11);
+  
+  /**
+   * The job is queued for marking.
+   */
   public static final JobStateReason JOB_QUEUED_FOR_MARKER = new JobStateReason(12);
+  
+  /**
+   * The job is currently printing.
+   */
   public static final JobStateReason JOB_PRINTING = new JobStateReason(13);
+  
+  /**
+   * The job was canceled by the user (the owner of the job).
+   */
   public static final JobStateReason JOB_CANCELED_BY_USER = new JobStateReason(14);
+  
+  /**
+   * The job was canceled by the operator.
+   */
   public static final JobStateReason JOB_CANCELED_BY_OPERATOR = new JobStateReason(15);
+  
+  /**
+   * The job was canceled by an unidentified local user at the device.
+   */
   public static final JobStateReason JOB_CANCELED_AT_DEVICE = new JobStateReason(16);
+  
+  /**
+   * The job has been aborted by the system.
+   */
   public static final JobStateReason ABORTED_BY_SYSTEM = new JobStateReason(17);
+  
+  /**
+   * The printer aborted the job because of an unsupported compression while
+   * trying to decompress the document data.
+   */
   public static final JobStateReason UNSUPPORTED_COMPRESSION = new JobStateReason(18);
+  
+  /**
+   * The printer aborted the job because of a compression error while
+   * trying to decompress the document data. If this state is given the test
+   * for supported compression has already been passed.
+   */
   public static final JobStateReason COMPRESSION_ERROR = new JobStateReason(19);
+  
+  /**
+   * The printer aborted the job because of the document format is not supported.
+   * This may happen if a job is specified as application/octet-stream format. 
+   */
   public static final JobStateReason UNSUPPORTED_DOCUMENT_FORMAT = new JobStateReason(20);
+  
+  /**
+   * The printer aborted the job because of an error in the document data. 
+   */
   public static final JobStateReason DOCUMENT_FORMAT_ERROR = new JobStateReason(21);
+  
+  /**
+   * The client has either canceled the job or the printer aborted the job.
+   * However the printer still performs some action on the job e.g. to cleanup. 
+   */
   public static final JobStateReason PROCESSING_TO_STOP_POINT = new JobStateReason(22);
+  
+  /**
+   * The printer is offline and therefore is not accepting jobs.
+   */
   public static final JobStateReason SERVICE_OFF_LINE = new JobStateReason(23);
+  
+  /**
+   * The printer completed the job successfully. 
+   */
   public static final JobStateReason JOB_COMPLETED_SUCCESSFULLY = new JobStateReason(24);
+  
+  /**
+   * The printer completed the job with warnings.
+   */
   public static final JobStateReason JOB_COMPLETED_WITH_WARNINGS = new JobStateReason(25);
+  
+  /**
+   * The printer completed the job with errors.
+   */
   public static final JobStateReason JOB_COMPLETED_WITH_ERRORS = new JobStateReason(26);
+  
+  /**
+   * The job is retained and is able to be restared. 
+   */
   public static final JobStateReason JOB_RESTARTABLE = new JobStateReason(27);
+  
+  /**
+   * The printer has forwarded the job to the actual output device. This device
+   * is not capable of reporting the state back so that the job state is set
+   * to completed by the printer. 
+   */
   public static final JobStateReason QUEUED_IN_DEVICE = new JobStateReason(28);
 
+  private static final String[] stringTable = 
+    { "job-incoming", "job-data-insufficient", "document-access-error", 
+      "submission-interrupted", "job-outgoing", "job-hold-until-specified",
+      "resources-are-not-ready", "printer-stopped-partly", "printer-stopped",
+      "job-interpreting", "job-queued", "job-transforming", 
+      "job-queued-for-marker", "job-printing", "job-canceled-by-user",
+      "job-canceled-by-operator", "job-canceled-at-device", 
+      "aborted-by-system", "unsupported-compression", "compression-error",
+      "unsupported-document-format", "document-format-error", 
+      "processing-to-stop-point", "service-off-line", 
+      "job-completed-successfully", "job-completed-with-warnings", 
+      "job-completed-with-errors", "job-restartable", "queued-in-device" };
+  
+  private static final JobStateReason[] enumValueTable = 
+    { JOB_INCOMING, JOB_DATA_INSUFFICIENT, DOCUMENT_ACCESS_ERROR, 
+      SUBMISSION_INTERRUPTED, JOB_OUTGOING, JOB_HOLD_UNTIL_SPECIFIED, 
+      RESOURCES_ARE_NOT_READY, PRINTER_STOPPED_PARTLY, PRINTER_STOPPED,
+      JOB_INTERPRETING, JOB_QUEUED, JOB_TRANSFORMING, JOB_QUEUED_FOR_MARKER,
+      JOB_PRINTING, JOB_CANCELED_BY_USER, JOB_CANCELED_BY_OPERATOR,
+      JOB_CANCELED_AT_DEVICE, ABORTED_BY_SYSTEM, UNSUPPORTED_COMPRESSION,
+      COMPRESSION_ERROR, UNSUPPORTED_DOCUMENT_FORMAT, DOCUMENT_FORMAT_ERROR,
+      PROCESSING_TO_STOP_POINT, SERVICE_OFF_LINE, JOB_COMPLETED_SUCCESSFULLY,
+      JOB_COMPLETED_WITH_WARNINGS, JOB_COMPLETED_WITH_ERRORS, JOB_RESTARTABLE,
+      QUEUED_IN_DEVICE };
+  
   /**
    * Constructs a <code>JobStateReason</code> object.
+   * 
+   * @param value the enum value.
    */
   protected JobStateReason(int value)
   {
@@ -90,7 +260,7 @@ public class JobStateReason extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>JobStateReason</code> itself
+   * @return The class <code>JobStateReason</code> itself.
    */
   public Class getCategory()
   {
@@ -100,10 +270,31 @@ public class JobStateReason extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "job-state-reason".
    */
   public String getName()
   {
     return "job-state-reason";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index 39187373dedccb9f7f5798cbe1264c5e7f37f9bb..9dbca0cd57b921b284ce336c088170e91e7f8588 100644 (file)
@@ -1,5 +1,5 @@
 /* JobStateReasons.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -38,22 +38,106 @@ exception statement from your version. */
 
 package javax.print.attribute.standard;
 
+import java.util.Collection;
 import java.util.HashSet;
+import java.util.Iterator;
 
 import javax.print.attribute.PrintJobAttribute;
 
 /**
+ * The <code>JobStateReasons</code> attribute provides the set of 
+ * additional informations available about the current state of a print job. 
+ * <p>
+ * <b>IPP Compatibility:</b> JobStateReasons is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.JobState
+ * @see javax.print.attribute.standard.JobStateReason
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class JobStateReasons extends HashSet
   implements PrintJobAttribute
 {
   private static final long serialVersionUID = 8849088261264331812L;
 
+  /**
+   * Constructs an empty <code>JobStateReasons</code> attribute.
+   */  
+  public JobStateReasons()
+  {
+    super();
+  }
+
+  /**
+   * Constructs an empty <code>JobStateReasons</code> attribute
+   * with the given initial capacity and load factor.
+   * 
+   * @param initialCapacity the intial capacity.
+   * @param loadFactor the load factor of the underlying HashSet.
+   * 
+   * @throws IllegalArgumentException if initialCapacity &lt; 0
+   * @throws IllegalArgumentException if initialCapacity or loadFactor &lt; 0
+   */
+  public JobStateReasons(int initialCapacity, float loadFactor)
+  {
+    super(initialCapacity, loadFactor);
+  }
+
+  /**
+   * Constructs an empty <code>JobStateReasons</code> attribute
+   * with the given initial capacity and the default load factor.
+   * 
+   * @param initialCapacity the intial capacity.
+   * 
+   * @throws IllegalArgumentException if initialCapacity &lt; 0
+   */
+  public JobStateReasons(int initialCapacity)
+  {
+    super(initialCapacity);
+  }
+
+  /**
+   * Constructs a <code>JobStateReasons</code> attribute
+   * with the content of the given collection.
+   * 
+   * @param collection the collection for the initial values.
+   * 
+   * @throws NullPointerException if collection or any value is 
+   * <code>null</code>.
+   * @throws ClassCastException if values of collection are not of type 
+   * <code>JobStateReason</code>.
+   */
+  public JobStateReasons(Collection collection)
+  {
+    super(collection.size(), 0.75f);
+    Iterator it = collection.iterator();
+    while (it.hasNext())
+      add(it.next());
+  }
+
+  /**
+   * Adds the given job state reason object to the set.
+   * 
+   * @param o the reason of type <code>JobStateReason</code>.
+   * @return <code>true</code> if set changed, <code>false</code> otherwise.
+   * 
+   * @throws NullPointerException if given object is <code>null</code>.
+   * @throws ClassCastException if given object is not an instance of
+   * <code>JobStateReason</code>.
+   */
+  public boolean add(Object o)
+  {
+    if (o == null)
+      throw new NullPointerException("reason is null");  
+    
+    return add((JobStateReason) o);
+  }
+  
   /**
    * Returns category of this class.
    *
-   * @return the class <code>ColorSupported</code> itself
+   * @return The class <code>JobStateReasons</code> itself.
    */
   public Class getCategory()
   {
@@ -63,7 +147,7 @@ public final class JobStateReasons extends HashSet
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "job-state-reasons".
    */
   public String getName()
   {
index ebb15d0d074004b95259dacd673ba5350bc4b4e1..202a3f3f091d59d6ab9cd08f42f40c39193ed60e 100644 (file)
@@ -1,5 +1,5 @@
 /* Media.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,7 +44,27 @@ import javax.print.attribute.PrintRequestAttribute;
 
 
 /**
+ * The <code>Media</code> printing attribute specifies which
+ * type of media should be used for printing.
+ * <p>
+ * The media to be used can be specified in three ways represented
+ * by the media subclasses {@link javax.print.attribute.standard.MediaTray},
+ * {@link javax.print.attribute.standard.MediaName} and 
+ * {@link javax.print.attribute.standard.MediaSizeName}:
+ * <ul>
+ * <li>Selection by paper source - selection of printer tray to be used.</li>
+ * <li>Selection by name - e.g. A4 paper.</li>
+ * <li>Selection by standard sizes - e.g. ISO A5, JIS B4.</li>
+ * </ul>
+ * Each of the sublcasses represents the IPP attribute <code>media</code>
+ * and provides predefined values to be used.
+ * </p> 
+ * <p>
+ * <b>IPP Compatibility:</b> Media is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public abstract class Media extends EnumSyntax
   implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
@@ -53,16 +73,37 @@ public abstract class Media extends EnumSyntax
 
   /**
    * Constructs a <code>Media</code> object.
+   * 
+   * @param value the enum value.
    */
   protected Media(int value)
   {
     super(value);
   }
+    
+  /**
+   * Tests if the given object is equal to this object.
+   * The objects are considered equal if both are of the same
+   * Media subclass, not null and the values are equal.
+   *
+   * @param obj the object to test
+   *
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if (obj == null)
+      return false;
+    
+    return (obj.getClass() == this.getClass()
+            && ((Media) obj).getValue() == this.getValue());
+  }
 
   /**
    * Returns category of this class.
    *
-   * @return the class <code>Media</code> itself
+   * @return The class <code>Media</code> itself.
    */
   public Class getCategory()
   {
@@ -72,7 +113,7 @@ public abstract class Media extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "media".
    */
   public String getName()
   {
diff --git a/libjava/classpath/javax/print/attribute/standard/MediaName.java b/libjava/classpath/javax/print/attribute/standard/MediaName.java
new file mode 100644 (file)
index 0000000..2fa7cea
--- /dev/null
@@ -0,0 +1,121 @@
+/* MediaName.java --
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.print.attribute.standard;
+
+import javax.print.attribute.EnumSyntax;
+
+/**
+ * <code>MediaName</code> is a subclass of the <code>Media</code> printing 
+ * attribute and provides selection of media to be used by the means of 
+ * defined names. The class pre-defines commonly available media names. 
+ * This media type enumeration may be used in alternative to 
+ * MediaSizeName/MediaTray.
+ * <p>
+ * <b>IPP Compatibility:</b> MediaName is not an IPP 1.1 attribute on its own.
+ * It provides parts of the <code>media</code> attribute type values.
+ * </p>
+ * 
+ * @author Sven de Marothy
+ * @author Wolfgang Baer (WBaer@gmx.de)
+ */
+public class MediaName extends Media
+{
+  private static final long serialVersionUID = 4653117714524155448L;
+  
+  /**
+   * The North American letter white medium.
+   */
+  public static final MediaName NA_LETTER_WHITE = new MediaName(0);
+  
+  /**
+   * The North American letter transparent medium.
+   */
+  public static final MediaName NA_LETTER_TRANSPARENT = new MediaName(1);
+  
+  /**
+   * The ISO A4 white medium.
+   */
+  public static final MediaName ISO_A4_WHITE = new MediaName(2);
+  
+  /**
+   * The ISO A4 transparent medium. 
+   */
+  public static final MediaName ISO_A4_TRANSPARENT = new MediaName(3);
+
+  private static final String[] stringTable = { "na-letter-white", 
+                                                "na-letter-transparent", 
+                                                "iso-a4-white",
+                                                "iso-a4-transparent" };
+  
+  private static final MediaName[] enumValueTable = { NA_LETTER_WHITE, 
+                                                      NA_LETTER_TRANSPARENT, 
+                                                      ISO_A4_WHITE, 
+                                                      ISO_A4_TRANSPARENT };  
+  
+  /**
+   * Creates a <code>MediaName</code> object.
+   *
+   * @param i the enum value.
+   */
+  protected MediaName(int i)
+  {
+    super( i );
+  }
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
+}
+
index c7cf8d3a991af261345830ecd48b51f9a63ceeb5..9a1342cb43f3cf04a8d0ffd86043bc04e6eca787 100644 (file)
@@ -43,23 +43,71 @@ import javax.print.attribute.PrintJobAttribute;
 import javax.print.attribute.PrintRequestAttribute;
 
 /**
+ * The <code>MediaPrintableArea</code> attribute specifies the area
+ * of a media sheet which is available for printing.
+ * <p>
+ * Due to hardware limitation its not possible with most printers to use the 
+ * whole area of a media sheet for printing. This attribute defines the area 
+ * for printing through the values of the upper left corner position (x,y)
+ * on the sheet and the available width and height of the area. The units of 
+ * the values are determined by two defined constants:
+ * <ul>
+ * <li>INCH - defines an inch</li>
+ * <li>MM - defines a millimeter</li>
+ * </ul>
+ * </p>
+ * <p>
+ * <b>Internal storage:</b><br>
+ * The values of x, y, width and height are stored internally in micrometers. 
+ * The values of the provided constants for inch (value 25400) and millimeters
+ * (value 1000) are used as conversion factors to the internal storage units.
+ * To get the internal micrometers values a multiplication of a given
+ * size value with its units constant value is done. Retrieving the size value
+ * for specific units is done by dividing the internal stored value by the 
+ * units constant value.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> MediaPrintableArea is not an IPP 1.1 attribute.
+ * </p>
+ *
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class MediaPrintableArea
   implements DocAttribute, PrintJobAttribute, PrintRequestAttribute
 {
   private static final long serialVersionUID = -1597171464050795793L;
 
+  /**
+   * Constant for the units of inches.
+   * The actual value is the conversion factor to micrometers.
+   */
   public static final int INCH = 25400;
+  
+  /**
+   * Constant for the units of millimeters.
+   * The actual value is the conversion factor to micrometers.
+   */
   public static final int MM = 1000;
   
-  private float x;
-  private float y;
-  private float width;
-  private float height;
+  /** x in micrometers. */
+  private int x;
+  /** y in micrometers. */
+  private int y;
+  /** width in micrometers. */
+  private int width;
+  /** height in micrometers. */
+  private int height;
   
   /**
-   * Creates a new <code>MediaPrintableArea</code> object.
+   * Creates a new <code>MediaPrintableArea</code> object with the given
+   * float values for the given units.
+   * 
+   * @param x start of the printable area on the sheet in x direction.
+   * @param y start of the printable area on the sheet in y direction.
+   * @param w the width of the printable area.
+   * @param h the height of the printable area.
+   * @param units the units of the given values.
    * 
    * @throws IllegalArgumentException if x i&lt; 0 or y i&lt; 0 or w i&lt;= 0
    * or h i&lt;= 0 or units i&lt; 1
@@ -69,14 +117,21 @@ public final class MediaPrintableArea
     if (x < 0.0f || y < 0.0f || w <= 0.0f || h <= 0.0f)
       throw new IllegalArgumentException();
 
-    this.x = x;
-    this.y = y;
-    this.width = w;
-    this.height = h;
+    this.x = (int) (x * units + 0.5f);
+    this.y = (int) (y * units + 0.5f);
+    this.width = (int) (w * units + 0.5f);
+    this.height = (int) (h * units + 0.5f);
   }
 
   /**
-   * Creates a new <code>MediaPrintableArea</code> object.
+   * Creates a new <code>MediaPrintableArea</code> object with the given
+   * int values for the given units.
+   * 
+   * @param x start of the printable area on the sheet in x direction.
+   * @param y start of the printable area on the sheet in y direction.
+   * @param w the width of the printable area.
+   * @param h the height of the printable area.
+   * @param units the units of the given values.
    * 
    * @throws IllegalArgumentException if x i&lt; 0 or y i&lt; 0 or w i&lt;= 0
    * or h i&lt;= 0 or units i&lt; 1
@@ -86,16 +141,16 @@ public final class MediaPrintableArea
     if (x < 0 || y < 0 || w <= 0 || h <= 0)
       throw new IllegalArgumentException();
 
-    this.x = x;
-    this.y = y;
-    this.width = w;
-    this.height = h;
+    this.x = x * units;
+    this.y = y * units;
+    this.width = w * units;
+    this.height = h * units;
   }
 
   /**
    * Returns category of this class.
    *
-   * @return the class <code>MediaPrintableArea</code> itself
+   * @return The class <code>MediaPrintableArea</code> itself.
    */
   public Class getCategory()
   {
@@ -103,44 +158,154 @@ public final class MediaPrintableArea
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "media-printable-area"
+   * @return The name "media-printable-area".
    */
   public String getName()
   {
     return "media-printable-area";
   }
 
+  /**
+   * Returns the height of the printable area for the given units.
+   * 
+   * @param units the units conversion factor.
+   * @return The height.
+   * 
+   * @throws IllegalArgumentException if <code>units</code> is &lt; 1
+   */
   public float getHeight(int units)
   {
     if (units < 1)
-      throw new IllegalArgumentException();
+      throw new IllegalArgumentException("units may not be less than 1");
 
-    return height * units;
+    return height / ((float)units);
   }
 
+  /**
+   * Returns the width of the printable area for the given units.
+   * 
+   * @param units the units conversion factor.
+   * @return The width.
+   * 
+   * @throws IllegalArgumentException if <code>units</code> is &lt; 1
+   */
   public float getWidth(int units)
   {
     if (units < 1)
-      throw new IllegalArgumentException();
+      throw new IllegalArgumentException("units may not be less than 1");
 
-    return width * units;
+    return width / ((float)units);
   }
 
+  /**
+   * Returns the position in x direction of the printable area 
+   * for the given units.
+   * 
+   * @param units the units conversion factor.
+   * @return The position in x direction.
+   * 
+   * @throws IllegalArgumentException if <code>units</code> is &lt; 1
+   */
   public float getX(int units)
   {
     if (units < 1)
-      throw new IllegalArgumentException();
+      throw new IllegalArgumentException("units may not be less than 1");
 
-    return x * units;
+    return x / ((float)units);
   }
 
+  /**
+   * Returns the position in y direction of the printable area 
+   * for the given units.
+   * 
+   * @param units the units conversion factor.
+   * @return The position in y direction.
+   * 
+   * @throws IllegalArgumentException if <code>units</code> is &lt; 1
+   */
   public float getY(int units)
   {
     if (units < 1)
-      throw new IllegalArgumentException();
+      throw new IllegalArgumentException("units may not be less than 1");
 
-    return y * units;
+    return y / ((float)units);
   }
+  
+  /**
+   * Tests if the given object is equal to this object.
+   *
+   * @param obj the object to test
+   *
+   * @return <code>true</code> if both objects are equal, <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if (! (obj instanceof MediaPrintableArea))
+      return false;
+
+    MediaPrintableArea tmp = (MediaPrintableArea) obj;
+
+    return (x == tmp.getX(1) && y == tmp.getY(1)
+            && width == tmp.getWidth(1) && height == tmp.getHeight(1));
+  }
+
+  /**
+   * Returns the string representation for this object in units of millimeters..
+   * <p>
+   * The returned string is in the form "(x,y)->(width,height)mm".
+   * </p> 
+   * @return The string representation in millimeters.
+   */
+  public String toString()
+  {
+    return toString(MM, "mm");
+  }
+
+  /**
+   * Returns the hashcode for this object.
+   *
+   * @return The hashcode.
+   */
+  public int hashCode()
+  {
+    return x ^ y + width ^ height;
+  }
+  
+  /**
+   * Returns the string representation for this object in units of millimeters..
+   * <p>
+   * The returned string is in the form "(x,y)->(width,height)unitsName".
+   * </p>
+   * @param units the units to use for conversion.
+   * @param unitsName the name of the used units, appended to the resulting
+   * string if not <code>null</code>.
+   * @return The string representation in millimeters.
+   * 
+   * @throws IllegalArgumentException if <code>units</code> is &lt; 1
+   */
+  public String toString(int units, String unitsName)
+  {
+    if (units < 1)
+      throw new IllegalArgumentException("units may not be less than 1");
+    
+    String tmp = "(" + getX(units) + "," + getY(units) + ")->("
+                 + getWidth(units) + "," + getHeight(units) + ")";
+    
+    return unitsName == null ? tmp : tmp + unitsName;
+  }
+
+  /**
+   * Returns the printable area as an float[] with 4 values 
+   * (order x, y, width, height) in the given units.
+   * 
+   * @param units the units to use.
+   * @return The printable area as float array.
+   */
+  public float[] getPrintableArea(int units)
+  {
+    return new float[] { getX(units), getY(units), 
+                         getWidth(units), getHeight(units) };
+  }  
 }
index 6abf97974bd5a82eb7ddb7f68d0c36356e0b489f..00bcb34954f0294978c2f2405d9d65d2c4335ccc 100644 (file)
@@ -43,47 +43,171 @@ import java.util.ArrayList;
 import javax.print.attribute.Attribute;
 import javax.print.attribute.Size2DSyntax;
 
+/**
+ * The <code>MediaSize</code> printing attribute class specifies the size
+ * of a printing media. The size is defined in portrait orientation with 
+ * x at the bottom edge and y at the left edge.
+ * <p>
+ * There are several media sizes predefined through the nested classes. Further
+ * sizes may be provided by the application. <code>MediaSize</code> is not used
+ * as a printing attribute currently. It may be used to get the actual sizes 
+ * for a named media or to find a suitable <code>MediaSizeName</code> instance
+ * by querying with the needed sizes.
+ * </p> 
+ * <p>
+ * <b>IPP Compatibility:</b> MediaSize is not an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.MediaSizeName
+ * 
+ * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
+ */
 public class MediaSize extends Size2DSyntax
   implements Attribute
 {
   private static final long serialVersionUID = -1967958664615414771L;
 
-  private static ArrayList mediaCache = new ArrayList();
+  private static ArrayList mediaCache;
+  
+  static
+    {
+      mediaCache = new ArrayList();
+
+      MediaSize tmp = MediaSize.ISO.A0;
+      tmp = MediaSize.JIS.B0;
+      tmp = MediaSize.Engineering.A;
+      tmp = MediaSize.NA.LEGAL;
+      tmp = MediaSize.Other.EXECUTIVE;
+    }
   
   private MediaSizeName media;
   
+  /**
+   * Creates a <code>MediaSize</code> object.
+   *
+   * @param x the size in x direction
+   * @param y the size in y direction
+   * @param units the units to use for the sizes
+   *
+   * @exception IllegalArgumentException if x or y &lt; 0 or units &lt; 1
+   */
   public MediaSize(float x, float y, int units)
   {
     super(x, y, units);
+    mediaCache.add(this);
   }
   
+  /**
+   * Creates a <code>MediaSize</code> object associated with the given
+   * media name.
+   *
+   * @param x the size in x direction
+   * @param y the size in y direction
+   * @param units the units to use for the sizes
+   * @param media the media name to associate
+   *
+   * @exception IllegalArgumentException if x or y &lt; 0 or units &lt; 1
+   */
   public MediaSize(float x, float y, int units, MediaSizeName media)
   {
     super(x, y, units);
     this.media = media;
+    mediaCache.add(this);
   }
   
+  /**
+   * Creates a <code>MediaSize</code> object.
+   *
+   * @param x the size in x direction
+   * @param y the size in y direction
+   * @param units the units to use for the sizes
+   *
+   * @exception IllegalArgumentException if x or y &lt; 0 or units &lt; 1
+   */
   public MediaSize(int x, int y, int units)
   {
     super(x, y, units);
+    mediaCache.add(this);
   }
   
+  /**
+   * Creates a <code>MediaSize</code> object associated with the given
+   * media name.
+   *
+   * @param x the size in x direction
+   * @param y the size in y direction
+   * @param units the units to use for the sizes
+   * @param media the media name to associate
+   *
+   * @exception IllegalArgumentException if x or y &lt; 0 or units &lt; 1
+   */
   public MediaSize(int x, int y, int units, MediaSizeName media)
   {
     super(x, y, units);
     this.media = media;
+    mediaCache.add(this);
   }
   
   /**
    * Returns category of this class.
    *
-   * @return the class <code>MediaSize</code> itself
+   * @return The class <code>MediaSize</code> itself.
    */
   public Class getCategory()
   {
     return MediaSize.class;
   }
+    
+  /**
+   * Searches for a MediaSize object with the given dimensions.
+   * If none is found with exact dimensions, the closest match is used.
+   * Afterwards the MediaSizeName of the found MediaSize object is 
+   * returned - which might be null if none is specified.
+   * 
+   * @param x the dimension for x
+   * @param y the dimension for y
+   * @param units the units to be used for comparison
+   * @return the corresponding MediaSizeName object, or null
+   */
+  public static MediaSizeName findMedia(float x, float y, int units)
+  {
+    if (x <= 0.0f || y <= 0.0f)
+      throw new IllegalArgumentException(
+        "x and/or y may not be less or equal 0");
+
+    if (units < 1)
+      throw new IllegalArgumentException("units may not be less then 1");
+
+    MediaSize bestMatch = null;
+    int bestDistance = Integer.MAX_VALUE;
+
+    int xMicro = (int) x * units;
+    int yMicro = (int) y * units;
+
+    for (int i = 0; i < mediaCache.size(); i++)
+      {
+        MediaSize size = (MediaSize) mediaCache.get(i);
+        int dist = (Math.abs(size.getXMicrometers() - xMicro) 
+                    + Math.abs(size.getYMicrometers() - yMicro));
 
+        if (dist < bestDistance)
+          {
+            bestMatch = size;
+            bestDistance = dist;
+          }
+      }
+
+    return bestMatch.getMediaSizeName();
+  }
+  
+  /**
+   * Returns the associated <code>MediaSize</code> instance for the 
+   * given named media <code>MediaSizeName</code> instance.
+   * 
+   * @param media the named media to search for.
+   * @return The corresponding <code>MediaSize</code> instance or 
+   * <code>null</code> if none found.
+   */
   public static MediaSize getMediaSizeForName(MediaSizeName media)
   {
     for (int i = 0; i < mediaCache.size(); i++)
@@ -97,18 +221,605 @@ public class MediaSize extends Size2DSyntax
     return null;
   }
   
+  /**
+   * Tests if the given object is equal to this object.
+   *
+   * @param obj the object to test
+   *
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if (!(obj instanceof MediaSize))
+      return false;
+
+    MediaSize tmp = (MediaSize) obj;
+    return (tmp.getXMicrometers() == this.getXMicrometers()
+            && tmp.getYMicrometers() == this.getYMicrometers());
+  }
+  
+  /**
+   * Returns the media name of this size.
+   * 
+   * @return The media name.
+   */
   public MediaSizeName getMediaSizeName()
   {
     return media;
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "media-size"
+   * @return The name "media-size".
    */
   public String getName()
   {
     return "media-size";
   }
+
+  /**
+   * Container class for predefined ISO media sizes.
+   * 
+   * @author Sven de Marothy (sven@physto.se)
+   */
+  public static final class ISO 
+  {
+
+    /**
+     * ISO A0 paper, 841 mm x 1189 mm.
+     */
+    public static final MediaSize A0 = new MediaSize(841, 1189, 
+                                              MediaSize.MM, 
+                                              MediaSizeName.ISO_A0);
+
+    /**
+     * ISO A1 paper, 594 mm x 841 mm
+     */
+    public static final MediaSize A1 = new MediaSize(594, 841, MediaSize.MM, 
+                                              MediaSizeName.ISO_A1);
+
+    /**
+     * ISO A2 paper, 420 mm x 594 mm
+     */
+    public static final MediaSize A2 = new MediaSize(420, 594, MediaSize.MM, MediaSizeName.ISO_A2);
+
+    /**
+     * ISO A3 paper, 297 mm x 420 mm
+     */
+    public static final MediaSize A3 = new MediaSize(297, 420, MediaSize.MM, MediaSizeName.ISO_A3);
+
+    /**
+     * ISO A4 paper, 210 mm x 297 mm
+     */
+    public static final MediaSize A4 = new MediaSize(210, 297, MediaSize.MM, MediaSizeName.ISO_A4);
+
+    /**
+     * ISO A5 paper, 148 mm x 210 mm
+     */
+    public static final MediaSize A5 = new MediaSize(148, 210, MediaSize.MM, MediaSizeName.ISO_A5);
+
+    /**
+     * ISO A6 paper, 105 mm x 148 mm
+     */
+    public static final MediaSize A6 = new MediaSize(105, 148, MediaSize.MM, MediaSizeName.ISO_A6);
+
+    /**
+     * ISO A7 paper, 74 mm x 105 mm
+     */
+    public static final MediaSize A7 = new MediaSize(74, 105, MediaSize.MM, MediaSizeName.ISO_A7);
+
+    /**
+     * ISO A8 paper, 52 mm x 74 mm
+     */
+    public static final MediaSize A8 = new MediaSize(52, 74, MediaSize.MM, MediaSizeName.ISO_A8);
+
+    /**
+     * ISO A9 paper, 37 mm x 52 mm
+     */
+    public static final MediaSize A9 = new MediaSize(37, 52, MediaSize.MM, MediaSizeName.ISO_A9);
+
+    /**
+     * ISO A10 paper, 26 mm x 37 mm
+     */
+    public static final MediaSize A10 = new MediaSize(26, 37, MediaSize.MM, MediaSizeName.ISO_A10);
+
+
+    /**
+     * ISO B0 paper, 1000 mm x 1414 mm
+     */
+    public static final MediaSize B0 = new MediaSize(1000, 1414, MediaSize.MM, MediaSizeName.ISO_B0);
+
+    /**
+     * ISO B1 paper, 707 mm x 1000 mm
+     */
+    public static final MediaSize B1 = new MediaSize(707, 1000, MediaSize.MM, MediaSizeName.ISO_B1);
+
+    /**
+     * ISO B2 paper, 500 mm x 707 mm
+     */
+    public static final MediaSize B2 = new MediaSize(500, 707, MediaSize.MM, MediaSizeName.ISO_B2);
+
+    /**
+     * ISO B3 paper, 353 mm x 500 mm
+     */
+    public static final MediaSize B3 = new MediaSize(353, 500, MediaSize.MM, MediaSizeName.ISO_B3);
+
+    /**
+     * ISO B4 paper, 250 mm x 353 mm
+     */
+    public static final MediaSize B4 = new MediaSize(250, 353, MediaSize.MM, MediaSizeName.ISO_B4);
+
+    /**
+     * ISO B5 paper, 176 mm x 250 mm
+     */
+    public static final MediaSize B5 = new MediaSize(176, 250, MediaSize.MM, MediaSizeName.ISO_B5);
+
+    /**
+     * ISO B6 paper, 125 mm x 176 mm
+     */
+    public static final MediaSize B6 = new MediaSize(125, 176, MediaSize.MM, MediaSizeName.ISO_B6);
+
+    /**
+     * ISO B7 paper, 88 mm x 125 mm
+     */
+    public static final MediaSize B7 = new MediaSize(88, 125, MediaSize.MM, MediaSizeName.ISO_B7);
+
+    /**
+     * ISO B8 paper, 62 mm x 88 mm
+     */
+    public static final MediaSize B8 = new MediaSize(62, 88, MediaSize.MM, MediaSizeName.ISO_B8);
+
+    /**
+     * ISO B9 paper, 44 mm x 62 mm
+     */
+    public static final MediaSize B9 = new MediaSize(44, 62, MediaSize.MM, MediaSizeName.ISO_B9);
+
+    /**
+     * ISO B10 paper, 31 mm x 44 mm
+     */
+    public static final MediaSize B10 = new MediaSize(31, 44, MediaSize.MM, MediaSizeName.ISO_B10);
+    
+    /**
+     * ISO C3 envelope, 324 mm x 458 mm
+     */
+    public static final MediaSize C3 = new MediaSize(324, 458, MediaSize.MM, MediaSizeName.ISO_C3);
+
+    /**
+     * ISO C4 envelope, 229 mm x 324 mm
+     */
+    public static final MediaSize C4 = new MediaSize(229, 324, MediaSize.MM, MediaSizeName.ISO_C4);
+
+    /**
+     * ISO C5 envelope, 162 mm x 229 mm
+     */
+    public static final MediaSize C5 = new MediaSize(162, 229, MediaSize.MM, MediaSizeName.ISO_C5);
+
+    /**
+     * ISO C6 envelope, 114 mm x 162 mm
+     */
+    public static final MediaSize C6 = new MediaSize(114, 162, MediaSize.MM, MediaSizeName.ISO_C6);
+
+    /**
+     * ISO ISO Designated Long paper, 324 mm x 458 mm
+     */
+    public static final MediaSize DESIGNATED_LONG = 
+      new MediaSize(324, 458, MediaSize.MM, MediaSizeName.ISO_DESIGNATED_LONG);
+  } 
+
+  /**
+   * Container class for predefined North American media sizes.
+   * 
+   * @author Sven de Marothy (sven@physto.se)
+   */
+  public static final class NA
+  {
+    /**
+     * US Legal paper size, 8.5 inch x 14 inch
+     */
+    public static final MediaSize LEGAL = new MediaSize(8.5f, 14f, MediaSize.INCH, 
+                                                 MediaSizeName.NA_LEGAL);
+
+    /**
+     * US Letter paper size, 8.5 inch x 11 inch
+     */
+    public static final MediaSize LETTER = new MediaSize(8.5f, 11f, MediaSize.INCH,
+                                                  MediaSizeName.NA_LETTER);
+
+    /**
+     * 5 inch x 7 inch paper size.
+     */
+    public static final MediaSize NA_5X7 = new MediaSize(5, 7, MediaSize.INCH,
+                                                        MediaSizeName.NA_5X7);
+
+    /**
+     * 8 inch x 10 inch paper size.
+     */
+    public static final MediaSize NA_8X10 = new MediaSize(8, 10, MediaSize.INCH,
+                                                         MediaSizeName.NA_8X10);
+
+    /**
+     * 6 inch x 9 inch envelope size.
+     */
+    public static final MediaSize NA_6X9_ENVELOPE = new MediaSize(6f, 9f, 
+                                                                 MediaSize.INCH,
+                                                                 MediaSizeName.NA_6X9_ENVELOPE);
+
+    /**
+     * 7 inch x 9 inch envelope size.
+     */
+    public static final MediaSize NA_7X9_ENVELOPE = new MediaSize(7f, 9f, 
+                                                                 MediaSize.INCH,
+                                                                 MediaSizeName.NA_7X9_ENVELOPE);
+
+    /**
+     * 9 inch x 11 inch envelope size.
+     */
+    public static final MediaSize NA_9x11_ENVELOPE = new MediaSize(9f, 11f, 
+                                                            MediaSize.INCH,
+                                                            MediaSizeName.NA_9X11_ENVELOPE);
+
+    /**
+     * 9 inch x 12 inch envelope size.
+     */
+    public static final MediaSize NA_9x12_ENVELOPE = new MediaSize(9f, 12f, 
+                                                            MediaSize.INCH,
+                                                            MediaSizeName.NA_9X12_ENVELOPE);
+
+
+    /**
+     * 10 inch x 13 inch envelope size.
+     */
+    public static final MediaSize NA_10x13_ENVELOPE = new MediaSize(10f, 13f, 
+                                                             MediaSize.INCH,
+                                                             MediaSizeName.NA_10X13_ENVELOPE);
+
+    /**
+     * 10 inch x 14 inch envelope size.
+     */
+    public static final MediaSize NA_10x14_ENVELOPE = new MediaSize(10f, 14f, 
+                                                             MediaSize.INCH,
+                                                             MediaSizeName.NA_10X14_ENVELOPE);
+
+    /**
+     * 10 inch x 15 inch envelope size.
+     */
+    public static final MediaSize NA_10X15_ENVELOPE = new MediaSize(10f, 15f, 
+                                                             MediaSize.INCH,
+                                                             MediaSizeName.NA_10X15_ENVELOPE);
+
+    /**
+     * Number 9 envelope size. 4.5 inch x 10.375 inch
+     */
+    public static final MediaSize NA_NUMBER_9_ENVELOPE = new MediaSize(3.875f, 8.875f,
+                                                                MediaSize.INCH,
+                                                                MediaSizeName.NA_NUMBER_9_ENVELOPE);
+
+    /**
+     * Number 10 envelope size. 4.125 inch x 9.5 inch
+     */
+    public static final MediaSize NA_NUMBER_10_ENVELOPE = 
+      new MediaSize(4.125f, 9.5f, MediaSize.INCH, MediaSizeName.NA_NUMBER_10_ENVELOPE);
+
+    /**
+     * Number 11 envelope size. 4.5 inch x 10.375 inch
+     */
+    public static final MediaSize NA_NUMBER_11_ENVELOPE = new MediaSize(4.5f, 10.375f, MediaSize.INCH,
+                                                                 MediaSizeName.NA_NUMBER_11_ENVELOPE);
+    
+    /**
+     * Number 12 envelope size. 4.75 inch x 11 inch
+     */
+    public static final MediaSize NA_NUMBER_12_ENVELOPE = new MediaSize(4.75f, 11f, 
+                                                                 MediaSize.INCH,
+                                                                 MediaSizeName.NA_NUMBER_12_ENVELOPE);
+
+  /**
+   * Number 14 envelope size. 5 inch x 11.5 inch
+   */
+  public static final MediaSize NA_NUMBER_14_ENVELOPE = new MediaSize(5f, 11.5f, 
+                                                               MediaSize.INCH,
+                                                               MediaSizeName.NA_NUMBER_14_ENVELOPE);
+  }
+
+  /**
+   * Container class for predefined US Engineering media sizes.
+   * 
+   * @author Sven de Marothy (sven@physto.se)
+   */
+  public static final class Engineering 
+  {
+    /**
+     * ANSI A paper size. 8.5 inch x 11 inch
+     */
+    public static final MediaSize A = new MediaSize(8.5f, 11f, 
+                                             MediaSize.INCH, MediaSizeName.A);
+
+    /**
+     * ANSI B paper size. 11 inch x 17 inch
+     */
+    public static final MediaSize B = new MediaSize(11f, 17f, 
+                                             MediaSize.INCH, MediaSizeName.B);
+
+    /**
+     * ANSI C paper size. 17 inch x 22 inch
+     */
+    public static final MediaSize C = new MediaSize(17f, 22f, 
+                                             MediaSize.INCH, MediaSizeName.C);
+
+    /**
+     * ANSI D paper size. 22 inch x 34 inch
+     */
+    public static final MediaSize D = new MediaSize(22f, 34f, 
+                                             MediaSize.INCH, MediaSizeName.D);
+
+    /**
+     * ANSI E paper size. 33 inch x 44 inch
+     */
+    public static final MediaSize E = new MediaSize(34f, 44f, 
+                                             MediaSize.INCH, MediaSizeName.E);
+  }
+
+  /**
+   * Container class for predefined Japanese JIS media sizes.
+   * 
+   * @author Sven de Marothy (sven@physto.se)
+   */
+  public static final class JIS 
+  {
+    /**
+     * JIS B0 paper. 1030 mm x 1456 mm
+     * Note: The JIS B-series is not identical to the ISO B-series.
+     */
+    public static final MediaSize B0 = new MediaSize(1030, 1456, MediaSize.MM, MediaSizeName.JIS_B0);
+
+    /**
+     * JIS B1 paper. 1030 mm x 1456 mm
+     * Note: The JIS B-series is not identical to the ISO B-series.
+     */
+    public static final MediaSize B1 = new MediaSize(728, 1030, MediaSize.MM, MediaSizeName.JIS_B1);
+
+    /**
+     * JIS B2 paper. 515 mm x 728 mm
+     * Note: The JIS B-series is not identical to the ISO B-series.
+     */
+    public static final MediaSize B2 = new MediaSize(515, 728, MediaSize.MM, MediaSizeName.JIS_B2);
+
+    /**
+     * JIS B3 paper. 364 mm x 515 mm
+     * Note: The JIS B-series is not identical to the ISO B-series.
+     */
+    public static final MediaSize B3 = new MediaSize(364, 515, MediaSize.MM, MediaSizeName.JIS_B3);
+
+    /**
+     * JIS B4 paper. 257 mm x 364 mm
+     * Note: The JIS B-series is not identical to the ISO B-series.
+     */
+    public static final MediaSize B4 = new MediaSize(257, 364, MediaSize.MM, MediaSizeName.JIS_B4);
+
+    /**
+     * JIS B5 paper. 1030 mm x 1456 mm
+     * Note: The JIS B-series is not identical to the ISO B-series.
+     */
+    public static final MediaSize B5 = new MediaSize(182, 257, MediaSize.MM, MediaSizeName.JIS_B5);
+
+    /**
+     * JIS B6 paper. 128 mm x 182 mm
+     * Note: The JIS B-series is not identical to the ISO B-series.
+     */
+    public static final MediaSize B6 = new MediaSize(128, 182, MediaSize.MM, MediaSizeName.JIS_B6);
+
+    /**
+     * JIS B7 paper. 91 mm x 128 mm
+     * Note: The JIS B-series is not identical to the ISO B-series.
+     */
+    public static final MediaSize B7 = new MediaSize(91, 128, MediaSize.MM, MediaSizeName.JIS_B7);
+
+    /**
+     * JIS B8 paper. 64 mm x 91 mm
+     * Note: The JIS B-series is not identical to the ISO B-series.
+     */
+    public static final MediaSize B8 = new MediaSize(64, 91, MediaSize.MM, MediaSizeName.JIS_B8);
+
+    /**
+     * JIS B9 paper. 45 mm x 64 mm
+     * Note: The JIS B-series is not identical to the ISO B-series.
+     */
+    public static final MediaSize B9 = new MediaSize(45, 64, MediaSize.MM, MediaSizeName.JIS_B9);
+
+    /**
+     * JIS B10 paper. 32 mm x 45 mm
+     * Note: The JIS B-series is not identical to the ISO B-series.
+     */
+    public static final MediaSize B10 = new MediaSize(32, 45, MediaSize.MM, MediaSizeName.JIS_B10);
+
+    /**
+     * JIS chou #1 envelope size, 142 mm x 332 mm
+     */
+    public static final MediaSize CHOU_1 = new MediaSize(142, 332, MediaSize.MM);
+
+    /**
+     * JIS chou #2 envelope size, 119 mm x 227 mm
+     */
+    public static final MediaSize CHOU_2 = new MediaSize(119, 227, MediaSize.MM);
+
+    /**
+     * JIS chou #3 envelope size, 120 mm x 235 mm
+     */
+    public static final MediaSize CHOU_3 = new MediaSize(120, 235, MediaSize.MM);
+
+    /**
+     * JIS chou #4 envelope size, 90 mm x 205 mm
+     */
+    public static final MediaSize CHOU_4 = new MediaSize(90, 205, MediaSize.MM);
+
+    /**
+     * JIS chou #30 envelope size, 92 mm x 235 mm
+     */
+    public static final MediaSize CHOU_30 = new MediaSize(92, 235, MediaSize.MM);
+
+    /**
+     * JIS chou #40 envelope size, 90 mm x 225 mm
+     */
+    public static final MediaSize CHOU_40 = new MediaSize(90, 225, MediaSize.MM);
+
+    /**
+     * JIS kaku #0 envelope size, 287 mm x 382 mm
+     */
+    public static final MediaSize KAKU_0 = new MediaSize(287, 382, MediaSize.MM);
+
+    /**
+     * JIS kaku #1 envelope size, 270 mm x 382 mm
+     */
+    public static final MediaSize KAKU_1 = new MediaSize(270, 382, MediaSize.MM);
+
+    /**
+     * JIS kaku #2 envelope size, 240 mm x 332 mm
+     */
+    public static final MediaSize KAKU_2 = new MediaSize(240, 332, MediaSize.MM);
+
+    /**
+     * JIS kaku #20 envelope size, 229 mm x 324 mm
+     */
+    public static final MediaSize KAKU_20 = new MediaSize(229, 324, MediaSize.MM);
+
+    /**
+     * JIS kaku #3 envelope size, 216 mm x 227 mm
+     */
+    public static final MediaSize KAKU_3 = new MediaSize(216, 227, MediaSize.MM);
+
+    /**
+     * JIS kaku #4 envelope size, 197 mm x 267 mm
+     */
+    public static final MediaSize KAKU_4 = new MediaSize(197, 267, MediaSize.MM);
+
+    /**
+     * JIS kaku #5 envelope size, 190 mm x 240 mm
+     */
+    public static final MediaSize KAKU_5 = new MediaSize(190, 240, MediaSize.MM);
+
+    /**
+     * JIS kaku #6 envelope size, 162 mm x 229 mm
+     */
+    public static final MediaSize KAKU_6 = new MediaSize(162, 229, MediaSize.MM);
+
+    /**
+     * JIS kaku #7 envelope size, 142 mm x 205 mm
+     */
+    public static final MediaSize KAKU_7 = new MediaSize(142, 205, MediaSize.MM);
+
+    /**
+     * JIS kaku #8 envelope size, 119 mm x 197 mm
+     */
+    public static final MediaSize KAKU_8 = new MediaSize(119, 197, MediaSize.MM);
+
+    /**
+     * JIS kaku A4 envelope size, 228 mm x 312 mm
+     */
+    public static final MediaSize KAKU_A4 = new MediaSize(228, 312, MediaSize.MM);
+
+    /**
+     * JIS you #1 envelope size, 120 mm x 176 mm
+     */
+    public static final MediaSize YOU_1 = new MediaSize(120, 176, MediaSize.MM);
+
+    /**
+     * JIS you #2 envelope size, 114 mm x 162 mm
+     */
+    public static final MediaSize YOU_2 = new MediaSize(114, 162, MediaSize.MM);
+
+    /**
+     * JIS you #3 envelope size, 98 mm x 148 mm
+     */
+    public static final MediaSize YOU_3 = new MediaSize(98, 148, MediaSize.MM);
+
+    /**
+     * JIS you #4 envelope size, 105 mm x 235 mm
+     */
+    public static final MediaSize YOU_4 = new MediaSize(105, 235, MediaSize.MM);
+
+    /**
+     * JIS you #5 envelope size, 95 mm x 217 mm
+     */
+    public static final MediaSize YOU_5 = new MediaSize(95, 217, MediaSize.MM);
+
+    /**
+     * JIS you #6 envelope size, 98 mm x 190 mm
+     */
+    public static final MediaSize YOU_6 = new MediaSize(98, 190, MediaSize.MM);
+
+    /**
+     * JIS you #7 envelope size, 92 mm x 165 mm
+     */
+    public static final MediaSize YOU_7 = new MediaSize(92, 165, MediaSize.MM);
+  }
+
+  /**
+   * Container class for miscellaneous media sizes.
+   * 
+   * @author Sven de Marothy (sven@physto.se)
+   */
+  public static final class Other
+  {
+    /**
+     * US Executive paper size, 7.25 inch x 10.5 inch
+     */
+    public static final MediaSize EXECUTIVE = new MediaSize(7.25f, 10.5f, 
+                                                     MediaSize.INCH, MediaSizeName.EXECUTIVE);
+
+    /**
+     * US Folio paper size, 8.5 inch x 13 inch
+     */
+    public static final MediaSize FOLIO = new MediaSize(8.5f, 13f, MediaSize.INCH, MediaSizeName.FOLIO);
+
+    /**
+     * US Quarto paper size, 8.5 inches by 10.83 inches.
+     */
+    public static final MediaSize QUARTO = new MediaSize(8.5f, 10.83f, MediaSize.INCH,
+                                                  MediaSizeName.QUARTO);
+
+    /**
+     * US Invoice size, 5.5 inch x 8.5 inch
+     */
+    public static final MediaSize INVOICE = new MediaSize(5.5f, 8.5f, 
+                                                   MediaSize.INCH, MediaSizeName.INVOICE);
+
+    /**
+     * US Ledger size, 11 inch x 17 inch
+     */
+    public static final MediaSize LEDGER = new MediaSize(11, 17, MediaSize.INCH, 
+                                                  MediaSizeName.LEDGER);
+
+    /**
+     * Monarch (7 3/4) envelope size, 3.87 inch x 7.5 inch
+     */
+    public static final MediaSize MONARCH_ENVELOPE = new MediaSize(3.87f, 7.5f, 
+                                                            MediaSize.INCH,
+                                                            MediaSizeName.MONARCH_ENVELOPE);
+
+    /**
+     * Personal envelope size, 3.625 inch x 6.5 inch.
+     */
+    public static final MediaSize PERSONAL_ENVELOPE = new MediaSize(3.625f, 6.5f, MediaSize.INCH,
+                                                             MediaSizeName.PERSONAL_ENVELOPE);
+
+    /**
+     * Italian envelope size, 110 mm x 230 mm
+     */
+    public static final MediaSize ITALY_ENVELOPE = new MediaSize(110, 230, 
+                                                          MediaSize.MM,
+                                                          MediaSizeName.ITALY_ENVELOPE);
+
+    /**
+     * Japanese postcard, 100 mm x 148 mm
+     */
+    public static final MediaSize JAPANESE_POSTCARD = new MediaSize(100, 148, MediaSize.MM, MediaSizeName.JAPANESE_POSTCARD);
+
+    /**
+     * Japanese double postcard, 148 mm x 200 mm
+     */
+    public static final MediaSize JAPANESE_DOUBLE_POSTCARD = new MediaSize(148, 200, MediaSize.MM, MediaSizeName.JAPANESE_DOUBLE_POSTCARD);
+  }
 }
+
index 9990a2def42a787bf943bc9cf142ba702d650dc3..e29b1ae34c725f1adaf1f30dd8b453911e60c2c8 100644 (file)
@@ -1,5 +1,5 @@
 /* MediaSizeName.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -37,99 +37,461 @@ exception statement from your version. */
 
 package javax.print.attribute.standard;
 
+import javax.print.attribute.EnumSyntax;
+
 /**
+ * <code>MediaSizeName</code> is a subclass of the <code>Media</code> printing 
+ * attribute and provides selection of media to be used by the means of 
+ * defined size names. The class pre-defines commonly available media sizes. 
+ * This media type enumeration may be used in alternative to 
+ * MediaName/MediaTray.
+ * <p>
+ * <b>IPP Compatibility:</b> MediaSizeName is not an IPP 1.1 attribute on its 
+ * own. It provides parts of the <code>media</code> attribute type values.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public class MediaSizeName extends Media
 {
   private static final long serialVersionUID = 2778798329756942747L;
 
+  /**
+   * The ISO A0 size: 841 mm by 1189 mm.
+   */
   public static final MediaSizeName ISO_A0 = new MediaSizeName(0);
+  
+  /**
+   * The ISO A1 size: 594 mm by 841 mm.
+   */
   public static final MediaSizeName ISO_A1 = new MediaSizeName(1);
+  
+  /**
+   * The ISO A2 size: 420 mm by 594 mm.
+   */
   public static final MediaSizeName ISO_A2 = new MediaSizeName(2);
+  
+  /**
+   * The ISO A3 size: 297 mm by 420 mm.
+   */
   public static final MediaSizeName ISO_A3 = new MediaSizeName(3);
+  
+  /**
+   * The ISO A4 size: 210 mm by 297 mm.
+   */
   public static final MediaSizeName ISO_A4 = new MediaSizeName(4);
+  
+  /**
+   * The ISO A5 size: 148 mm by 210 mm.
+   */
   public static final MediaSizeName ISO_A5 = new MediaSizeName(5);
+  
+  /**
+   * The ISO A6 size: 105 mm by 148 mm.
+   */
   public static final MediaSizeName ISO_A6 = new MediaSizeName(6);
+  
+  /**
+   * The ISO A7 size: 74 mm by 105 mm.
+   */
   public static final MediaSizeName ISO_A7 = new MediaSizeName(7);
+  
+  /**
+   * The ISO A8 size: 52 mm by 74 mm.
+   */
   public static final MediaSizeName ISO_A8 = new MediaSizeName(8);
+  
+  /**
+   * The ISO A9 size: 37 mm by 52 mm.
+   */
   public static final MediaSizeName ISO_A9 = new MediaSizeName(9);
+  
+  /**
+   * The ISO A10 size: 26 mm by 37 mm.
+   */
   public static final MediaSizeName ISO_A10 = new MediaSizeName(10);
+  
+  /**
+   * The ISO B0 size: 1000 mm by 1414 mm.
+   */
   public static final MediaSizeName ISO_B0 = new MediaSizeName(11);
+  
+  /**
+   * The ISO B1 size: 707 mm by 1000 mm.
+   */
   public static final MediaSizeName ISO_B1 = new MediaSizeName(12);
+  
+  /**
+   * The ISO B2 size: 500 mm by 707 mm.
+   */
   public static final MediaSizeName ISO_B2 = new MediaSizeName(13);
+  
+  /**
+   * The ISO B3 size: 353 mm by 500 mm.
+   */
   public static final MediaSizeName ISO_B3 = new MediaSizeName(14);
+  
+  /**
+   * The ISO B4 size: 250 mm by 353 mm.
+   */
   public static final MediaSizeName ISO_B4 = new MediaSizeName(15);
+  
+  /**
+   * The ISO B5 size: 176 mm by 250 mm.
+   */
   public static final MediaSizeName ISO_B5 = new MediaSizeName(16);
+  
+  /**
+   * The ISO B6 size: 125 mm by 176 mm.
+   */
   public static final MediaSizeName ISO_B6 = new MediaSizeName(17);
+  
+  /**
+   * The ISO B7 size: 88 mm by 125 mm.
+   */
   public static final MediaSizeName ISO_B7 = new MediaSizeName(18);
+  
+  /**
+   * The ISO B8 size: 62 mm by 88 mm.
+   */
   public static final MediaSizeName ISO_B8 = new MediaSizeName(19);
+  
+  /**
+   * The ISO B9 size: 44 mm by 62 mm.
+   */
   public static final MediaSizeName ISO_B9 = new MediaSizeName(20);
+  
+  /**
+   * The ISO B10 size: 31 mm by 44 mm.
+   */
   public static final MediaSizeName ISO_B10 = new MediaSizeName(21);
+  
+  /**
+   * The JIS B0 size: 1030mm x 1456mm.
+   */
   public static final MediaSizeName JIS_B0 = new MediaSizeName(22);
+  
+  /**
+   * The JIS B1 size: 728mm x 1030mm.
+   */
   public static final MediaSizeName JIS_B1 = new MediaSizeName(23);
+  
+  /**
+   * The JIS B2 size: 515mm x 728mm.
+   */
   public static final MediaSizeName JIS_B2 = new MediaSizeName(24);
+  
+  /**
+   * The JIS B3 size: 364mm x 515mm.
+   */
   public static final MediaSizeName JIS_B3 = new MediaSizeName(25);
+  
+  /**
+   * The JIS B4 size: 257mm x 364mm.
+   */
   public static final MediaSizeName JIS_B4 = new MediaSizeName(26);
+  
+  /**
+   * The JIS B5 size: 182mm x 257mm.
+   */
   public static final MediaSizeName JIS_B5 = new MediaSizeName(27);
+  
+  /**
+   * The JIS B6 size: 128mm x 182mm.
+   */
   public static final MediaSizeName JIS_B6 = new MediaSizeName(28);
+  
+  /**
+   * The JIS B7 size: 91mm x 128mm.
+   */
   public static final MediaSizeName JIS_B7 = new MediaSizeName(29);
+  
+  /**
+   * The JIS B8 size: 64mm x 91mm.
+   */
   public static final MediaSizeName JIS_B8 = new MediaSizeName(30);
+  
+  /**
+   * The JIS B9 size: 45mm x 64mm.
+   */
   public static final MediaSizeName JIS_B9 = new MediaSizeName(31);
+  
+  /**
+   * The JIS B10 size: 32mm x 45mm.
+   */
   public static final MediaSizeName JIS_B10 = new MediaSizeName(32);
+  
+  /**
+   * The ISO C0 size: 917 mm by 1297 mm.
+   */
   public static final MediaSizeName ISO_C0 = new MediaSizeName(33);
+  
+  /**
+   * The ISO C1 size: 648 mm by 917 mm.
+   */
   public static final MediaSizeName ISO_C1 = new MediaSizeName(34);
+  
+  /**
+   * The ISO C2 size: 458 mm by 648 mm.
+   */
   public static final MediaSizeName ISO_C2 = new MediaSizeName(35);
+  
+  /**
+   * The ISO C3 size: 324 mm by 458 mm.
+   */
   public static final MediaSizeName ISO_C3 = new MediaSizeName(36);
+  
+  /**
+   * The ISO C4 size: 229 mm by 324 mm.
+   */
   public static final MediaSizeName ISO_C4 = new MediaSizeName(37);
+  
+  /**
+   * The ISO C5 size: 162 mm by 229 mm.
+   */
   public static final MediaSizeName ISO_C5 = new MediaSizeName(38);
+  
+  /**
+   * The ISO C6 size: 114 mm by 162 mm.
+   */
   public static final MediaSizeName ISO_C6 = new MediaSizeName(39);
+  
+  /**
+   * The North American letter size: 8.5 inches by 11 inches.
+   */
   public static final MediaSizeName NA_LETTER = new MediaSizeName(40);
+  
+  /**
+   * The North American legal size: 8.5 inches by 14 inches.
+   */
   public static final MediaSizeName NA_LEGAL = new MediaSizeName(41);
+  
+  /**
+   * The executive size: 7.25 inches by 10.5 inches.
+   */
   public static final MediaSizeName EXECUTIVE = new MediaSizeName(42);
+  
+  /**
+   * The ledger size: 11 inches by 17 inches.
+   */
   public static final MediaSizeName LEDGER = new MediaSizeName(43);
+  
+  /**
+   * The tabloid size: 11 inches by 17 inches.
+   */
   public static final MediaSizeName TABLOID = new MediaSizeName(44);
+  
+  /**
+   * The invoice size: 5.5 inches by 8.5 inches.
+   */
   public static final MediaSizeName INVOICE = new MediaSizeName(45);
+  
+  /**
+   * The folio size: 8.5 inches by 13 inches.
+   */
   public static final MediaSizeName FOLIO = new MediaSizeName(46);
+  
+  /**
+   * The quarto size: 8.5 inches by 10.83 inches.
+   */
   public static final MediaSizeName QUARTO = new MediaSizeName(47);
+  
+  /**
+   * The Japanese postcard size, 100 mm by 148 mm.
+   */
   public static final MediaSizeName JAPANESE_POSTCARD = new MediaSizeName(48);
+  
+  /**
+   * The Japanese Double postcard size: 148 mm by 200 mm.
+   */
   public static final MediaSizeName JAPANESE_DOUBLE_POSTCARD =
     new MediaSizeName(49);
+  
+  /**
+   * The engineering ANSI A size medium: 8.5 inches x 11 inches.
+   */
   public static final MediaSizeName A = new MediaSizeName(50);
+  
+  /**
+   * The engineering ANSI B size medium: 11 inches x 17 inches.
+   */
   public static final MediaSizeName B = new MediaSizeName(51);
+  
+  /**
+   * The engineering ANSI C size medium: 17 inches x 22 inches.
+   */
   public static final MediaSizeName C = new MediaSizeName(52);
+  
+  /**
+   * The engineering ANSI D size medium: 22 inches x 34 inches.
+   */
   public static final MediaSizeName D = new MediaSizeName(53);
+  
+  /**
+   * The engineering ANSI E size medium: 34 inches x 44 inches.
+   */
   public static final MediaSizeName E = new MediaSizeName(54);
+  
+  /**
+   * The ISO Designated Long size: 110 mm by 220 mm.
+   */
   public static final MediaSizeName ISO_DESIGNATED_LONG =
     new MediaSizeName(55);
+  
+  /**
+   * The Italy envelope size: 110 mm by 230 mm.
+   */
   public static final MediaSizeName ITALY_ENVELOPE = new MediaSizeName(56);
+  
+  /**
+   * The Monarch envelope size: 3.87 inch by 7.5 inch.
+   */
   public static final MediaSizeName MONARCH_ENVELOPE = new MediaSizeName(57);
+  
+  /**
+   * The Personal envelope size: 3.625 inch by 6.5 inch.
+   */
   public static final MediaSizeName PERSONAL_ENVELOPE = new MediaSizeName(58);
+  
+  /**
+   * The North American number 9 business envelope size: 
+   * 3.875 inches by 8.875 inches.
+   */
   public static final MediaSizeName NA_NUMBER_9_ENVELOPE =
     new MediaSizeName(59);
+  
+  /**
+   * The North American number 10 business envelope size:  
+   * 4.125 inches by 9.5 inches.
+   */
   public static final MediaSizeName NA_NUMBER_10_ENVELOPE =
     new MediaSizeName(60);
+  
+  /**
+   * The North American number 11 business envelope size: 
+   * 4.5 inches by 10.375 inches.
+   */
   public static final MediaSizeName NA_NUMBER_11_ENVELOPE =
     new MediaSizeName(61);
+  
+  /**
+   * The North American number 12 business envelope size: 
+   * 4.75 inches by 11 inches.
+   */
   public static final MediaSizeName NA_NUMBER_12_ENVELOPE =
     new MediaSizeName(62);
+  
+  /**
+   * The North American number 14 business envelope size: 
+   * 5 inches by 11.5 inches.
+   */
   public static final MediaSizeName NA_NUMBER_14_ENVELOPE =
     new MediaSizeName(63);
+  
+  /**
+   * The North American 6x9 inch envelope size.
+   */
   public static final MediaSizeName NA_6X9_ENVELOPE = new MediaSizeName(64);
+  
+  /**
+   * The North American 7x9 inch envelope size.
+   */
   public static final MediaSizeName NA_7X9_ENVELOPE = new MediaSizeName(65);
+  
+  /**
+   * The North American 9x11 inch envelope size.
+   */
   public static final MediaSizeName NA_9X11_ENVELOPE = new MediaSizeName(66);
+  
+  /**
+   * The North American 9x12 inch envelope size.
+   */
   public static final MediaSizeName NA_9X12_ENVELOPE = new MediaSizeName(67);
+  
+  /**
+   * The North American 10x13 inch envelope size.
+   */
   public static final MediaSizeName NA_10X13_ENVELOPE = new MediaSizeName(68);
+  
+  /**
+   * The North American 10x14 inch envelope size.
+   */
   public static final MediaSizeName NA_10X14_ENVELOPE = new MediaSizeName(69);
+  
+  /**
+   * The North American 10x15 inch envelope size.
+   */
   public static final MediaSizeName NA_10X15_ENVELOPE = new MediaSizeName(70);
+  
+  /**
+   * The North American 5 inches by 7 inches.
+   */
   public static final MediaSizeName NA_5X7 = new MediaSizeName(71);
+  
+  /**
+   * The North American 8 inches by 10 inches.
+   */
   public static final MediaSizeName NA_8X10 = new MediaSizeName(72);
 
+  private static final String[] stringTable = 
+    { "iso-a0",  "iso-a1", "iso-a2", "iso-a3", "iso-a4", "iso-a5", "iso-a6", 
+      "iso-a7", "iso-a8", "iso-a9", "iso-a10", "iso-b0", "iso-b1", "iso-b2", 
+      "iso-b3", "iso-b4", "iso-b5", "iso-b6", "iso-b7", "iso-b8", "iso-b9", 
+      "iso-b10", "jis-b0", "jis-b1", "jis-b2", "jis-b3", "jis-b4", "jis-b5", 
+      "jis-b6", "jis-b7", "jis-b8", "jis-b9", "jis-b10", "iso-c0", "iso-c1", 
+      "iso-c2", "iso-c3", "iso-c4", "iso-c5", "iso-c6", "na-letter", 
+      "na-legal", "executive", "ledger", "tabloid", "invoice", "folio", 
+      "quarto", "japanese-postcard", "oufuko-postcard", "a", "b", "c", "d", 
+      "e", "iso-designated-long", "italian-envelope", "monarch-envelope", 
+      "personal-envelope", "na-number-9-envelope", "na-number-10-envelope", 
+      "na-number-11-envelope", "na-number-12-envelope", 
+      "na-number-14-envelope", "na-6x9-envelope", "na-7x9-envelope", 
+      "na-9x11-envelope", "na-9x12-envelope", "na-10x13-envelope", 
+      "na-10x14-envelope", "na-10x15-envelope", "na-5x7", "na-8x10" };
+  
+  private static final MediaSizeName[] enumValueTable = 
+    { ISO_A0, ISO_A1, ISO_A2, ISO_A3, ISO_A4, ISO_A5, ISO_A6, ISO_A7, ISO_A8, 
+      ISO_A9, ISO_A10, ISO_B0, ISO_B1, ISO_B2, ISO_B3, ISO_B4, ISO_B5, ISO_B6,
+      ISO_B7, ISO_B8, ISO_B9, ISO_B10, JIS_B0, JIS_B1, JIS_B2, JIS_B3, JIS_B4, 
+      JIS_B5, JIS_B6, JIS_B7, JIS_B8, JIS_B9, JIS_B10, ISO_C0, ISO_C1, ISO_C2,
+      ISO_C3, ISO_C4, ISO_C5, ISO_C6, NA_LETTER, NA_LEGAL, EXECUTIVE, LEDGER, 
+      TABLOID, INVOICE, FOLIO, QUARTO, JAPANESE_POSTCARD, 
+      JAPANESE_DOUBLE_POSTCARD, A, B, C, D, E, ISO_DESIGNATED_LONG, 
+      ITALY_ENVELOPE, MONARCH_ENVELOPE, PERSONAL_ENVELOPE, 
+      NA_NUMBER_9_ENVELOPE, NA_NUMBER_10_ENVELOPE, NA_NUMBER_11_ENVELOPE,
+      NA_NUMBER_12_ENVELOPE, NA_NUMBER_14_ENVELOPE, NA_6X9_ENVELOPE,
+      NA_7X9_ENVELOPE, NA_9X11_ENVELOPE, NA_9X12_ENVELOPE, NA_10X13_ENVELOPE,
+      NA_10X14_ENVELOPE, NA_10X15_ENVELOPE, NA_5X7, NA_8X10 }; 
+  
   /**
    * Constructs a <code>MediaSizeName</code> object.
+   * 
+   * @param value the enum value.
    */
   protected MediaSizeName(int value)
   {
     super(value);
   }
+
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
diff --git a/libjava/classpath/javax/print/attribute/standard/MediaTray.java b/libjava/classpath/javax/print/attribute/standard/MediaTray.java
new file mode 100644 (file)
index 0000000..23811a0
--- /dev/null
@@ -0,0 +1,142 @@
+/* MediaTray.java --
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.print.attribute.standard;
+
+import javax.print.attribute.EnumSyntax;
+
+/**
+ * <code>MediaTray</code> is a subclass of the <code>Media</code> printing 
+ * attribute and provides selection of media to be used by the means of the
+ * input tray of the printer. The class pre-defines commonly available types
+ * of input trays in printers. This media type enumeration may be used in
+ * alternative to MediaSizeName/MediaName.
+ * <p>
+ * <b>IPP Compatibility:</b> MediaTray is not an IPP 1.1 attribute on its own.
+ * It provides parts of the <code>media</code> attribute type values.
+ * </p>
+ * 
+ * @author Sven de Marothy
+ * @author Wolfgang Baer (WBaer@gmx.de)
+ */
+public class MediaTray extends Media
+{
+  
+  private static final long serialVersionUID = -982503611095214703L;
+  
+  /**
+   * Top tray
+   */
+  public static final MediaTray TOP = new MediaTray(0);
+  
+  /**
+   * Middle tray
+   */
+  public static final MediaTray MIDDLE = new MediaTray(1);
+  
+  /**
+   * Bottom tray
+   */
+  public static final MediaTray BOTTOM = new MediaTray(2);
+
+  /**
+   * Envelope tray
+   */
+  public static final MediaTray ENVELOPE = new MediaTray(3);
+
+  /**
+   * Manual-feed tray
+   */ 
+  public static final MediaTray MANUAL = new MediaTray(4);
+  
+  /**
+   * Large capacity tray
+   */
+  public static final MediaTray LARGE_CAPACITY = new MediaTray(5);
+
+  /**
+   * Main tray
+   */
+  public static final MediaTray MAIN = new MediaTray(6);
+  
+  /**
+   * Side tray
+   */
+  public static final MediaTray SIDE = new MediaTray(7);  
+  
+  private static final String[] stringTable = { "top", "middle", "bottom",
+                                                "envelope", "manual", 
+                                                "large-capacity", "main", 
+                                                "side" };
+  
+  private static final MediaTray[] enumValueTable = { TOP, MIDDLE, BOTTOM, 
+                                                      ENVELOPE, MANUAL,
+                                                      LARGE_CAPACITY, MAIN,
+                                                      SIDE };  
+  
+  /**
+   * Creates a <code>MediaTray</code> object.
+   *
+   * @param i the enum value.
+   */
+  protected MediaTray(int i)
+  {
+    super( i );
+  }
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
+}
+
index 8298092b0d777aa0eafdf4a845213e2a2c363d32..1ed0c913830a6021e723c11c2b0c41b304f60687 100644 (file)
@@ -43,24 +43,60 @@ import javax.print.attribute.PrintRequestAttribute;
 
 
 /**
+ * The <code>MultipleDocumentHandling</code> printing attribute controls
+ * how certain printing attributes affect printing in case of multiple 
+ * documents in a print job. This attribute is only relevant if a job 
+ * has multiple documents.
+ * <p>
+ * <b>IPP Compatibility:</b> MultipleDocumentHandling is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public class MultipleDocumentHandling extends EnumSyntax
   implements PrintJobAttribute, PrintRequestAttribute
 {
   private static final long serialVersionUID = 8098326460746413466L;
 
+  /** 
+   * Multiple documents are treated as a single document.
+   */
   public static final MultipleDocumentHandling SINGLE_DOCUMENT =
     new MultipleDocumentHandling(0);
+  
+  /** 
+   * Multiple documents are treated as uncollated copies.
+   */
   public static final MultipleDocumentHandling SEPARATE_DOCUMENTS_UNCOLLATED_COPIES =
     new MultipleDocumentHandling(1);
+  
+  /** 
+   * Multiple documents are treated as collated copies. 
+   */
   public static final MultipleDocumentHandling SEPARATE_DOCUMENTS_COLLATED_COPIES =
     new MultipleDocumentHandling(2);
+  
+  /** 
+   * Multiple documents are treated so that every single document starts
+   * with a new sheet. 
+   */
   public static final MultipleDocumentHandling SINGLE_DOCUMENT_NEW_SHEET =
     new MultipleDocumentHandling(3);
+  
+  private static final String[] stringTable = { "single-document", 
+                                                "separate-documents-uncollated-copies",
+                                                "separate-documents-collated-copies",
+                                                "single-document-new-sheet" };
+  
+  private static final MultipleDocumentHandling[] enumValueTable = 
+    { SINGLE_DOCUMENT, SEPARATE_DOCUMENTS_UNCOLLATED_COPIES,
+      SEPARATE_DOCUMENTS_COLLATED_COPIES, SINGLE_DOCUMENT_NEW_SHEET};
 
   /**
    * Constructs a <code>MultipleDocumentHandling</code> object.
+   * 
+   * @param value the enum value
    */
   protected MultipleDocumentHandling(int value)
   {
@@ -70,7 +106,7 @@ public class MultipleDocumentHandling extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>MultipleDocumentHandling</code> itself
+   * @return The class <code>MultipleDocumentHandling</code> itself.
    */
   public Class getCategory()
   {
@@ -80,10 +116,31 @@ public class MultipleDocumentHandling extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "multiple-document-handling".
    */
   public String getName()
   {
     return "multiple-document-handling";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index cf2e9dccadad585ddadaef64989032222cc1fe0b..b9363eb91017cbd579ea25c2c4907f411a994bc0 100644 (file)
@@ -1,5 +1,5 @@
 /* NumberOfDocuments.java -- 
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,6 +41,12 @@ import javax.print.attribute.IntegerSyntax;
 import javax.print.attribute.PrintJobAttribute;
 
 /**
+ * The <code>NumberOfDocuments</code> printing attribute specifies 
+ * the number of documents in a job.
+ * <p>
+ * <b>IPP Compatibility:</b> NumberOfDocuments is an IPP 1.1 attribute.
+ * </p>
+ *
  * @author Michael Koch
  */
 public final class NumberOfDocuments extends IntegerSyntax
@@ -53,7 +59,7 @@ public final class NumberOfDocuments extends IntegerSyntax
    *
    * @param value the number of documents
    *
-   * @exception IllegalArgumentException if value < 0
+   * @exception IllegalArgumentException if value &lt; 0
    */
   public NumberOfDocuments(int value)
   {
@@ -64,11 +70,12 @@ public final class NumberOfDocuments extends IntegerSyntax
   }
   
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +88,7 @@ public final class NumberOfDocuments extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>NumberOfDocuments</code> itself
+   * @return The class <code>NumberOfDocuments</code> itself.
    */
   public Class getCategory()
   {
@@ -89,9 +96,9 @@ public final class NumberOfDocuments extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "number-of-documents"
+   * @return The name "number-of-documents".
    */
   public String getName()
   {
index 1da2e1b466a84706167ba85cb29a9539814781c5..d3c0952fcae12d03d43b4253b11ebeaf84e55905 100644 (file)
@@ -1,5 +1,5 @@
 /* NumberOfInterveningJobs.java -- 
-   Copyright (C) 2003, 2004  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,6 +41,13 @@ import javax.print.attribute.IntegerSyntax;
 import javax.print.attribute.PrintJobAttribute;
 
 /**
+ * The <code>NumberOfInterveningJobs</code> printing attribute provides
+ * the number of jobs ahead in the print service queue before the 
+ * requested job.
+ * <p>
+ * <b>IPP Compatibility:</b> NumberOfInterveningJobs is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch
  */
 public final class NumberOfInterveningJobs extends IntegerSyntax
@@ -53,7 +60,7 @@ public final class NumberOfInterveningJobs extends IntegerSyntax
    *
    * @param value the number of intervening jobs
    *
-   * @exception IllegalArgumentException if value < 0
+   * @exception IllegalArgumentException if value &lt; 0
    */
   public NumberOfInterveningJobs(int value)
   {
@@ -64,11 +71,12 @@ public final class NumberOfInterveningJobs extends IntegerSyntax
   }
   
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +89,7 @@ public final class NumberOfInterveningJobs extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>NumberOfInterveningJobs</code> itself
+   * @return The class <code>NumberOfInterveningJobs</code> itself.
    */
   public Class getCategory()
   {
@@ -89,9 +97,9 @@ public final class NumberOfInterveningJobs extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "number-of-intervening-jobs"
+   * @return The name "number-of-intervening-jobs".
    */
   public String getName()
   {
index 4dee55394c4f62245899c149716a63332d09bdfc..aa2324040af7d64aee8094a13fb3162e1e903134 100644 (file)
@@ -1,5 +1,5 @@
 /* NumberUp.java -- 
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -43,6 +43,17 @@ import javax.print.attribute.PrintJobAttribute;
 import javax.print.attribute.PrintRequestAttribute;
 
 /**
+ * The <code>NumberUp</code> printing attribute specifies the number of pages 
+ * to be arranged upon a single media sheet.
+ * <p>
+ * <b>Note:</b> The effect of this attribute on jobs with multiple documents 
+ * is controlled by the job attribute 
+ * {@link javax.print.attribute.standard.MultipleDocumentHandling}.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> NumberUp is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch
  */
 public final class NumberUp extends IntegerSyntax
@@ -56,7 +67,7 @@ public final class NumberUp extends IntegerSyntax
    * @param value the number of print-stream pages to print on a single side
    * of a media
    *
-   * @exception IllegalArgumentException if value < 1
+   * @exception IllegalArgumentException if value &lt; 1
    */
   public NumberUp(int value)
   {
@@ -64,11 +75,12 @@ public final class NumberUp extends IntegerSyntax
   }
   
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +93,7 @@ public final class NumberUp extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>NumberUp</code> itself
+   * @return The class <code>NumberUp</code> itself.
    */
   public Class getCategory()
   {
@@ -89,9 +101,9 @@ public final class NumberUp extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "number-up"
+   * @return The name "number-up".
    */
   public String getName()
   {
index 512bdaa00c7f20f3ac2aca0140260181436c951d..71392a9ef5291f7ec9ae37ece451da3fcd150f7f 100644 (file)
@@ -1,5 +1,5 @@
 /* NumberUpSupported.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,7 +42,15 @@ import javax.print.attribute.SupportedValuesAttribute;
 
 
 /**
+ * The <code>NumberUpSupported</code> printing attribute specifies the 
+ * supported value or range of values for the 
+ * {@link javax.print.attribute.standard.NumberUp} attribute.
+ * <p>
+ * <b>IPP Compatibility:</b> NumberUpSupported is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class NumberUpSupported extends SetOfIntegerSyntax
   implements SupportedValuesAttribute
@@ -50,33 +58,75 @@ public final class NumberUpSupported extends SetOfIntegerSyntax
   private static final long serialVersionUID = -1041573395759141805L;
 
   /**
-   * Constructs a <code>NumberUp</code> object.
+   * Constructs a <code>NumberUpSupported</code> object.
+   *
+   * @param member the only one value supported for number up.
+   *
+   * @exception IllegalArgumentException if member is &lt; 1
    */
   public NumberUpSupported(int member)
   {
     super(member);
+    
+    if (member < 1)
+      throw new IllegalArgumentException("member may not be less than 1");
   }
 
   /**
-   * Constructs a <code>NumberUp</code> object.
+   * Constructs a <code>NumberUpSupported</code> object.
+   *
+   * @param members the members supported for number up.
+   *
+   * @exception IllegalArgumentException if any element is invalid
+   * @exception NullPointerException if members is <code>null</code> or any 
+   * element of members is <code>null</code>.
    */
   public NumberUpSupported(int[][] members)
   {
     super(members);
+    
+    if (members == null)
+      throw new NullPointerException("members may not be null");
   }
 
   /**
-   * Constructs a <code>NumberUp</code> object.
+   * Constructs a <code>NumberUpSupported</code> object with the
+   * given range for supported number up values.
+   *
+   * @param lowerBound the lower bound value
+   * @param upperBound the upper bound value
+   *
+   * @exception IllegalArgumentException if lowerBound &lt;= upperbound
+   * and lowerBound &lt; 1
    */
   public NumberUpSupported(int lowerBound, int upperBound)
   {
     super(lowerBound, upperBound);
+    
+    if (lowerBound < 1)
+      throw new IllegalArgumentException("lowerBound may not be less than 1");
+  }
+  
+  /**
+   * Tests if the given object is equal to this object.
+   *
+   * @param obj the object to test
+   *
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if (! (obj instanceof NumberUpSupported))
+      return false;
+   
+    return super.equals(obj);
   }
 
   /**
    * Returns category of this class.
    *
-   * @return the class <code>NumberUpSupported</code> itself
+   * @return The class <code>NumberUpSupported</code> itself.
    */
   public Class getCategory()
   {
@@ -86,7 +136,7 @@ public final class NumberUpSupported extends SetOfIntegerSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "number-up-supported".
    */
   public String getName()
   {
index ca63fffdaeb1c37a1fcb3cce780d9c3b95d4ba85..1f9f0bf6f7e0f3f4904d6bd203d954973a95beb9 100644 (file)
@@ -1,5 +1,5 @@
 /* OrientationRequested.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,25 +44,64 @@ import javax.print.attribute.PrintRequestAttribute;
 
 
 /**
+ * The <code>OrientationRequested</code> printing attribute specifies
+ * the desired orientation of the print data on the media sheet.
+ * <p>
+ * The effect of this attribute may depend on the document format as
+ * some document formats (e.g. postscript) contains the orientation
+ * inside the print data. However for other formats like e.g. plain
+ * text this attribute will have an effect on the orientation.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> OrientationRequested is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class OrientationRequested extends EnumSyntax
   implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
 {
   private static final long serialVersionUID = -4447437289862822276L;
 
+  /** 
+   * Orientation as portrait. 
+   */
   public static final OrientationRequested PORTRAIT =
-    new OrientationRequested(0);
+    new OrientationRequested(3);
+  
+  /** 
+   * Orientation as landscape. 
+   */
   public static final OrientationRequested LANDSCAPE =
-    new OrientationRequested(1);
+    new OrientationRequested(4);
+  
+  /** 
+   * Orientation as reversed landscape. 
+   */
   public static final OrientationRequested REVERSE_LANDSCAPE =
-    new OrientationRequested(2);
+    new OrientationRequested(5);
+  
+  /** 
+   * Orientation as reversed portrait. 
+   */
   public static final OrientationRequested REVERSE_PORTRAIT =
-    new OrientationRequested(3);
+    new OrientationRequested(6);
+  
 
-    /**
-     * Constructs a <code>OrientationRequested</code> object.
-     */
+  private static final String[] stringTable = { "portrait", "landscape",
+                                                "reverse-landscape",
+                                                "reverse-portrait" };
+  
+  private static final OrientationRequested[] 
+      enumValueTable = { PORTRAIT, LANDSCAPE, 
+                         REVERSE_LANDSCAPE, REVERSE_PORTRAIT };
+
+  /**
+   * Constructs a <code>OrientationRequested</code> object.
+   * 
+   * @param value the value
+   */
   protected OrientationRequested(int value)
   {
     super(value);
@@ -71,7 +110,7 @@ public final class OrientationRequested extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>OrientationRequested</code> itself
+   * @return The class <code>OrientationRequested</code> itself.
    */
   public Class getCategory()
   {
@@ -81,10 +120,41 @@ public final class OrientationRequested extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "orientation-requested".
    */
   public String getName()
   {
     return "orientation-requested";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
+  
+  /**
+   * Returns the lowest used value by the enumerations of this class.
+   * .
+   * @return The lowest value used.
+   */
+  protected int getOffset()
+  {
+    return 3;
+  }  
 }
index 4bc1f6c8339089f00ebdca57435781b58bf73857..917064f54465c27e1ce6da0513fc8b22141eccaf 100644 (file)
@@ -1,5 +1,5 @@
 /* OutputDeviceAssigned.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,18 @@ import javax.print.attribute.PrintJobAttribute;
 import javax.print.attribute.TextSyntax;
 
 /**
+ * The <code>OutputDeviceAssigned</code> printing attribute specifies the
+ * output printer device assigned by a print service to a print job. 
+ * <p>
+ * This may be empty if a print service is embedded in a printer, e.g. is the
+ * output device. However there exist print services with several physical 
+ * output devices (e.g. CUPS classes) where this attribute provides the actual
+ * output device.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> OutputDeviceAssigned is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class OutputDeviceAssigned extends TextSyntax
@@ -54,9 +66,11 @@ public final class OutputDeviceAssigned extends TextSyntax
   /**
    * Creates a <code>OutputDeviceAssigned</code> object.
    *
-   * @param deviceName the user name
+   * @param deviceName the name of the device.
+   * @param locale the locale to use, if <code>null</code> the default
+   * locale is used.
    *
-   * @exception NullPointerException if deviceName is null
+   * @exception NullPointerException if deviceName is <code>null</code>.
    */
   public OutputDeviceAssigned(String deviceName, Locale locale)
   {
@@ -64,11 +78,12 @@ public final class OutputDeviceAssigned extends TextSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +96,7 @@ public final class OutputDeviceAssigned extends TextSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>OutputDeviceAssigned</code> itself
+   * @return The class <code>OutputDeviceAssigned</code> itself.
    */
   public Class getCategory()
   {
@@ -89,9 +104,9 @@ public final class OutputDeviceAssigned extends TextSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "output-device-assigned"
+   * @return The name "output-device-assigned".
    */
   public String getName()
   {
index 79865390464b679ff32dab2f4bdc75f0eca98287..d3be3e5522a10e55698c5f2c7cac2917fd1c9bf6 100644 (file)
@@ -1,5 +1,5 @@
 /* PDLOverrideSupported.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,20 +42,44 @@ import javax.print.attribute.PrintServiceAttribute;
 
 
 /**
+ * The <code>PDLOverrideSupported</code> printing attribute specifies
+ * if a print services is capable of attempting to override document data
+ * instructions with IPP attributesc.
+ * <p>
+ * <b>IPP Compatibility:</b> PDLOverrideSupported is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public class PDLOverrideSupported extends EnumSyntax
   implements PrintServiceAttribute
 {
   private static final long serialVersionUID = -4393264467928463934L;
 
+  /**
+   * Indicates that the print service is not capable of
+   * attempting to override document data instructions.
+   */
   public static final PDLOverrideSupported NOT_ATTEMPTED =
     new PDLOverrideSupported(0);
+  
+  /**
+   * Indicates that the print service is capable of
+   * attempting to override document data instructions.
+   */
   public static final PDLOverrideSupported ATTEMPTED =
-    new PDLOverrideSupported(0);
+    new PDLOverrideSupported(1);
+  
+  private static final String[] stringTable = { "not-attempted", "attempted" };
+  
+  private static final PDLOverrideSupported[] enumValueTable = { NOT_ATTEMPTED,
+                                                                 ATTEMPTED};
 
   /**
    * Constructs a <code>PDLOverrideSupported</code> object.
+   * 
+   * @param value the enum value
    */
   protected PDLOverrideSupported(int value)
   {
@@ -65,7 +89,7 @@ public class PDLOverrideSupported extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PDLOverrideSupported</code> itself
+   * @return The class  <code>PDLOverrideSupported</code> itself.
    */
   public Class getCategory()
   {
@@ -75,10 +99,31 @@ public class PDLOverrideSupported extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "pdl-override-supported".
    */
   public String getName()
   {
     return "pdl-override-supported";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index 2b3c632e2ad8a583d649aa99e9ed6b1af53b625f..3aa1b562549582b51bff8a3e45775e33244dfe4b 100644 (file)
@@ -1,5 +1,5 @@
 /* PageRanges.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,7 +44,19 @@ import javax.print.attribute.PrintRequestAttribute;
 import javax.print.attribute.SetOfIntegerSyntax;
 
 /**
+ * The <code>PageRanges</code> printing attribute specifies the 
+ * range(s) of pages to be printed in a print job.
+ * <p>
+ * <b>Note:</b> The effect of this attribute on jobs with multiple 
+ * documents is controlled by the job attribute 
+ * {@link javax.print.attribute.standard.MultipleDocumentHandling}.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> PageRanges is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class PageRanges extends SetOfIntegerSyntax
   implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
@@ -52,33 +64,95 @@ public final class PageRanges extends SetOfIntegerSyntax
   private static final long serialVersionUID = 8639895197656148392L;
 
   /**
-   * Constructs a <code>PageRanges</code> object.
+   * Constructs a <code>PageRanges</code> object with only one
+   * page to be printed.
+   *
+   * @param member the only page to be printed.
+   *
+   * @exception IllegalArgumentException if member is &lt; 1
    */
   public PageRanges(int member)
   {
     super(member);
+    
+    if (member < 1)
+      throw new IllegalArgumentException("member may not be less than 1");
   }
 
   /**
-   * Constructs a <code>PageRanges</code> object.
+   * Constructs a <code>PageRanges</code> object with a set
+   * of ranges to be printed.
+   *
+   * @param members the page ranges to be printed.
+   *
+   * @exception IllegalArgumentException if any element is invalid
+   * @exception NullPointerException if members is <code>null</code> or any 
+   * element of members is <code>null</code>.
    */
   public PageRanges(int[][] members)
   {
     super(members);
+    
+    if (members == null)
+      throw new NullPointerException("members may not be null");
   }
 
   /**
-   * Constructs a <code>PageRanges</code> object.
+   * Constructs a <code>PageRanges</code> object with the
+   * given single range of pages to be printed.
+   *
+   * @param lowerBound the lower bound value
+   * @param upperBound the upper bound value
+   *
+   * @exception IllegalArgumentException if lowerBound &lt;= upperbound
+   * and lowerBound &lt; 1
    */
   public PageRanges(int lowerBound, int upperBound)
   {
     super(lowerBound, upperBound);
+    
+    if (lowerBound < 1)
+      throw new IllegalArgumentException("lowerbound may not be less than 1");
+  }
+  
+  /**
+   * Constructs a <code>PageRanges</code> object with a set
+   * of ranges to be printed in string array form.
+   *
+   * @param members the page ranges to be printed in string form.
+   *
+   * @exception IllegalArgumentException if any element is invalid.
+   * @exception NullPointerException if members is <code>null</code> or any 
+   * element of members is <code>null</code>.
+   */
+  public PageRanges(String members)
+  {
+    super(members);
+    
+    if (members == null)
+      throw new NullPointerException("members may not be null");
+  }
+  
+  /**
+   * Tests if the given object is equal to this object.
+   *
+   * @param obj the object to test
+   *
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if (! (obj instanceof PageRanges))
+      return false;
+   
+    return super.equals(obj);
   }
 
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PageRanges</code> itself
+   * @return The class <code>PageRanges</code> itself.
    */
   public Class getCategory()
   {
@@ -88,7 +162,7 @@ public final class PageRanges extends SetOfIntegerSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "page-ranges".
    */
   public String getName()
   {
index db2658a7fdb2a2417a605d66b23a3291fde332a1..c06fb9746af9cf19991ef3ec88926af17ccbacd7 100644 (file)
@@ -1,5 +1,5 @@
 /* PagesPerMinute.java -- 
-   Copyright (C) 2003, 2004  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,6 +42,13 @@ import javax.print.attribute.IntegerSyntax;
 import javax.print.attribute.PrintServiceAttribute;
 
 /**
+ * The <code>PagesPerMinute</code> printing attribute specifies 
+ * the nominal number of pages per minute which may be printed
+ * by the printer. 
+ * <p>
+ * <b>IPP Compatibility:</b> PagesPerMinute is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class PagesPerMinute extends IntegerSyntax
@@ -54,7 +61,7 @@ public final class PagesPerMinute extends IntegerSyntax
    *
    * @param value the number of pages per minute
    *
-   * @exception IllegalArgumentException if value < 0
+   * @exception IllegalArgumentException if value &lt; 0
    */
   public PagesPerMinute(int value)
   {
@@ -65,11 +72,12 @@ public final class PagesPerMinute extends IntegerSyntax
   }
   
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -82,7 +90,7 @@ public final class PagesPerMinute extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PagesPerMinute</code> itself
+   * @return The class <code>PagesPerMinute</code> itself.
    */
   public Class getCategory()
   {
@@ -90,9 +98,9 @@ public final class PagesPerMinute extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "pages-per-minute"
+   * @return The name "pages-per-minute".
    */
   public String getName()
   {
index 85421d70d4df288bc42bd73821b5e540e15ef350..80a397e6381328274c30b79ad2e82db9c73eaa18 100644 (file)
@@ -1,5 +1,5 @@
 /* PagesPerMinuteColor.java -- 
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,6 +41,13 @@ import javax.print.attribute.IntegerSyntax;
 import javax.print.attribute.PrintServiceAttribute;
 
 /**
+ * The <code>PagesPerMinuteColor</code> printing attribute specifies 
+ * the nominal number of pages per minute which may be printed in
+ * color by the printer. 
+ * <p>
+ * <b>IPP Compatibility:</b> PagesPerMinuteColor is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch
  */
 public final class PagesPerMinuteColor extends IntegerSyntax
@@ -51,9 +58,9 @@ public final class PagesPerMinuteColor extends IntegerSyntax
   /**
    * Creates a <code>PagesPerMinuteColor</code> object.
    *
-   * @param value the number of pages per minute
+   * @param value the number of pages per minute in color
    *
-   * @exception IllegalArgumentException if value < 0
+   * @exception IllegalArgumentException if value &lt; 0
    */
   public PagesPerMinuteColor(int value)
   {
@@ -64,11 +71,12 @@ public final class PagesPerMinuteColor extends IntegerSyntax
   }
   
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +89,7 @@ public final class PagesPerMinuteColor extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PagesPerMinuteColor</code> itself
+   * @return The class <code>PagesPerMinuteColor</code> itself.
    */
   public Class getCategory()
   {
@@ -89,9 +97,9 @@ public final class PagesPerMinuteColor extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "pages-per-minute-color"
+   * @return The name "pages-per-minute-color".
    */
   public String getName()
   {
index bd1821d12f87d16f95d30666728b3f8b3e7d6fbd..3a479abfac4a16d1baf41d5138ae8b419f973e95 100644 (file)
@@ -1,5 +1,5 @@
 /* PresentationDirection.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -43,32 +43,90 @@ import javax.print.attribute.PrintRequestAttribute;
 
 
 /**
+ * The <code>PresentationDirection</code> attribute specifies
+ * a value to be used together with the <code>NumberUp</code> attribute 
+ * to indicate the layout of multiple pages on a single media sheet.
+ * <p>
+ * <b>IPP Compatibility:</b> PresentationDirection is not an IPP 1.1 
+ * attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class PresentationDirection extends EnumSyntax
   implements PrintRequestAttribute, PrintJobAttribute
 {
   private static final long serialVersionUID = 8294728067230931780L;
 
+  /**
+   * The single pages are arranged on the media in columns starting 
+   * at the top left towards the bottom left.
+   */
   public static final PresentationDirection TOBOTTOM_TORIGHT =
     new PresentationDirection(0);
+  
+  /**
+   * The single pages are arranged on the media in columns starting 
+   * at the top right towards the bottom left.
+   */
   public static final PresentationDirection TOBOTTOM_TOLEFT =
     new PresentationDirection(1);
+  
+  /**
+   * The single pages are arranged on the media in columns starting 
+   * at the bottom left towards the top right.
+   */
   public static final PresentationDirection TOTOP_TORIGHT =
     new PresentationDirection(2);
+  
+  /**
+   * The single pages are arranged on the media in columns starting 
+   * at the bottom right towards the top left.
+   */
   public static final PresentationDirection TOTOP_TOLEFT =
     new PresentationDirection(3);
+  
+  /**
+   * The single pages are arranged on the media in rows starting 
+   * at the top left towards the right bottom.
+   */
   public static final PresentationDirection TORIGHT_TOBOTTOM =
     new PresentationDirection(4);
+  
+  /**
+   * The single pages are arranged on the media in rows starting 
+   * at the bottom left towards the right top.
+   */
   public static final PresentationDirection TORIGHT_TOTOP =
     new PresentationDirection(5);
+  
+  /**
+   * The single pages are arranged on the media in rows starting 
+   * at the top right towards the left bottom.
+   */
   public static final PresentationDirection TOLEFT_TOBOTTOM =
     new PresentationDirection(6);
+  
+  /**
+   * The single pages are arranged on the media in rows starting 
+   * at the bottom right towards the left top.
+   */
   public static final PresentationDirection TOLEFT_TOTOP =
     new PresentationDirection(7);
 
+  private static final String[] stringTable = { "tobottom-toright", 
+    "tobottom-toleft", "totop-toright", "totop-toleft", "toright-tobottom", 
+    "toright-totop", "toleft-tobottom", "toleft-totop" };
+
+  private static final PresentationDirection[] enumValueTable = 
+    { TOBOTTOM_TORIGHT, TOBOTTOM_TOLEFT, TOTOP_TORIGHT, TOTOP_TOLEFT, 
+      TORIGHT_TOBOTTOM, TORIGHT_TOTOP, TOLEFT_TOBOTTOM, TOLEFT_TOTOP };
+  
   /**
    * Constructs a <code>PresentationDirection</code> object.
+   * 
+   * @param value the enum value.
    */
   private PresentationDirection(int value)
   {
@@ -78,7 +136,7 @@ public final class PresentationDirection extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PresentationDirection</code> itself
+   * @return The class <code>PresentationDirection</code> itself.
    */
   public Class getCategory()
   {
@@ -88,10 +146,31 @@ public final class PresentationDirection extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "presentation-direction".
    */
   public String getName()
   {
     return "presentation-direction";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index 63be24e70f29ad8aec4ce78b53fe901882bd6bf9..2f1a105ce5470880cb95d2be33b284d844a6a737 100644 (file)
@@ -1,5 +1,5 @@
 /* PrintQuality.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,19 +44,43 @@ import javax.print.attribute.PrintRequestAttribute;
 
 
 /**
+ * The <code>PrintQuality</code> printing attribute specifies the
+ * print quality that should be used by the print services for a job.
+ * <p>
+ * <b>IPP Compatibility:</b> PrintQuality is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public class PrintQuality extends EnumSyntax
   implements DocAttribute, PrintJobAttribute, PrintRequestAttribute
 {
   private static final long serialVersionUID = -3072341285225858365L;
 
-  public static final PrintQuality DRAFT = new PrintQuality(0);
-  public static final PrintQuality NORMAL = new PrintQuality(1);
-  public static final PrintQuality HIGH = new PrintQuality(2);
+  /** 
+   * Draft quality of the printer. 
+   */
+  public static final PrintQuality DRAFT = new PrintQuality(3);
+  
+  /** 
+   * Normal quality of the printer. 
+   */
+  public static final PrintQuality NORMAL = new PrintQuality(4);
+  
+  /** 
+   * High quality of the printer. 
+   */
+  public static final PrintQuality HIGH = new PrintQuality(5);
 
+  private static final String[] stringTable = { "draft", "normal", "high" };
+  
+  private static final PrintQuality[] enumValueTable = { DRAFT, NORMAL, HIGH };
+  
   /**
    * Constructs a <code>PrintQuality</code> object.
+   * 
+   * @param value the value of the enum
    */
   protected PrintQuality(int value)
   {
@@ -66,7 +90,7 @@ public class PrintQuality extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PrintQuality</code> itself
+   * @return The class <code>PrintQuality</code> itself.
    */
   public Class getCategory()
   {
@@ -74,12 +98,43 @@ public class PrintQuality extends EnumSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "print-quality"
+   * @return The name "print-quality".
    */
   public String getName()
   {
     return "print-quality";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }  
+
+  /**
+   * Returns the lowest used value by the enumerations of this class.
+   * .
+   * @return The lowest value used.
+   */
+  protected int getOffset()
+  {
+    return 3;
+  }
 }
index 66199c4821ad453a526dad9f5816db196121d585..2cd496cf0c7ed40cca192de5ee752c426f89bf46 100644 (file)
@@ -1,5 +1,5 @@
 /* PrinterInfo.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,12 @@ import javax.print.attribute.PrintServiceAttribute;
 import javax.print.attribute.TextSyntax;
 
 /**
+ * The <code>PrinterInfo</code> printing attribute provides 
+ * informations about a printer device.
+ * <p>
+ * <b>IPP Compatibility:</b> PrinterInfo is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class PrinterInfo extends TextSyntax
@@ -55,9 +61,10 @@ public final class PrinterInfo extends TextSyntax
    * Creates a <code>PrinterInfo</code> object.
    *
    * @param printerInfo the printer info
-   * @param locale the locale of the info, null means default locale
+   * @param locale the locale to use, if <code>null</code> the default
+   * locale is used.
    *
-   * @exception NullPointerException if printerInfo is null
+   * @exception NullPointerException if printerInfo is <code>null</code>.
    */
   public PrinterInfo(String printerInfo, Locale locale)
   {
@@ -65,11 +72,12 @@ public final class PrinterInfo extends TextSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -82,7 +90,7 @@ public final class PrinterInfo extends TextSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PrinterInfo</code> itself
+   * @return The class <code>PrinterInfo</code> itself.
    */
   public Class getCategory()
   {
@@ -90,9 +98,9 @@ public final class PrinterInfo extends TextSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "printer-info"
+   * @return The name "printer-info".
    */
   public String getName()
   {
index 19b555a36199415ec2759f68bb2d8680c6aeffd3..51f96c11d6bdecf369ff8e1a3ab3d35520be27a3 100644 (file)
@@ -1,5 +1,5 @@
 /* PrinterIsAcceptingJobs.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,20 +42,46 @@ import javax.print.attribute.PrintServiceAttribute;
 
 
 /**
+ * The <code>PrinterIsAcceptingJobs</code> printing attribute signals 
+ * if a print services is currently accepting jobs.
+ * <p>
+ * <b>IPP Compatibility:</b> PrinterIsAcceptingJobs is an IPP 1.1 attribute.
+ * The IPP specification treats PrinterIsAcceptingJobs as boolean type which 
+ * is not available in the Java Print Service API. The IPP boolean value "true" 
+ * corresponds to <code>ACCEPTING_JOBS</code> and "false" 
+ * to <code>NOT_ACCEPTING_JOBS</code>.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public class PrinterIsAcceptingJobs extends EnumSyntax
   implements PrintServiceAttribute
 {
   private static final long serialVersionUID = -5052010680537678061L;
 
+  /**
+   * The printer is not accepting jobs currently.
+   */
   public static final PrinterIsAcceptingJobs NOT_ACCEPTING_JOBS =
     new PrinterIsAcceptingJobs(0);
+  
+  /**
+   * The printer is accepting jobs.
+   */
   public static final PrinterIsAcceptingJobs ACCEPTING_JOBS =
     new PrinterIsAcceptingJobs(1);
 
+  private static final String[] stringTable = { "not-accepting-jobs", 
+                                                "accepting-jobs" };
+  
+  private static final PrinterIsAcceptingJobs[] enumValueTable = 
+    { NOT_ACCEPTING_JOBS, ACCEPTING_JOBS };
+  
   /**
    * Constructs a <code>PrinterIsAcceptingJobs</code> object.
+   * 
+   * @param value the enum value.
    */
   protected PrinterIsAcceptingJobs(int value)
   {
@@ -65,7 +91,7 @@ public class PrinterIsAcceptingJobs extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PrinterIsAcceptingJobs</code> itself
+   * @return The class <code>PrinterIsAcceptingJobs</code> itself.
    */
   public Class getCategory()
   {
@@ -75,10 +101,31 @@ public class PrinterIsAcceptingJobs extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "printer-is-accepting-jobs".
    */
   public String getName()
   {
     return "printer-is-accepting-jobs";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index f342e8c4b897419da37c16406bfd60d375240c43..35b61e4e5d11da3af8de9ad90988d6a93c31a80b 100644 (file)
@@ -1,5 +1,5 @@
 /* PrinterLocation.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,12 @@ import javax.print.attribute.PrintServiceAttribute;
 import javax.print.attribute.TextSyntax;
 
 /**
+ * The <code>PrinterLocation</code> printing attribute provides the location 
+ * of a printer device. This may be a room and building name for example.
+ * <p>
+ * <b>IPP Compatibility:</b> PrinterLocation is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class PrinterLocation extends TextSyntax
@@ -55,9 +61,10 @@ public final class PrinterLocation extends TextSyntax
    * Creates a <code>PrinterLocation</code> object.
    *
    * @param printerLocation the printer location
-   * @param locale the locale of the location, null means default locale
+   * @param locale the locale to use, if <code>null</code> the default
+   * locale is used.
    *
-   * @exception NullPointerException if printerLocation is null
+   * @exception NullPointerException if printerLocation is <code>null</code>.
    */
   public PrinterLocation(String printerLocation, Locale locale)
   {
@@ -65,11 +72,12 @@ public final class PrinterLocation extends TextSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -82,7 +90,7 @@ public final class PrinterLocation extends TextSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PrinterLocation</code> itself
+   * @return The class <code>PrinterLocation</code> itself.
    */
   public Class getCategory()
   {
@@ -90,9 +98,9 @@ public final class PrinterLocation extends TextSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "printer-location"
+   * @return The name "printer-location".
    */
   public String getName()
   {
index c3f3a63881f987003bf0e64173abb17e367e9212..7010746a522f11fb96cac7fea52719a267af60ec 100644 (file)
@@ -1,5 +1,5 @@
 /* PrinterMakeAndModel.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,12 @@ import javax.print.attribute.PrintServiceAttribute;
 import javax.print.attribute.TextSyntax;
 
 /**
+ * The <code>PrinterMakeAndModel</code> printing attribute provides the name
+ * of the maker and the model of the printer.
+ * <p>
+ * <b>IPP Compatibility:</b> PrinterMakeAndModel is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class PrinterMakeAndModel extends TextSyntax
@@ -55,9 +61,10 @@ public final class PrinterMakeAndModel extends TextSyntax
    * Creates a <code>PrinterMakeAndModel</code> object.
    *
    * @param makeAndModel the make and model string
-   * @param locale the locale of the make and model, null means default locale
+   * @param locale the locale to use, if <code>null</code> the default
+   * locale is used.
    *
-   * @exception NullPointerException if makeAndModel is null
+   * @exception NullPointerException if makeAndModel is <code>null</code>.
    */
   public PrinterMakeAndModel(String makeAndModel, Locale locale)
   {
@@ -65,11 +72,12 @@ public final class PrinterMakeAndModel extends TextSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -82,7 +90,7 @@ public final class PrinterMakeAndModel extends TextSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PrinterMakeAndModel</code> itself
+   * @return The class <code>PrinterMakeAndModel</code> itself.
    */
   public Class getCategory()
   {
@@ -90,9 +98,9 @@ public final class PrinterMakeAndModel extends TextSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "printer-make-and-model"
+   * @return The name "printer-make-and-model".
    */
   public String getName()
   {
index d231eb2aa8235e4561eb0896e919414fa792b73e..b4f5d88bd45a12f0551e46ad97082b22bf76a5a0 100644 (file)
@@ -1,5 +1,5 @@
 /* PrinterMessageFromOperator.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,15 @@ import javax.print.attribute.PrintServiceAttribute;
 import javax.print.attribute.TextSyntax;
 
 /**
+ * The <code>PrinterMessageFromOperator</code> printing attribute provides 
+ * a message from an operator or a system administrator related to the 
+ * printer. This may include informations about the status of the printer
+ * or expected downtimes, etc.
+ * <p>
+ * <b>IPP Compatibility:</b> PrinterMessageFromOperator is an IPP 1.1 
+ * attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class PrinterMessageFromOperator extends TextSyntax
@@ -55,9 +64,10 @@ public final class PrinterMessageFromOperator extends TextSyntax
    * Creates a <code>PrinterMessageFromOperator</code> object.
    *
    * @param message the message
-   * @param locale the locale of the message, null means default locale
+   * @param locale the locale to use, if <code>null</code> the default
+   * locale is used.
    *
-   * @exception NullPointerException if message is null
+   * @exception NullPointerException if message is <code>null</code>.
    */
   public PrinterMessageFromOperator(String message, Locale locale)
   {
@@ -65,11 +75,12 @@ public final class PrinterMessageFromOperator extends TextSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -82,7 +93,7 @@ public final class PrinterMessageFromOperator extends TextSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PrinterMessageFromOperator</code> itself
+   * @return The class <code>PrinterMessageFromOperator</code> itself.
    */
   public Class getCategory()
   {
@@ -90,9 +101,9 @@ public final class PrinterMessageFromOperator extends TextSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "printer-message-from-operator"
+   * @return The name "printer-message-from-operator".
    */
   public String getName()
   {
index b0cf97397771185670f6b82317c4c5103a498dda..28abd4e3fb6835004f75649d419927fcc960366a 100644 (file)
@@ -1,5 +1,5 @@
 /* PrinterMoreInfo.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,7 +44,18 @@ import javax.print.attribute.PrintServiceAttribute;
 import javax.print.attribute.URISyntax;
 
 /**
+ * The <code>PrinterMoreInfo</code> attribute provides a URI that can be used
+ * to obtain more information about the printer.
+ * <p>
+ * The URI may for example contain a reference to a HTML page with information.
+ * The information is normally intended for end users.
+ * </p> 
+ * <p>
+ * <b>IPP Compatibility:</b> PrinterMoreInfo is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class PrinterMoreInfo extends URISyntax
   implements PrintServiceAttribute
@@ -53,16 +64,35 @@ public final class PrinterMoreInfo extends URISyntax
 
   /**
    * Constructs a <code>PrinterMoreInfo</code> object.
+   * 
+   * @param uri the URI of the information.
+   * @throws NullPointerException if the given uri is null.
    */
   public PrinterMoreInfo(URI uri)
   {
     super(uri);
   }
+  
+  /**
+   * Tests if the given object is equal to this object.
+   *
+   * @param obj the object to test
+   *
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if(! (obj instanceof PrinterMoreInfo))
+      return false;
+
+    return super.equals(obj);
+  }
 
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PrinterMoreInfo</code> itself
+   * @return The class <code>PrinterMoreInfo</code> itself.
    */
   public Class getCategory()
   {
@@ -72,7 +102,7 @@ public final class PrinterMoreInfo extends URISyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "printer-more-info".
    */
   public String getName()
   {
index 0a39b866c7f04f14c5e9b9b34f3db2129aee2cb7..df0232e167d1f63f4e164b69bc11053bd54b4247 100644 (file)
@@ -1,5 +1,5 @@
 /* PrinterMoreInfoManufacturer.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,7 +44,22 @@ import javax.print.attribute.PrintServiceAttribute;
 import javax.print.attribute.URISyntax;
 
 /**
+ * The <code>PrinterMoreInfoManufacturer</code> attribute provides a URI that 
+ * can be used to obtain more information about the printer device type and
+ * its manufacturer.
+ * <p>
+ * The URI may for example contain a reference to a website of the 
+ * manufacturer, containing informations and links to the latest firmware, 
+ * printer drivers, manual etc. The information is normally intended for 
+ * end users.
+ * </p> 
+ * <p>
+ * <b>IPP Compatibility:</b> PrinterMoreInfoManufacturer is an IPP 1.1 
+ * attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class PrinterMoreInfoManufacturer extends URISyntax
   implements PrintServiceAttribute
@@ -53,16 +68,35 @@ public final class PrinterMoreInfoManufacturer extends URISyntax
 
   /**
    * Constructs a <code>PrinterMoreInfoManufacturer</code> object.
+   * 
+   * @param uri the URI of the information..
+   * @throws NullPointerException if the given uri is null.
    */
   public PrinterMoreInfoManufacturer(URI uri)
   {
     super(uri);
   }
+  
+  /**
+   * Tests if the given object is equal to this object.
+   *
+   * @param obj the object to test
+   *
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if(! (obj instanceof PrinterMoreInfoManufacturer))
+      return false;
+
+    return super.equals(obj);
+  }
 
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PrinterMoreInfoManufacturer</code> itself
+   * @return The class <code>PrinterMoreInfoManufacturer</code> itself.
    */
   public Class getCategory()
   {
@@ -72,7 +106,7 @@ public final class PrinterMoreInfoManufacturer extends URISyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "printer-more-info-manufacturer".
    */
   public String getName()
   {
index d3b495bdb5c9ecf237b21387f56dbb3812af9f6d..5b7da605969a9de0ee30b53d7023c3b66246d61c 100644 (file)
@@ -1,5 +1,5 @@
 /* PrinterName.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,14 @@ import javax.print.attribute.PrintServiceAttribute;
 import javax.print.attribute.TextSyntax;
 
 /**
+ * The <code>PrinterName</code> printing attribute provides the name of a 
+ * print service. The name may but must not be related to parts of the
+ * printer URI.
+ * <p>
+ * <b>IPP Compatibility:</b> PrinterName is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.PrinterURI
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class PrinterName extends TextSyntax
@@ -55,9 +63,10 @@ public final class PrinterName extends TextSyntax
    * Creates a <code>PrinterName</code> object.
    *
    * @param printerName the printer name
-   * @param locale the locale of the name, null means default locale
+   * @param locale the locale to use, if <code>null</code> the default
+   * locale is used.
    *
-   * @exception NullPointerException if printerName is null
+   * @exception NullPointerException if printerName is <code>null</code>.
    */
   public PrinterName(String printerName, Locale locale)
   {
@@ -65,11 +74,12 @@ public final class PrinterName extends TextSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -82,7 +92,7 @@ public final class PrinterName extends TextSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PrinterName</code> itself
+   * @return The class <code>PrinterName</code> itself.
    */
   public Class getCategory()
   {
@@ -90,9 +100,9 @@ public final class PrinterName extends TextSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "printer-name"
+   * @return The name "printer-name".
    */
   public String getName()
   {
index 6a237a8c33e8901aa16bce3f0c3b0eda17a588c5..f4cde0f5e72e4e30b193e0727b1a602f10d6b77d 100644 (file)
@@ -1,5 +1,5 @@
-/* PrinterMoreInfoManufacturer.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+/* PrinterResolution.java --
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,7 +44,14 @@ import javax.print.attribute.ResolutionSyntax;
 
 
 /**
+ * The <code>PrinterResolution</code> printing attribute specifies a 
+ * resolution supported by a print service or to be used by a print job. 
+ * <p>
+ * <b>IPP Compatibility:</b> PrinterResolution is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class PrinterResolution extends ResolutionSyntax
   implements DocAttribute, PrintJobAttribute, PrintRequestAttribute
@@ -52,18 +59,41 @@ public final class PrinterResolution extends ResolutionSyntax
   private static final long serialVersionUID = 13090306561090558L;
 
   /**
-   * Constructs a <code>PrinterResolution</code> object.
+   * Creates a <code>PrinterResolution</code> object with the given cross
+   * feed and feed resolutions.
+   *
+   * @param crossFeedResolution the cross feed resolution
+   * @param feedResolution the feed resolution
+   * @param units the unit to use (e.g. {@link #DPCM} or {@link #DPI})
+   *
+   * @exception IllegalArgumentException if either parameter is &lt; 1
    */
   public PrinterResolution(int crossFeedResolution, int feedResolution,
                            int units)
   {
     super(crossFeedResolution, feedResolution, units);
   }
+  
+  /**
+   * Tests if the given object is equal to this object.
+   *
+   * @param obj the object to test
+   *
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if(! (obj instanceof PrinterResolution))
+      return false;
+    
+    return super.equals(obj);
+  }
 
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PrinterResolution</code> itself
+   * @return The class <code>PrinterResolution</code> itself.
    */
   public Class getCategory()
   {
@@ -73,7 +103,7 @@ public final class PrinterResolution extends ResolutionSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "printer-resolution".
    */
   public String getName()
   {
index 28d78cd50d325aa19ba0ad6c40ea4b71ac5d5709..6fd4c3f4643a1113318628ecc3dbae556ecf69bc 100644 (file)
@@ -1,5 +1,5 @@
 /* PrinterState.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,20 +42,61 @@ import javax.print.attribute.PrintServiceAttribute;
 
 
 /**
+ * The <code>PrinterState</code> printing attribute reports
+ * the current state of the printer device.
+ * <p>
+ * The {@link javax.print.attribute.standard.PrinterStateReasons}
+ * attribute provides further detailed information about
+ * the given printer state. Detailed information about the printer
+ * state and printer state reasons attributes can be found in the 
+ * RFC 2911.
+ * </p> 
+ * <p>
+ * <b>IPP Compatibility:</b> PrinterState is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class PrinterState extends EnumSyntax
   implements PrintServiceAttribute
 {
   private static final long serialVersionUID = -649578618346507718L;
 
+  /**
+   * The state is unknown currently.
+   */
   public static final PrinterState UNKNOWN = new PrinterState(0);
-  public static final PrinterState IDLE = new PrinterState(1);
-  public static final PrinterState PROCESSING = new PrinterState(2);
-  public static final PrinterState STOPPED = new PrinterState(3);
+  
+  /**
+   * The printer device is in idle state. New jobs can start
+   * processing without waiting.
+   */
+  public static final PrinterState IDLE = new PrinterState(3);
+  
+  /**
+   * The printer device is in processing state.
+   */
+  public static final PrinterState PROCESSING = new PrinterState(4);
+  
+  /**
+   * The printer device has stopped. No jobs can be processed and
+   * normally manual intervention is needed.
+   */
+  public static final PrinterState STOPPED = new PrinterState(5);
 
+  private static final String[] stringTable = { "unknown", null, null, 
+                                                "idle", "processing", 
+                                                "stopped" };
+  
+  private static final PrinterState[] enumValueTable = { UNKNOWN, null, null,
+                                                         IDLE, PROCESSING, 
+                                                         STOPPED };
+  
   /**
    * Constructs a <code>PrinterState</code> object.
+   * 
+   * @param value the enum value.
    */
   protected PrinterState(int value)
   {
@@ -65,7 +106,7 @@ public final class PrinterState extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PrinterState</code> itself
+   * @return The class <code>PrinterState</code> itself.
    */
   public Class getCategory()
   {
@@ -75,10 +116,31 @@ public final class PrinterState extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "printer-state".
    */
   public String getName()
   {
     return "printer-state";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index 847395e49469d515b186af53f9669369352d1dc6..3a13585441bc626cd2eb0bcf3ac5c0199981748f 100644 (file)
@@ -1,5 +1,5 @@
 /* PrinterStateReason.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,76 +42,246 @@ import javax.print.attribute.Attribute;
 import javax.print.attribute.EnumSyntax;
 
 /**
+ * The <code>PrinterStateReason</code> attribute provides additional
+ * information about the current state of the printer device. Its always part
+ * of the {@link javax.print.attribute.standard.PrinterStateReasons}
+ * printing attribute. 
+ * <p>
+ * <b>IPP Compatibility:</b> PrinterStateReason is not an IPP 1.1 
+ * attribute itself but used inside the <code>PrinterStateReasons</code>
+ * attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public class PrinterStateReason extends EnumSyntax
   implements Attribute
 {
   private static final long serialVersionUID = -1623720656201472593L;
 
+  /**
+   * Any state other state not listed here.
+   */
   public static final PrinterStateReason OTHER = new PrinterStateReason(0);
+  
+  /**
+   * A media tray has run out of media.
+   */
   public static final PrinterStateReason MEDIA_NEEDED =
     new PrinterStateReason(1);
+  
+  /**
+   * A media jam occured in the printer device.
+   */
   public static final PrinterStateReason MEDIA_JAM = new PrinterStateReason(2);
+  
+  /**
+   * Indicates that the printer has been paused by the pause printer
+   * operation and is currently moving to the pause state.
+   */
   public static final PrinterStateReason MOVING_TO_PAUSED =
     new PrinterStateReason(3);
+  
+  /**
+   * The printer device has be paused by the pause printer operation.
+   */
   public static final PrinterStateReason PAUSED = new PrinterStateReason(4);
+  
+  /**
+   * The printer device has been shutdown or removed from service.
+   */
   public static final PrinterStateReason SHUTDOWN = new PrinterStateReason(5);
+  
+  /**
+   * The printer object is connecting to the device. If a printer
+   * device is on the network the printer object may be unable to connect. 
+   */
   public static final PrinterStateReason CONNECTING_TO_DEVICE =
     new PrinterStateReason(6);
+  
+  /**
+   * The connection to the device has timed out. 
+   */
   public static final PrinterStateReason TIMED_OUT = new PrinterStateReason(7);
+  
+  /**
+   * The printer object is stopping the printer device.
+   */
   public static final PrinterStateReason STOPPING = new PrinterStateReason(8);
+  
+  /**
+   * The printer object has stopped partly. A printer object may control
+   * several physical output devices (e.g. a printer class in CUPS) and
+   * stop only some of the devices.
+   */
   public static final PrinterStateReason STOPPED_PARTLY =
     new PrinterStateReason(9);
+  
+  /**
+   * The printer device is low on toner.
+   */
   public static final PrinterStateReason TONER_LOW =
     new PrinterStateReason(10);
+  
+  /**
+   * The printer device is out of toner.
+   */
   public static final PrinterStateReason TONER_EMPTY =
     new PrinterStateReason(11);
+  
+  /**
+   * The printers spool area is currently full. The printer is
+   * currently not able to accept jobs.
+   */
   public static final PrinterStateReason SPOOL_AREA_FULL =
     new PrinterStateReason(12);
+  
+  /**
+   * One or more covers of the printer device are open.
+   */
   public static final PrinterStateReason COVER_OPEN =
     new PrinterStateReason(13);
+  
+  /**
+   * One or more interlocks of the printer device are open.
+   */
   public static final PrinterStateReason INTERLOCK_OPEN =
     new PrinterStateReason(14);
+  
+  /**
+   * One or more doors of the printer device are open.
+   */
   public static final PrinterStateReason DOOR_OPEN =
     new PrinterStateReason(15);
+  
+  /**
+   * One or more input trays are missing in the printer device.
+   */
   public static final PrinterStateReason INPUT_TRAY_MISSING =
     new PrinterStateReason(16);
+  
+  /**
+   * The printer device is low on media.
+   */
   public static final PrinterStateReason MEDIA_LOW =
     new PrinterStateReason(17);
+  
+  /**
+   * The printer device is out of media.
+   */
   public static final PrinterStateReason MEDIA_EMPTY =
     new PrinterStateReason(18);
+  
+  /**
+   * One or more output trays are missing in the printer device.
+   */
   public static final PrinterStateReason OUTPUT_TRAY_MISSING =
     new PrinterStateReason(19);
+  
+  /**
+   * One or more output areas of the printer device are almost full.
+   */
   public static final PrinterStateReason OUTPUT_AREA_ALMOST_FULL =
     new PrinterStateReason(20);
+  
+  /**
+   * One or more output areas of the printer device are full.
+   */
   public static final PrinterStateReason OUTPUT_AREA_FULL =
     new PrinterStateReason(21);
+  
+  /**
+   * The printer device is low on marker supply.
+   */
   public static final PrinterStateReason MARKER_SUPPLY_LOW =
     new PrinterStateReason(22);
+  
+  /**
+   * The printer device is out of marker supply.
+   */
   public static final PrinterStateReason MARKER_SUPPLY_EMPTY =
     new PrinterStateReason(23);
+  
+  /**
+   * The marker waste bin of the printer device is almost full.
+   */
   public static final PrinterStateReason MARKER_WASTE_ALMOST_FULL =
     new PrinterStateReason(24);
+  
+  /**
+   * The marker waste bin of the printer device is full.
+   */
   public static final PrinterStateReason MARKER_WASTE_FULL =
     new PrinterStateReason(25);
+  
+  /**
+   * The fuser of the printer device is over temperature.
+   */
   public static final PrinterStateReason FUSER_OVER_TEMP =
     new PrinterStateReason(26);
+  
+  /**
+   * The fuser of the printer device is under the needed temperature.
+   */
   public static final PrinterStateReason FUSER_UNDER_TEMP =
     new PrinterStateReason(27);
+  
+  /**
+   * The optical photo conductor is near its end of life (EOL).
+   */
   public static final PrinterStateReason OPC_NEAR_EOL =
     new PrinterStateReason(28);
+  
+  /**
+   * The optical photo conductor has reached its end of life.
+   */
   public static final PrinterStateReason OPC_LIFE_OVER =
     new PrinterStateReason(29);
+  
+  /**
+   * The printer device is low on developer.
+   */
   public static final PrinterStateReason DEVELOPER_LOW =
     new PrinterStateReason(30);
+  
+  /**
+   * The printer device is out of developer.
+   */
   public static final PrinterStateReason DEVELOPER_EMPTY =
     new PrinterStateReason(31);
+  
+  /**
+   * An interpreter resource (e.g. font) is unavailable.
+   */
   public static final PrinterStateReason INTERPRETER_RESOURCE_UNAVAILABLE =
     new PrinterStateReason(32);
 
+  private static final String[] stringTable = 
+    { "other", "media-needed",  "media-jam", "moving-to-paused", "paused", 
+    "shutdown", "connecting-to-device", "timed-out", "stopping", 
+    "stopped-partly", "toner-low", "toner-empty", "spool-area-full", 
+    "cover-open", "interlock-open", "door-open", "input-tray-missing", 
+    "media-low", "media-empty", "output-tray-missing", "output-area-almost-full",
+    "output-area-full", "marker-supply-low", "marker-supply-empty", 
+    "marker-waste-almost-full", "marker-waste-full", "fuser-over-temp", 
+    "fuser-under-temp", "opc-near-eol", "opc-life-over", "developer-low", 
+    "developer-empty", "interpreter-resource-unavailable" };
+
+  private static final PrinterStateReason[] enumValueTable = 
+    { OTHER, MEDIA_NEEDED, MEDIA_JAM, MOVING_TO_PAUSED, PAUSED, SHUTDOWN,
+    CONNECTING_TO_DEVICE, TIMED_OUT, STOPPING, STOPPED_PARTLY, TONER_LOW,
+    TONER_EMPTY, SPOOL_AREA_FULL, COVER_OPEN, INTERLOCK_OPEN, DOOR_OPEN,
+    INPUT_TRAY_MISSING, MEDIA_LOW, MEDIA_EMPTY, OUTPUT_TRAY_MISSING,
+    OUTPUT_AREA_ALMOST_FULL, OUTPUT_AREA_FULL, MARKER_SUPPLY_LOW,
+    MARKER_SUPPLY_EMPTY, MARKER_WASTE_ALMOST_FULL, MARKER_WASTE_FULL,
+    FUSER_OVER_TEMP, FUSER_UNDER_TEMP, OPC_NEAR_EOL, OPC_LIFE_OVER, 
+    DEVELOPER_LOW, DEVELOPER_EMPTY, INTERPRETER_RESOURCE_UNAVAILABLE };
+
   /**
    * Constructs a <code>PrinterStateReason</code> object.
+   * 
+   * @param value the enum value.
    */
   protected PrinterStateReason(int value)
   {
@@ -121,7 +291,7 @@ public class PrinterStateReason extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PrintStateReason</code> itself
+   * @return The class <code>PrintStateReason</code> itself.
    */
   public Class getCategory()
   {
@@ -129,12 +299,33 @@ public class PrinterStateReason extends EnumSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "printer-state-reason"
+   * @return The name "printer-state-reason".
    */
   public String getName()
   {
     return "printer-state-reason";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index d81313f7c85d646f501fe7c512d9724841cd3f79..67f160d42fca6c26e42eb1bf5ded0e64ff38b697 100644 (file)
@@ -1,5 +1,5 @@
 /* PrinterStateReasons.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -38,22 +38,153 @@ exception statement from your version. */
 
 package javax.print.attribute.standard;
 
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
 
 import javax.print.attribute.PrintServiceAttribute;
 
 /**
+ * The <code>PrinterStateReasons</code> attribute provides the set of 
+ * additional informations available about the current state of the printer 
+ * device.
+ * <p>
+ * The attribute is basically a map with <code>PrinterStateReason</code>
+ * objects as keys associated with their severity level as 
+ * <code>Severity</code> instances. The IPP keyword value can be 
+ * constructed as follows: <br>
+ * <code>reason.toString() + '-' + severity.toString()</code> 
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> PrinterStateReasons is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.PrinterState
+ * @see javax.print.attribute.standard.PrinterStateReason
+ * @see javax.print.attribute.standard.Severity
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class PrinterStateReasons extends HashMap
   implements PrintServiceAttribute
 {
   private static final long serialVersionUID = -3731791085163619457L;
 
+  /**
+   * Constructs an empty <code>PrinterStateReasons</code> attribute.
+   */  
+  public PrinterStateReasons()
+  {
+    super();
+  }
+
+  /**
+   * Constructs an empty <code>PrinterStateReasons</code> attribute
+   * with the given initial capacity and load factor.
+   * 
+   * @param initialCapacity the intial capacity.
+   * @param loadFactor the load factor of the underlying HashMap.
+   * 
+   * @throws IllegalArgumentException if initialCapacity &lt; 0
+   * @throws IllegalArgumentException if initialCapacity or loadFactor &lt; 0
+   */
+  public PrinterStateReasons(int initialCapacity, float loadFactor)
+  {
+    super(initialCapacity, loadFactor);
+  }
+
+  /**
+   * Constructs an empty <code>PrinterStateReasons</code> attribute
+   * with the given initial capacity and the default load factor.
+   * 
+   * @param initialCapacity the intial capacity.
+   * 
+   * @throws IllegalArgumentException if initialCapacity &lt; 0
+   */
+  public PrinterStateReasons(int initialCapacity)
+  {
+    super(initialCapacity);
+  }
+
+  /**
+   * Constructs a <code>PrinterStateReasons</code> attribute
+   * with the given content of the map.
+   * 
+   * @param map the map for the initial values with the same 
+   * <code>PrinterStateReason</code> to <code>Severity</code> mappings.
+   * 
+   * @throws NullPointerException if map or any key/value is <code>null</code>.
+   * @throws ClassCastException if values of map are not of type 
+   * <code>PrinterStateReason</code> and keys are not of type 
+   * <code>Severity</code>.
+   */
+  public PrinterStateReasons(Map map)
+  {
+    super(map.size(), 0.75f);
+    Iterator it = map.entrySet().iterator();
+    while (it.hasNext())
+      {
+        Map.Entry entry = (Map.Entry) it.next();
+        put(entry.getKey(), entry.getValue());
+      }
+  }
+
+  /**
+   * Constructs an unmodifiable view of the contained printer state reasons
+   * associated with the given severity level.
+   * 
+   * @param severity the severity level for the constructed set.
+   * @return The set of printer state reasons.
+   */
+  public Set printerStateReasonSet(Severity severity)
+  {
+    if (severity == null)
+      throw new NullPointerException("severity is null");
+    
+    HashSet set = new HashSet();
+    Iterator it = entrySet().iterator();
+    while (it.hasNext())
+      {
+        Map.Entry entry = (Map.Entry) it.next();
+        if (entry.getValue().equals(severity))
+          set.add(entry.getKey());
+      }
+    
+    return Collections.unmodifiableSet(set);
+  }
+  
+  /**
+   * Puts the given reason object associated with the given severity object
+   * into the set.
+   * 
+   * @param reason the reason of type <code>PrinterStateReason</code>.
+   * @param severity the severity of the reason of type <code>Severity</code>.
+   * 
+   * @return The previously associated severity of the reason or 
+   * <code>null</code> if the reason object was not in the map before.
+   * 
+   * @throws NullPointerException if any of the values is <code>null</code>.
+   * @throws ClassCastException if reason is not a 
+   * <code>PrinterStateReason</code> and severity is not a 
+   * <code>Severity</code> instance.
+   */
+  public Object put(Object reason, Object severity)
+  {
+    if (reason == null)
+      throw new NullPointerException("reason is null");    
+    if (severity == null)
+      throw new NullPointerException("severity is null");
+    
+    return put((PrinterStateReason) reason, (Severity) severity);
+  }   
+  
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PrintStateReasons</code> itself
+   * @return The class <code>PrintStateReasons</code> itself.
    */
   public Class getCategory()
   {
@@ -61,9 +192,9 @@ public final class PrinterStateReasons extends HashMap
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "printer-state-reasons"
+   * @return The name "printer-state-reasons".
    */
   public String getName()
   {
index e4c89a5c84fecd11c248f32bedbba3e7fd09ab1c..0deca90bed2b6468001b742d999eec48dcdd63da 100644 (file)
@@ -1,5 +1,5 @@
 /* PrinterURI.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,7 +44,18 @@ import javax.print.attribute.PrintServiceAttribute;
 import javax.print.attribute.URISyntax;
 
 /**
+ * The <code>PrinterURI</code> attribute provides the URI of a printer. 
+ * <p>
+ * The URI identifies the printer against all the other print services 
+ * available. This attribute is used to direct a print service request 
+ * to this specific printer.
+ * </p> 
+ * <p>
+ * <b>IPP Compatibility:</b> PrinterURI is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class PrinterURI extends URISyntax
   implements PrintServiceAttribute
@@ -53,16 +64,35 @@ public final class PrinterURI extends URISyntax
 
   /**
    * Constructs a <code>PrinterURI</code> object.
+   * 
+   * @param uri the URI of the print service.
+   * @throws NullPointerException if the given uri is null.
    */
   public PrinterURI(URI uri)
   {
     super(uri);
   }
+  
+  /**
+   * Tests if the given object is equal to this object.
+   *
+   * @param obj the object to test
+   *
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
+   */
+  public boolean equals(Object obj)
+  {
+    if(! (obj instanceof PrinterURI))
+      return false;
+
+    return super.equals(obj);
+  }
 
   /**
    * Returns category of this class.
    *
-   * @return the class <code>PrinterURI</code> itself
+   * @return The class <code>PrinterURI</code> itself.
    */
   public Class getCategory()
   {
@@ -70,9 +100,9 @@ public final class PrinterURI extends URISyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "printer-uri"
+   * @return The name "printer-uri".
    */
   public String getName()
   {
index 7ee0f7c35988af99c867646871b34cc8ea9fbe37..8ff46a954590a1df46a2692148c32aa2aa77e780 100644 (file)
@@ -1,5 +1,5 @@
 /* QueuedJobCount.java -- 
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,6 +41,15 @@ import javax.print.attribute.IntegerSyntax;
 import javax.print.attribute.PrintServiceAttribute;
 
 /**
+ * The <code>QueuedJobCount</code> printing attribute reports 
+ * the number of jobs currently in the queue. These are jobs
+ * that are in 'pending', 'processing', 'pending-held' or
+ * 'processing-stopped' state. 
+ * <p>
+ * <b>IPP Compatibility:</b> QueuedJobCount is an IPP 1.1 attribute.
+ * </p>
+ * @see javax.print.attribute.standard.JobState
+ * 
  * @author Michael Koch
  */
 public final class QueuedJobCount extends IntegerSyntax
@@ -53,7 +62,7 @@ public final class QueuedJobCount extends IntegerSyntax
    *
    * @param value the number of queued jobs
    *
-   * @exception IllegalArgumentException if value < 0
+   * @exception IllegalArgumentException if value &lt; 0
    */
   public QueuedJobCount(int value)
   {
@@ -64,11 +73,12 @@ public final class QueuedJobCount extends IntegerSyntax
   }
   
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -81,7 +91,7 @@ public final class QueuedJobCount extends IntegerSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>QueuedJobCount</code> itself
+   * @return The class <code>QueuedJobCount</code> itself.
    */
   public Class getCategory()
   {
@@ -89,9 +99,9 @@ public final class QueuedJobCount extends IntegerSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "queued-job-count"
+   * @return The name "queued-job-count".
    */
   public String getName()
   {
index b4c0d9408c886fefa1ccfbda7c36818af0c89a9d..8a00218b8b715c6c6fe2af077d2421dae1ea2c6c 100644 (file)
@@ -1,5 +1,5 @@
 /* ReferenceUriSchemesSupported.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,33 +42,82 @@ import javax.print.attribute.EnumSyntax;
 
 
 /**
+ * The <code>ReferenceUriSchemesSupported</code> attribute provides 
+ * the supported URI schemes (e.g. ftp) which are supported by the
+ * printer service to be used as uri reference for document data.
+ * <p>
+ * <b>IPP Compatibility:</b> ReferenceUriSchemesSupported is an IPP 1.1 
+ * attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public class ReferenceUriSchemesSupported extends EnumSyntax
   implements Attribute
 {
   private static final long serialVersionUID = -8989076942813442805L;
 
+  /**
+   * The file transfer protocol (FTP).
+   */
   public static final ReferenceUriSchemesSupported FTP =
     new ReferenceUriSchemesSupported(0);
+  
+  /**
+   * The hyper text transfer protocol (HTTP).
+   */
   public static final ReferenceUriSchemesSupported HTTP =
     new ReferenceUriSchemesSupported(1);
+  
+  /**
+   * The secure hyper text transfer protocol (HTTPS).
+   */
   public static final ReferenceUriSchemesSupported HTTPS =
     new ReferenceUriSchemesSupported(2);
+  
+  /**
+   * The gopher protocol.
+   */
   public static final ReferenceUriSchemesSupported GOPHER =
     new ReferenceUriSchemesSupported(3);
+  
+  /**
+   * The USENET news - RFC 1738.
+   */
   public static final ReferenceUriSchemesSupported NEWS =
     new ReferenceUriSchemesSupported(4);
+  
+  /**
+   * The network news transfer protocol (NNTP) - RFC 1738.
+   */
   public static final ReferenceUriSchemesSupported NNTP =
     new ReferenceUriSchemesSupported(5);
+  
+  /**
+   * The wide area information server protocol (WAIS) - RFC 4156.
+   */
   public static final ReferenceUriSchemesSupported WAIS =
     new ReferenceUriSchemesSupported(6);
+  
+  /**
+   * A filename specific to the host.
+   */
   public static final ReferenceUriSchemesSupported FILE =
     new ReferenceUriSchemesSupported(7);
 
-    /**
-     * Constructs a <code>ReferenceUriSchemeSupported</code> object.
-     */
+  private static final String[] stringTable = { "ftp", "http", "https", 
+                                                "gopher", "news", "nntp", 
+                                                "wais", "file" };
+
+  private static final ReferenceUriSchemesSupported[] enumValueTable = 
+    { FTP, HTTP, HTTPS, GOPHER, NEWS, NNTP, WAIS, FILE };
+
+  /**
+   * Constructs a <code>ReferenceUriSchemeSupported</code> object.
+   * 
+   * @param value the enum value.
+   */
   protected ReferenceUriSchemesSupported(int value)
   {
     super(value);
@@ -77,7 +126,7 @@ public class ReferenceUriSchemesSupported extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>ReferenceUriSchemesSupported</code> itself
+   * @return The class <code>ReferenceUriSchemesSupported</code> itself.
    */
   public Class getCategory()
   {
@@ -85,12 +134,33 @@ public class ReferenceUriSchemesSupported extends EnumSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "reference-uri-schemes-supported"
+   * @return The name "reference-uri-schemes-supported".
    */
   public String getName()
   {
     return "reference-uri-schemes-supported";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index bca7fbbb435d83a8ec2b5f0b666bdbd86bef1782..8b947036c456d36f1a90856fc182be124229b995 100644 (file)
@@ -1,5 +1,5 @@
 /* RequestingUserName.java -- 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,12 @@ import javax.print.attribute.PrintRequestAttribute;
 import javax.print.attribute.TextSyntax;
 
 /**
+ * The <code>RequestingUserName</code> attribute provides the name of 
+ * the user which requests the printing of the given job.
+ * <p>
+ * <b>IPP Compatibility:</b> RequestingUserName is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
  */
 public final class RequestingUserName extends TextSyntax
@@ -54,10 +60,11 @@ public final class RequestingUserName extends TextSyntax
   /**
    * Creates a <code>RequestingUserName</code> object.
    *
-   * @param userName the job name
-   * @param locale the locale of the user, null means default locale
+   * @param userName the user name
+   * @param locale the locale to use, if <code>null</code> the default
+   * locale is used.
    *
-   * @exception NullPointerException if userName is null
+   * @exception NullPointerException if userName is <code>null</code>.
    */
   public RequestingUserName(String userName, Locale locale)
   {
@@ -65,11 +72,12 @@ public final class RequestingUserName extends TextSyntax
   }
 
   /**
-   * Tests of obj is equal to this object.
+   * Tests if the given object is equal to this object.
    *
    * @param obj the object to test
    *
-   * @return true if both objects are equal, false otherwise.
+   * @return <code>true</code> if both objects are equal, 
+   * <code>false</code> otherwise.
    */
   public boolean equals(Object obj)
   {
@@ -82,7 +90,7 @@ public final class RequestingUserName extends TextSyntax
   /**
    * Returns category of this attribute.
    *
-   * @return the class <code>RequestingUserName</code> itself
+   * @return The class <code>RequestingUserName</code> itself.
    */
   public Class getCategory()
   {
@@ -90,9 +98,9 @@ public final class RequestingUserName extends TextSyntax
   }
 
   /**
-   * Returns name of this attribute.
+   * Returns the name of this attribute.
    *
-   * @return the string "requesting-user-name"
+   * @return The name "requesting-user-name".
    */
   public String getName()
   {
index c34ed3e29fae96f896e9ef445f612aac1610c166..5569816de8ea01b0135e807243cf4981b6bb9f5d 100644 (file)
@@ -1,5 +1,5 @@
 /* Severity.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,19 +42,50 @@ import javax.print.attribute.EnumSyntax;
 
 
 /**
+ * The <code>Severity</code> printing attribute specifies the severity
+ * for a <code>PrinterStateReason</code> attribute.
+ * <p>
+ * This attribute does not appear in the attribute set of a print service 
+ * itself. Its used inside the <code>PrinterStateReasons</code> 
+ * attribute which contains <code>PrinterStateReason</code> objects which 
+ * informs about the print service's status.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> Severity is not an IPP attribute on its own
+ * but used in the PrinterStateReason attribute to indicate the severity.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class Severity extends EnumSyntax
   implements Attribute
 {
   private static final long serialVersionUID = 8781881462717925380L;
 
+  /**
+   * Indicates that the reason is a report.
+   */
   public static final Severity REPORT = new Severity(0);
+  
+  /**
+   * Indicates that the reason is a warning.
+   */
   public static final Severity WARNING = new Severity(1);
+  
+  /**
+   * Indicates that the reason is an error.
+   */
   public static final Severity ERROR = new Severity(2);
 
+  private static final String[] stringTable = { "report", "warning", "error" };
+  
+  private static final Severity[] enumValueTable = { REPORT, WARNING, ERROR };
+  
   /**
    * Constructs a <code>Severity</code> object.
+   *
+   * @param value the enum value.
    */
   protected Severity(int value)
   {
@@ -64,7 +95,7 @@ public final class Severity extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>Severity</code> itself
+   * @return The class <code>Severity</code> itself.
    */
   public Class getCategory()
   {
@@ -72,12 +103,33 @@ public final class Severity extends EnumSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "severity"
+   * @return The name "severity".
    */
   public String getName()
   {
     return "severity";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index a4e31f44374bcc0ffefeaa497393493bb7e82238..5343bc6df1b5b4c5a65ed0965fc0dfbf43d6e26c 100644 (file)
@@ -1,5 +1,5 @@
 /* SheetCollate.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,16 +44,49 @@ import javax.print.attribute.PrintRequestAttribute;
 
 
 /**
+ * The <code>SheetCollate</code> printing attribute specifies 
+ * whether or not the sheets of each copy in a print job have to be
+ * in sequence.
+ * <p>
+ * The attribute only makes sense if multiple copies are specified through
+ * the <code>Copies</code> printing attribute. If <code>UNCOLLATED</code>
+ * is specified every page of a print job is printed for all requested
+ * copies before the next page is processed. <code>COLLATED</code> means
+ * that for every copy requested the pages have to be printed in sequence.
+ * </p>
+ * <p>
+ * <b>IPP Compatibility:</b> SheetCollate is not an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class SheetCollate extends EnumSyntax
   implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
 {
   private static final long serialVersionUID = 7080587914259873003L;
 
+  /**
+   * The sheets of the different copies are uncollated.
+   */
   public static final SheetCollate UNCOLLATED = new SheetCollate(0);
+  
+  /**
+   * The sheets of the different copies are collated.
+   */
   public static final SheetCollate COLLATED = new SheetCollate(1);
 
+
+  private static final String[] stringTable = { "uncollated", "collated" };
+  
+  private static final SheetCollate[] enumValueTable = { UNCOLLATED, 
+                                                         COLLATED };  
+  
+  /**
+   * Creates a <code>SheetCollate</code> object.
+   *
+   * @param value the enum value.
+   */
   protected SheetCollate(int value)
   {
     super(value);
@@ -62,7 +95,7 @@ public final class SheetCollate extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>SheetCollate</code> itself
+   * @return The class <code>SheetCollate</code> itself.
    */
   public Class getCategory()
   {
@@ -70,12 +103,33 @@ public final class SheetCollate extends EnumSyntax
   }
 
   /**
-   * Returns name of this class.
+   * Returns the name of this attribute.
    *
-   * @return the string "sheet-collate"
+   * @return The name "sheet-collate".
    */
   public String getName()
   {
     return "sheet-collate";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index 94b473c338fb21e462852fe2a29bf6aed183d315..816365aedea4485f40f439678d93041cc35ee96b 100644 (file)
@@ -1,5 +1,5 @@
 /* Sides.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,19 +44,55 @@ import javax.print.attribute.PrintRequestAttribute;
 
 
 /**
+ * The <code>Sides</code> printing attribute specifies how consecutive
+ * printing pages are arranged on the media sheet. 
+ * <p>
+ * <b>IPP Compatibility:</b> Sides is an IPP 1.1 attribute.
+ * </p>
+ * 
  * @author Michael Koch (konqueror@gmx.de)
+ * @author Wolfgang Baer (WBaer@gmx.de)
  */
 public final class Sides extends EnumSyntax
   implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
 {
   private static final long serialVersionUID = -6890309414893262822L;
 
+  /** 
+   * Specifies that each page should be printed on one sheet. 
+   */
   public static final Sides ONE_SIDED = new Sides(0);
+  
+  /** 
+   * Specifies that two following pages should be printed on the 
+   * front and back of one sheet for binding on the long edge.
+   */
   public static final Sides TWO_SIDED_LONG_EDGE = new Sides(1);
+  
+  /** 
+   * Specifies that two following pages should be printed on the 
+   * front and back of one sheet for binding on the short edge.
+   */
   public static final Sides TWO_SIDED_SHORT_EDGE = new Sides(2);
-  public static final Sides DUPLEX = new Sides(3);
-  public static final Sides TUMBLE = new Sides(4);
+  
+  /** 
+   * An alias constant for "two sided long edge". 
+   */
+  public static final Sides DUPLEX = new Sides(1);
+  
+  /** 
+   * An alias constant for "two sided short edge". 
+   */
+  public static final Sides TUMBLE = new Sides(2);
 
+  private static final String[] stringTable = { "one-sided", 
+                                                "two-sided-long-edge",
+                                                "two-sided-short-edge" };
+  
+  private static final Sides[] enumValueTable = { ONE_SIDED, 
+                                                  TWO_SIDED_LONG_EDGE, 
+                                                  TWO_SIDED_SHORT_EDGE };  
+  
   /**
    * Creates a <code>Sides</code> object.
    *
@@ -70,7 +106,7 @@ public final class Sides extends EnumSyntax
   /**
    * Returns category of this class.
    *
-   * @return the class <code>Sides</code> itself
+   * @return The class <code>Sides</code> itself.
    */
   public Class getCategory()
   {
@@ -80,10 +116,31 @@ public final class Sides extends EnumSyntax
   /**
    * Returns the name of this attribute.
    *
-   * @return the name
+   * @return The name "sides".
    */
   public String getName()
   {
     return "sides";
   }
+  
+  /**
+   * Returns a table with the enumeration values represented as strings
+   * for this object.
+   *
+   * @return The enumeration values as strings.
+   */
+  protected String[] getStringTable()
+  {
+    return stringTable;
+  }
+
+  /**
+   * Returns a table with the enumeration values for this object.
+   *
+   * @return The enumeration values.
+   */
+  protected EnumSyntax[] getEnumValueTable()
+  {
+    return enumValueTable;
+  }
 }
index 9d2d97009e31c57b43135bfb0e7e9991278ab8db..4248acfcedcf7c7efe92e716ac1cf298cabc4ce2 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <!-- package.html - describes classes in javax.print.attribute.standard
                     package.
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,7 +41,10 @@ exception statement from your version. -->
 <head><title>GNU Classpath - javax.print.attribute.standard</title></head>
 
 <body>
-<p></p>
-
+<p>Provides the printing attribute classes of the Java Print 
+Service API.</p>
+<p>
+<b>Since:</b> 1.4
+</p>
 </body>
 </html>
diff --git a/libjava/classpath/javax/security/auth/login/AccountException.java b/libjava/classpath/javax/security/auth/login/AccountException.java
new file mode 100644 (file)
index 0000000..32f739a
--- /dev/null
@@ -0,0 +1,64 @@
+/* AccountException.java -- generic account exception
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.security.auth.login;
+
+/**
+ * This is the base class for various account-related exceptions.
+ * @since 1.5
+ */
+public class AccountException extends LoginException
+{
+  private static final long serialVersionUID = -2112878680072211787L;
+
+  /**
+   * Create a new exception object.
+   */
+  public AccountException()
+  {
+  }
+
+  /**
+   * Create a new exception with the indicated detail message.
+   * @param message the detail message
+   */
+  public AccountException(String message)
+  {
+    super(message);
+  }
+}
index 74a97a7dd3be572d8526531f28ce497c856c72a5..c2b61c6e0282d1d45c16cdfea02f6080334a855d 100644 (file)
@@ -42,7 +42,7 @@ package javax.security.auth.login;
  * An exception that signals that an attempt was made to login to an account
  * that has expired.
  */
-public class AccountExpiredException extends LoginException
+public class AccountExpiredException extends AccountException
 {
 
   // Constant.
diff --git a/libjava/classpath/javax/security/auth/login/AccountLockedException.java b/libjava/classpath/javax/security/auth/login/AccountLockedException.java
new file mode 100644 (file)
index 0000000..bcb8b4f
--- /dev/null
@@ -0,0 +1,64 @@
+/* AccountLockedException.java -- exception indicating locked account
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.security.auth.login;
+
+/**
+ * An exception indicating that an account is locked.
+ * @since 1.5
+ */
+public class AccountLockedException extends AccountException
+{
+  private static final long serialVersionUID = 8280345554014066334L;
+
+  /**
+   * Create a new exception object.
+   */
+  public AccountLockedException()
+  {
+  }
+
+  /**
+   * Create a new exception with the indicated detail message.
+   * @param message the detail message
+   */
+  public AccountLockedException(String message)
+  {
+    super(message);
+  }
+}
diff --git a/libjava/classpath/javax/security/auth/login/AccountNotFoundException.java b/libjava/classpath/javax/security/auth/login/AccountNotFoundException.java
new file mode 100644 (file)
index 0000000..a052fbf
--- /dev/null
@@ -0,0 +1,64 @@
+/* AccountNotFoundException.java -- exception indicating account not found
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.security.auth.login;
+
+/**
+ * An exception indicating that an account was not found.
+ * @since 1.5 
+ */
+public class AccountNotFoundException extends AccountException
+{
+  private static final long serialVersionUID = 1498349563916294614L;
+
+  /**
+   * Create a new exception object.
+   */
+  public AccountNotFoundException()
+  {
+  }
+
+  /**
+   * Create a new exception with the given detail message.
+   * @param message the detail message
+   */
+  public AccountNotFoundException(String message)
+  {
+    super(message);
+  }
+}
diff --git a/libjava/classpath/javax/security/auth/login/CredentialException.java b/libjava/classpath/javax/security/auth/login/CredentialException.java
new file mode 100644 (file)
index 0000000..980adde
--- /dev/null
@@ -0,0 +1,64 @@
+/* CredentialException.java -- generic credential exception
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.security.auth.login;
+
+/**
+ * This is the base class for various credential-related exceptions.
+ * @since 1.5
+ */
+public class CredentialException extends LoginException
+{
+  private static final long serialVersionUID = -4772893876810601859L;
+
+  /**
+   * Create a new exception object.
+   */
+  public CredentialException()
+  {
+  }
+
+  /**
+   * Create a new exception with the given detail message.
+   * @param message the detail message
+   */
+  public CredentialException(String message)
+  {
+    super(message);
+  }
+}
index 03f7ec964a3051411e65f84775e8f331c6d549c3..9827a3d86d32a41eb96f838f03b611073f158b5a 100644 (file)
@@ -42,7 +42,7 @@ package javax.security.auth.login;
  * An exception that signals an attempt to login with a credential that
  * has expired.
  */
-public class CredentialExpiredException extends LoginException
+public class CredentialExpiredException extends CredentialException
 {
 
   // Constant.
diff --git a/libjava/classpath/javax/security/auth/login/CredentialNotFoundException.java b/libjava/classpath/javax/security/auth/login/CredentialNotFoundException.java
new file mode 100644 (file)
index 0000000..08ac115
--- /dev/null
@@ -0,0 +1,65 @@
+/* CredentialNotFoundException.java -- exception thrown when credentials
+   expire
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.security.auth.login;
+
+/**
+ * An exception that indicates that a credential was not found.
+ * @since 1.5
+ */
+public class CredentialNotFoundException extends CredentialException
+{
+  private static final long serialVersionUID = -7779934467214319475L;
+
+  /**
+   * Create a new exception.
+   */
+  public CredentialNotFoundException()
+  {
+  }
+
+  /**
+   * Create a new exception with the given detail message.
+   * @param message the detail message
+   */
+  public CredentialNotFoundException(String message)
+  {
+    super(message);
+  }
+}
index a3cbf8f0651b2140ff48fcee17f856745f7ef270..740e67b8baa7c1edefe4538a84f0129b94b6374e 100644 (file)
@@ -82,7 +82,17 @@ public class LoginContext
                        final CallbackHandler cbHandler)
     throws LoginException
   {
-    Configuration config = Configuration.getConfig();
+    this (name, subject, cbHandler, null);
+  }
+
+  /** @since 1.5 */
+  public LoginContext (final String name, final Subject subject,
+                       final CallbackHandler cbHandler,
+                       Configuration config)
+    throws LoginException
+  {
+    if (config == null)
+      config = Configuration.getConfig();
     AppConfigurationEntry[] entries = config.getAppConfigurationEntry (name);
     if (entries == null)
       entries = config.getAppConfigurationEntry (OTHER);
index da65bdd1d323f189b45fda5c525c22779c71fd92..bd3167e1e93b0f77d58db320c4439c84c10786d3 100644 (file)
@@ -79,7 +79,7 @@ public abstract class AbstractAction
    */
   public AbstractAction()
   {
-    this(""); // TODO: default name
+    this(null);
   }
 
   /**
@@ -90,7 +90,7 @@ public abstract class AbstractAction
    */
   public AbstractAction(String name)
   {
-    this(name, null); // TODO: default icon??
+    this(name, null);
   }
 
   /**
@@ -174,7 +174,7 @@ public abstract class AbstractAction
   public void putValue(String key, Object value)
   {
     Object old = getValue(key);
-    if (old != value)
+    if (old == null || !old.equals(value))
     {
       store.put(key, value);
       firePropertyChange(key, old, value);
index ebc0b4c211cf4506dc8e05536ebbf2b3e0245597..408dea934f8f640e6786eec2565d3bd0543309aa 100644 (file)
@@ -335,8 +335,15 @@ public class BoxLayout implements LayoutManager2, Serializable
 
         checkTotalRequirements();
         Insets i = container.getInsets();
-        return new Dimension(xTotal.maximum + i.left + i.right,
-                             yTotal.maximum + i.top + i.bottom);
+        int xDim = xTotal.maximum + i.left + i.right;
+        int yDim = yTotal.maximum + i.top + i.bottom;
+        
+        // Check for overflow
+        if (xDim < xTotal.maximum)
+          xDim = Integer.MAX_VALUE;
+        if (yDim < yTotal.maximum)
+          yDim = Integer.MAX_VALUE;
+        return new Dimension(xDim, yDim);
       }
   }
 
index deb08c5db5928d3fe9f6a5d68540ec8ac4210b9e..747eba54db4a0e4334766ec63ba7b2f785b8b2c4 100644 (file)
@@ -45,7 +45,6 @@ import java.awt.Component;
 import java.awt.Container;
 import java.awt.Dimension;
 import java.awt.EventQueue;
-import java.awt.FlowLayout;
 import java.awt.FocusTraversalPolicy;
 import java.awt.Font;
 import java.awt.Graphics;
@@ -621,7 +620,6 @@ public abstract class JComponent extends Container implements Serializable
   public JComponent()
   {
     super();
-    super.setLayout(new FlowLayout());
     setDropTarget(new DropTarget());
     defaultLocale = Locale.getDefault();
     debugGraphicsOptions = DebugGraphics.NONE_OPTION;
@@ -801,14 +799,23 @@ public abstract class JComponent extends Container implements Serializable
   }
 
   /**
-   * Return all registered listeners of a particular type.
-   *
-   * @param listenerType The type of listener to return
-   *
-   * @return All listeners in the {@link #listenerList} which 
-   * are of the specified type
+   * Returns all registered {@link EventListener}s of the given 
+   * <code>listenerType</code>.
    *
+   * @param listenerType the class of listeners to filter (<code>null</code> 
+   *                     not permitted).
+   *                     
+   * @return An array of registered listeners.
+   * 
+   * @throws ClassCastException if <code>listenerType</code> does not implement
+   *                            the {@link EventListener} interface.
+   * @throws NullPointerException if <code>listenerType</code> is 
+   *                              <code>null</code>.
+   *                            
+   * @see #getAncestorListeners()
    * @see #listenerList
+   * 
+   * @since 1.3
    */
   public EventListener[] getListeners(Class listenerType)
   {
@@ -1287,7 +1294,7 @@ public abstract class JComponent extends Container implements Serializable
   {
     Dimension prefSize = null;
     if (preferredSize != null)
-      prefSize = preferredSize;
+      prefSize = new Dimension(preferredSize);
 
     else if (ui != null)
       {
@@ -1298,12 +1305,7 @@ public abstract class JComponent extends Container implements Serializable
 
     if (prefSize == null)
       prefSize = super.getPreferredSize();
-    // make sure that prefSize is not smaller than minSize
-    if (minimumSize != null && prefSize != null
-        && (minimumSize.width > prefSize.width
-            || minimumSize.height > prefSize.height))
-        prefSize = new Dimension(Math.max(minimumSize.width, prefSize.width),
-                                 Math.max(minimumSize.height, prefSize.height));
+
     return prefSize;
   }
 
@@ -2530,7 +2532,10 @@ public abstract class JComponent extends Container implements Serializable
   public void setMaximumSize(Dimension max)
   {
     Dimension oldMaximumSize = maximumSize;
-    maximumSize = new Dimension(max);
+    if (max != null) 
+      maximumSize = new Dimension(max);
+    else
+      maximumSize = null;
     firePropertyChange("maximumSize", oldMaximumSize, maximumSize);
   }
 
@@ -2544,7 +2549,10 @@ public abstract class JComponent extends Container implements Serializable
   public void setMinimumSize(Dimension min)
   {
     Dimension oldMinimumSize = minimumSize;
-    minimumSize = new Dimension(min);
+    if (min != null)
+      minimumSize = new Dimension(min);
+    else
+      minimumSize = null;
     firePropertyChange("minimumSize", oldMinimumSize, minimumSize);
   }
 
@@ -2558,7 +2566,10 @@ public abstract class JComponent extends Container implements Serializable
   public void setPreferredSize(Dimension pref)
   {
     Dimension oldPreferredSize = preferredSize;
-    preferredSize = new Dimension(pref);
+    if (pref != null)
+      preferredSize = new Dimension(pref);
+    else
+      preferredSize = null;
     firePropertyChange("preferredSize", oldPreferredSize, preferredSize);
   }
 
@@ -2722,7 +2733,7 @@ public abstract class JComponent extends Container implements Serializable
    */
   public void updateUI()
   {
-    System.out.println("update UI not overwritten in class: " + this);
+    // Nothing to do here.
   }
 
   public static Locale getDefaultLocale()
@@ -3253,7 +3264,7 @@ public abstract class JComponent extends Container implements Serializable
         Rectangle target = SwingUtilities.convertRectangle(found,
                                                            currentClip,
                                                            newParent);
-        if (target.contains(parRect) || target.intersects(parRect))
+        if (! target.intersection(parRect).equals(target))
           {
             found = newParent;
             currentClip = target;
@@ -3269,10 +3280,12 @@ public abstract class JComponent extends Container implements Serializable
         boolean skip = true;
         for (int i = children.length - 1; i >= 0; i--)
           {
+            boolean nextSkip = skip;
             if (children[i] == parent)
-              skip = false;
+              nextSkip = false;
             if (skip)
               continue;
+            skip = nextSkip;
             Component c = children[i];
             Rectangle compBounds = c.getBounds();
             // If the component completely overlaps the clip in question, we
index 39f7c1f142f0add747ae2bfcb751fe470bf6c18d..3560ffd57d40481b062ad7644999f3401b2923b0 100644 (file)
@@ -43,8 +43,10 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.io.StringReader;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.HashMap;
 
 import javax.accessibility.AccessibleContext;
 import javax.accessibility.AccessibleHyperlink;
@@ -88,6 +90,7 @@ import javax.swing.text.html.HTMLEditorKit;
  *
  * @author original author unknown
  * @author Roman Kennke (roman@kennke.org)
+ * @author Anthony Balkissoon abalkiss at redhat dot com
  */
 public class JEditorPane extends JTextComponent
 {
@@ -167,6 +170,14 @@ public class JEditorPane extends JTextComponent
     extends AccessibleJEditorPane implements AccessibleHypertext
   {
 
+    /**
+     * Creates a new JEditorPaneAccessibleHypertextSupport object.
+     */
+    public JEditorPaneAccessibleHypertextSupport()
+    {
+      super();
+    }
+    
     /**
      * The accessible representation of a HTML link. 
      *
@@ -499,9 +510,16 @@ public class JEditorPane extends JTextComponent
   private EditorKit editorKit;
   
   boolean focus_root;
+  
+  // A mapping between content types and registered EditorKit types
+  static HashMap registerMap;
+  
+  // A mapping between content types and used EditorKits
+  HashMap editorMap;  
 
   public JEditorPane()
   {
+    init();
     setEditorKit(createDefaultEditorKit());
   }
 
@@ -512,24 +530,69 @@ public class JEditorPane extends JTextComponent
 
   public JEditorPane(String type, String text)
   {
+    init();
     setEditorKit(createEditorKitForContentType(type));
     setText(text);
   }
 
   public JEditorPane(URL url) throws IOException
   {
-    this();
+    init ();
+    setEditorKit (createEditorKitForContentType("text/html"));;
     setPage(url);
   }
+  
+  /**
+   * Called by the constructors to set up the default bindings for content 
+   * types and EditorKits.
+   */
+  void init()
+  {
+    editorMap = new HashMap();
+    registerMap = new HashMap();
+    registerEditorKitForContentType("application/rtf",
+                                    "javax.swing.text.rtf.RTFEditorKit");
+    registerEditorKitForContentType("text/plain",
+                                    "javax.swing.JEditorPane$PlainEditorKit");
+    registerEditorKitForContentType("text/html",
+                                    "javax.swing.text.html.HTMLEditorKit");
+    registerEditorKitForContentType("text/rtf",
+                                    "javax.swing.text.rtf.RTFEditorKit");
+  }
 
   protected EditorKit createDefaultEditorKit()
   {
     return new PlainEditorKit();
   }
 
+  /**
+   * Creates and returns an EditorKit that is appropriate for the given 
+   * content type.  This is created using the default recognized types
+   * plus any EditorKit types that have been registered.
+   * 
+   * @see #registerEditorKitForContentType(String, String)
+   * @see #registerEditorKitForContentType(String, String, ClassLoader)
+   * @param type the content type
+   * @return an EditorKit for use with the given content type
+   */
   public static EditorKit createEditorKitForContentType(String type)
   {
-    return new PlainEditorKit();
+    // TODO: Have to handle the case where a ClassLoader was specified
+    // when the EditorKit was registered
+    EditorKit e = null;
+    String className = (String)registerMap.get(type);
+    if (className != null)
+      {
+        try
+        {
+          e = (EditorKit) Class.forName(className).newInstance();
+        }
+        catch (Exception e2)
+        {    
+          // TODO: Not sure what to do here.
+        }
+      }
+    return e;
   }
 
   /**
@@ -578,14 +641,44 @@ public class JEditorPane extends JTextComponent
     return editorKit;
   }
 
+  /**
+   * Returns the class name of the EditorKit associated with the given
+   * content type.
+   * 
+   * @since 1.3
+   * @param type the content type
+   * @return the class name of the EditorKit associated with this content type
+   */
   public static String getEditorKitClassNameForContentType(String type)
   {
-    return "text/plain";
+    return (String) registerMap.get(type);
   }
 
+  /**
+   * Returns the EditorKit to use for the given content type.  If an
+   * EditorKit has been explicitly set via 
+   * <code>setEditorKitForContentType</code>
+   * then it will be returned.  Otherwise an attempt will be made to create
+   * an EditorKit from the default recognzied content types or any
+   * EditorKits that have been registered.  If none can be created, a
+   * PlainEditorKit is created.
+   * 
+   * @see #registerEditorKitForContentType(String, String)
+   * @see #registerEditorKitForContentType(String, String, ClassLoader)
+   * @param type the content type
+   * @return an appropriate EditorKit for the given content type
+   */
   public EditorKit getEditorKitForContentType(String type)
   {
-    return editorKit;
+    // First check if an EditorKit has been explicitly set.
+    EditorKit e = (EditorKit) editorMap.get(type);
+    // Then check to see if we can create one.
+    if (e == null)
+      e = createEditorKitForContentType(type);
+    // Otherwise default to PlainEditorKit.
+    if (e == null)
+      e = new PlainEditorKit();
+    return e;
   }
 
   /**
@@ -669,12 +762,17 @@ public class JEditorPane extends JTextComponent
   }
 
   /**
-   * Establishes the default bindings of type to classname. 
+   * Establishes a binding between type and classname.  This enables
+   * us to create an EditorKit later for the given content type.
+   * 
+   * @param type the content type
+   * @param classname the name of the class that is associated with this 
+   * content type
    */
   public static void registerEditorKitForContentType(String type,
                                                      String classname)
   {
-    // TODO: Implement this properly.
+    registerMap.put(type, classname);
   }
 
   /**
@@ -694,6 +792,7 @@ public class JEditorPane extends JTextComponent
   public void replaceSelection(String content)
   {
     // TODO: Implement this properly.
+    super.replaceSelection(content);
   }
 
   /**
@@ -741,9 +840,14 @@ public class JEditorPane extends JTextComponent
     accessibleContext = null;
   }
 
+  /**
+   * Explicitly sets an EditorKit to be used for the given content type.
+   * @param type the content type
+   * @param k the EditorKit to use for the given content type
+   */
   public void setEditorKitForContentType(String type, EditorKit k)
   {
-    // FIXME: editorKitCache.put(type, kit);
+    editorMap.put(type, k);
   }
 
   /**
@@ -773,9 +877,36 @@ public class JEditorPane extends JTextComponent
       }
   }
 
+  /**
+   * Sets the text of the JEditorPane.  The argument <code>t</code>
+   * is expected to be in the format of the current EditorKit.  This removes
+   * the content of the current document and uses the EditorKit to read in the
+   * new text.  This allows the EditorKit to handle the String rather than just
+   * inserting in plain text.
+   * 
+   * @param t the text to display in this JEditorPane
+   */
   public void setText(String t)
   {
-    super.setText(t);
+    try
+    {
+      // Remove the current content.
+      Document doc = getDocument();
+      doc.remove(0, doc.getLength());
+      if (t == null || t == "")
+        return;
+      
+      // Let the EditorKit read the text into the Document.
+      getEditorKit().read(new StringReader(t), doc, 0);
+    }
+    catch (BadLocationException ble)
+    {
+      // TODO: Don't know what to do here.
+    }
+    catch (IOException ioe)
+    {
+      // TODO: Don't know what to do here.
+    }
   }
 
   /**
index 1598641f1b90954f0a1b3d65b38c8bc2b6eae4b5..3a9d6a01f38acd782f2bd400bd1d43c692c66e2b 100644 (file)
@@ -40,6 +40,7 @@ package javax.swing;
 import java.awt.Component;
 import java.awt.Frame;
 import java.awt.HeadlessException;
+import java.awt.Insets;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.beans.PropertyChangeEvent;
@@ -407,8 +408,7 @@ public class JFileChooser extends JComponent implements Accessible
    */
   public JFileChooser(String currentDirectoryPath)
   {
-    setup(null);
-    setCurrentDirectory(fsv.createFileObject(currentDirectoryPath));
+    this(currentDirectoryPath, null);
   }
 
   /**
@@ -424,7 +424,10 @@ public class JFileChooser extends JComponent implements Accessible
   public JFileChooser(String currentDirectoryPath, FileSystemView fsv)
   {
     setup(fsv);
-    setCurrentDirectory(fsv.createFileObject(currentDirectoryPath));
+    File dir = null;
+    if (currentDirectoryPath != null)
+      dir = getFileSystemView().createFileObject(currentDirectoryPath);
+    setCurrentDirectory(dir);
   }
 
   /**
@@ -525,7 +528,7 @@ public class JFileChooser extends JComponent implements Accessible
    */
   public void setSelectedFile(File file)
   {
-    if (selectedFile != file)
+    if (selectedFile == null || !selectedFile.equals(file))
       {
        File old = selectedFile;
        selectedFile = file;
@@ -534,10 +537,10 @@ public class JFileChooser extends JComponent implements Accessible
   }
 
   /**
-   * Returns the selected file or files.
+   * Returns the selected file or files in an array.  If no files are selected,
+   * an empty array is returned.
    *
-   * @return An array of the selected files, or <code>null</code> if there are 
-   *         no selected files.
+   * @return An array of the selected files (possibly empty).
    */
   public File[] getSelectedFiles()
   {
@@ -545,7 +548,7 @@ public class JFileChooser extends JComponent implements Accessible
       return selectedFiles;
     if (selectedFile != null)
       return new File[] { selectedFile };
-    return null;
+    return new File[0];
   }
 
   /**
@@ -557,6 +560,12 @@ public class JFileChooser extends JComponent implements Accessible
    */
   public void setSelectedFiles(File[] selectedFiles)
   {
+    if (selectedFiles == null)
+      selectedFiles = new File[0];
+    if (selectedFiles.length > 0)
+      setSelectedFile(selectedFiles[0]);
+    else
+      setSelectedFile(null);
     if (this.selectedFiles != selectedFiles)
       {
        File[] old = this.selectedFiles;
@@ -564,8 +573,6 @@ public class JFileChooser extends JComponent implements Accessible
        firePropertyChange(SELECTED_FILES_CHANGED_PROPERTY, old, selectedFiles);
       }
 
-    if (selectedFiles != null)
-      setSelectedFile(selectedFiles[0]);
   }
 
   /**
@@ -607,8 +614,7 @@ public class JFileChooser extends JComponent implements Accessible
    */
   public void changeToParentDirectory()
   {
-    if (fsv.getParentDirectory(currentDir) != null)
-      setCurrentDirectory(fsv.getParentDirectory(currentDir));
+    setCurrentDirectory(fsv.getParentDirectory(currentDir));
   }
 
   /**
@@ -652,7 +658,8 @@ public class JFileChooser extends JComponent implements Accessible
 
     retval = ERROR_OPTION;
 
-    d.pack();
+    Insets i = d.getInsets();
+    d.setSize(500 + i.top + i.bottom, d.getPreferredSize().height);
     d.show();
     return retval;
   }
@@ -676,7 +683,8 @@ public class JFileChooser extends JComponent implements Accessible
 
     retval = ERROR_OPTION;
 
-    d.pack();
+    Insets i = d.getInsets();
+    d.setSize(500 + i.top + i.bottom, d.getPreferredSize().height);
     d.show();
     return retval;
   }
@@ -702,7 +710,8 @@ public class JFileChooser extends JComponent implements Accessible
 
     retval = ERROR_OPTION;
 
-    d.pack();
+    Insets i = d.getInsets();
+    d.setSize(500 + i.top + i.bottom, d.getPreferredSize().height);
     d.show();
     return retval;
   }
@@ -958,14 +967,19 @@ public class JFileChooser extends JComponent implements Accessible
    * {@link #CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY}) to all registered 
    * listeners.
    *
-   * @param filter  the filter.
+   * @param filter  the filter (<code>null</code> permitted).
    */
   public void addChoosableFileFilter(FileFilter filter)
   {
-    FileFilter[] old = getChoosableFileFilters();
-    choosableFilters.add(filter);
-    FileFilter[] newFilters = getChoosableFileFilters();
-    firePropertyChange(CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY, old, newFilters);
+    if (filter != null)
+      {
+        FileFilter[] old = getChoosableFileFilters();
+        choosableFilters.add(filter);
+        FileFilter[] newFilters = getChoosableFileFilters();
+        firePropertyChange(CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY, old, 
+              newFilters);
+      }
+    setFileFilter(filter);
   }
 
   /**
@@ -981,6 +995,8 @@ public class JFileChooser extends JComponent implements Accessible
    */
   public boolean removeChoosableFileFilter(FileFilter f)
   {
+    if (f == currentFilter)
+      setFileFilter(null);
     FileFilter[] old = getChoosableFileFilters();
     if (! choosableFilters.remove(f))
       return false;
@@ -1037,6 +1053,10 @@ public class JFileChooser extends JComponent implements Accessible
     if (isAcceptAll != b)
       {
        isAcceptAll = b;
+        if (b)
+          addChoosableFileFilter(getAcceptAllFileFilter());
+        else 
+          removeChoosableFileFilter(getAcceptAllFileFilter());
        firePropertyChange(ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY,
                           ! isAcceptAll, isAcceptAll);
       }
@@ -1208,15 +1228,17 @@ public class JFileChooser extends JComponent implements Accessible
    * property name {@link #FILE_FILTER_CHANGED_PROPERTY}) to all registered 
    * listeners.
    *
-   * @param filter  the filter.
+   * @param filter  the filter (<code>null</code> permitted).
    */
   public void setFileFilter(FileFilter filter)
   {
     if (currentFilter != filter)
       {
-       FileFilter old = currentFilter;
-       currentFilter = filter;
-       firePropertyChange(FILE_FILTER_CHANGED_PROPERTY, old, currentFilter);
+        if (filter != null && !choosableFilters.contains(filter))
+          addChoosableFileFilter(filter);
+        FileFilter old = currentFilter;
+        currentFilter = filter;
+        firePropertyChange(FILE_FILTER_CHANGED_PROPERTY, old, currentFilter);
       }
   }
 
@@ -1356,8 +1378,12 @@ public class JFileChooser extends JComponent implements Accessible
   public boolean accept(File f)
   {
     if (f == null)
-      return false;
-    return getFileFilter().accept(f);
+      return true;
+    FileFilter ff = getFileFilter();
+    if (ff != null) 
+      return ff.accept(f);
+    else
+      return true;
   }
 
   /**
index 9890df2008773054f6f173d25868464c8178c185..761955d6dd91d81b0e4af959e1c7187163eb7d91 100644 (file)
@@ -40,15 +40,21 @@ package javax.swing;
 
 import java.awt.event.FocusEvent;
 import java.io.Serializable;
+import java.text.DateFormat;
 import java.text.Format;
+import java.text.NumberFormat;
 import java.text.ParseException;
 import java.util.Date;
 
+import javax.swing.text.AbstractDocument;
 import javax.swing.text.DateFormatter;
 import javax.swing.text.DefaultFormatter;
+import javax.swing.text.DefaultFormatterFactory;
 import javax.swing.text.Document;
 import javax.swing.text.DocumentFilter;
+import javax.swing.text.InternationalFormatter;
 import javax.swing.text.NavigationFilter;
+import javax.swing.text.NumberFormatter;
 
 /**
  * A text field that makes use of a formatter to display and edit a specific
@@ -62,6 +68,7 @@ import javax.swing.text.NavigationFilter;
  * formatting of the value of the JFormattedTextField.
  *
  * @author Michael Koch
+ * @author Anthony Balkissoon abalkiss at redhat dot com
  *
  * @since 1.4
  */
@@ -85,58 +92,184 @@ public class JFormattedTextField extends JTextField
       //Do nothing here.
     }
 
+    /**
+     * Clones the AbstractFormatter and removes the association to any 
+     * particular JFormattedTextField.
+     * 
+     * @return a clone of this formatter with no association to any particular
+     * JFormattedTextField
+     * @throws CloneNotSupportedException if the Object's class doesn't support
+     * the {@link Cloneable} interface
+     */
     protected Object clone ()
       throws CloneNotSupportedException
     {
-      throw new InternalError ("not implemented");
+      // Clone this formatter.
+      AbstractFormatter newFormatter = (AbstractFormatter)super.clone();
+      
+      // And remove the association to the JFormattedTextField.
+      newFormatter.textField = null;
+      return newFormatter;
     }
 
+    /**
+     * Returns a custom set of Actions that this formatter supports.  Should
+     * be subclassed by formatters that have a custom set of Actions.
+     * 
+     * @return <code>null</code>.  Should be subclassed by formatters that want
+     * to install custom Actions on the JFormattedTextField.
+     */
     protected Action[] getActions ()
     {
-      return textField.getActions();
+      return null;
     }
 
+    /**
+     * Gets the DocumentFilter for this formatter.  Should be subclassed
+     * by formatters wishing to install a filter that oversees Document
+     * mutations.
+     * 
+     * @return <code>null</code>.  Should be subclassed by formatters
+     * that want to restrict Document mutations.
+     */
     protected DocumentFilter getDocumentFilter ()
     {
-      throw new InternalError ("not implemented");
+      // Subclasses should override this if they want to install a 
+      // DocumentFilter.
+      return null;
     }
 
+    /**
+     * Returns the JFormattedTextField on which this formatter is
+     * currently installed.
+     * 
+     * @return the JFormattedTextField on which this formatter is currently
+     * installed
+     */
     protected JFormattedTextField getFormattedTextField ()
     {
       return textField;
     }
 
+    /**
+     * Gets the NavigationFilter for this formatter.  Should be subclassed
+     * by formatters (such as {@link DefaultFormatter}) that wish to 
+     * restrict where the cursor can be placed within the text field.
+     * 
+     * @return <code>null</code>.  Subclassed by formatters that want to restrict
+     * cursor location within the JFormattedTextField.
+     */
     protected NavigationFilter getNavigationFilter ()
     {
-      return textField.getNavigationFilter();
+      // This should be subclassed if the formatter wants to install 
+      // a NavigationFilter on the JFormattedTextField.
+      return null;
     }
 
+    /**
+     * Installs this formatter on the specified JFormattedTextField.  This 
+     * converts the current value to a displayable String and displays it, 
+     * and installs formatter specific Actions from <code>getActions</code>.
+     * It also installs a DocumentFilter and NavigationFilter on the 
+     * JFormattedTextField.  
+     * <p>
+     * If there is a <code>ParseException</code> this sets the text to an 
+     * empty String and marks the text field in an invalid state.
+     * 
+     * @param textField the JFormattedTextField on which to install this
+     * formatter
+     */
     public void install(JFormattedTextField textField)
     {
+      // Uninstall the current textfield.
       if (this.textField != null)
-       uninstall();
+        uninstall();
       
       this.textField = textField;
+      
+      // Install some state on the text field, including display text, 
+      // DocumentFilter, NavigationFilter, and formatter specific Actions.
+      if (textField != null)
+        {
+          try
+          {
+            // Set the text of the field.
+            textField.setText(valueToString(textField.getValue()));
+            Document doc = textField.getDocument();
+            
+            // Set the DocumentFilter for the field's Document.
+            if (doc instanceof AbstractDocument)
+              ((AbstractDocument)doc).setDocumentFilter(getDocumentFilter());
+            
+            // Set the NavigationFilter.
+            textField.setNavigationFilter(getNavigationFilter());
+            
+            // Set the Formatter Actions
+            // FIXME: Have to add the actions from getActions()            
+          }
+          catch (ParseException pe)
+          {
+            // Set the text to an empty String and mark the field as invalid.
+            textField.setText("");
+            setEditValid(false);
+          }
+        }
     }
 
+    /**
+     * Clears the state installed on the JFormattedTextField by the formatter.
+     * This resets the DocumentFilter, NavigationFilter, and any additional 
+     * Actions (returned by <code>getActions()</code>).     
+     */
     public void uninstall ()
     {
+      // Set the DocumentFilter for the field's Document.
+      Document doc = textField.getDocument();
+      if (doc instanceof AbstractDocument)
+        ((AbstractDocument)doc).setDocumentFilter(null);
+      textField.setNavigationFilter(null);
+      // FIXME: Have to remove the Actions from getActions()
       this.textField = null;
     }
 
+    /**
+     * Invoke this method when invalid values are entered.  This forwards the
+     * call to the JFormattedTextField.     
+     */
     protected void invalidEdit ()
     {
       textField.invalidEdit();
     }
 
+    /**
+     * This method updates the <code>editValid</code> property of 
+     * JFormattedTextField.
+     * 
+     * @param valid the new state for the <code>editValid</code> property
+     */
     protected void setEditValid (boolean valid)
     {
       textField.editValid = valid;
     }
 
+    /**
+     * Parses <code>text</code> to return a corresponding Object.
+     * 
+     * @param text the String to parse
+     * @return an Object that <code>text</code> represented
+     * @throws ParseException if there is an error in the conversion
+     */
     public abstract Object stringToValue (String text)
       throws ParseException;
 
+    /**
+     * Returns a String to be displayed, based on the Object
+     * <code>value</code>.
+     * 
+     * @param value the Object from which to generate a String
+     * @return a String to be displayed
+     * @throws ParseException if there is an error in the conversion
+     */
     public abstract String valueToString (Object value)
       throws ParseException;
   }
@@ -155,88 +288,177 @@ public class JFormattedTextField extends JTextField
     public abstract AbstractFormatter getFormatter (JFormattedTextField tf);
   }
 
-  static class FormatterFactoryWrapper extends AbstractFormatterFactory
-  {
-    AbstractFormatter formatter;
-
-    public FormatterFactoryWrapper(AbstractFormatter formatter)
-    {
-      this.formatter = formatter;
-    }
-
-    public AbstractFormatter getFormatter(JFormattedTextField tf)
-    {
-      return formatter;
-    }
-  }
-
+  /** The possible focusLostBehavior options **/
   public static final int COMMIT = 0;
   public static final int COMMIT_OR_REVERT = 1;
   public static final int REVERT = 2;
   public static final int PERSIST = 3;
 
+  /** The most recent valid and committed value **/
   private Object value;
+  
+  /** The behaviour for when this text field loses focus **/
   private int focusLostBehavior = COMMIT_OR_REVERT;
+  
+  /** The formatter factory currently being used **/
   private AbstractFormatterFactory formatterFactory;
+  
+  /** The formatter currently being used **/
+  private AbstractFormatter formatter;
+  
   // Package-private to avoid an accessor method.
   boolean editValid = true;
   
+  /**
+   * Creates a JFormattedTextField with no formatter factory.  
+   * <code>setValue</code> or <code>setFormatterFactory</code> will 
+   * properly configure this text field to edit a particular type
+   * of value.
+   */
   public JFormattedTextField ()
   {
     this((AbstractFormatterFactory) null, null);
   }
 
+  /**
+   * Creates a JFormattedTextField that can handle the specified Format.  
+   * An appopriate AbstractFormatter and AbstractFormatterFactory will 
+   * be created for the specified Format.
+   * 
+   * @param format the Format that this JFormattedTextField should be able
+   * to handle
+   */
   public JFormattedTextField (Format format)
   {
-    throw new InternalError ("not implemented");
+    this ();
+    setFormatterFactory(getAppropriateFormatterFactory(format));
   }
 
+  /**
+   * Creates a JFormattedTextField with the specified formatter.  This will 
+   * create a {@link DefaultFormatterFactory} with this formatter as the default
+   * formatter.
+   * 
+   * @param formatter the formatter to use for this JFormattedTextField
+   */
   public JFormattedTextField (AbstractFormatter formatter)
   {
-    this(new FormatterFactoryWrapper(formatter), null);
+    this(new DefaultFormatterFactory (formatter));
   }
 
+  /**
+   * Creates a JFormattedTextField with the specified formatter factory.
+   * 
+   * @param factory the formatter factory to use for this JFormattedTextField
+   */
   public JFormattedTextField (AbstractFormatterFactory factory)
   {
-    this(factory, null);
+    setFormatterFactory(factory);
   }
 
+  /**
+   * Creates a JFormattedTextField with the specified formatter factory and
+   * initial value.
+   * 
+   * @param factory the initial formatter factory for this JFormattedTextField
+   * @param value the initial value for the text field
+   */
   public JFormattedTextField (AbstractFormatterFactory factory, Object value)
-  {
-    this.formatterFactory = factory;
-    this.value = value;
+  {    
+    setFormatterFactory(factory);
+    setValue(value);
   }
 
+  /**
+   * Creates a JFormattedTextField with the specified value.  This creates a
+   * formatter and formatterFactory that are appropriate for the value.
+   * 
+   * @param value the initial value for this JFormattedTextField
+   */
   public JFormattedTextField (Object value)
   {
-    this.value = value;
+    setValue(value);
+  }
+  
+  /**
+   * Returns an AbstractFormatterFactory that will give an appropriate
+   * AbstractFormatter for the given Format.
+   * @param format the Format to match with an AbstractFormatter.
+   * @return a DefaultFormatterFactory whose defaultFormatter is appropriate
+   * for the given Format.
+   */
+  private AbstractFormatterFactory getAppropriateFormatterFactory (Format format)
+  {
+    AbstractFormatter newFormatter;
+    if (format instanceof DateFormat)
+      newFormatter = new DateFormatter((DateFormat)format);
+    else if (format instanceof NumberFormat)
+      newFormatter = new NumberFormatter ((NumberFormat)format);
+    else
+      newFormatter = new InternationalFormatter(format);
+    
+    return new DefaultFormatterFactory(newFormatter);
   }
 
+  /**
+   * Forces the current value from the editor to be set as the current
+   * value.  If there is no current formatted this has no effect.
+   * 
+   * @throws ParseException if the formatter cannot format the current value
+   */
   public void commitEdit ()
     throws ParseException
   {
-    throw new InternalError ("not implemented");
+    if (formatter == null)
+      return;
+    // Note: this code is a lot like setValue except that we don't want
+    // to create a new formatter.
+    Object oldValue = this.value;
+    
+    this.value = formatter.stringToValue(getText());;
+    editValid = true;
+    
+    firePropertyChange("value", oldValue, this.value); 
   }
 
+  /**
+   * Gets the command list supplied by the UI augmented by the specific
+   * Actions for JFormattedTextField.
+   * 
+   * @return an array of Actions that this text field supports
+   */
   public Action[] getActions ()
   {
     // FIXME: Add JFormattedTextField specific actions
+    // These are related to committing or cancelling edits.
     return super.getActions();
   }
 
+  /**
+   * Returns the behaviour of this JFormattedTextField upon losing focus.  This
+   * is one of <code>COMMIT</code>, <code>COMMIT_OR_REVERT</code>, 
+   * <code>PERSIST</code>, or <code>REVERT</code>.  
+   * @return the behaviour upon losing focus
+   */
   public int getFocusLostBehavior()
   {
     return focusLostBehavior;
   }
 
+  /**
+   * Returns the current formatter used for this JFormattedTextField.
+   * @return the current formatter used for this JFormattedTextField
+   */
   public AbstractFormatter getFormatter ()
   {
-    if (formatterFactory == null)
-      return null;
-    
-    return formatterFactory.getFormatter(this);
+    return formatter;
   }
-
+  
+  /**
+   * Returns the factory currently used to generate formatters for this
+   * JFormattedTextField.
+   * @return the factory currently used to generate formatters
+   */
   public AbstractFormatterFactory getFormatterFactory ()
   {
     return formatterFactory;
@@ -247,31 +469,61 @@ public class JFormattedTextField extends JTextField
     return "FormattedTextFieldUI";
   }
 
+  /**
+   * Returns the last valid value.  This may not be the value currently shown 
+   * in the text field depending on whether or not the formatter commits on 
+   * valid edits and allows invalid input to be temporarily displayed.  
+   * @return the last committed valid value
+   */
   public Object getValue ()
   {
     return value;
   }
 
+  /**
+   * This method is used to provide feedback to the user when an invalid value
+   * is input during editing.   
+   */
   protected void invalidEdit ()
   {
     UIManager.getLookAndFeel().provideErrorFeedback(this);
   }
 
+  /**
+   * Returns true if the current value being edited is valid.  This property is
+   * managed by the current formatted.
+   * @return true if the value being edited is valid.
+   */
   public boolean isEditValid ()
   {
     return editValid;
   }
 
+  /**
+   * Processes focus events.  This is overridden because we may want to 
+   * change the formatted depending on whether or not this field has 
+   * focus.
+   * 
+   * @param evt the FocusEvent
+   */
   protected void processFocusEvent (FocusEvent evt)
   {
-    // it's safe to simply call super for now, until it gets clear
-    // what this method is supposed to do
-    // throw new InternalError ("not implemented");
     super.processFocusEvent(evt);
+    // Let the formatterFactory change the formatter for this text field
+    // based on whether or not it has focus.
+    setFormatter (formatterFactory.getFormatter(this));
   }
-
+  
+  /**
+   * Associates this JFormattedTextField with a Document and propagates
+   * a PropertyChange event to each listener.
+   * 
+   * @param newDocument the Document to associate with this text field
+   */
   public void setDocument(Document newDocument)
   {
+    // FIXME: This method should do more than this.  Must do some handling
+    // of the DocumentListeners.
     Document oldDocument = getDocument();
 
     if (oldDocument == newDocument)
@@ -280,6 +532,16 @@ public class JFormattedTextField extends JTextField
     super.setDocument(newDocument);
   }
 
+  /**
+   * Sets the behaviour of this JFormattedTextField upon losing focus.
+   * This must be <code>COMMIT</code>, <code>COMMIT_OR_REVERT</code>, 
+   * <code>PERSIST</code>, or <code>REVERT</code> or an 
+   * IllegalArgumentException will be thrown.
+   * 
+   * @param behavior
+   * @throws IllegalArgumentException if <code>behaviour</code> is not 
+   * one of the above
+   */
   public void setFocusLostBehavior(int behavior)
   {
     if (behavior != COMMIT
@@ -291,20 +553,38 @@ public class JFormattedTextField extends JTextField
     this.focusLostBehavior = behavior;
   }
 
+  /**
+   * Sets the formatter for this JFormattedTextField.  Normally the formatter
+   * factory will take care of this, or calls to setValue will also make sure
+   * that the formatter is set appropriately.  
+   * 
+   * @param formatter the AbstractFormatter to use for formatting the value for
+   * this JFormattedTextField
+   */
   protected void setFormatter (AbstractFormatter formatter)
   {
     AbstractFormatter oldFormatter = null;
     
-    if (formatterFactory != null)
-      oldFormatter = formatterFactory.getFormatter(this);
+    oldFormatter = this.formatter;
 
-    if (oldFormatter == formatter)
-      return;
+    if (oldFormatter != null)
+      oldFormatter.uninstall();
+    
+    this.formatter = formatter;
+    
+    if (formatter != null)
+      formatter.install(this);
 
-    setFormatterFactory(new FormatterFactoryWrapper(formatter));
     firePropertyChange("formatter", oldFormatter, formatter);
   }
 
+  /**
+   * Sets the factory from which this JFormattedTextField should obtain 
+   * its formatters.  
+   * 
+   * @param factory the AbstractFormatterFactory that will be used to generate
+   * formatters for this JFormattedTextField
+   */
   public void setFormatterFactory (AbstractFormatterFactory factory)
   {
     if (formatterFactory == factory)
@@ -313,55 +593,56 @@ public class JFormattedTextField extends JTextField
     AbstractFormatterFactory oldFactory = formatterFactory;
     formatterFactory = factory;
     firePropertyChange("formatterFactory", oldFactory, factory);
+    
+    // Now set the formatter according to our new factory.
+    if (formatterFactory != null)
+      setFormatter(formatterFactory.getFormatter(this));
+    else
+      setFormatter(null);
   }
 
+  /**
+   * Sets the value that will be formatted and displayed.
+   *   
+   * @param newValue the value to be formatted and displayed
+   */
   public void setValue (Object newValue)
   {
     if (value == newValue)
       return;
 
-    // format value
-    AbstractFormatter formatter = createFormatter(newValue);
-    try
-      {
-        setText(formatter.valueToString(newValue));
-      }
-    catch (ParseException ex)
-      {
-        // TODO: what should we do with this?
-      }
-
     Object oldValue = value;
     value = newValue;
+    
+    // If there is no formatterFactory then make one.
+    if (formatterFactory == null)
+      setFormatterFactory(createFormatterFactory(newValue));
+    
+    // Set the formatter appropriately.  This is because there may be a new
+    // formatterFactory from the line above, or we may want a new formatter
+    // depending on the type of newValue (or if newValue is null).
+    setFormatter (formatterFactory.getFormatter(this));
     firePropertyChange("value", oldValue, newValue);
   }
 
   /**
-   * A helper method that attempts to create a formatter that is suitable
-   * to format objects of the type like <code>value</code>.
+   * A helper method that attempts to create a formatter factory that is 
+   * suitable to format objects of the type like <code>value</code>.
    *
-   * If <code>formatterFactory</code> is not null and the returned formatter
-   * is also not <code>null</code> then this formatter is used. Otherwise we
-   * try to create one based on the type of <code>value</code>.
+   * @param value an object which should be formatted by the formatter factory.
    *
-   * @param value an object which should be formatted by the formatter
-   *
-   * @return a formatter able to format objects of the class of
+   * @return a formatter factory able to format objects of the class of
    *     <code>value</code>
    */
-  AbstractFormatter createFormatter(Object value)
+  AbstractFormatterFactory createFormatterFactory(Object value)
   {
     AbstractFormatter formatter = null;
-    if (formatterFactory != null
-        && formatterFactory.getFormatter(this) != null)
-     formatter = formatterFactory.getFormatter(this);
-   else
-     {
-       if (value instanceof Date)
-         formatter = new DateFormatter();
-       else
-         formatter = new DefaultFormatter();
-     }
-    return formatter;
+    if (value instanceof Date)
+      formatter = new DateFormatter();
+    else if (value instanceof Number)
+      formatter = new NumberFormatter();
+    else
+      formatter = new DefaultFormatter();        
+    return new DefaultFormatterFactory(formatter);
   }
 }
index 479294b1377835a190aad8dfa6880b4a69006887..948988c24a7ad410180db424c7b163f81ec32121 100644 (file)
@@ -1628,7 +1628,6 @@ public class JInternalFrame extends JComponent implements Accessible,
   {
     if (! isVisible())
       {
-       moveToFront();
        super.show();
 
        JDesktopPane pane = getDesktopPane();
index 346570d95b1b423957583d2367b3136517bc0abf..dc8b10d2178d2cd236d8051b64e993a35e55eddf 100644 (file)
@@ -436,7 +436,12 @@ public class JLayeredPane extends JComponent implements Accessible
       // should have found it
       throw new IllegalArgumentException();
 
-    super.swapComponents (curr, targ);
+    if (curr == 0)
+      super.swapComponents(curr, targ);
+    else
+      while (curr > 0)
+        super.swapComponents (curr, --curr);
+    
     revalidate();
     repaint();
   }
index caa7f310ea80542250c1f1de6fdf880a5b5d6719..d0e1090b8c900597b3832ef5f73b74b02eb7d9cf 100644 (file)
@@ -1070,14 +1070,16 @@ public class JList extends JComponent implements Accessible, Scrollable
     layoutOrientation = VERTICAL;
     opaque = true;
     valueIsAdjusting = false;
-    visibleRowCount = 8;
+    visibleRowCount = 7;
 
     cellRenderer = new DefaultListCellRenderer();
     listListener = new ListListener();
 
     setModel(new DefaultListModel());
     setSelectionModel(createSelectionModel());
-
+    setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
+    setLayout(null);
+    
     updateUI();
   }
 
@@ -1255,14 +1257,17 @@ public class JList extends JComponent implements Accessible, Scrollable
    *
    * @param a A number in the half-open range <code>[0, x)</code> where
    * <code>x = getModel.getSize()</code>, indicating the index of an
-   * element in the list to select.
+   * element in the list to select. When &lt; 0 the selection is cleared.
    *
    * @see #setSelectionMode
    * @see #selectionModel
    */
   public void setSelectedIndex(int a)
   {
-    selectionModel.setSelectionInterval(a, a);
+    if (a < 0)
+      selectionModel.clearSelection();
+    else
+      selectionModel.setSelectionInterval(a, a);
   }
 
   /**
index c87a4dc2b20cfb11403869f7397f9aee82407849..b2cfbd14ae857233e6d913037065e4292a4c712e 100644 (file)
@@ -1,5 +1,5 @@
 /* JMenuItem.java --
-   Copyright (C) 2002, 2004, 2005  Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2005,2006  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -117,6 +117,24 @@ public class JMenuItem extends AbstractButton implements Accessible,
     super();
     super.setAction(action);
     init(null, null);
+    if (action != null)
+      {
+       String name = (String) action.getValue(Action.NAME);
+       if (name != null)
+          setName(name);
+
+       KeyStroke accel = (KeyStroke) action.getValue(Action.ACCELERATOR_KEY);
+       if (accel != null)
+          setAccelerator(accel);
+
+       Integer mnemonic = (Integer) action.getValue(Action.MNEMONIC_KEY);
+       if (mnemonic != null)
+          setMnemonic(mnemonic.intValue());
+
+       String command = (String) action.getValue(Action.ACTION_COMMAND_KEY);
+       if (command != null)
+          setActionCommand(command);
+      }
   }
 
   /**
@@ -273,8 +291,9 @@ public class JMenuItem extends AbstractButton implements Accessible,
     if (! (this instanceof JMenu) && action != null)
       {
         setAccelerator((KeyStroke) (action.getValue(Action.ACCELERATOR_KEY)));
-        super.registerKeyboardAction(action, accelerator, 
-                                     JComponent.WHEN_IN_FOCUSED_WINDOW);
+        if (accelerator != null)
+          super.registerKeyboardAction(action, accelerator, 
+                                       JComponent.WHEN_IN_FOCUSED_WINDOW);
       }
   }
 
index 0de9115dc7d6a2bac77a7902d304859a21b44894..abca3e7ae02ede330991a0227933fb777707a12b 100644 (file)
@@ -262,7 +262,8 @@ public class JProgressBar extends JComponent implements SwingConstants,
   {
     this.model = model;
     changeListener = createChangeListener();
-    model.addChangeListener(changeListener);
+    if (model != null)
+      model.addChangeListener(changeListener);
     updateUI();    
   }
 
index 27ba7bb82fc4f61cddca3a318f46aef6b69f7959..8a7d4c07fa75992a3cf67d5762c05dc3d4b860d4 100644 (file)
@@ -497,7 +497,7 @@ public class JTabbedPane extends JComponent implements Serializable,
      */
     public int getMnemonic()
     {
-      return (int) mnemonicKey;
+      return mnemonicKey;
     }
 
     /**
@@ -592,9 +592,11 @@ public class JTabbedPane extends JComponent implements Serializable,
 
   /**
    * Creates a new JTabbedPane object using wrap tab layout  and the given
-   * tabPlacement.
+   * <code>tabPlacement</code>, where <code>tabPlacement</code> can be one
+   * of the following values: {@link #TOP}, {@link #BOTTOM}, {@link #LEFT} or
+   * {@link #RIGHT}.
    *
-   * @param tabPlacement Where the tabs will be placed.
+   * @param tabPlacement where the tabs will be placed
    */
   public JTabbedPane(int tabPlacement)
   {
@@ -602,11 +604,14 @@ public class JTabbedPane extends JComponent implements Serializable,
   }
 
   /**
-   * Creates a new JTabbedPane object with the given tabPlacement and
-   * tabLayoutPolicy.
+   * Creates a new JTabbedPane object with the given <code>tabPlacement</code>
+   * and <code>tabLayoutPolicy</code>. The <code>tabPlacement</code> can be one
+   * of the following values: {@link #TOP}, {@link #BOTTOM}, {@link #LEFT} or
+   * {@link #RIGHT}. The <code>tabLayoutPolicy</code> can be either
+   * {@link #SCROLL_TAB_LAYOUT} or {@link #WRAP_TAB_LAYOUT}.
    *
-   * @param tabPlacement Where the tabs will be placed.
-   * @param tabLayoutPolicy The way tabs will be placed.
+   * @param tabPlacement where the tabs will be placed
+   * @param tabLayoutPolicy the way tabs will be placed
    *
    * @throws IllegalArgumentException If tabLayoutPolicy or tabPlacement are
    *         not valid.
@@ -913,7 +918,7 @@ public class JTabbedPane extends JComponent implements Serializable,
     if (getSelectedIndex() == -1)
       setSelectedIndex(0);
 
-    layout();
+    revalidate();
     repaint();
   }
 
index 69a865df9c0751923f0aba4c4dc06bd719a68664..0875306a0127e00101137aa9ba98c16890ed6da3 100644 (file)
@@ -927,7 +927,47 @@ public class JTable
       // TODO Auto-generated method stub
       return null;
     }
-      
+
+    /**
+     * Returns the accessible row at the specified index.
+     *
+     * @param index the index for which to query the row
+     *
+     * @return the row number at the specified table index
+     */
+    public int getAccessibleRowAtIndex(int index)
+    {
+      // TODO: Back this up by a Mauve test and update API docs accordingly.
+      return index / getColumnCount();
+    }
+
+    /**
+     * Returns the accessible column at the specified index.
+     *
+     * @param index the index for which to query the column
+     *
+     * @return the column number at the specified table index
+     */
+    public int getAccessibleColumnAtIndex(int index)
+    {
+      // TODO: Back this up by a Mauve test and update API docs accordingly.
+      return index % getColumnCount();
+    }
+
+    /**
+     * Returns the accessible child index at the specified column and row.
+     *
+     * @param row the row
+     * @param column the column
+     *
+     * @return the index of the accessible child at the specified row and
+     *         column
+     */
+    public int getAccessibleIndexAt(int row, int column)
+    {
+      // TODO: Back this up by a Mauve test and update API docs accordingly.
+      return row * getColumnCount() + column;
+    }
   }
   /**
    * Handles property changes from the <code>TableColumn</code>s of this
@@ -949,10 +989,13 @@ public class JTable
       if (ev.getPropertyName().equals("preferredWidth"))
         {
           JTableHeader header = getTableHeader();
-          TableColumn col = (TableColumn) ev.getSource();
-          header.setResizingColumn(col);
-          doLayout();
-          header.setResizingColumn(null);
+         if (header != null)
+           {
+             TableColumn col = (TableColumn) ev.getSource();
+             header.setResizingColumn(col);
+             doLayout();
+             header.setResizingColumn(null);
+           }
         }
     }
   }
@@ -1460,6 +1503,12 @@ public class JTable
   TableColumnPropertyChangeHandler tableColumnPropertyChangeHandler =
     new TableColumnPropertyChangeHandler();
 
+  /**
+   * Whether cell editors should receive keyboard focus when the table is
+   * activated.
+   */
+  private boolean surrendersFocusOnKeystroke = false;
+
   /**
    * Creates a new <code>JTable</code> instance.
    */
@@ -1763,7 +1812,7 @@ public class JTable
     if ((event.getFirstRow() ==TableModelEvent.HEADER_ROW)
         && autoCreateColumnsFromModel)
 
-        createDefaultColumnsFromModel();
+      createDefaultColumnsFromModel();
 
     // If the structure changes, we need to revalidate, since that might
     // affect the size parameters of the JTable. Otherwise we only need
@@ -1796,7 +1845,6 @@ public class JTable
   {
     if (point != null)
       {
-        int x0 = getLocation().x;
         int ncols = getColumnCount();
         Dimension gap = getIntercellSpacing();
         TableColumnModel cols = getColumnModel();
@@ -1826,7 +1874,6 @@ public class JTable
   {
     if (point != null)
       {
-        int y0 = getLocation().y;
         int nrows = getRowCount();
         int height = getRowHeight();
         int y = point.y;
@@ -1984,16 +2031,13 @@ public class JTable
       }
   }
 
-
-
   public TableCellRenderer getCellRenderer(int row, int column)
   {
     TableCellRenderer renderer =
       columnModel.getColumn(column).getCellRenderer();
-    
     if (renderer == null)
-      renderer = getDefaultRenderer(dataModel.getColumnClass(column));
-    
+      renderer = getDefaultRenderer(getColumnClass(column));
+
     return renderer;
   }
 
@@ -2039,19 +2083,29 @@ public class JTable
                                    int row,
                                    int column)
   {
-    boolean rsa = getRowSelectionAllowed();
-    boolean csa = getColumnSelectionAllowed();
-    boolean rs = rsa ? getSelectionModel().isSelectedIndex(row) : false;
-    boolean cs = csa ? columnModel.getSelectionModel().isSelectedIndex(column) : false;
-    boolean isSelected = ((rsa && csa && rs && cs) 
-                          || (rsa && !csa && rs) 
-                          || (!rsa && csa && cs));
-    
+
+    boolean rowSelAllowed = getRowSelectionAllowed();
+    boolean colSelAllowed = getColumnSelectionAllowed();
+    boolean isSel = false;
+    if (rowSelAllowed && colSelAllowed || !rowSelAllowed && !colSelAllowed)
+      isSel = isCellSelected(row, column);
+    else
+      isSel = isRowSelected(row) && getRowSelectionAllowed()
+           || isColumnSelected(column) && getColumnSelectionAllowed();
+
+    // Determine the focused cell. The focused cell is the cell at the
+    // leadSelectionIndices of the row and column selection model.
+    ListSelectionModel rowSel = getSelectionModel();
+    ListSelectionModel colSel = getColumnModel().getSelectionModel();
+    boolean hasFocus = hasFocus() && isEnabled()
+                       && rowSel.getLeadSelectionIndex() == row
+                       && colSel.getLeadSelectionIndex() == column;
+
     return renderer.getTableCellRendererComponent(this,
                                                   dataModel.getValueAt(row, 
                                                                       convertColumnIndexToModel(column)),
-                                                  isSelected,
-                                                  false, // hasFocus
+                                                  isSel,
+                                                  hasFocus,
                                                   row, column);
   }
 
@@ -2217,7 +2271,6 @@ public class JTable
     int lo = lsm.getMinSelectionIndex();
     int hi = lsm.getMaxSelectionIndex();
     int j = 0;
-    java.util.ArrayList ls = new java.util.ArrayList();
     if (lo != -1 && hi != -1)
       {
         switch (lsm.getSelectionMode())
@@ -2973,7 +3026,7 @@ public class JTable
 
   public Class getColumnClass(int column)
   {
-    return dataModel.getColumnClass(column);
+    return getModel().getColumnClass(column);
   }
   
   public String getColumnName(int column)
@@ -3274,4 +3327,37 @@ public class JTable
     revalidate();
     repaint();
   }
+
+  /**
+   * Sets whether cell editors of this table should receive keyboard focus
+   * when the editor is activated by a keystroke. The default setting is
+   * <code>false</code> which means that the table should keep the keyboard
+   * focus until the cell is selected by a mouse click.
+   *
+   * @param value the value to set
+   *
+   * @since 1.4
+   */
+  public void setSurrendersFocusOnKeystroke(boolean value)
+  {
+    // TODO: Implement functionality of this property (in UI impl).
+    surrendersFocusOnKeystroke = value;
+  }
+
+  /**
+   * Returns whether cell editors of this table should receive keyboard focus
+   * when the editor is activated by a keystroke. The default setting is
+   * <code>false</code> which means that the table should keep the keyboard
+   * focus until the cell is selected by a mouse click.
+   *
+   * @return whether cell editors of this table should receive keyboard focus
+   *         when the editor is activated by a keystroke
+   *
+   * @since 1.4
+   */
+  public boolean getSurrendersFocusOnKeystroke()
+  {
+    // TODO: Implement functionality of this property (in UI impl).
+    return surrendersFocusOnKeystroke;
+  }
 }
index 2fa185b620790927867373d1871294cfa4bf00e3..9b50febe3617bac4164e36ac107d3112867da696 100644 (file)
@@ -217,7 +217,11 @@ public class JTextArea extends JTextComponent
   public JTextArea(Document doc, String text, int rows, int columns)
   {
     setDocument(doc == null ? createDefaultModel() : doc);
-    setText(text);
+    // Only explicitly setText() when there is actual text since
+    // setText() might be overridden and not expected to be called
+    // from the constructor (as in JEdit).
+    if (text != null)
+      setText(text);
     setRows(rows);
     setColumns(columns);
   }
index 8dc2f256914331906c6f189ab2b1c81197fc88a5..c4903106131eafa56e1e201a6fc11f405b4796aa 100644 (file)
@@ -203,9 +203,22 @@ public class JTextField extends JTextComponent
    */
   protected Document createDefaultModel()
   {
-    PlainDocument doc = new PlainDocument();
+    return new PlainDocument();
+  }
+
+  /**
+   * Sets the document to be used for this JTextField.
+   *
+   * This sets the document property <code>filterNewlines</code> to
+   * <code>true</code> and then calls the super behaviour to setup a view and
+   * revalidate the text field.
+   *
+   * @param doc the document to set
+   */
+  public void setDocument(Document doc)
+  {
     doc.putProperty("filterNewlines", Boolean.TRUE);
-    return doc;
+    super.setDocument(doc);
   }
 
   /**
index a2aebd4ca684dbd6561fb75f3226d9eabf82080e..7c95d7682c55625f08ca9921e1b51282b4bb807d 100644 (file)
@@ -40,6 +40,7 @@ package javax.swing;
 
 import java.awt.Component;
 
+import javax.swing.text.AbstractDocument;
 import javax.swing.text.AttributeSet;
 import javax.swing.text.BadLocationException;
 import javax.swing.text.Caret;
@@ -151,38 +152,34 @@ public class JTextPane
   {
     Caret caret = getCaret();
     StyledDocument doc = getStyledDocument();
+    AttributeSet a = getInputAttributes().copyAttributes();
+    if (doc == null)
+      return;
 
     int dot = caret.getDot();
     int mark = caret.getMark();
 
-    // If content is empty delete selection.
-    if (content == null)
-      {
-       caret.setDot(dot);
-       return;
-      }
+    int p0 = Math.min (dot, mark);
+    int p1 = Math.max (dot, mark);
 
     try
       {
-       int start = getSelectionStart();
-       int end = getSelectionEnd();
-       int contentLength = content.length();
-
-       // Remove selected text.
-       if (dot != mark)
-         doc.remove(start, end - start);
-
-       // Insert new text.
-       doc.insertString(start, content, null);
-       // Set attributes for inserted text
-       doc.setCharacterAttributes(start, contentLength, getInputAttributes(),
-                                  true);
-
+        if (doc instanceof AbstractDocument)
+          ((AbstractDocument)doc).replace(p0, p1 - p0, content, a);
+        else
+          {
+            // Remove selected text.
+            if (dot != mark)
+              doc.remove(p0, p1 - p0);
+            // Insert new text.
+            if (content != null && content.length() > 0)
+              doc.insertString(p0, content, a);
+          }
       }
     catch (BadLocationException e)
       {
-       throw new AssertionError
-         ("No BadLocationException should be thrown here");
+        throw new AssertionError
+          ("No BadLocationException should be thrown here");      
       }
   }
 
index 4422a193396a0f48e6d71b154dd75204881d2744..cfcb2291b2cbb2e1b8e0d4aa3a08abd4e45951a0 100644 (file)
@@ -1481,6 +1481,7 @@ public class JTree extends JComponent implements Scrollable, Accessible
     setRootVisible(true);
     setModel(model);
     setSelectionModel(new EmptySelectionModel());
+    selectionModel.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
   }
 
   /**
index 5f20f0aa60a7665685154a6409b105f43602591f..debb5742e2c6af927c174fb2a4238b11a170eb8e 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing;
 
+import gnu.classpath.SystemProperties;
+
 import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.Graphics;
@@ -163,7 +165,13 @@ public class JViewport extends JComponent implements Accessible
   public static final int BACKINGSTORE_SCROLL_MODE = 2;
 
   private static final long serialVersionUID = -6925142919680527970L;
-  
+
+  /**
+   * The default scrollmode to be used by all JViewports as determined by
+   * the system property gnu.javax.swing.JViewport.scrollMode.
+   */
+  private static final int defaultScrollMode;
+
   protected boolean scrollUnderway;
   protected boolean isViewSizeSet;
 
@@ -243,21 +251,26 @@ public class JViewport extends JComponent implements Accessible
    */
   boolean sizeChanged = true;
 
-  public JViewport()
+  /**
+   * Initializes the default setting for the scrollMode property.
+   */
+  static
   {
-    setOpaque(true);
     String scrollModeProp =
-      System.getProperty("gnu.javax.swing.JViewport.scrollMode",
+      SystemProperties.getProperty("gnu.javax.swing.JViewport.scrollMode",
                          "BLIT");
-    int myScrollMode;
     if (scrollModeProp.equalsIgnoreCase("simple"))
-      myScrollMode = SIMPLE_SCROLL_MODE;
+      defaultScrollMode = SIMPLE_SCROLL_MODE;
     else if (scrollModeProp.equalsIgnoreCase("backingstore"))
-      myScrollMode = BACKINGSTORE_SCROLL_MODE;
+      defaultScrollMode = BACKINGSTORE_SCROLL_MODE;
     else
-      myScrollMode = BLIT_SCROLL_MODE;
-    setScrollMode(myScrollMode);
+      defaultScrollMode = BLIT_SCROLL_MODE;
+  }
 
+  public JViewport()
+  {
+    setOpaque(true);
+    setScrollMode(defaultScrollMode);
     updateUI();
     setLayout(createLayoutManager());
     lastPaintPosition = new Point();
@@ -410,8 +423,9 @@ public class JViewport extends JComponent implements Accessible
 
   public void setView(Component v)
   {
-    if (viewListener != null)
-      getView().removeComponentListener(viewListener);
+    Component currView = getView();
+    if (viewListener != null && currView != null)
+      currView.removeComponentListener(viewListener);
 
     if (v != null)
       {
@@ -772,6 +786,9 @@ public class JViewport extends JComponent implements Accessible
    */
   void paintSimple(Graphics g)
   {
+    // We need to call this to properly clear the background.
+    paintComponent(g);
+
     Point pos = getViewPosition();
     Component view = getView();
     boolean translated = false;
index 1a67e849735245f53d9184148dafd2f8976681a1..358a811b36270ee497c4fa2a1e9ce21268359279 100644 (file)
@@ -300,11 +300,11 @@ public abstract class LookAndFeel
   /**
    * Returns a string that displays and identifies this object's properties.
    *
-   * @return the string "LookAndFeel"
+   * @return string containing the description and class name.
    */
   public String toString()
   {
-    return "LookAndFeel";
+    return getDescription() + " " + getClass().getName();
   }
 
   /**
index cbb243e285a04f1b79c1b872b2e206ac3984e4b3..203ee3c9b0cc63bcc62d9ab96ffd3a37501d1790 100644 (file)
@@ -41,6 +41,7 @@ package javax.swing;
 import java.awt.Component;
 import java.awt.FlowLayout;
 import java.awt.Point;
+import java.awt.Rectangle;
 
 
 /**
@@ -291,7 +292,9 @@ public class Popup
      */
     public void hide()
     {
+      Rectangle bounds = panel.getBounds();
       layeredPane.remove(panel);
+      layeredPane.repaint(bounds.x, bounds.y, bounds.width, bounds.height);
     }
   }
 }
index b857b126180df5d48d8f59d66aae60463feb13e3..0be81053dc538a698694269ed4fe2fe2f69f3388 100644 (file)
@@ -48,6 +48,7 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.WeakHashMap;
 
 /**
  * <p>The repaint manager holds a set of dirty regions, invalid components,
@@ -68,7 +69,7 @@ public class RepaintManager
   /**
    * The current repaint managers, indexed by their ThreadGroups.
    */
-  static HashMap currentRepaintManagers;
+  static WeakHashMap currentRepaintManagers;
   
   /**
    * <p>A helper class which is placed into the system event queue at
@@ -286,7 +287,7 @@ public class RepaintManager
   public static RepaintManager currentManager(Component component)
   {
     if (currentRepaintManagers == null)
-      currentRepaintManagers = new HashMap();
+      currentRepaintManagers = new WeakHashMap();
     ThreadGroup threadGroup = Thread.currentThread().getThreadGroup();
     RepaintManager currentManager =
       (RepaintManager) currentRepaintManagers.get(threadGroup);
@@ -330,7 +331,7 @@ public class RepaintManager
   public static void setCurrentManager(RepaintManager manager)
   {
     if (currentRepaintManagers == null)
-      currentRepaintManagers = new HashMap();
+      currentRepaintManagers = new WeakHashMap();
 
     ThreadGroup threadGroup = Thread.currentThread().getThreadGroup();
     currentRepaintManagers.put(threadGroup, manager);
@@ -533,7 +534,14 @@ public class RepaintManager
     }
     for (Iterator i = workInvalidComponents.iterator(); i.hasNext(); )
       {
-        JComponent comp = (JComponent) i.next();
+        Component comp = (Component) i.next();
+        // Find validate root.
+        while ((!(comp instanceof JComponent)
+               || !((JComponent) comp).isValidateRoot())
+               && comp.getParent() != null)
+          comp = comp.getParent();
+
+        // Validate the validate root.
         if (! (comp.isVisible() && comp.isShowing()))
           continue;
         comp.validate();
index 58b3a78d7aa6b85f248b507f4439c84102099241..2d859b7448eb3c51b969e49f99a36669ba50243b 100644 (file)
@@ -1395,4 +1395,30 @@ public class SwingUtilities
     else
       return null;
   }
+
+  /**
+   * Processes key bindings for the component that is associated with the 
+   * key event. Note that this method does not make sense for
+   * JComponent-derived components, except when
+   * {@link JComponent#processKeyEvent(KeyEvent)} is overridden and super is
+   * not called.
+   *
+   * This method searches through the component hierarchy of the component's
+   * top-level container to find a <code>JComponent</code> that has a binding
+   * for the key event in the WHEN_IN_FOCUSED_WINDOW scope.
+   *
+   * @param ev the key event
+   *
+   * @return <code>true</code> if a binding has been found and processed,
+   *         <code>false</code> otherwise
+   *
+   * @since 1.4
+   */
+  public static boolean processKeyBindings(KeyEvent ev)
+  {
+    Component c = ev.getComponent();
+    KeyStroke s = KeyStroke.getKeyStrokeForEvent(ev);
+    KeyboardManager km = KeyboardManager.getManager();
+    return km.processKeyStroke(c, s, ev);
+  }
 }
index 4828fdbfa982afb0c3e96f4d80cdad127c284860..830feee83326ab0eaa851eb2864cc647d4a697e3 100644 (file)
@@ -1,5 +1,5 @@
 /* TransferHandler.java --
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -43,6 +43,7 @@ import java.awt.datatransfer.DataFlavor;
 import java.awt.datatransfer.Transferable;
 import java.awt.event.ActionEvent;
 import java.awt.event.InputEvent;
+import java.awt.Toolkit;
 import java.io.Serializable;
 
 public class TransferHandler implements Serializable
@@ -53,6 +54,7 @@ public class TransferHandler implements Serializable
 
     public TransferAction(String command)
     {
+      super(command);
       this.command = command;
     }
     
@@ -62,6 +64,13 @@ public class TransferHandler implements Serializable
       TransferHandler transferHandler = component.getTransferHandler();
       Clipboard clipboard = getClipboard(component);
 
+      if (clipboard == null)
+       {
+         // Access denied!
+         Toolkit.getDefaultToolkit().beep();
+         return;
+       }
+
       if (command.equals(COMMAND_COPY))
        transferHandler.exportToClipboard(component, clipboard, COPY);
       else if (command.equals(COMMAND_CUT))
@@ -76,37 +85,22 @@ public class TransferHandler implements Serializable
     }
   
     /**
-     * Get the system cliboard. If not available, create and return the VM-local
-     * clipboard.
+     * Get the system cliboard or null if the caller isn't allowed to
+     * access the system clipboard.
      * 
      * @param component a component, used to get the toolkit.
      * @return the clipboard
      */
     private static Clipboard getClipboard(JComponent component)
     {
-      // Avoid throwing exception if the system clipboard access failed
-      // in the past.
-      if (clipboard != null)
-        return clipboard;
-      else
-        {
-          try
-            {
-              SecurityManager sm = System.getSecurityManager();
-              if (sm != null)
-                sm.checkSystemClipboardAccess();
-
-              // We may access system clipboard.
-              return component.getToolkit().getSystemClipboard();
-            }
-          catch (Exception e)
-            {
-              // We may not access system clipboard.
-              // Create VM-local clipboard if none exists yet.
-              clipboard = new Clipboard("Clipboard");
-              return clipboard;
-            }
-        }
+      try
+       {
+         return component.getToolkit().getSystemClipboard();
+       }
+      catch (SecurityException se)
+       {
+         return null;
+       }
     }
   }
   
@@ -125,12 +119,6 @@ public class TransferHandler implements Serializable
   private static Action cutAction = new TransferAction(COMMAND_CUT);
   private static Action pasteAction = new TransferAction(COMMAND_PASTE);
   
-  /**
-   * Clipboard if system clipboard may not be used.
-   * Package-private to avoid an accessor method.
-   */
-  static Clipboard clipboard;
-  
   private int sourceActions;
   private Icon visualRepresentation;
   
index f6aee1b944cc758ac7d78209a5b533fca656472a..00d9700d0d25c8c53acec724cd1c4535c7253b48 100644 (file)
@@ -54,6 +54,7 @@ import java.util.ResourceBundle;
 
 import javax.swing.border.Border;
 import javax.swing.plaf.ComponentUI;
+import javax.swing.plaf.InputMapUIResource;
 
 /**
  * UIDefaults is a database where all settings and interface bindings are
@@ -95,10 +96,14 @@ public class UIDefaults extends Hashtable
     }
     public Object createValue(UIDefaults table)
     {
-      InputMap im = new InputMap ();
+      InputMapUIResource im = new InputMapUIResource ();
       for (int i = 0; 2*i+1 < bind.length; ++i)
         {
-          im.put (KeyStroke.getKeyStroke ((String) bind[2*i]),
+          Object curr = bind[2*i];
+          if (curr instanceof KeyStroke)
+            im.put((KeyStroke) curr, bind[2*i+1]);
+          else
+            im.put(KeyStroke.getKeyStroke((String) curr),
                   bind[2*i+1]);
         }
       return im;
index 884f7cb27a8c3fa775425d7c079ee9f8e7ed39c8..79fd26c56dfd9a897726adfa7738b77c90ba5b27 100644 (file)
@@ -143,32 +143,32 @@ public class ViewportLayout implements LayoutManager, Serializable
     Dimension viewMinimum = view.getMinimumSize();
     Point portLowerRight = new Point(portBounds.x + portBounds.width,
                                      portBounds.y + portBounds.height);
-        
+
     // vertical implementation of the above rules
+    if ((! (view instanceof Scrollable) && viewPref.height < portBounds.height
+         || (view instanceof Scrollable
+            && ((Scrollable) view).getScrollableTracksViewportHeight())))
+      viewPref.height = portBounds.height;
+
     if (portBounds.height >= viewMinimum.height)
-      {
-        portBounds.y = 0;
-        if ( !(view instanceof Scrollable) || ((Scrollable)view).getScrollableTracksViewportHeight())
-          viewPref.height = portBounds.height;
-      }
+      portBounds.y = 0;
     else
       {
-        viewPref.height = viewMinimum.height;
         int overextension = portLowerRight.y - viewPref.height;
         if (overextension > 0)
             portBounds.y -= overextension;
       }
 
     // horizontal implementation of the above rules
+    if ((! (view instanceof Scrollable) && viewPref.width < portBounds.width
+         || (view instanceof Scrollable
+         && ((Scrollable) view).getScrollableTracksViewportWidth())))
+      viewPref.width = portBounds.width;
+
     if (portBounds.width >= viewMinimum.width)
-      {
-        portBounds.x = 0;
-        if ( !(view instanceof Scrollable) || ((Scrollable)view).getScrollableTracksViewportWidth())
-          viewPref.width = portBounds.width;
-      }
+      portBounds.x = 0;
     else
       {
-        viewPref.width = viewMinimum.width;
         int overextension = portLowerRight.x - viewPref.width;
         if (overextension > 0)
             portBounds.x -= overextension;
index ee3f220f4d50c3fd9d8d196465dbe4d2e56fd47d..147d68ef184d2bedf9639cbdb2e68d87f2442193 100644 (file)
@@ -228,7 +228,7 @@ public class EventListenerList
     count = getListenerCount(c);
     result = (EventListener[]) Array.newInstance(c, count);
     f = 0;
-    for (int i = 0; i < listenerList.length; i += 2)
+    for (int i = listenerList.length - 2; i >= 0; i -= 2)
       if (listenerList[i] == c)
         result[f++] = (EventListener) listenerList[i + 1];
     
index 6a736f258a2b373709e110fccaa60149c7ae6678..be7b68a440c72e0025027e862a2f0f581599f7fd 100644 (file)
@@ -41,7 +41,6 @@ package javax.swing.plaf;
 import java.awt.Color;
 import java.awt.Dimension;
 import java.awt.Graphics;
-import java.awt.Rectangle;
 
 import javax.accessibility.Accessible;
 import javax.swing.JComponent;
@@ -185,12 +184,12 @@ public abstract class ComponentUI
   public void update(Graphics g, JComponent c)
   {
     if (c.isOpaque())
-    {
-      Color oldColor = g.getColor();
-      g.setColor(c.getBackground());
-      g.fillRect(0, 0, c.getWidth(), c.getHeight());
-      g.setColor(oldColor);
-    }
+      {
+        Color oldColor = g.getColor();
+        g.setColor(c.getBackground());
+        g.fillRect(0, 0, c.getWidth(), c.getHeight());
+        g.setColor(oldColor);
+      }
     paint(g, c);
   }
    
index 69d4415371f41d790efa1fa7edb64b6d8416a76b..56e4e7073e5968553f4a00418a4742a1ec601f9b 100644 (file)
@@ -162,8 +162,8 @@ public class BasicArrowButton extends JButton implements SwingConstants
     super.paint(g);
     Rectangle bounds = getBounds();
     int size = bounds.height / 4;
-    int x = (bounds.width - size) / 2;
-    int y = (bounds.height - size) / 2;
+    int x = bounds.x + (bounds.width - size) / 2;
+    int y = (bounds.height - size) / 4;
     ButtonModel m = getModel();
     if (m.isArmed())
       {
index b22aa15f901d6c34632024a33ff978c2b400c593..288a8d89f7eaf555600425e44515c4f218951f5f 100644 (file)
@@ -190,10 +190,19 @@ public class BasicComboBoxUI extends ComboBoxUI
    */
   Dimension displaySize;
 
-  // FIXME: This fields aren't used anywhere at this moment.
-  protected Dimension cachedMinimumSize;
+  // FIXME: This field isn't used anywhere at this moment.
   protected CellRendererPane currentValuePane;
-  protected boolean isMinimumSizeDirty;
+
+  /**
+   * The current minimum size if isMinimumSizeDirty is false.
+   * Setup by getMinimumSize() and invalidated by the various listeners.
+   */
+  protected Dimension cachedMinimumSize;
+
+  /**
+   * Indicates whether or not the cachedMinimumSize field is valid or not.
+   */
+  protected boolean isMinimumSizeDirty = true;
 
   /**
    * Creates a new <code>BasicComboBoxUI</code> object.
@@ -285,8 +294,7 @@ public class BasicComboBoxUI extends ComboBoxUI
     comboBox.addPropertyChangeListener(propertyChangeListener);
 
     focusListener = createFocusListener();
-    comboBox.addFocusListener(focusListener);
-    listBox.addFocusListener(focusListener);
+    editor.addFocusListener(focusListener);
 
     itemListener = createItemListener();
     comboBox.addItemListener(itemListener);
@@ -563,6 +571,7 @@ public class BasicComboBoxUI extends ComboBoxUI
   {
     arrowButton.setEnabled(comboBox.isEnabled());
     arrowButton.setFont(comboBox.getFont());
+    arrowButton.setFocusable(false);
   }
 
   /**
@@ -615,12 +624,14 @@ public class BasicComboBoxUI extends ComboBoxUI
   public void setPopupVisible(JComboBox c, boolean v)
   {
     if (v)
-      {
-        popup.show();
-        popup.getList().requestFocus();
-      }
+      popup.show();
     else
       popup.hide();
+
+    if (comboBox.isEditable())
+      editor.requestFocus();
+    else
+      comboBox.requestFocus();
   }
 
   /**
@@ -668,7 +679,7 @@ public class BasicComboBoxUI extends ComboBoxUI
 
   /**
    * Returns the minimum size for this {@link JComboBox} for this
-   * look and feel.
+   * look and feel. Also makes sure cachedMinimimSize is setup correctly.
    *
    * @param c The {@link JComponent} to find the minimum size for.
    *
@@ -676,10 +687,15 @@ public class BasicComboBoxUI extends ComboBoxUI
    */
   public Dimension getMinimumSize(JComponent c)
   {
-    Dimension d = getDisplaySize();
-    int arrowButtonWidth = d.height;
-    Dimension result = new Dimension(d.width + arrowButtonWidth, d.height);
-    return result;
+    if (isMinimumSizeDirty)
+      {
+       Dimension d = getDisplaySize();
+       int arrowButtonWidth = d.height;
+       cachedMinimumSize = new Dimension(d.width + arrowButtonWidth,
+                                         d.height);
+       isMinimumSizeDirty = false;
+      }
+    return new Dimension(cachedMinimumSize);
   }
 
   /** The value returned by the getMaximumSize() method. */
@@ -1062,6 +1078,9 @@ public class BasicComboBoxUI extends ComboBoxUI
      */
     public void focusGained(FocusEvent e)
     {
+      // Lets assume every change invalidates the minimumsize.
+      isMinimumSizeDirty = true;
+
       hasFocus = true;
       comboBox.repaint();
     }
@@ -1074,6 +1093,9 @@ public class BasicComboBoxUI extends ComboBoxUI
      */
     public void focusLost(FocusEvent e)
     {
+      // Lets assume every change invalidates the minimumsize.
+      isMinimumSizeDirty = true;
+
       hasFocus = false;
       setPopupVisible(comboBox, false);
       comboBox.repaint();
@@ -1102,6 +1124,9 @@ public class BasicComboBoxUI extends ComboBoxUI
      */
     public void itemStateChanged(ItemEvent e)
     {
+      // Lets assume every change invalidates the minimumsize.
+      isMinimumSizeDirty = true;
+
       if (e.getStateChange() == ItemEvent.SELECTED && comboBox.isEditable())
         comboBox.getEditor().setItem(e.getItem());
       comboBox.repaint();
@@ -1149,6 +1174,9 @@ public class BasicComboBoxUI extends ComboBoxUI
     public void contentsChanged(ListDataEvent e)
     {
       // if the item is selected or deselected
+
+      // Lets assume every change invalidates the minimumsize.
+      isMinimumSizeDirty = true;
     }
 
     /**
@@ -1158,6 +1186,9 @@ public class BasicComboBoxUI extends ComboBoxUI
      */
     public void intervalAdded(ListDataEvent e)
     {
+      // Lets assume every change invalidates the minimumsize.
+      isMinimumSizeDirty = true;
+
       ComboBoxModel model = comboBox.getModel();
       ListCellRenderer renderer = comboBox.getRenderer();
 
@@ -1179,6 +1210,9 @@ public class BasicComboBoxUI extends ComboBoxUI
      */
     public void intervalRemoved(ListDataEvent e)
     {
+      // Lets assume every change invalidates the minimumsize.
+      isMinimumSizeDirty = true;
+
       // recalculate display size of the JComboBox.
       displaySize = getDisplaySize();
       comboBox.repaint();
@@ -1206,6 +1240,9 @@ public class BasicComboBoxUI extends ComboBoxUI
      */
     public void propertyChange(PropertyChangeEvent e)
     {
+      // Lets assume every change invalidates the minimumsize.
+      isMinimumSizeDirty = true;
+
       if (e.getPropertyName().equals("enabled"))
         {
          arrowButton.setEnabled(comboBox.isEnabled());
index 73979bb89c1d6cb76abb4d9298d43248afea21cd..08dab7f9f368ae2b4b9193750c2b5c1be4c1cb62 100644 (file)
@@ -442,6 +442,7 @@ public class BasicComboPopup extends JPopupMenu implements ComboPopup
   {
     list.setModel(comboBox.getModel());
     list.setVisibleRowCount(comboBox.getMaximumRowCount());
+    list.setFocusable(false);
     installListListeners();
   }
 
index 60179dc0706e22c60260c93ec4f96395fdf258e3..30e3156b4e0326e76d3206abc1c2f7066d1d8607 100644 (file)
@@ -37,19 +37,8 @@ exception statement from your version. */
 
 package javax.swing.plaf.basic;
 
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.Graphics;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Point;
-import java.awt.Polygon;
 import java.awt.Window;
 import java.awt.event.ActionEvent;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
@@ -62,23 +51,16 @@ import java.util.Hashtable;
 
 import javax.swing.AbstractAction;
 import javax.swing.Action;
-import javax.swing.ButtonGroup;
 import javax.swing.Icon;
 import javax.swing.JButton;
-import javax.swing.JComboBox;
 import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JFileChooser;
-import javax.swing.JLabel;
 import javax.swing.JList;
 import javax.swing.JPanel;
-import javax.swing.JScrollPane;
 import javax.swing.JTextField;
-import javax.swing.JToggleButton;
-import javax.swing.ListCellRenderer;
-import javax.swing.SwingConstants;
 import javax.swing.SwingUtilities;
-import javax.swing.Timer;
+import javax.swing.UIDefaults;
 import javax.swing.UIManager;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
@@ -87,6 +69,7 @@ import javax.swing.filechooser.FileSystemView;
 import javax.swing.filechooser.FileView;
 import javax.swing.plaf.ComponentUI;
 import javax.swing.plaf.FileChooserUI;
+import javax.swing.plaf.metal.MetalIconFactory;
 
 
 /**
@@ -144,7 +127,7 @@ public class BasicFileChooserUI extends FileChooserUI
      */
     protected ApproveSelectionAction()
     {
-      // Nothing to do here.
+      super("approveSelection");
     }
 
     /**
@@ -154,17 +137,22 @@ public class BasicFileChooserUI extends FileChooserUI
      */
     public void actionPerformed(ActionEvent e)
     {
-      Object obj = new String(parentPath + entry.getText());
+      Object obj = null;
+      if (parentPath != null)
+        obj = new String(parentPath + getFileName());
+      else
+        obj = filechooser.getSelectedFile();
       if (obj != null)
         {
-          File f = filechooser.getFileSystemView().createFileObject(
-                                                                    obj.toString());
-          if (filechooser.isTraversable(f)
-              && filechooser.isDirectorySelectionEnabled())
-            filechooser.setCurrentDirectory(f);
+          File f = filechooser.getFileSystemView().createFileObject(obj.toString());
+          File currSelected = filechooser.getSelectedFile();
+          if (filechooser.isTraversable(f))
+            {
+              filechooser.setCurrentDirectory(currSelected);
+              filechooser.rescanCurrentDirectory();
+            }
           else
             {
-              filechooser.setSelectedFile(f);
               filechooser.approveSelection();
               closeDialog();
             }
@@ -307,7 +295,7 @@ public class BasicFileChooserUI extends FileChooserUI
      */
     protected CancelSelectionAction()
     {
-      // Nothing to do here.
+      super(null);
     }
 
     /**
@@ -317,6 +305,8 @@ public class BasicFileChooserUI extends FileChooserUI
      */
     public void actionPerformed(ActionEvent e)
     {
+      filechooser.setSelectedFile(null);
+      filechooser.setSelectedFiles(null);
       filechooser.cancelSelection();
       closeDialog();
     }
@@ -335,7 +325,7 @@ public class BasicFileChooserUI extends FileChooserUI
      */
     protected ChangeToParentDirectoryAction()
     {
-      // Nothing to do here.
+      super("Go Up");
     }
 
     /**
@@ -358,8 +348,6 @@ public class BasicFileChooserUI extends FileChooserUI
    */
   protected class DoubleClickListener extends MouseAdapter
   {
-    /** A timer. */
-    private Timer timer = null;
 
     /** DOCUMENT ME! */
     private Object lastSelected = null;
@@ -375,8 +363,6 @@ public class BasicFileChooserUI extends FileChooserUI
     public DoubleClickListener(JList list)
     {
       this.list = list;
-      timer = new Timer(1000, null);
-      timer.setRepeats(false);
       lastSelected = list.getSelectedValue();
       setDirectorySelected(false);
     }
@@ -388,14 +374,14 @@ public class BasicFileChooserUI extends FileChooserUI
      */
     public void mouseClicked(MouseEvent e)
     {
-      if (list.getSelectedValue() == null)
+      Object p = list.getSelectedValue();
+      if (p == null)
         return;
       FileSystemView fsv = filechooser.getFileSystemView();
-      if (timer.isRunning()
-          && list.getSelectedValue().toString().equals(lastSelected.toString()))
+      if (e.getClickCount() >= 2 && lastSelected != null &&
+          p.toString().equals(lastSelected.toString()))
         {
           File f = fsv.createFileObject(lastSelected.toString());
-          timer.stop();
           if (filechooser.isTraversable(f))
             {
               filechooser.setCurrentDirectory(f);
@@ -410,8 +396,19 @@ public class BasicFileChooserUI extends FileChooserUI
         }
       else
         {
-          String path = list.getSelectedValue().toString();
+          String path = p.toString();
           File f = fsv.createFileObject(path);
+          filechooser.setSelectedFile(f);
+          
+          if (filechooser.isMultiSelectionEnabled())
+            {
+              int[] inds = list.getSelectedIndices();
+              File[] allFiles = new File[inds.length];
+              for (int i = 0; i < inds.length; i++)
+                allFiles[i] = (File) list.getModel().getElementAt(inds[i]);
+              filechooser.setSelectedFiles(allFiles);
+            }
+          
           if (filechooser.isTraversable(f))
             {
               setDirectorySelected(true);
@@ -424,8 +421,11 @@ public class BasicFileChooserUI extends FileChooserUI
             }
           lastSelected = path;
           parentPath = path.substring(0, path.lastIndexOf("/") + 1);
-          entry.setText(path.substring(path.lastIndexOf("/") + 1));
-          timer.restart();
+          if (f.isFile())
+            setFileName(path.substring(path.lastIndexOf("/") + 1));
+          else if (filechooser.getFileSelectionMode() == 
+            JFileChooser.DIRECTORIES_ONLY)
+            setFileName(path);
         }
     }
 
@@ -453,7 +453,7 @@ public class BasicFileChooserUI extends FileChooserUI
      */
     protected GoHomeAction()
     {
-      // Nothing to do here.
+      super("Go Home");
     }
 
     /**
@@ -483,7 +483,7 @@ public class BasicFileChooserUI extends FileChooserUI
      */
     protected NewFolderAction()
     {
-      // Nothing to do here.
+      super("New Folder");
     }
 
     /**
@@ -529,7 +529,8 @@ public class BasicFileChooserUI extends FileChooserUI
      */
     public void valueChanged(ListSelectionEvent e)
     {
-      Object f = filelist.getSelectedValue();
+      JList list = (JList) e.getSource();
+      Object f = list.getSelectedValue();
       if (f == null)
        return;
       File file = filechooser.getFileSystemView().createFileObject(f.toString());
@@ -552,7 +553,7 @@ public class BasicFileChooserUI extends FileChooserUI
      */
     protected UpdateAction()
     {
-      // Nothing to do here.
+      super(null);
     }
 
     /**
@@ -576,91 +577,13 @@ public class BasicFileChooserUI extends FileChooserUI
   protected String cancelButtonToolTipText;
 
   /** An icon representing a computer. */
-  protected Icon computerIcon = new Icon()
-    {
-      public int getIconHeight()
-      {
-       return ICON_SIZE;
-      }
-
-      public int getIconWidth()
-      {
-       return ICON_SIZE;
-      }
-
-      public void paintIcon(Component c, Graphics g, int x, int y)
-      {
-        // FIXME: is this not implemented, or is the icon intentionally blank?
-      }
-    };
+  protected Icon computerIcon;
 
   /** An icon for the "details view" button. */
-  protected Icon detailsViewIcon = new Icon()
-    {
-      public int getIconHeight()
-      {
-       return ICON_SIZE;
-      }
-
-      public int getIconWidth()
-      {
-       return ICON_SIZE;
-      }
-
-      public void paintIcon(Component c, Graphics g, int x, int y)
-      {
-       Color saved = g.getColor();
-       g.translate(x, y);
-
-       g.setColor(Color.GRAY);
-       g.drawRect(1, 1, 15, 20);
-       g.drawLine(17, 6, 23, 6);
-       g.drawLine(17, 12, 23, 12);
-       g.drawLine(17, 18, 23, 18);
-
-       g.setColor(saved);
-       g.translate(-x, -y);
-      }
-    };
+  protected Icon detailsViewIcon;
 
   /** An icon representing a directory. */
-  protected Icon directoryIcon = new Icon()
-    {
-      public int getIconHeight()
-      {
-       return ICON_SIZE;
-      }
-
-      public int getIconWidth()
-      {
-       return ICON_SIZE;
-      }
-
-      public void paintIcon(Component c, Graphics g, int x, int y)
-      {
-       Color saved = g.getColor();
-       g.translate(x, y);
-
-       Point ap = new Point(3, 7);
-       Point bp = new Point(3, 21);
-       Point cp = new Point(21, 21);
-       Point dp = new Point(21, 12);
-       Point ep = new Point(16, 12);
-       Point fp = new Point(13, 7);
-
-       Polygon dir = new Polygon(new int[] { ap.x, bp.x, cp.x, dp.x, ep.x, fp.x },
-                                 new int[] { ap.y, bp.y, cp.y, dp.y, ep.y, fp.y },
-                                 6);
-
-       g.setColor(new Color(153, 204, 255));
-       g.fillPolygon(dir);
-       g.setColor(Color.BLACK);
-       g.drawPolygon(dir);
-
-       g.translate(-x, -y);
-       g.setColor(saved);
-      }
-    };
+  protected Icon directoryIcon;
 
   /** The localised Mnemonic for the open button. */
   protected int directoryOpenButtonMnemonic;
@@ -672,82 +595,13 @@ public class BasicFileChooserUI extends FileChooserUI
   protected String directoryOpenButtonToolTipText;
 
   /** An icon representing a file. */
-  protected Icon fileIcon = new Icon()
-    {
-      public int getIconHeight()
-      {
-       return ICON_SIZE;
-      }
-
-      public int getIconWidth()
-      {
-       return ICON_SIZE;
-      }
-
-      public void paintIcon(Component c, Graphics g, int x, int y)
-      {
-       Color saved = g.getColor();
-       g.translate(x, y);
-
-       Point a = new Point(5, 4);
-       Point b = new Point(5, 20);
-       Point d = new Point(19, 20);
-       Point e = new Point(19, 7);
-       Point f = new Point(16, 4);
-
-       Polygon p = new Polygon(new int[] { a.x, b.x, d.x, e.x, f.x, },
-                               new int[] { a.y, b.y, d.y, e.y, f.y }, 5);
-
-       g.setColor(Color.WHITE);
-       g.fillPolygon(p);
-       g.setColor(Color.BLACK);
-       g.drawPolygon(p);
-
-       g.drawLine(16, 4, 14, 6);
-       g.drawLine(14, 6, 19, 7);
-
-       g.setColor(saved);
-       g.translate(-x, -y);
-      }
-    };
+  protected Icon fileIcon;
 
   /** An icon representing a floppy drive. */
-  protected Icon floppyDriveIcon = new Icon()
-    {
-      public int getIconHeight()
-      {
-       return ICON_SIZE;
-      }
-
-      public int getIconWidth()
-      {
-       return ICON_SIZE;
-      }
-
-      public void paintIcon(Component c, Graphics g, int x, int y)
-      {
-        // FIXME: is this not implemented, or is the icon intentionally blank?
-      }
-    };
+  protected Icon floppyDriveIcon;
 
   /** An icon representing a hard drive. */
-  protected Icon hardDriveIcon = new Icon()
-    {
-      public int getIconHeight()
-      {
-       return ICON_SIZE;
-      }
-
-      public int getIconWidth()
-      {
-       return ICON_SIZE;
-      }
-
-      public void paintIcon(Component c, Graphics g, int x, int y)
-      {
-        // FIXME: is this not implemented, or is the icon intentionally blank?
-      }
-    };
+  protected Icon hardDriveIcon;
 
   /** The localised mnemonic for the "help" button. */
   protected int helpButtonMnemonic;
@@ -759,86 +613,10 @@ public class BasicFileChooserUI extends FileChooserUI
   protected String helpButtonToolTipText;
 
   /** An icon representing the user's home folder. */
-  protected Icon homeFolderIcon = new Icon()
-    {
-      public int getIconHeight()
-      {
-       return ICON_SIZE;
-      }
-
-      public int getIconWidth()
-      {
-       return ICON_SIZE;
-      }
-
-      public void paintIcon(Component c, Graphics g, int x, int y)
-      {
-       Color saved = g.getColor();
-       g.translate(x, y);
-
-       Point a = new Point(12, 3);
-       Point b = new Point(4, 10);
-       Point d = new Point(20, 10);
-
-       Polygon p = new Polygon(new int[] { a.x, b.x, d.x },
-                               new int[] { a.y, b.y, d.y }, 3);
-
-       g.setColor(new Color(104, 51, 0));
-       g.fillPolygon(p);
-       g.setColor(Color.BLACK);
-       g.drawPolygon(p);
-
-       g.setColor(Color.WHITE);
-       g.fillRect(8, 10, 8, 10);
-       g.setColor(Color.BLACK);
-       g.drawRect(8, 10, 8, 10);
-
-       g.setColor(saved);
-       g.translate(-x, -y);
-      }
-    };
+  protected Icon homeFolderIcon;
 
   /** An icon for the "list view" button. */
-  protected Icon listViewIcon = new Icon()
-    {
-      public int getIconHeight()
-      {
-       return ICON_SIZE;
-      }
-
-      public int getIconWidth()
-      {
-       return ICON_SIZE;
-      }
-
-      // Not needed. Only simplifies things until we get real icons.
-      private void paintPartial(Graphics g, int x, int y)
-      {
-       Color saved = g.getColor();
-       g.translate(x, y);
-
-       g.setColor(Color.GRAY);
-       g.drawRect(1, 1, 7, 10);
-       g.drawLine(8, 6, 11, 6);
-
-       g.setColor(saved);
-       g.translate(-x, -y);
-      }
-
-      public void paintIcon(Component c, Graphics g, int x, int y)
-      {
-       Color saved = g.getColor();
-       g.translate(x, y);
-
-       paintPartial(g, 0, 0);
-       paintPartial(g, 12, 0);
-       paintPartial(g, 0, 12);
-       paintPartial(g, 12, 12);
-
-       g.setColor(saved);
-       g.translate(-x, -y);
-      }
-    };
+  protected Icon listViewIcon;
 
   /** An icon for the "new folder" button. */
   protected Icon newFolderIcon = directoryIcon;
@@ -871,65 +649,13 @@ public class BasicFileChooserUI extends FileChooserUI
   protected String updateButtonToolTipText;
 
   /** An icon for the "up folder" button. */
-  protected Icon upFolderIcon = new Icon()
-    {
-      public int getIconHeight()
-      {
-       return ICON_SIZE;
-      }
-
-      public int getIconWidth()
-      {
-       return ICON_SIZE;
-      }
-
-      public void paintIcon(Component comp, Graphics g, int x, int y)
-      {
-       Color saved = g.getColor();
-       g.translate(x, y);
-
-       Point a = new Point(3, 7);
-       Point b = new Point(3, 21);
-       Point c = new Point(21, 21);
-       Point d = new Point(21, 12);
-       Point e = new Point(16, 12);
-       Point f = new Point(13, 7);
-
-       Polygon dir = new Polygon(new int[] { a.x, b.x, c.x, d.x, e.x, f.x },
-                                 new int[] { a.y, b.y, c.y, d.y, e.y, f.y }, 6);
-
-       g.setColor(new Color(153, 204, 255));
-       g.fillPolygon(dir);
-       g.setColor(Color.BLACK);
-       g.drawPolygon(dir);
-
-       a = new Point(12, 15);
-       b = new Point(9, 18);
-       c = new Point(15, 18);
-
-       Polygon arrow = new Polygon(new int[] { a.x, b.x, c.x },
-                                   new int[] { a.y, b.y, c.y }, 3);
-
-       g.fillPolygon(arrow);
-
-       g.drawLine(12, 15, 12, 22);
-
-       g.translate(-x, -y);
-       g.setColor(saved);
-      }
-    };
+  protected Icon upFolderIcon;
 
   // -- begin private, but package local since used in inner classes --
 
   /** The file chooser component represented by this UI delegate. */
   JFileChooser filechooser;
 
-  /** The file list. */
-  JList filelist;
-
-  /** The combo box used to display/select file filters. */
-  JComboBox filters;
-
   /** The model for the directory list. */
   BasicDirectoryModel model;
 
@@ -939,32 +665,11 @@ public class BasicFileChooserUI extends FileChooserUI
   /** The default file view. */
   FileView fv = new BasicFileView();
 
-  /** The icon size. */
-  static final int ICON_SIZE = 24;
-
-  /** A combo box for display/selection of parent directories. */
-  JComboBox parents;
-
-  /** The current file name. */
-  String filename;
-
   /** The accept (open/save) button. */
   JButton accept;
 
-  /** The cancel button. */
-  JButton cancel;
-
-  /** The button to move up to the parent directory. */
-  JButton upFolderButton;
-
-  /** The button to create a new directory. */
-  JButton newFolderButton;
-
-  /** The button to move to the user's home directory. */
-  JButton homeFolderButton;
-
   /** An optional accessory panel. */
-  JPanel accessoryPanel;
+  JPanel accessoryPanel = new JPanel();
 
   /** A property change listener. */
   PropertyChangeListener propertyChangeListener;
@@ -997,47 +702,43 @@ public class BasicFileChooserUI extends FileChooserUI
   /** Current parent path */
   String parentPath;
   
+  /**
+   * The action for the 'approve' button.
+   * @see #getApproveSelectionAction()
+   */
+  private ApproveSelectionAction approveSelectionAction;
+  
+  /**
+   * The action for the 'cancel' button.
+   * @see #getCancelSelectionAction()
+   */
+  private CancelSelectionAction cancelSelectionAction;
+  
+  /**
+   * The action for the 'go home' control button.
+   * @see #getGoHomeAction()
+   */
+  private GoHomeAction goHomeAction;
+  
+  /**
+   * The action for the 'up folder' control button.
+   * @see #getChangeToParentDirectoryAction()
+   */
+  private ChangeToParentDirectoryAction changeToParentDirectoryAction;
+  
+  /**
+   * The action for the 'new folder' control button.
+   * @see #getNewFolderAction()
+   */
+  private NewFolderAction newFolderAction;
+  
+  /**
+   * The action for ???.  // FIXME: what is this?
+   * @see #getUpdateAction()
+   */
+  private UpdateAction updateAction;
+  
   // -- end private --
-  private class ListLabelRenderer extends JLabel implements ListCellRenderer
-  {
-    /** DOCUMENT ME! */
-    final Color selected = new Color(153, 204, 255);
-
-    /**
-     * Creates a new ListLabelRenderer object.
-     */
-    public ListLabelRenderer()
-    {
-      super();
-      setOpaque(true);
-    }
-
-    /**
-     * DOCUMENT ME!
-     *
-     * @param list DOCUMENT ME!
-     * @param value DOCUMENT ME!
-     * @param index DOCUMENT ME!
-     * @param isSelected DOCUMENT ME!
-     * @param cellHasFocus DOCUMENT ME!
-     *
-     * @return DOCUMENT ME!
-     */
-    public Component getListCellRendererComponent(JList list, Object value,
-                                                  int index,
-                                                  boolean isSelected,
-                                                  boolean cellHasFocus)
-    {
-      setHorizontalAlignment(SwingConstants.LEFT);
-      File file = (File) value;
-      setText(filechooser.getName(file));
-      setIcon(filechooser.getIcon(file));
-      setBackground(isSelected ? selected : Color.WHITE);
-      setForeground(Color.BLACK);
-
-      return this;
-    }
-  }
 
   /**
    * Closes the dialog.
@@ -1056,7 +757,6 @@ public class BasicFileChooserUI extends FileChooserUI
    */
   public BasicFileChooserUI(JFileChooser b)
   {
-    this.filechooser = b;
   }
 
   /**
@@ -1081,6 +781,7 @@ public class BasicFileChooserUI extends FileChooserUI
     if (c instanceof JFileChooser)
       {
         JFileChooser fc = (JFileChooser) c;
+        this.filechooser = fc;
         fc.resetChoosableFileFilters();
         createModel();
         clearIconCache();
@@ -1130,78 +831,7 @@ public class BasicFileChooserUI extends FileChooserUI
     if (parentFiles.size() == 0)
       return;
 
-    if (parents.getItemCount() > 0)
-      parents.removeAllItems();
-    for (int i = parentFiles.size() - 1; i >= 0; i--)
-      parents.addItem(parentFiles.get(i));
-    parents.setSelectedIndex(parentFiles.size() - 1);
-    parents.revalidate();
-    parents.repaint();
-  }
-
-  /**
-   * DOCUMENT ME!
-   *
-   * @return DOCUMENT ME!
-   */
-  private ItemListener createBoxListener()
-  {
-    return new ItemListener()
-      {
-       public void itemStateChanged(ItemEvent e)
-       {
-         if (parents.getItemCount() - 1 == parents.getSelectedIndex())
-           return;
-         StringBuffer dir = new StringBuffer();
-         for (int i = 0; i <= parents.getSelectedIndex(); i++)
-           {
-             dir.append(parents.getItemAt(i));
-             dir.append(File.separatorChar);
-           }
-         filechooser.setCurrentDirectory(filechooser.getFileSystemView()
-                                                    .createFileObject(dir
-                                                                      .toString()));
-       }
-      };
-  }
-
-  /**
-   * DOCUMENT ME!
-   *
-   * @return DOCUMENT ME!
-   */
-  private ItemListener createFilterListener()
-  {
-    return new ItemListener()
-      {
-       public void itemStateChanged(ItemEvent e)
-       {
-         int index = filters.getSelectedIndex();
-         if (index == -1)
-           return;
-         filechooser.setFileFilter(filechooser.getChoosableFileFilters()[index]);
-       }
-      };
-  }
-
-  void filterEntries()
-  {
-    FileFilter[] list = filechooser.getChoosableFileFilters();
-    if (filters.getItemCount() > 0)
-      filters.removeAllItems();
-
-    int index = -1;
-    String selected = filechooser.getFileFilter().getDescription();
-    for (int i = 0; i < list.length; i++)
-      {
-       if (selected.equals(list[i].getDescription()))
-         index = i;
-       filters.addItem(list[i].getDescription());
-      }
-    filters.setSelectedIndex(index);
-    filters.revalidate();
-    filters.repaint();
-  }
+  }  
 
   /**
    * Creates and install the subcomponents for the file chooser.
@@ -1210,121 +840,6 @@ public class BasicFileChooserUI extends FileChooserUI
    */
   public void installComponents(JFileChooser fc)
   {
-    JLabel look = new JLabel("Look In:");
-
-    parents = new JComboBox();
-    parents.setRenderer(new BasicComboBoxRenderer());
-    boxEntries();
-    look.setLabelFor(parents);
-    JPanel parentsPanel = new JPanel();
-    parentsPanel.add(look);
-    parentsPanel.add(parents);
-    JPanel buttonPanel = new JPanel();
-
-    upFolderButton = new JButton();
-    upFolderButton.setIcon(upFolderIcon);
-    buttonPanel.add(upFolderButton);
-
-    homeFolderButton = new JButton();
-    homeFolderButton = new JButton(homeFolderIcon);
-    buttonPanel.add(homeFolderButton);
-
-    newFolderButton = new JButton();
-    newFolderButton.setIcon(newFolderIcon);
-    buttonPanel.add(newFolderButton);
-
-    ButtonGroup toggles = new ButtonGroup();
-    JToggleButton listViewButton = new JToggleButton();
-    listViewButton.setIcon(listViewIcon);
-    toggles.add(listViewButton);
-    buttonPanel.add(listViewButton);
-
-    JToggleButton detailsViewButton = new JToggleButton();
-    detailsViewButton.setIcon(detailsViewIcon);
-    toggles.add(detailsViewButton);
-    buttonPanel.add(detailsViewButton);
-
-    JPanel topPanel = new JPanel();
-    parentsPanel.add(buttonPanel);
-    topPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 0, 0));
-    topPanel.add(parentsPanel);
-
-    accessoryPanel = new JPanel();
-    if (filechooser.getAccessory() != null)
-      accessoryPanel.add(filechooser.getAccessory(), BorderLayout.CENTER);
-
-    filelist = new JList(model);
-    filelist.setVisibleRowCount(6);
-    JScrollPane scrollp = new JScrollPane(filelist);
-    scrollp.setPreferredSize(new Dimension(400, 175));
-    filelist.setBackground(Color.WHITE);
-
-    filelist.setLayoutOrientation(JList.VERTICAL_WRAP);
-    filelist.setCellRenderer(new ListLabelRenderer());
-
-    GridBagConstraints c = new GridBagConstraints();
-    c.gridx = 0;
-    c.gridy = 0;
-    c.fill = GridBagConstraints.BOTH;
-    c.weightx = 1;
-    c.weighty = 1;
-
-    JPanel centrePanel = new JPanel();
-    centrePanel.setLayout(new GridBagLayout());
-    centrePanel.add(scrollp, c);
-
-    c.gridx = 1;
-    centrePanel.add(accessoryPanel, c);
-
-    JLabel fileNameLabel = new JLabel("File Name:");
-    JLabel fileTypesLabel = new JLabel("Files of Type:");
-
-    entry = new JTextField();
-    filters = new JComboBox();
-    filterEntries();
-
-    fileNameLabel.setLabelFor(entry);
-    fileNameLabel.setHorizontalTextPosition(SwingConstants.LEFT);
-    fileTypesLabel.setLabelFor(filters);
-    fileTypesLabel.setHorizontalTextPosition(SwingConstants.LEFT);
-
-    closePanel = new JPanel();
-    accept = getApproveButton(filechooser);
-    cancel = new JButton(cancelButtonText);
-    cancel.setMnemonic(cancelButtonMnemonic);
-    cancel.setToolTipText(cancelButtonToolTipText);
-    closePanel.add(accept);
-    closePanel.add(cancel);
-
-    c.anchor = GridBagConstraints.WEST;
-    c.weighty = 0;
-    c.weightx = 0;
-    c.gridx = 0;
-
-    bottomPanel = new JPanel();
-    bottomPanel.setLayout(new GridBagLayout());
-    bottomPanel.add(fileNameLabel, c);
-
-    c.gridy = 1;
-    bottomPanel.add(fileTypesLabel, c);
-    c.gridx = 1;
-    c.gridy = 0;
-    c.weightx = 1;
-    c.weighty = 1;
-    bottomPanel.add(entry, c);
-
-    c.gridy = 1;
-    bottomPanel.add(filters, c);
-
-    c.fill = GridBagConstraints.NONE;
-    c.gridy = 2;
-    c.anchor = GridBagConstraints.EAST;
-    bottomPanel.add(closePanel, c);
-
-    filechooser.setLayout(new BorderLayout());
-    filechooser.add(topPanel, BorderLayout.NORTH);
-    filechooser.add(centrePanel, BorderLayout.CENTER);
-    filechooser.add(bottomPanel, BorderLayout.SOUTH);
   }
 
   /**
@@ -1334,15 +849,6 @@ public class BasicFileChooserUI extends FileChooserUI
    */
   public void uninstallComponents(JFileChooser fc)
   {
-    parents = null;
-
-    accept = null;
-    cancel = null;
-    upFolderButton = null;
-    homeFolderButton = null;
-    newFolderButton = null;
-
-    filelist = null;
   }
 
   /**
@@ -1354,17 +860,6 @@ public class BasicFileChooserUI extends FileChooserUI
   {
     propertyChangeListener = createPropertyChangeListener(filechooser);
     filechooser.addPropertyChangeListener(propertyChangeListener);
-
-    //parents.addItemListener(createBoxListener());
-    accept.addActionListener(getApproveSelectionAction());
-    cancel.addActionListener(getCancelSelectionAction());
-    upFolderButton.addActionListener(getChangeToParentDirectoryAction());
-    homeFolderButton.addActionListener(getGoHomeAction());
-    newFolderButton.addActionListener(getNewFolderAction());
-    filters.addItemListener(createFilterListener());
-
-    filelist.addMouseListener(createDoubleClickListener(filechooser, filelist));
-    filelist.addListSelectionListener(createListSelectionListener(filechooser));
   }
 
   /**
@@ -1401,24 +896,42 @@ public class BasicFileChooserUI extends FileChooserUI
   }
 
   /**
-   * Installs the icons for this UI delegate (NOT YET IMPLEMENTED).
+   * Installs the icons for this UI delegate.
    *
-   * @param fc  the file chooser.
+   * @param fc  the file chooser (ignored).
    */
   protected void installIcons(JFileChooser fc)
   {
-    // FIXME: Implement.
+    UIDefaults defaults = UIManager.getLookAndFeelDefaults();
+    computerIcon = MetalIconFactory.getTreeComputerIcon();
+    detailsViewIcon = defaults.getIcon("FileChooser.detailsViewIcon");
+    directoryIcon = new MetalIconFactory.TreeFolderIcon();
+    fileIcon = new MetalIconFactory.TreeLeafIcon();
+    floppyDriveIcon = MetalIconFactory.getTreeFloppyDriveIcon();
+    hardDriveIcon = MetalIconFactory.getTreeHardDriveIcon();
+    homeFolderIcon = defaults.getIcon("FileChooser.homeFolderIcon");
+    listViewIcon = defaults.getIcon("FileChooser.listViewIcon");
+    newFolderIcon = defaults.getIcon("FileChooser.newFolderIcon");
+    upFolderIcon = defaults.getIcon("FileChooser.upFolderIcon");
   }
 
   /**
-   * Uninstalls the icons previously added by this UI delegate (NOT YET
-   * IMPLEMENTED).
+   * Uninstalls the icons previously added by this UI delegate.
    *
    * @param fc  the file chooser.
    */
   protected void uninstallIcons(JFileChooser fc)
   {
-    // FIXME: Implement.
+    computerIcon = null;
+    detailsViewIcon = null;
+    directoryIcon = null;
+    fileIcon = null;
+    floppyDriveIcon = null;
+    hardDriveIcon = null;
+    homeFolderIcon = null;
+    listViewIcon = null;
+    newFolderIcon = null;
+    upFolderIcon = null;
   }
 
   /**
@@ -1428,25 +941,36 @@ public class BasicFileChooserUI extends FileChooserUI
    */
   protected void installStrings(JFileChooser fc)
   {
-    acceptAllFileFilterText = UIManager.getString("FileChooser.acceptAllFileFilterText");
-    cancelButtonMnemonic = UIManager.getInt("FileChooser.cancelButtonMnemonic");
-    cancelButtonText = UIManager.getString("FileChooser.cancelButtonText");
-    cancelButtonToolTipText = UIManager.getString("FileChooser.cancelButtonToolTipText");
+    UIDefaults defaults = UIManager.getLookAndFeelDefaults();
+
+    dirDescText = defaults.getString("FileChooser.directoryDescriptionText");
+    fileDescText = defaults.getString("FileChooser.fileDescriptionText");
 
-    dirDescText = UIManager.getString("FileChooser.directoryDescriptionText");
-    fileDescText = UIManager.getString("FileChooser.fileDescriptionText");
+    acceptAllFileFilterText = defaults.getString("FileChooser.acceptAllFileFilterText");
+    cancelButtonText = "Cancel";
+    cancelButtonToolTipText = "Abort file chooser dialog";
+    cancelButtonMnemonic = new Integer((String) UIManager.get("FileChooser.cancelButtonMnemonic")).intValue();
 
-    helpButtonMnemonic = UIManager.getInt("FileChooser.helpButtonMnemonic");
-    helpButtonText = UIManager.getString("FileChooser.helpButtonText");
-    helpButtonToolTipText = UIManager.getString("FileChooser.helpButtonToolTipText");
+    directoryOpenButtonText = "Open";
+    directoryOpenButtonToolTipText = "Open selected directory";
+    directoryOpenButtonMnemonic 
+        = new Integer((String) UIManager.get("FileChooser.directoryOpenButtonMnemonic")).intValue();
+    
+    helpButtonText = "Help";
+    helpButtonToolTipText = "FileChooser help";
+    helpButtonMnemonic = new Integer((String) UIManager.get("FileChooser.helpButtonMnemonic")).intValue();
 
-    openButtonMnemonic = UIManager.getInt("FileChooser.openButtonMnemonic");
-    openButtonText = UIManager.getString("FileChooser.openButtonText");
-    openButtonToolTipText = UIManager.getString("FileChooser.openButtonToolTipText");
+    openButtonText = "Open";
+    openButtonToolTipText = "Open selected file";
+    openButtonMnemonic = new Integer((String) UIManager.get("FileChooser.openButtonMnemonic")).intValue();
 
-    saveButtonMnemonic = UIManager.getInt("FileChooser.saveButtonMnemonic");
-    saveButtonText = UIManager.getString("FileChooser.saveButtonText");
-    saveButtonToolTipText = UIManager.getString("FileChooser.saveButtonToolTipText");
+    saveButtonText = "Save";
+    saveButtonToolTipText = "Save selected file";
+    saveButtonMnemonic = new Integer((String) UIManager.get("FileChooser.saveButtonMnemonic")).intValue();
+  
+    updateButtonText = "Update";
+    updateButtonToolTipText = "Update directory listing";
+    updateButtonMnemonic = new Integer((String) UIManager.get("FileChooser.updateButtonMnemonic")).intValue();
   }
 
   /**
@@ -1457,24 +981,26 @@ public class BasicFileChooserUI extends FileChooserUI
   protected void uninstallStrings(JFileChooser fc)
   {
     acceptAllFileFilterText = null;
-    cancelButtonMnemonic = 0;
+    dirDescText = null;
+    fileDescText = null;
+
     cancelButtonText = null;
     cancelButtonToolTipText = null;
 
-    dirDescText = null;
-    fileDescText = null;
+    directoryOpenButtonText = null;
+    directoryOpenButtonToolTipText = null;
 
-    helpButtonMnemonic = 0;
     helpButtonText = null;
     helpButtonToolTipText = null;
 
-    openButtonMnemonic = 0;
     openButtonText = null;
     openButtonToolTipText = null;
 
-    saveButtonMnemonic = 0;
     saveButtonText = null;
     saveButtonToolTipText = null;
+    
+    updateButtonText = null;
+    updateButtonToolTipText = null;
   }
 
   /**
@@ -1509,110 +1035,6 @@ public class BasicFileChooserUI extends FileChooserUI
     {
       public void propertyChange(PropertyChangeEvent e)
       {
-        // FIXME: Multiple file selection waiting on JList multiple selection
-        // bug.
-        if (e.getPropertyName().equals(
-                                       JFileChooser.SELECTED_FILE_CHANGED_PROPERTY))
-          {
-            if (filechooser.getSelectedFile() == null)
-              setFileName(null);
-            else
-              setFileName(filechooser.getSelectedFile().toString());
-            int index = -1;
-            File file = filechooser.getSelectedFile();
-            for (index = 0; index < model.getSize(); index++)
-              if (((File) model.getElementAt(index)).equals(file))
-                break;
-            if (index == -1)
-              return;
-            filelist.setSelectedIndex(index);
-            filelist.ensureIndexIsVisible(index);
-            filelist.revalidate();
-            filelist.repaint();
-          }
-        else if (e.getPropertyName().equals(
-                                            JFileChooser.DIRECTORY_CHANGED_PROPERTY))
-          {
-            filelist.clearSelection();
-            filelist.revalidate();
-            filelist.repaint();
-            setDirectorySelected(false);
-            setDirectory(filechooser.getCurrentDirectory());
-            boxEntries();
-          }
-        else if (e.getPropertyName().equals(
-                                            JFileChooser.CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY)
-                 || e.getPropertyName().equals(
-                                               JFileChooser.FILE_FILTER_CHANGED_PROPERTY))
-          filterEntries();
-        else if (e.getPropertyName().equals(
-                                            JFileChooser.DIALOG_TYPE_CHANGED_PROPERTY)
-                 || e.getPropertyName().equals(
-                                               JFileChooser.DIALOG_TITLE_CHANGED_PROPERTY))
-          {
-            Window owner = SwingUtilities.windowForComponent(filechooser);
-            if (owner instanceof JDialog)
-              ((JDialog) owner).setTitle(getDialogTitle(filechooser));
-            accept.setText(getApproveButtonText(filechooser));
-            accept.setToolTipText(getApproveButtonToolTipText(filechooser));
-            accept.setMnemonic(getApproveButtonMnemonic(filechooser));
-          }
-        else if (e.getPropertyName().equals(
-                                            JFileChooser.APPROVE_BUTTON_TEXT_CHANGED_PROPERTY))
-          accept.setText(getApproveButtonText(filechooser));
-        else if (e.getPropertyName().equals(
-                                            JFileChooser.APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY))
-          accept.setToolTipText(getApproveButtonToolTipText(filechooser));
-        else if (e.getPropertyName().equals(
-                                            JFileChooser.APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY))
-          accept.setMnemonic(getApproveButtonMnemonic(filechooser));
-        else if (e.getPropertyName().equals(
-                                            JFileChooser.CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY))
-          {
-            if (filechooser.getControlButtonsAreShown())
-              {
-                GridBagConstraints c = new GridBagConstraints();
-                c.gridy = 1;
-                bottomPanel.add(filters, c);
-
-                c.fill = GridBagConstraints.BOTH;
-                c.gridy = 2;
-                c.anchor = GridBagConstraints.EAST;
-                bottomPanel.add(closePanel, c);
-                bottomPanel.revalidate();
-                bottomPanel.repaint();
-                bottomPanel.doLayout();
-              }
-            else
-              bottomPanel.remove(closePanel);
-          }
-        else if (e.getPropertyName().equals(
-                                            JFileChooser.ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY))
-          {
-            if (filechooser.isAcceptAllFileFilterUsed())
-              filechooser.addChoosableFileFilter(getAcceptAllFileFilter(filechooser));
-            else
-              filechooser.removeChoosableFileFilter(getAcceptAllFileFilter(filechooser));
-          }
-        else if (e.getPropertyName().equals(
-                                            JFileChooser.ACCESSORY_CHANGED_PROPERTY))
-          {
-            JComponent old = (JComponent) e.getOldValue();
-            if (old != null)
-              getAccessoryPanel().remove(old);
-            JComponent newval = (JComponent) e.getNewValue();
-            if (newval != null)
-              getAccessoryPanel().add(newval);
-          }
-        if (e.getPropertyName().equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY)
-            || e.getPropertyName().equals(
-                                          JFileChooser.FILE_FILTER_CHANGED_PROPERTY)
-            || e.getPropertyName().equals(
-                                          JFileChooser.FILE_HIDING_CHANGED_PROPERTY))
-          rescanCurrentDirectory(filechooser);
-
-        filechooser.revalidate();
-        filechooser.repaint();
       }
     };
   }
@@ -1624,7 +1046,9 @@ public class BasicFileChooserUI extends FileChooserUI
    */
   public String getFileName()
   {
-    return filename;
+    // FIXME: I'm thinking that this method just provides access to the
+    // text value in the JTextField component...but not sure yet
+    return null;  //filename;
   }
 
   /**
@@ -1649,7 +1073,9 @@ public class BasicFileChooserUI extends FileChooserUI
    */
   public void setFileName(String filename)
   {
-    this.filename = filename;
+    // FIXME:  it might be the case that this method provides an access 
+    // point for the JTextField (or whatever) a subclass is using...
+    //this.filename = filename;
   }
 
   /**
@@ -1672,7 +1098,6 @@ public class BasicFileChooserUI extends FileChooserUI
   public void rescanCurrentDirectory(JFileChooser fc)
   {
     getModel().validateFileCache();
-    filelist.revalidate();
   }
 
   /**
@@ -1708,17 +1133,14 @@ public class BasicFileChooserUI extends FileChooserUI
   }
 
   /**
-   * Creates and returns an approve (open or save) button for the dialog.
+   * Returns the approve (open or save) button for the dialog.
    *
    * @param fc  the file chooser.
    *
    * @return The button.
    */
-  public JButton getApproveButton(JFileChooser fc)
+  protected JButton getApproveButton(JFileChooser fc)
   {
-    accept = new JButton(getApproveButtonText(fc));
-    accept.setMnemonic(getApproveButtonMnemonic(fc));
-    accept.setToolTipText(getApproveButtonToolTipText(fc));
     return accept;
   }
 
@@ -1830,9 +1252,8 @@ public class BasicFileChooserUI extends FileChooserUI
   }
 
   /**
-   * Returns the file view for the file chooser.  This returns either the
-   * file view that has been explicitly set for the {@link JFileChooser}, or
-   * a default file view.
+   * Returns the default file view (NOT the file view from the file chooser,
+   * if there is one).
    *
    * @param fc  the file chooser component.
    *
@@ -1856,24 +1277,10 @@ public class BasicFileChooserUI extends FileChooserUI
    */
   public String getDialogTitle(JFileChooser fc)
   {
-    String ret = fc.getDialogTitle();
-    if (ret != null)
-      return ret;
-    switch (fc.getDialogType())
-      {
-      case JFileChooser.OPEN_DIALOG:
-       ret = openButtonText;
-       break;
-      case JFileChooser.SAVE_DIALOG:
-       ret = saveButtonText;
-       break;
-      default:
-       ret = fc.getApproveButtonText();
-       break;
-      }
-    if (ret == null)
-      ret = openButtonText;
-    return ret;
+    String result = fc.getDialogTitle();
+    if (result == null)
+      result = getApproveButtonText(fc);
+    return result;
   }
 
   /**
@@ -1906,23 +1313,28 @@ public class BasicFileChooserUI extends FileChooserUI
    */
   public String getApproveButtonText(JFileChooser fc)
   {
-    if (fc.getApproveButtonText() != null)
-      return fc.getApproveButtonText();
-    else if (fc.getDialogType() == JFileChooser.SAVE_DIALOG)
-      return saveButtonText;
-    else
-      return openButtonText;
+    String result = fc.getApproveButtonText();
+    if (result == null)
+      {
+        if (fc.getDialogType() == JFileChooser.SAVE_DIALOG)
+          result = saveButtonText;
+        else
+          result = openButtonText;
+      }
+    return result;
   }
 
   /**
    * Creates and returns a new action that will be used with the "new folder" 
    * button.
    *
-   * @return A new instance of {@link GoHomeAction}.
+   * @return A new instance of {@link NewFolderAction}.
    */
   public Action getNewFolderAction()
   {
-    return new NewFolderAction();
+    if (newFolderAction == null)
+      newFolderAction = new NewFolderAction();
+    return newFolderAction;
   }
 
   /**
@@ -1933,49 +1345,56 @@ public class BasicFileChooserUI extends FileChooserUI
    */
   public Action getGoHomeAction()
   {
-    return new GoHomeAction();
+    if (goHomeAction == null)
+      goHomeAction = new GoHomeAction();
+    return goHomeAction;
   }
 
   /**
-   * Creates and returns a new action that will be used with the "up folder" 
-   * button.
+   * Returns the action that handles events for the "up folder" control button.
    *
-   * @return A new instance of {@link ChangeToParentDirectoryAction}.
+   * @return An instance of {@link ChangeToParentDirectoryAction}.
    */
   public Action getChangeToParentDirectoryAction()
   {
-    return new ChangeToParentDirectoryAction();
+    if (changeToParentDirectoryAction == null)
+      changeToParentDirectoryAction = new ChangeToParentDirectoryAction();
+    return changeToParentDirectoryAction;
   }
 
   /**
-   * Creates and returns a new action that will be used with the "approve" 
-   * button.
+   * Returns the action that handles events for the "approve" button.
    *
-   * @return A new instance of {@link ApproveSelectionAction}.
+   * @return An instance of {@link ApproveSelectionAction}.
    */
   public Action getApproveSelectionAction()
   {
-    return new ApproveSelectionAction();
+    if (approveSelectionAction == null)
+      approveSelectionAction = new ApproveSelectionAction();
+    return approveSelectionAction;
   }
 
   /**
-   * Creates and returns a new action that will be used with the "cancel" 
-   * button.
+   * Returns the action that handles events for the "cancel" button.
    *
-   * @return A new instance of {@link CancelSelectionAction}.
+   * @return An instance of {@link CancelSelectionAction}.
    */
   public Action getCancelSelectionAction()
   {
-    return new CancelSelectionAction();
+    if (cancelSelectionAction == null)
+      cancelSelectionAction = new CancelSelectionAction();
+    return cancelSelectionAction;
   }
 
   /**
-   * Creates and returns a new instance of {@link UpdateAction}.
+   * Returns the update action (an instance of {@link UpdateAction}).
    *
    * @return An action. 
    */
   public Action getUpdateAction()
   {
-    return new UpdateAction();
+    if (updateAction == null)
+      updateAction = new UpdateAction();
+    return updateAction;
   }
 }
diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicHTML.java b/libjava/classpath/javax/swing/plaf/basic/BasicHTML.java
new file mode 100644 (file)
index 0000000..b9891e1
--- /dev/null
@@ -0,0 +1,154 @@
+/* BasicHTML.java -- Provides HTML support to ComponentUI implementations
+   Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.swing.plaf.basic;
+
+import java.io.IOException;
+import java.io.StringReader;
+
+import javax.swing.JComponent;
+import javax.swing.text.BadLocationException;
+import javax.swing.text.Element;
+import javax.swing.text.View;
+import javax.swing.text.ViewFactory;
+import javax.swing.text.html.HTMLDocument;
+import javax.swing.text.html.HTMLEditorKit;
+
+/**
+ * Provides support for HTML rendering to {@link javax.swing.plaf.ComponentUI}
+ * implementations.
+ *
+ * @author Roman Kennke (kennke@aicas.com)
+ */
+public class BasicHTML
+{
+
+  /**
+   * The key that is used to store a HTML view in a JComponent's client
+   * properties.
+   */
+  public static final String propertyKey = "html";
+
+  /**
+   * The key that is used to store the document base in a JComponent's client
+   * properties. The document base is used to resolve relative references
+   * in HTML.
+   */
+  public static final String documentBaseKey = "html.base";
+
+  /**
+   * Creates a new instance of BasicHTML. This should not be necessary since
+   * all methods in this class are static.
+   */
+  public BasicHTML()
+  {
+    // Nothing to do here.
+  }
+
+  /**
+   * Creates a {@link View} instance that can be used by the component
+   * <code>c</code> to render the HTML string <code>html</code>.
+   *
+   * @param c the component that needs to render the HTML string
+   * @param html the HTML string to be rendered
+   *
+   * @return a view that can render the HTML string
+   */
+  public static View createHTMLView(JComponent c, String html)
+  {
+    // TODO: This might be wrong. Lets see if it turns out good when
+    // the javax.swing.text.html package is in a good shape.
+    HTMLDocument doc = new HTMLDocument();
+    HTMLEditorKit kit = new HTMLEditorKit();
+    StringReader reader = new StringReader(html);
+    try
+      {
+        kit.read(reader, doc, 0);
+      }
+    catch (IOException ex)
+      {
+        AssertionError err = new AssertionError("unexpected IOException");
+        err.initCause(ex);
+        throw err;
+      }
+    catch (BadLocationException ex)
+      {
+        AssertionError err =
+          new AssertionError("unexpected BadLocationException");
+        err.initCause(ex);
+        throw err;
+      }
+    ViewFactory vf = kit.getViewFactory();
+    Element root = doc.getDefaultRootElement();
+    View view = vf.create(root);
+    return view;
+  }
+
+  /**
+   * Returns <code>true</code> if <code>s</code> is HTML, <code>false</code>
+   * otherwise.
+   *
+   * @param s the string to test
+   *
+   * @return <code>true</code> if <code>s</code> is HTML, <code>false</code>
+   *         otherwise
+   */
+  public static boolean isHTMLString(String s)
+  {
+    // We consider a string to be HTML if it contains both the '<' and '>'
+    // character at least once.
+    return s.contains("<") && s.contains(">");
+  }
+
+  /**
+   * Stores a HTML renderer in <code>c</code>'s client property if
+   * <code>text</code> is HTML, otherwise it clears the corresponding client
+   * property. This is useful for {@link java.swing.plaf.ComponentUI}
+   * implementations that are shared between it's components.
+   *
+   * @param c the component to update the renderer for
+   * @param text the string to be rendered
+   */
+  public static void updateRenderer(JComponent c, String text)
+  {
+    if (isHTMLString(text))
+      c.putClientProperty(propertyKey, createHTMLView(c, text));
+    else
+      c.putClientProperty(propertyKey, null);
+  }
+}
index d9dadda688aa1d10b909568f28f7b3312e899791..f9653bd2edd15a025fdf4124fd42c15348c3c8d5 100644 (file)
@@ -46,6 +46,7 @@ import java.awt.Dimension;
 import java.awt.Graphics;
 import java.awt.Insets;
 import java.awt.LayoutManager;
+import java.awt.LayoutManager2;
 import java.awt.Point;
 import java.awt.Rectangle;
 import java.awt.event.ComponentEvent;
@@ -1164,9 +1165,6 @@ public class BasicInternalFrameUI extends InternalFrameUI
       {
         frame = (JInternalFrame) c;
 
-        internalFrameLayout = createLayoutManager();
-        frame.setLayout(internalFrameLayout);
-
         ((JComponent) frame.getRootPane().getGlassPane()).setOpaque(false);
         frame.getRootPane().getGlassPane().setVisible(true);
 
@@ -1192,7 +1190,6 @@ public class BasicInternalFrameUI extends InternalFrameUI
     uninstallListeners();
     uninstallDefaults();
 
-    frame.setLayout(null);
     ((JComponent) frame.getRootPane().getGlassPane()).setOpaque(true);
     frame.getRootPane().getGlassPane().setVisible(false);
 
@@ -1204,6 +1201,8 @@ public class BasicInternalFrameUI extends InternalFrameUI
    */
   protected void installDefaults()
     {
+      internalFrameLayout = createLayoutManager();
+      frame.setLayout(internalFrameLayout);
       LookAndFeel.installBorder(frame, "InternalFrame.border");
       frame.setFrameIcon(UIManager.getIcon("InternalFrame.icon"));
       // InternalFrames are invisible by default.
@@ -1256,6 +1255,8 @@ public class BasicInternalFrameUI extends InternalFrameUI
   protected void uninstallDefaults()
   {
     frame.setBorder(null);
+    frame.setLayout(null);
+    internalFrameLayout = null;
   }
 
   /**
@@ -1329,7 +1330,13 @@ public class BasicInternalFrameUI extends InternalFrameUI
    */
   public Dimension getPreferredSize(JComponent x)
   {
-    return internalFrameLayout.preferredLayoutSize(x);
+    Dimension pref = null;
+    LayoutManager layout = frame.getLayout();
+    if (frame == x && layout != null)
+      pref = layout.preferredLayoutSize(frame);
+    else
+      pref = new Dimension(100, 100);
+    return pref;
   }
 
   /**
@@ -1341,7 +1348,13 @@ public class BasicInternalFrameUI extends InternalFrameUI
    */
   public Dimension getMinimumSize(JComponent x)
   {
-    return internalFrameLayout.minimumLayoutSize(x);
+    Dimension min = null;
+    LayoutManager layout = frame.getLayout();
+    if (frame == x && layout != null)
+      min = layout.minimumLayoutSize(frame);
+    else
+      min = new Dimension(0, 0);
+    return min;
   }
 
   /**
@@ -1353,7 +1366,13 @@ public class BasicInternalFrameUI extends InternalFrameUI
    */
   public Dimension getMaximumSize(JComponent x)
   {
-    return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
+    Dimension max = null;
+    LayoutManager layout = frame.getLayout();
+    if (frame == x && layout != null && layout instanceof LayoutManager2)
+      max = ((LayoutManager2) layout).maximumLayoutSize(frame);
+    else
+      max = new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
+    return max;
   }
 
   /**
index c8f677fa0a06652fc66355728bb9d6d9641a6b2d..fd4cff56895638269349c24fabef108fd4173dde 100644 (file)
@@ -39,7 +39,6 @@ package javax.swing.plaf.basic;
 
 import java.awt.Color;
 import java.awt.Dimension;
-import java.awt.Font;
 import java.awt.FontMetrics;
 import java.awt.Graphics;
 import java.awt.Insets;
@@ -104,7 +103,7 @@ public class BasicLabelUI extends LabelUI implements PropertyChangeListener
     Rectangle ir = new Rectangle();
     Rectangle tr = new Rectangle();
     Insets insets = lab.getInsets();
-    FontMetrics fm = lab.getToolkit().getFontMetrics(lab.getFont());
+    FontMetrics fm = lab.getFontMetrics(lab.getFont());
     layoutCL(lab, fm, lab.getText(), lab.getIcon(), vr, ir, tr);
     Rectangle cr = tr.union(ir);
     return new Dimension(insets.left + cr.width + insets.right, insets.top
@@ -150,17 +149,11 @@ public class BasicLabelUI extends LabelUI implements PropertyChangeListener
   {
     JLabel b = (JLabel) c;
 
-    Font saved_font = g.getFont();
-
     Rectangle tr = new Rectangle();
     Rectangle ir = new Rectangle();
     Rectangle vr = new Rectangle();
 
-    Font f = c.getFont();
-
-    g.setFont(f);
-    FontMetrics fm = g.getFontMetrics(f);
-
+    FontMetrics fm = g.getFontMetrics();
     vr = SwingUtilities.calculateInnerArea(c, vr);
 
     if (vr.width < 0)
@@ -182,8 +175,6 @@ public class BasicLabelUI extends LabelUI implements PropertyChangeListener
       else
         paintDisabledText(b, g, text, tr.x, tr.y + fm.getAscent());
     }
-
-    g.setFont(saved_font);
   }
 
   /**
index 2d66645fb7d5b1ec4e77c09c50e2afc042e997e5..00d157a62c445087c80b7a6d6437cc8dff500289 100644 (file)
@@ -41,13 +41,11 @@ package javax.swing.plaf.basic;
 import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.Graphics;
+import java.awt.Insets;
 import java.awt.Point;
 import java.awt.Rectangle;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.awt.event.ComponentAdapter;
-import java.awt.event.ComponentEvent;
-import java.awt.event.ComponentListener;
 import java.awt.event.FocusEvent;
 import java.awt.event.FocusListener;
 import java.awt.event.MouseEvent;
@@ -61,7 +59,6 @@ import javax.swing.DefaultListSelectionModel;
 import javax.swing.InputMap;
 import javax.swing.JComponent;
 import javax.swing.JList;
-import javax.swing.JViewport;
 import javax.swing.KeyStroke;
 import javax.swing.ListCellRenderer;
 import javax.swing.ListModel;
@@ -86,21 +83,6 @@ import javax.swing.plaf.ListUI;
 public class BasicListUI extends ListUI
 {
 
-  /**
-   * A helper class which listens for {@link ComponentEvent}s from
-   * the JList.
-   */
-  private class ComponentHandler extends ComponentAdapter {
-
-    /**
-     * Called when the component is hidden. Invalidates the internal
-     * layout.
-     */
-    public void componentResized(ComponentEvent ev) {
-      BasicListUI.this.damageLayout();
-    }
-  }
-
   /**
    * A helper class which listens for {@link FocusEvent}s
    * from the JList.
@@ -153,7 +135,7 @@ public class BasicListUI extends ListUI
      */
     public void contentsChanged(ListDataEvent e)
     {
-      BasicListUI.this.damageLayout();
+      list.revalidate();
     }
 
     /**
@@ -163,7 +145,7 @@ public class BasicListUI extends ListUI
      */
     public void intervalAdded(ListDataEvent e)
     {
-      BasicListUI.this.damageLayout();
+      list.revalidate();
     }
 
     /**
@@ -173,7 +155,7 @@ public class BasicListUI extends ListUI
      */
     public void intervalRemoved(ListDataEvent e)
     {
-      BasicListUI.this.damageLayout();
+      list.revalidate();
     }
   }
 
@@ -524,7 +506,14 @@ public class BasicListUI extends ListUI
      */
     public void mouseDragged(MouseEvent event)
     {
-      // TODO: What should be done here, if anything?
+      Point click = event.getPoint();
+      int index = locationToIndex(list, click);
+      if (index == -1)
+        return;
+      if (!event.isShiftDown() && !event.isControlDown())
+        list.setSelectedIndex(index);
+      
+      list.ensureIndexIsVisible(list.getLeadSelectionIndex());
     }
 
     /**
@@ -562,20 +551,19 @@ public class BasicListUI extends ListUI
         }
       // Update the updateLayoutStateNeeded flag.
       if (e.getPropertyName().equals("model"))
-        updateLayoutStateNeeded += modelChanged;
+        updateLayoutStateNeeded |= modelChanged;
       else if (e.getPropertyName().equals("selectionModel"))
-        updateLayoutStateNeeded += selectionModelChanged;
+        updateLayoutStateNeeded |= selectionModelChanged;
       else if (e.getPropertyName().equals("font"))
-        updateLayoutStateNeeded += fontChanged;
+        updateLayoutStateNeeded |= fontChanged;
       else if (e.getPropertyName().equals("fixedCellWidth"))
-        updateLayoutStateNeeded += fixedCellWidthChanged;
+        updateLayoutStateNeeded |= fixedCellWidthChanged;
       else if (e.getPropertyName().equals("fixedCellHeight"))
-        updateLayoutStateNeeded += fixedCellHeightChanged;
+        updateLayoutStateNeeded |= fixedCellHeightChanged;
       else if (e.getPropertyName().equals("prototypeCellValue"))
-        updateLayoutStateNeeded += prototypeCellValueChanged;
+        updateLayoutStateNeeded |= prototypeCellValueChanged;
       else if (e.getPropertyName().equals("cellRenderer"))
-        updateLayoutStateNeeded += cellRendererChanged;
-      BasicListUI.this.damageLayout();
+        updateLayoutStateNeeded |= cellRendererChanged;
     }
   }
 
@@ -641,11 +629,6 @@ public class BasicListUI extends ListUI
   /** The property change listener listening to the list. */
   protected PropertyChangeListener propertyChangeListener;
 
-
-  /** The component listener that receives notification for resizing the
-   * JList component.*/
-  private ComponentListener componentListener;
-
   /** Saved reference to the list this UI was created for. */
   protected JList list;
 
@@ -738,19 +721,41 @@ public class BasicListUI extends ListUI
     int maxIndex = Math.max(index1, index2);
     Point loc = indexToLocation(list, minIndex);
     Rectangle bounds = new Rectangle(loc.x, loc.y, cellWidth,
-                                     getRowHeight(minIndex));
-
+                                     getCellHeight(minIndex));
     for (int i = minIndex + 1; i <= maxIndex; i++)
       {
         Point hiLoc = indexToLocation(list, i);
         Rectangle hibounds = new Rectangle(hiLoc.x, hiLoc.y, cellWidth,
-                                       getRowHeight(i));
+                                           getCellHeight(i));
         bounds = bounds.union(hibounds);
       }
 
     return bounds;
   }
 
+  /**
+   * Calculates the maximum cell height.
+   *
+   * @param index the index of the cell
+   *
+   * @return the maximum cell height
+   */
+  private int getCellHeight(int index)
+  {
+    int height = cellHeight;
+    if (height <= 0)
+      {
+        if (list.getLayoutOrientation() == JList.VERTICAL)
+          height = getRowHeight(index);
+        else
+          {
+            for (int j = 0; j < cellHeights.length; j++)
+              height = Math.max(height, cellHeights[j]);
+          }
+      }
+    return height;
+  }
+
   /**
    * Calculate the Y coordinate of the upper edge of a particular row,
    * considering the Y coordinate <code>0</code> to occur at the top of the
@@ -804,7 +809,7 @@ public class BasicListUI extends ListUI
     // Update the layout if necessary.
     maybeUpdateLayoutState();
 
-    int index = list.getModel().getSize() - 1;;
+    int index = list.getModel().getSize() - 1;
 
     // If a fixed cell height is set, then we can work more efficient.
     if (cellHeight > 0)
@@ -883,25 +888,13 @@ public class BasicListUI extends ListUI
       }
   }
 
-  /**
-   * Marks the current layout as damaged and requests revalidation from the
-   * JList.
-   * This is package-private to avoid an accessor method.
-   *
-   * @see #updateLayoutStateNeeded
-   */
-  void damageLayout()
-  {
-    updateLayoutStateNeeded = 1;
-  }
-
   /**
    * Calls {@link #updateLayoutState} if {@link #updateLayoutStateNeeded}
    * is nonzero, then resets {@link #updateLayoutStateNeeded} to zero.
    */
   protected void maybeUpdateLayoutState()
   {
-    if (updateLayoutStateNeeded != 0)
+    if (updateLayoutStateNeeded != 0 || !list.isValid())
       {
         updateLayoutState();
         updateLayoutStateNeeded = 0;
@@ -968,12 +961,6 @@ public class BasicListUI extends ListUI
     if (propertyChangeListener == null)
       propertyChangeListener = createPropertyChangeListener();
     list.addPropertyChangeListener(propertyChangeListener);
-
-    // FIXME: Are these two really needed? At least they are not documented.
-    //keyListener = new KeyHandler();
-    componentListener = new ComponentHandler();
-    list.addComponentListener(componentListener);
-    //list.addKeyListener(keyListener);
   }
 
   /**
@@ -985,7 +972,6 @@ public class BasicListUI extends ListUI
     list.getModel().removeListDataListener(listDataListener);
     list.removeListSelectionListener(listSelectionListener);
     list.removeMouseListener(mouseInputListener);
-    //list.removeKeyListener(keyListener);
     list.removeMouseMotionListener(mouseInputListener);
     list.removePropertyChangeListener(propertyChangeListener);
   }
@@ -1073,33 +1059,62 @@ public class BasicListUI extends ListUI
    */
   public Dimension getPreferredSize(JComponent c)
   {
+    maybeUpdateLayoutState();
     int size = list.getModel().getSize();
-    if (size == 0)
-      return new Dimension(0, 0);
     int visibleRows = list.getVisibleRowCount();
     int layoutOrientation = list.getLayoutOrientation();
-    Rectangle bounds = getCellBounds(list, 0, list.getModel().getSize() - 1);
-    Dimension retVal = bounds.getSize();
-    Component parent = list.getParent();
-    if ((visibleRows == -1) && (parent instanceof JViewport))
-      {
-        JViewport viewport = (JViewport) parent;
 
-        if (layoutOrientation == JList.HORIZONTAL_WRAP)
+    int h;
+    int w;
+    int maxCellHeight = cellHeight;
+    if (maxCellHeight <= 0)
+      {
+        for (int i = 0; i < cellHeights.length; i++)
+          maxCellHeight = Math.max(maxCellHeight, cellHeights[i]);
+      }
+    if (layoutOrientation == JList.HORIZONTAL_WRAP)
+      {
+        if (visibleRows > 0)
           {
-            int h = viewport.getSize().height;
-            int cellsPerCol = h / cellHeight;
-            int w = size / cellsPerCol * cellWidth;
-            retVal = new Dimension(w, h);
+            // We cast to double here to force double divisions.
+            double modelSize = size;
+            int neededColumns = (int) Math.ceil(modelSize / visibleRows); 
+            int adjustedRows = (int) Math.ceil(modelSize / neededColumns);
+            h = maxCellHeight * adjustedRows;
+            w = cellWidth * neededColumns;
           }
-        else if (layoutOrientation == JList.VERTICAL_WRAP)
+        else
           {
-            int w = viewport.getSize().width;
-            int cellsPerRow = Math.max(w / cellWidth, 1);
-            int h = size / cellsPerRow * cellHeight;
-            retVal = new Dimension(w, h);
+            int neededColumns = Math.min(1, list.getWidth() / cellWidth);
+            h = size / neededColumns * maxCellHeight;
+            w = neededColumns * cellWidth;
           }
       }
+    else if (layoutOrientation == JList.VERTICAL_WRAP)
+      {
+        if (visibleRows > 0)
+          h = visibleRows * maxCellHeight;
+        else
+          h = Math.max(list.getHeight(), maxCellHeight);
+        int neededColumns = h / maxCellHeight;
+        w = cellWidth * neededColumns;
+      }
+    else
+      {
+        if (list.getFixedCellWidth() > 0)
+          w = list.getFixedCellWidth();
+        else
+          w = cellWidth;
+        if (list.getFixedCellHeight() > 0)
+          // FIXME: We need to add some cellVerticalMargins here, according
+          // to the specs.
+          h = list.getFixedCellHeight() * size;
+        else
+          h = maxCellHeight * size;
+      }
+    Insets insets = list.getInsets();
+    Dimension retVal = new Dimension(w + insets.left + insets.right,
+                                     h + insets.top + insets.bottom);
     return retVal;
   }
 
@@ -1148,9 +1163,9 @@ public class BasicListUI extends ListUI
     int lead = sel.getLeadSelectionIndex();
     Rectangle clip = g.getClipBounds();
 
-    int startIndex = list.locationToIndex(new Point(clip.x, clip.y));
-    int endIndex = list.locationToIndex(new Point(clip.x + clip.width,
-                                                  clip.y + clip.height));
+    int startIndex = locationToIndex(list, new Point(clip.x, clip.y));
+    int endIndex = locationToIndex(list, new Point(clip.x + clip.width,
+                                             clip.y + clip.height));
     
     for (int row = startIndex; row <= endIndex; ++row)
       {
@@ -1165,13 +1180,13 @@ public class BasicListUI extends ListUI
    * location lies outside the bounds of the list, the greatest index in the
    * list model is returned.
    *
-   * @param list the list which on which the computation is based on
+   * @param l the list which on which the computation is based on
    * @param location the coordinates
    *
    * @return the index of the list item that is located at the given
    *         coordinates or <code>-1</code> if the list model is empty
    */
-  public int locationToIndex(JList list, Point location)
+  public int locationToIndex(JList l, Point location)
   {
     int layoutOrientation = list.getLayoutOrientation();
     int index = -1;
@@ -1182,52 +1197,34 @@ public class BasicListUI extends ListUI
         break;
       case JList.HORIZONTAL_WRAP:
         // determine visible rows and cells per row
-        int visibleRows = list.getVisibleRowCount();
+        int maxCellHeight = getCellHeight(0);
+        int visibleRows = list.getHeight() / maxCellHeight;
         int cellsPerRow = -1;
         int numberOfItems = list.getModel().getSize();
-        Dimension listDim = list.getSize();
-        if (visibleRows <= 0)
-          {
-            try
-              {
-                cellsPerRow = listDim.width / cellWidth;
-              }
-            catch (ArithmeticException ex)
-              {
-                cellsPerRow = 1;
-              }
-          }
-        else
-          {
-            cellsPerRow = numberOfItems / visibleRows + 1;
-          }
+        cellsPerRow = numberOfItems / visibleRows + 1;
 
         // determine index for the given location
         int cellsPerColumn = numberOfItems / cellsPerRow + 1;
         int gridX = Math.min(location.x / cellWidth, cellsPerRow - 1);
-        int gridY = Math.min(location.y / cellHeight, cellsPerColumn);
+        int gridY = Math.min(location.y / maxCellHeight, cellsPerColumn);
         index = gridX + gridY * cellsPerRow;
         break;
       case JList.VERTICAL_WRAP:
         // determine visible rows and cells per column
-        int visibleRows2 = list.getVisibleRowCount();
-        if (visibleRows2 <= 0)
-          {
-            Dimension listDim2 = list.getSize();
-            visibleRows2 = listDim2.height / cellHeight;
-          }
+        int maxCellHeight2 = getCellHeight(0);
+        int visibleRows2 = list.getHeight() / maxCellHeight2;
         int numberOfItems2 = list.getModel().getSize();
         int cellsPerRow2 = numberOfItems2 / visibleRows2 + 1;
 
         int gridX2 = Math.min(location.x / cellWidth, cellsPerRow2 - 1);
-        int gridY2 = Math.min(location.y / cellHeight, visibleRows2);
+        int gridY2 = Math.min(location.y / maxCellHeight2, visibleRows2);
         index = gridY2 + gridX2 * visibleRows2;
         break;
       }
     return index;
   }
 
-  public Point indexToLocation(JList list, int index)
+  public Point indexToLocation(JList l, int index)
   {
     int layoutOrientation = list.getLayoutOrientation();
     Point loc = null;
@@ -1238,40 +1235,31 @@ public class BasicListUI extends ListUI
         break;
       case JList.HORIZONTAL_WRAP:
         // determine visible rows and cells per row
-        int visibleRows = list.getVisibleRowCount();
+        int maxCellHeight = getCellHeight(0);
+        int visibleRows = list.getHeight() / maxCellHeight;
         int numberOfCellsPerRow = -1;
-        if (visibleRows <= 0)
-          {
-            Dimension listDim = list.getSize();
-            numberOfCellsPerRow = Math.max(listDim.width / cellWidth, 1);
-          }
-        else
-          {
-            int numberOfItems = list.getModel().getSize();
-            numberOfCellsPerRow = numberOfItems / visibleRows + 1;
-          }
+        int numberOfItems = list.getModel().getSize();
+        numberOfCellsPerRow = numberOfItems / visibleRows + 1;
+
         // compute coordinates inside the grid
         int gridX = index % numberOfCellsPerRow;
         int gridY = index / numberOfCellsPerRow;
         int locX = gridX * cellWidth;
-        int locY = gridY * cellHeight;
+        int locY;
+        locY = gridY * maxCellHeight;
         loc = new Point(locX, locY);
         break;
       case JList.VERTICAL_WRAP:
         // determine visible rows and cells per column
-        int visibleRows2 = list.getVisibleRowCount();
-        if (visibleRows2 <= 0)
-          {
-            Dimension listDim2 = list.getSize();
-            visibleRows2 = listDim2.height / cellHeight;
-          }
+        int maxCellHeight2 = getCellHeight(0);
+        int visibleRows2 = list.getHeight() / maxCellHeight2;
         // compute coordinates inside the grid
         if (visibleRows2 > 0)
           {
             int gridY2 = index % visibleRows2;
             int gridX2 = index / visibleRows2;
             int locX2 = gridX2 * cellWidth;
-            int locY2 = gridY2 * cellHeight;
+            int locY2 = gridY2 * maxCellHeight2;
             loc = new Point(locX2, locY2);
           }
         else
index 13c78add6f84db25f564f6eeabe910f2a2894312..f5217be1ff635fd0543ed7367ba5b24767092f7a 100644 (file)
@@ -41,16 +41,26 @@ package javax.swing.plaf.basic;
 import java.awt.Color;
 import java.awt.Dimension;
 import java.awt.Font;
-import java.awt.event.InputEvent;
-import java.awt.event.KeyEvent;
+import java.awt.event.ActionEvent;
+import java.io.IOException;
+import java.io.InputStream;
 import java.io.Serializable;
 import java.util.Enumeration;
 import java.util.ResourceBundle;
 
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.Clip;
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.UnsupportedAudioFileException;
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.ActionMap;
 import javax.swing.BorderFactory;
 import javax.swing.KeyStroke;
 import javax.swing.LookAndFeel;
 import javax.swing.UIDefaults;
+import javax.swing.UIManager;
 import javax.swing.border.BevelBorder;
 import javax.swing.border.Border;
 import javax.swing.plaf.BorderUIResource;
@@ -59,7 +69,6 @@ import javax.swing.plaf.DimensionUIResource;
 import javax.swing.plaf.FontUIResource;
 import javax.swing.plaf.IconUIResource;
 import javax.swing.plaf.InsetsUIResource;
-import javax.swing.text.JTextComponent;
 
 /**
  * BasicLookAndFeel
@@ -68,8 +77,68 @@ import javax.swing.text.JTextComponent;
 public abstract class BasicLookAndFeel extends LookAndFeel
   implements Serializable
 {
+  /**
+   * An action that can play an audio file.
+   *
+   * @author Roman Kennke (kennke@aicas.com)
+   */
+  private class AudioAction extends AbstractAction
+  {
+    /**
+     * The UIDefaults key that specifies the sound.
+     */
+    Object key;
+
+    /**
+     * Creates a new AudioAction.
+     *
+     * @param key the key that describes the audio action, normally a filename
+     *        of an audio file relative to the current package
+     */
+    AudioAction(Object key)
+    {
+      this.key = key;
+    }
+
+    /**
+     * Plays the sound represented by this action.
+     *
+     * @param event the action event that triggers this audio action
+     */
+    public void actionPerformed(ActionEvent event)
+    {
+      // We only can handle strings for now.
+      if (key instanceof String)
+        {
+          String name = UIManager.getString(key);
+          InputStream stream = getClass().getResourceAsStream(name);
+          try
+            {
+              Clip clip = AudioSystem.getClip();
+              AudioInputStream audioStream =
+                AudioSystem.getAudioInputStream(stream);
+              clip.open(audioStream);
+            }
+          catch (LineUnavailableException ex)
+            {
+              // Nothing we can do about it.
+            }
+          catch (IOException ex)
+            {
+              // Nothing we can do about it.
+            }
+          catch (UnsupportedAudioFileException e)
+            {
+              // Nothing we can do about it.
+            }
+        }
+    }
+  }
+
   static final long serialVersionUID = -6096995660290287879L;
 
+  private ActionMap audioActionMap;
+
   /**
    * Creates a new instance of the Basic look and feel.
    */
@@ -148,7 +217,6 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "TextPaneUI", "javax.swing.plaf.basic.BasicTextPaneUI",
       "TextAreaUI", "javax.swing.plaf.basic.BasicTextAreaUI",
       "TextFieldUI", "javax.swing.plaf.basic.BasicTextFieldUI",
-      "TextPaneUI", "javax.swing.plaf.basic.BasicTextPaneUI",
       "ToggleButtonUI", "javax.swing.plaf.basic.BasicToggleButtonUI",
       "ToolBarSeparatorUI", "javax.swing.plaf.basic.BasicToolBarSeparatorUI",
       "ToolBarUI", "javax.swing.plaf.basic.BasicToolBarUI",
@@ -265,12 +333,12 @@ public abstract class BasicLookAndFeel extends LookAndFeel
         }
       },
       "Button.darkShadow", new ColorUIResource(Color.BLACK),
-      "Button.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
-        "SPACE",  "pressed",
-        "released SPACE", "released"
-      }),
       "Button.font", new FontUIResource("Dialog", Font.PLAIN, 12),
       "Button.foreground", new ColorUIResource(Color.BLACK),
+      "Button.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
+          KeyStroke.getKeyStroke("SPACE"), "pressed",
+          KeyStroke.getKeyStroke("released SPACE"), "released"
+      }),
       "Button.highlight", new ColorUIResource(Color.WHITE),
       "Button.light", new ColorUIResource(Color.LIGHT_GRAY),
       "Button.margin", new InsetsUIResource(2, 14, 2, 14),
@@ -281,8 +349,8 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "CheckBox.border", new BorderUIResource.CompoundBorderUIResource(null,
                                                                        null),
       "CheckBox.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
-        "SPACE",  "pressed",
-        "released SPACE", "released"
+          KeyStroke.getKeyStroke("SPACE"), "pressed",
+          KeyStroke.getKeyStroke("released SPACE"), "released"
       }),
       "CheckBox.font", new FontUIResource("Dialog", Font.PLAIN, 12),
       "CheckBox.foreground", new ColorUIResource(darkShadow),
@@ -342,12 +410,12 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "ColorChooser.okText", "OK",
       "ColorChooser.previewText", "Preview",
       "ColorChooser.resetText", "Reset",
-      "ColorChooser.rgbBlueMnemonic", new Integer(66),
+      "ColorChooser.rgbBlueMnemonic", "66",
       "ColorChooser.rgbBlueText", "Blue",
-      "ColorChooser.rgbGreenMnemonic", new Integer(71),
+      "ColorChooser.rgbGreenMnemonic", "78",
       "ColorChooser.rgbGreenText", "Green",
       "ColorChooser.rgbNameText", "RGB",
-      "ColorChooser.rgbRedMnemonic", new Integer(82),
+      "ColorChooser.rgbRedMnemonic", "68",
       "ColorChooser.rgbRedText", "Red",
       "ColorChooser.sampleText", "Sample Text  Sample Text",
       "ColorChooser.swatchesDefaultRecentColor", new ColorUIResource(light),
@@ -403,20 +471,63 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "EditorPane.font", new FontUIResource("Serif", Font.PLAIN, 12),
       "EditorPane.foreground", new ColorUIResource(Color.black),
       "EditorPane.inactiveForeground", new ColorUIResource(Color.gray),
-      "EditorPane.keyBindings", new JTextComponent.KeyBinding[] {
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_UP,
-                                                             0), "caret-up"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN,
-                                                             0), "caret-down"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP,
-                                                             0), "page-up"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN,
-                                                             0), "page-down"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,
-                                                             0), "insert-break"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,
-                                                             0), "insert-tab")
-          },
+      "EditorPane.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {            
+                KeyStroke.getKeyStroke("shift UP"), "selection-up",
+                KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word",
+                KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word",
+                KeyStroke.getKeyStroke("shift KP_UP"), "selection-up",
+                KeyStroke.getKeyStroke("DOWN"), "caret-down",
+                KeyStroke.getKeyStroke("shift ctrl T"), "previous-link-action",
+                KeyStroke.getKeyStroke("ctrl LEFT"), "caret-previous-word",
+                KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard",
+                KeyStroke.getKeyStroke("END"), "caret-end-line",
+                KeyStroke.getKeyStroke("shift PAGE_UP"), "selection-page-up",
+                KeyStroke.getKeyStroke("KP_UP"), "caret-up",
+                KeyStroke.getKeyStroke("DELETE"), "delete-next",
+                KeyStroke.getKeyStroke("ctrl HOME"), "caret-begin",
+                KeyStroke.getKeyStroke("shift LEFT"), "selection-backward",
+                KeyStroke.getKeyStroke("ctrl END"), "caret-end",
+                KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous",
+                KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-next-word",
+                KeyStroke.getKeyStroke("LEFT"), "caret-backward",
+                KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward",
+                KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward",
+                KeyStroke.getKeyStroke("ctrl SPACE"), "activate-link-action",
+                KeyStroke.getKeyStroke("ctrl H"), "delete-previous",
+                KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect",
+                KeyStroke.getKeyStroke("ENTER"), "insert-break",
+                KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line",
+                KeyStroke.getKeyStroke("RIGHT"), "caret-forward",
+                KeyStroke.getKeyStroke("shift ctrl PAGE_UP"), "selection-page-left",
+                KeyStroke.getKeyStroke("shift DOWN"), "selection-down",
+                KeyStroke.getKeyStroke("PAGE_DOWN"), "page-down",
+                KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward",
+                KeyStroke.getKeyStroke("shift ctrl O"), "toggle-componentOrientation",
+                KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard",
+                KeyStroke.getKeyStroke("shift ctrl PAGE_DOWN"), "selection-page-right",
+                KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard",
+                KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-next-word",
+                KeyStroke.getKeyStroke("shift END"), "selection-end-line",
+                KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-previous-word",
+                KeyStroke.getKeyStroke("HOME"), "caret-begin-line",
+                KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard",
+                KeyStroke.getKeyStroke("KP_DOWN"), "caret-down",
+                KeyStroke.getKeyStroke("ctrl A"), "select-all",
+                KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward",
+                KeyStroke.getKeyStroke("shift ctrl END"), "selection-end",
+                KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard",
+                KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-previous-word",
+                KeyStroke.getKeyStroke("ctrl T"), "next-link-action",
+                KeyStroke.getKeyStroke("shift KP_DOWN"), "selection-down",
+                KeyStroke.getKeyStroke("TAB"), "insert-tab",
+                KeyStroke.getKeyStroke("UP"), "caret-up",
+                KeyStroke.getKeyStroke("shift ctrl HOME"), "selection-begin",
+                KeyStroke.getKeyStroke("shift PAGE_DOWN"), "selection-page-down",
+                KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward",
+                KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-next-word",
+                KeyStroke.getKeyStroke("PAGE_UP"), "page-up",
+                KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard"
+          }),
       "EditorPane.margin", new InsetsUIResource(3, 3, 3, 3),
       "EditorPane.selectionBackground", new ColorUIResource(Color.black),
       "EditorPane.selectionForeground", new ColorUIResource(Color.white),
@@ -424,51 +535,74 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "FileChooser.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
         "ESCAPE", "cancelSelection"
       }),
-      "FileChooser.cancelButtonMnemonic", new Integer(67),
+      "FileChooser.cancelButtonMnemonic", "67",
       "FileChooser.cancelButtonText", "Cancel",
       "FileChooser.cancelButtonToolTipText", "Abort file chooser dialog",
-      // XXX Don't use gif
-//      "FileChooser.detailsViewIcon", new IconUIResource(new ImageIcon("icons/DetailsView.gif")),
       "FileChooser.directoryDescriptionText", "Directory",
       "FileChooser.fileDescriptionText", "Generic File",
-      "FileChooser.helpButtonMnemonic", new Integer(72),
+      "FileChooser.directoryOpenButtonMnemonic", "79",
+      "FileChooser.helpButtonMnemonic", "72",
       "FileChooser.helpButtonText", "Help",
       "FileChooser.helpButtonToolTipText", "FileChooser help",
-      // XXX Don't use gif
-//      "FileChooser.homeFolderIcon", new IconUIResource(new ImageIcon("icons/HomeFolder.gif")),
-      // XXX Don't use gif
-//      "FileChooser.listViewIcon", new IconUIResource(new ImageIcon("icons/ListView.gif")),
       "FileChooser.newFolderErrorSeparator", ":",
       "FileChooser.newFolderErrorText", "Error creating new folder",
-      // XXX Don't use gif
-//      "FileChooser.newFolderIcon", new IconUIResource(new ImageIcon("icons/NewFolder.gif")),
-      "FileChooser.openButtonMnemonic", new Integer(79),
+      "FileChooser.openButtonMnemonic", "79",
       "FileChooser.openButtonText", "Open",
       "FileChooser.openButtonToolTipText", "Open selected file",
-      "FileChooser.saveButtonMnemonic", new Integer(83),
+      "FileChooser.saveButtonMnemonic", "83",
       "FileChooser.saveButtonText", "Save",
       "FileChooser.saveButtonToolTipText", "Save selected file",
-      // XXX Don't use gif
-//      "FileChooser.upFolderIcon", new IconUIResource(new ImageIcon("icons/UpFolder.gif")),
-      "FileChooser.updateButtonMnemonic", new Integer(85),
+      "FileChooser.updateButtonMnemonic", "85",
       "FileChooser.updateButtonText", "Update",
       "FileChooser.updateButtonToolTipText", "Update directory listing",
-      // XXX Don't use gif
-//      "FileView.computerIcon", new IconUIResource(new ImageIcon("icons/Computer.gif")),
-      // XXX Don't use gif
-//      "FileView.directoryIcon", new IconUIResource(new ImageIcon("icons/Directory.gif")),
-      // XXX Don't use gif
-//      "FileView.fileIcon", new IconUIResource(new ImageIcon("icons/File.gif")),
-      // XXX Don't use gif
-//      "FileView.floppyDriveIcon", new IconUIResource(new ImageIcon("icons/Floppy.gif")),
-      // XXX Don't use gif
-//      "FileView.hardDriveIcon", new IconUIResource(new ImageIcon("icons/HardDrive.gif")),
       "FocusManagerClassName", "TODO",
       "FormattedTextField.background", new ColorUIResource(light),
       "FormattedTextField.caretForeground", new ColorUIResource(Color.black),
+      "FormattedTextField.margin", new InsetsUIResource(0, 0, 0, 0),
+      "FormattedTextField.caretBlinkRate", new Integer(500),
       "FormattedTextField.font",
       new FontUIResource("SansSerif", Font.PLAIN, 12),
       "FormattedTextField.foreground", new ColorUIResource(Color.black),
+      "FormattedTextField.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
+        KeyStroke.getKeyStroke("KP_UP"), "increment",
+        KeyStroke.getKeyStroke("END"), "caret-end-line",
+        KeyStroke.getKeyStroke("shift ctrl  O"), "toggle-componentOrientation",
+        KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward",
+        KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward",
+        KeyStroke.getKeyStroke("KP_DOWN"), "decrement",
+        KeyStroke.getKeyStroke("HOME"), "caret-begin-line",
+        KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard",
+        KeyStroke.getKeyStroke("ctrl H"), "delete-previous",
+        KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward",
+        KeyStroke.getKeyStroke("LEFT"), "caret-backward",
+        KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard",
+        KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward",
+        KeyStroke.getKeyStroke("UP"), "increment",
+        KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-next-word",
+        KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard",
+        KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line",
+        KeyStroke.getKeyStroke("ESCAPE"), "reset-field-edit",
+        KeyStroke.getKeyStroke("RIGHT"), "caret-forward",
+        KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word",
+        KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-previous-word",
+        KeyStroke.getKeyStroke("DOWN"), "decrement",
+        KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-next-word",
+        KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard",
+        KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-next-word",
+        KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect",
+        KeyStroke.getKeyStroke("ctrl A"), "select-all",
+        KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward",
+        KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard",
+        KeyStroke.getKeyStroke("ctrl LEFT"), "caret-previous-word",
+        KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous",
+        KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-previous-word",
+        KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard",
+        KeyStroke.getKeyStroke("shift END"), "selection-end-line",
+        KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word",
+        KeyStroke.getKeyStroke("DELETE"), "delete-next",
+        KeyStroke.getKeyStroke("ENTER"), "notify-field-accept",
+        KeyStroke.getKeyStroke("shift LEFT"), "selection-backward"
+      }),
       "FormattedTextField.inactiveBackground", new ColorUIResource(light),
       "FormattedTextField.inactiveForeground", new ColorUIResource(Color.gray),
       "FormattedTextField.selectionBackground",
@@ -504,7 +638,6 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "InternalFrame.borderLight", new ColorUIResource(Color.LIGHT_GRAY),
       "InternalFrame.borderShadow", new ColorUIResource(Color.GRAY),
       "InternalFrame.closeIcon", BasicIconFactory.createEmptyFrameIcon(),
-      // FIXME: Set a nice icon for InternalFrames here.
       "InternalFrame.icon",
       new UIDefaults.LazyValue()
       {
@@ -533,67 +666,67 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "List.background", new ColorUIResource(Color.white),
       "List.border", new BasicBorders.MarginBorder(),
       "List.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
-        "ctrl DOWN", "selectNextRowChangeLead",
-        "shift UP", "selectPreviousRowExtendSelection",
-        "ctrl RIGHT", "selectNextColumnChangeLead",        
-        "shift ctrl LEFT", "selectPreviousColumnExtendSelection",
-        "shift KP_UP", "selectPreviousRowChangeLead",
-        "DOWN",  "selectNextRow",
-        "ctrl UP", "selectPreviousRowChangeLead",
-        "ctrl LEFT", "selectPreviousColumnChangeLead",
-        "CUT", "cut",
-        "END",  "selectLastRow",
-        "shift PAGE_UP","scrollUpExtendSelection",
-        "KP_UP", "selectPreviousRow",
-        "shift ctrl UP", "selectPreviousRowExtendSelection",
-        "ctrl HOME", "selectFirstRowChangeLead",
-        "shift LEFT", "selectPreviousColumnExtendSelection",
-        "ctrl END", "selectLastRowChangeLead",
-        "ctrl PAGE_DOWN", "scrollDownChangeLead",
-        "shift ctrl RIGHT", "selectNextColumnExtendSelection",
-        "LEFT", "selectPreviousColumn",
-        "ctrl PAGE_UP", "scrollUpChangeLead",
-        "KP_LEFT", "selectPreviousColumn",
-        "shift KP_RIGHT", "selectNextColumnExtendSelection",
-        "SPACE", "addToSelection",
-        "ctrl SPACE", "toggleAndAnchor",
-        "shift SPACE", "extendTo",
-        "shift ctrl SPACE", "moveSelectionTo",
-        "shift ctrl DOWN", "selectNextRowExtendSelection",
-        "ctrl BACK_SLASH", "clearSelection",
-        "shift HOME", "selectFirstRowExtendSelection",
-        "RIGHT", "selectNextColumn",
-        "shift ctrl PAGE_UP", "scrollUpExtendSelection",
-        "shift DOWN", "selectNextRowExtendSelection",
-        "PAGE_DOWN", "scrollDown",
-        "shift ctrl KP_UP", "selectPreviousRowExtendSelection",
-        "shift KP_LEFT", "selectPreviousColumnExtendSelection",
-        "ctrl X", "cut",
-        "shift ctrl PAGE_DOWN", "scrollDownExtendSelection",
-        "ctrl SLASH", "selectAll",
-        "ctrl C", "copy",
-        "ctrl KP_RIGHT", "selectNextColumnChangeLead",
-        "shift END", "selectLastRowExtendSelection",
-        "shift ctrl KP_DOWN", "selectNextRowExtendSelection",
-        "ctrl KP_LEFT", "selectPreviousColumnChangeLead",
-        "HOME", "selectFirstRow",
-        "ctrl V", "paste", 
-        "KP_DOWN", "selectNextRow",
-        "ctrl KP_DOWN", "selectNextRowChangeLead",
-        "shift RIGHT", "selectNextColumnExtendSelection",
-        "ctrl A", "selectAll",
-        "shift ctrl END", "selectLastRowExtendSelection",
-        "COPY", "copy",
-        "ctrl KP_UP", "selectPreviousRowChangeLead",
-        "shift ctrl KP_LEFT", "selectPreviousColumnExtendSelection",
-        "shift KP_DOWN", "selectNextRowExtendSelection",
-        "UP", "selectPreviousRow",
-        "shift ctrl HOME", "selectFirstRowExtendSelection",
-        "shift PAGE_DOWN", "scrollDownExtendSelection",
-        "KP_RIGHT", "selectNextColumn",
-        "shift ctrl KP_RIGHT", "selectNextColumnExtendSelection",
-        "PAGE_UP", "scrollUp",
-        "PASTE", "paste"
+            KeyStroke.getKeyStroke("ctrl DOWN"), "selectNextRowChangeLead",
+            KeyStroke.getKeyStroke("shift UP"), "selectPreviousRowExtendSelection",
+            KeyStroke.getKeyStroke("ctrl RIGHT"), "selectNextColumnChangeLead",
+            KeyStroke.getKeyStroke("shift ctrl LEFT"), "selectPreviousColumnExtendSelection",
+            KeyStroke.getKeyStroke("shift KP_UP"), "selectPreviousRowExtendSelection",
+            KeyStroke.getKeyStroke("DOWN"), "selectNextRow",
+            KeyStroke.getKeyStroke("ctrl UP"), "selectPreviousRowChangeLead",
+            KeyStroke.getKeyStroke("ctrl LEFT"), "selectPreviousColumnChangeLead",
+            KeyStroke.getKeyStroke("CUT"), "cut",
+            KeyStroke.getKeyStroke("END"), "selectLastRow",
+            KeyStroke.getKeyStroke("shift PAGE_UP"), "scrollUpExtendSelection",
+            KeyStroke.getKeyStroke("KP_UP"), "selectPreviousRow",
+            KeyStroke.getKeyStroke("shift ctrl UP"), "selectPreviousRowExtendSelection",
+            KeyStroke.getKeyStroke("ctrl HOME"), "selectFirstRowChangeLead",
+            KeyStroke.getKeyStroke("shift LEFT"), "selectPreviousColumnExtendSelection",
+            KeyStroke.getKeyStroke("ctrl END"), "selectLastRowChangeLead",
+            KeyStroke.getKeyStroke("ctrl PAGE_DOWN"), "scrollDownChangeLead",
+            KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selectNextColumnExtendSelection",
+            KeyStroke.getKeyStroke("LEFT"), "selectPreviousColumn",
+            KeyStroke.getKeyStroke("ctrl PAGE_UP"), "scrollUpChangeLead",
+            KeyStroke.getKeyStroke("KP_LEFT"), "selectPreviousColumn",
+            KeyStroke.getKeyStroke("shift KP_RIGHT"), "selectNextColumnExtendSelection",
+            KeyStroke.getKeyStroke("SPACE"), "addToSelection",
+            KeyStroke.getKeyStroke("ctrl SPACE"), "toggleAndAnchor",
+            KeyStroke.getKeyStroke("shift SPACE"), "extendTo",
+            KeyStroke.getKeyStroke("shift ctrl SPACE"), "moveSelectionTo",
+            KeyStroke.getKeyStroke("shift ctrl DOWN"), "selectNextRowExtendSelection",
+            KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "clearSelection",
+            KeyStroke.getKeyStroke("shift HOME"), "selectFirstRowExtendSelection",
+            KeyStroke.getKeyStroke("RIGHT"), "selectNextColumn",
+            KeyStroke.getKeyStroke("shift ctrl PAGE_UP"), "scrollUpExtendSelection",
+            KeyStroke.getKeyStroke("shift DOWN"), "selectNextRowExtendSelection",
+            KeyStroke.getKeyStroke("PAGE_DOWN"), "scrollDown",
+            KeyStroke.getKeyStroke("shift ctrl KP_UP"), "selectPreviousRowExtendSelection",
+            KeyStroke.getKeyStroke("shift KP_LEFT"), "selectPreviousColumnExtendSelection",
+            KeyStroke.getKeyStroke("ctrl X"), "cut",
+            KeyStroke.getKeyStroke("shift ctrl PAGE_DOWN"), "scrollDownExtendSelection",
+            KeyStroke.getKeyStroke("ctrl SLASH"), "selectAll",
+            KeyStroke.getKeyStroke("ctrl C"), "copy",
+            KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "selectNextColumnChangeLead",
+            KeyStroke.getKeyStroke("shift END"), "selectLastRowExtendSelection",
+            KeyStroke.getKeyStroke("shift ctrl KP_DOWN"), "selectNextRowExtendSelection",
+            KeyStroke.getKeyStroke("ctrl KP_LEFT"), "selectPreviousColumnChangeLead",
+            KeyStroke.getKeyStroke("HOME"), "selectFirstRow",
+            KeyStroke.getKeyStroke("ctrl V"), "paste",
+            KeyStroke.getKeyStroke("KP_DOWN"), "selectNextRow",
+            KeyStroke.getKeyStroke("ctrl KP_DOWN"), "selectNextRowChangeLead",
+            KeyStroke.getKeyStroke("shift RIGHT"), "selectNextColumnExtendSelection",
+            KeyStroke.getKeyStroke("ctrl A"), "selectAll",
+            KeyStroke.getKeyStroke("shift ctrl END"), "selectLastRowExtendSelection",
+            KeyStroke.getKeyStroke("COPY"), "copy",
+            KeyStroke.getKeyStroke("ctrl KP_UP"), "selectPreviousRowChangeLead",
+            KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selectPreviousColumnExtendSelection",
+            KeyStroke.getKeyStroke("shift KP_DOWN"), "selectNextRowExtendSelection",
+            KeyStroke.getKeyStroke("UP"), "selectPreviousRow",
+            KeyStroke.getKeyStroke("shift ctrl HOME"), "selectFirstRowExtendSelection",
+            KeyStroke.getKeyStroke("shift PAGE_DOWN"), "scrollDownExtendSelection",
+            KeyStroke.getKeyStroke("KP_RIGHT"), "selectNextColumn",
+            KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selectNextColumnExtendSelection",
+            KeyStroke.getKeyStroke("PAGE_UP"), "scrollUp",
+            KeyStroke.getKeyStroke("PASTE"), "paste"
       }),
       "List.font", new FontUIResource("Dialog", Font.PLAIN, 12),
       "List.foreground", new ColorUIResource(Color.black),
@@ -603,6 +736,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       new BorderUIResource.
       LineBorderUIResource(new ColorUIResource(Color.yellow)),
       "Menu.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 12),
+      "Menu.crossMenuMnemonic", Boolean.TRUE,
       "Menu.acceleratorForeground", new ColorUIResource(darkShadow),
       "Menu.acceleratorSelectionForeground", new ColorUIResource(Color.white),
       "Menu.arrowIcon", BasicIconFactory.getMenuArrowIcon(),
@@ -627,6 +761,10 @@ public abstract class BasicLookAndFeel extends LookAndFeel
         "ENTER", "return",
         "SPACE", "return"
       },
+      "Menu.menuPopupOffsetX", new Integer(0),
+      "Menu.menuPopupOffsetY", new Integer(0),
+      "Menu.submenuPopupOffsetX", new Integer(0),
+      "Menu.submenuPopupOffsetY", new Integer(0),
       "Menu.selectionBackground", new ColorUIResource(Color.black),
       "Menu.selectionForeground", new ColorUIResource(Color.white),
       "MenuBar.background", new ColorUIResource(light),
@@ -638,7 +776,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "MenuBar.windowBindings", new Object[] {
         "F10", "takeFocus"
       },
-      "MenuItem.acceleratorDelimiter", "-",
+      "MenuItem.acceleratorDelimiter", "+",
       "MenuItem.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 12),
       "MenuItem.acceleratorForeground", new ColorUIResource(darkShadow),
       "MenuItem.acceleratorSelectionForeground",
@@ -657,15 +795,10 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       new BorderUIResource.EmptyBorderUIResource(0, 0, 0, 0),
       "OptionPane.buttonAreaBorder",
       new BorderUIResource.EmptyBorderUIResource(0, 0, 0, 0),
+      "OptionPane.buttonClickThreshhold", new Integer(500),
       "OptionPane.cancelButtonText", "Cancel",
-      // XXX Don't use gif
-//      "OptionPane.errorIcon",
-//      new IconUIResource(new ImageIcon("icons/Error.gif")),
       "OptionPane.font", new FontUIResource("Dialog", Font.PLAIN, 12),
       "OptionPane.foreground", new ColorUIResource(darkShadow),
-      // XXX Don't use gif
-//      "OptionPane.informationIcon",
-//      new IconUIResource(new ImageIcon("icons/Inform.gif")),
       "OptionPane.messageAreaBorder",
       new BorderUIResource.EmptyBorderUIResource(0, 0, 0, 0),
       "OptionPane.messageForeground", new ColorUIResource(darkShadow),
@@ -674,12 +807,6 @@ public abstract class BasicLookAndFeel extends LookAndFeel
                               BasicOptionPaneUI.MinimumHeight),
       "OptionPane.noButtonText", "No",
       "OptionPane.okButtonText", "OK",
-      // XXX Don't use gif
-//      "OptionPane.questionIcon",
-//      new IconUIResource(new ImageIcon("icons/Question.gif")),
-      // XXX Don't use gif
-//      "OptionPane.warningIcon",
-//      new IconUIResource(new ImageIcon("icons/Warn.gif")),
       "OptionPane.windowBindings", new Object[] {
         "ESCAPE",  "close"
       },
@@ -692,14 +819,45 @@ public abstract class BasicLookAndFeel extends LookAndFeel
                                                            null, null),
       "PasswordField.caretBlinkRate", new Integer(500),
       "PasswordField.caretForeground", new ColorUIResource(Color.black),
-      "PasswordField.font", new FontUIResource("Dialog", Font.PLAIN, 12),
+      "PasswordField.font", new FontUIResource("MonoSpaced", Font.PLAIN, 12),
       "PasswordField.foreground", new ColorUIResource(Color.black),
       "PasswordField.inactiveBackground", new ColorUIResource(light),
       "PasswordField.inactiveForeground", new ColorUIResource(Color.gray),
-      "PasswordField.keyBindings", new JTextComponent.KeyBinding[] {
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,
-                                                             0),
-                                      "notify-field-accept")},
+      "PasswordField.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
+                      KeyStroke.getKeyStroke("END"), "caret-end-line",
+                      KeyStroke.getKeyStroke("shift ctrl O"), "toggle-componentOrientation",
+                      KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward",
+                      KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward",
+                      KeyStroke.getKeyStroke("HOME"), "caret-begin-line",
+                      KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard",
+                      KeyStroke.getKeyStroke("ctrl H"), "delete-previous",
+                      KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward",
+                      KeyStroke.getKeyStroke("LEFT"), "caret-backward",
+                      KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard",
+                      KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward",
+                      KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-end-line",
+                      KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard",
+                      KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line",
+                      KeyStroke.getKeyStroke("RIGHT"), "caret-forward",
+                      KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-begin-line",
+                      KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-begin-line",
+                      KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-end-line",
+                      KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard",
+                      KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-end-line",
+                      KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect",
+                      KeyStroke.getKeyStroke("ctrl A"), "select-all",
+                      KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward",
+                      KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard",
+                      KeyStroke.getKeyStroke("ctrl LEFT"), "caret-begin-line",
+                      KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous",
+                      KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-begin-line",
+                      KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard",
+                      KeyStroke.getKeyStroke("shift END"), "selection-end-line",
+                      KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-end-line",
+                      KeyStroke.getKeyStroke("DELETE"), "delete-next",
+                      KeyStroke.getKeyStroke("ENTER"), "notify-field-accept",
+                      KeyStroke.getKeyStroke("shift LEFT"), "selection-backward"
+                            }),
       "PasswordField.margin", new InsetsUIResource(0, 0, 0, 0),
       "PasswordField.selectionBackground", new ColorUIResource(Color.black),
       "PasswordField.selectionForeground", new ColorUIResource(Color.white),
@@ -723,8 +881,8 @@ public abstract class BasicLookAndFeel extends LookAndFeel
                                                                           null),
       "RadioButton.darkShadow", new ColorUIResource(shadow),
       "RadioButton.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
-        "SPACE",  "pressed",
-        "released SPACE", "released"
+        KeyStroke.getKeyStroke("SPACE"),  "pressed",
+        KeyStroke.getKeyStroke("released SPACE"), "released"
       }),
       "RadioButton.font", new FontUIResource("Dialog", Font.PLAIN, 12),
       "RadioButton.foreground", new ColorUIResource(darkShadow),
@@ -818,18 +976,20 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "Slider.background", new ColorUIResource(light),
       "Slider.focus", new ColorUIResource(shadow),
       "Slider.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
-        "PAGE_UP", "positiveBlockIncrement",
-        "PAGE_DOWN", "negativeBlockIncrement",
-        "END",  "maxScroll",
-        "HOME",  "minScroll",
-        "LEFT",  "negativeUnitIncrement",
-        "KP_UP", "positiveUnitIncrement",
-        "KP_DOWN", "negativeUnitIncrement",
-        "UP",  "positiveUnitIncrement",
-        "RIGHT", "positiveUnitIncrement",
-        "KP_LEFT", "negativeUnitIncrement",
-        "DOWN",  "negativeUnitIncrement",
-        "KP_RIGHT", "positiveUnitIncrement"
+            "ctrl PAGE_DOWN", "negativeBlockIncrement",
+            "PAGE_DOWN", "negativeBlockIncrement",
+            "PAGE_UP", "positiveBlockIncrement",
+            "ctrl PAGE_UP", "positiveBlockIncrement",
+            "KP_RIGHT", "positiveUnitIncrement",
+            "DOWN", "negativeUnitIncrement",
+            "KP_LEFT", "negativeUnitIncrement",
+            "RIGHT", "positiveUnitIncrement",
+            "KP_DOWN", "negativeUnitIncrement",
+            "UP", "positiveUnitIncrement",
+            "KP_UP", "positiveUnitIncrement",
+            "LEFT", "negativeUnitIncrement",
+            "HOME", "minScroll",
+            "END", "maxScroll"
       }),
       "Slider.focusInsets", new InsetsUIResource(2, 2, 2, 2),
       "Slider.foreground", new ColorUIResource(light),
@@ -840,6 +1000,9 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "Slider.tickHeight", new Integer(12),
       "Spinner.background", new ColorUIResource(light),
       "Spinner.foreground", new ColorUIResource(light),
+      "Spinner.arrowButtonSize", new DimensionUIResource(16, 5),
+      "Spinner.editorBorderPainted", Boolean.FALSE,
+      "Spinner.font", new FontUIResource("MonoSpaced", Font.PLAIN, 12),
       "SplitPane.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
         "F6",  "toggleFocus",
         "F8",  "startResize",
@@ -857,7 +1020,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "SplitPane.background", new ColorUIResource(light),
       "SplitPane.border", new BasicBorders.SplitPaneBorder(null, null),
       "SplitPane.darkShadow", new ColorUIResource(shadow),
-      "SplitPane.dividerSize", new Integer(10),
+      "SplitPane.dividerSize", new Integer(7),
       "SplitPane.highlight", new ColorUIResource(highLight),
       "SplitPane.shadow", new ColorUIResource(shadow),
       "TabbedPane.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
@@ -871,16 +1034,16 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "TabbedPane.darkShadow", new ColorUIResource(shadow),
       "TabbedPane.focus", new ColorUIResource(darkShadow),
       "TabbedPane.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
-        "LEFT",  "navigateLeft",
-        "KP_UP", "navigateUp",
-        "ctrl DOWN", "requestFocusForVisibleComponent",
-        "UP", "navigateUp",
-        "KP_DOWN", "navigateDown",
-        "RIGHT", "navigateRight",
-        "KP_LEFT", "navigateLeft",
-        "ctrl KP_DOWN", "requestFocusForVisibleComponent",
-        "KP_RIGHT", "navigateRight",
-        "DOWN",  "navigateDown"
+            KeyStroke.getKeyStroke("ctrl DOWN"), "requestFocusForVisibleComponent",
+            KeyStroke.getKeyStroke("KP_UP"), "navigateUp",
+            KeyStroke.getKeyStroke("LEFT"), "navigateLeft",
+            KeyStroke.getKeyStroke("ctrl KP_DOWN"), "requestFocusForVisibleComponent",
+            KeyStroke.getKeyStroke("UP"), "navigateUp",
+            KeyStroke.getKeyStroke("KP_DOWN"), "navigateDown",
+            KeyStroke.getKeyStroke("KP_LEFT"), "navigateLeft",
+            KeyStroke.getKeyStroke("RIGHT"), "navigateRight",
+            KeyStroke.getKeyStroke("KP_RIGHT"), "navigateRight",
+            KeyStroke.getKeyStroke("DOWN"), "navigateDown"
       }),
       "TabbedPane.font", new FontUIResource("Dialog", Font.PLAIN, 12),
       "TabbedPane.foreground", new ColorUIResource(darkShadow),
@@ -888,10 +1051,10 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "TabbedPane.light", new ColorUIResource(highLight),
       "TabbedPane.selectedTabPadInsets", new InsetsUIResource(2, 2, 2, 1),
       "TabbedPane.shadow", new ColorUIResource(shadow),
-      "TabbedPane.tabbedPaneTabAreaInsets", new InsetsUIResource(3, 2, 1, 2),
-      "TabbedPane.tabbedPaneTabInsets", new InsetsUIResource(1, 4, 1, 4),
       "TabbedPane.tabbedPaneContentBorderInsets", new InsetsUIResource(3, 2, 1, 2),
       "TabbedPane.tabbedPaneTabPadInsets", new InsetsUIResource(1, 1, 1, 1),
+      "TabbedPane.tabAreaInsets", new InsetsUIResource(3, 2, 0, 2),
+      "TabbedPane.tabInsets", new InsetsUIResource(0, 4, 1, 4),
       "TabbedPane.tabRunOverlay", new Integer(2),
       "TabbedPane.textIconGap", new Integer(4),
       "Table.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
@@ -976,32 +1139,73 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "Table.selectionBackground", new ColorUIResource(new ColorUIResource(0, 0, 128)),
       "Table.selectionForeground", new ColorUIResource(new ColorUIResource(255, 255, 255)),
       "TableHeader.background", new ColorUIResource(new ColorUIResource(192, 192, 192)),
-      "TableHeader.cellBorder", new BorderUIResource.BevelBorderUIResource(0),
       "TableHeader.font", new FontUIResource("Dialog", Font.PLAIN, 12),
       "TableHeader.foreground", new ColorUIResource(new ColorUIResource(0, 0, 0)),
 
-            "TextArea.background", new ColorUIResource(light),
-      "TextArea.border",
-      new BorderUIResource(BasicBorders.getMarginBorder()),
+      "TextArea.background", new ColorUIResource(light),
+      "TextArea.border", new BorderUIResource(BasicBorders.getMarginBorder()),
       "TextArea.caretBlinkRate", new Integer(500),
       "TextArea.caretForeground", new ColorUIResource(Color.black),
       "TextArea.font", new FontUIResource("MonoSpaced", Font.PLAIN, 12),
       "TextArea.foreground", new ColorUIResource(Color.black),
       "TextArea.inactiveForeground", new ColorUIResource(Color.gray),
-      "TextArea.keyBindings", new JTextComponent.KeyBinding[] {
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_UP,
-                                                             0), "caret-up"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN,
-                                                             0), "caret-down"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP,
-                                                             0), "page-up"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN,
-                                                             0), "page-down"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,
-                                                             0), "insert-break"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,
-                                                             0), "insert-tab")
-          },
+      "TextArea.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
+         KeyStroke.getKeyStroke("shift UP"), "selection-up",
+         KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word",
+         KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word",
+         KeyStroke.getKeyStroke("shift KP_UP"), "selection-up",
+         KeyStroke.getKeyStroke("DOWN"), "caret-down",
+         KeyStroke.getKeyStroke("shift ctrl T"), "previous-link-action",
+         KeyStroke.getKeyStroke("ctrl LEFT"), "caret-previous-word",
+         KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard",
+         KeyStroke.getKeyStroke("END"), "caret-end-line",
+         KeyStroke.getKeyStroke("shift PAGE_UP"), "selection-page-up",
+         KeyStroke.getKeyStroke("KP_UP"), "caret-up",
+         KeyStroke.getKeyStroke("DELETE"), "delete-next",
+         KeyStroke.getKeyStroke("ctrl HOME"), "caret-begin",
+         KeyStroke.getKeyStroke("shift LEFT"), "selection-backward",
+         KeyStroke.getKeyStroke("ctrl END"), "caret-end",
+         KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous",
+         KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-next-word",
+         KeyStroke.getKeyStroke("LEFT"), "caret-backward",
+         KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward",
+         KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward",
+         KeyStroke.getKeyStroke("ctrl SPACE"), "activate-link-action",
+         KeyStroke.getKeyStroke("ctrl H"), "delete-previous",
+         KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect",
+         KeyStroke.getKeyStroke("ENTER"), "insert-break",
+         KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line",
+         KeyStroke.getKeyStroke("RIGHT"), "caret-forward",
+         KeyStroke.getKeyStroke("shift ctrl PAGE_UP"), "selection-page-left",
+         KeyStroke.getKeyStroke("shift DOWN"), "selection-down",
+         KeyStroke.getKeyStroke("PAGE_DOWN"), "page-down",
+         KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward",
+         KeyStroke.getKeyStroke("shift ctrl O"), "toggle-componentOrientation",
+         KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard",
+         KeyStroke.getKeyStroke("shift ctrl PAGE_DOWN"), "selection-page-right",
+         KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard",
+         KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-next-word",
+         KeyStroke.getKeyStroke("shift END"), "selection-end-line",
+         KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-previous-word",
+         KeyStroke.getKeyStroke("HOME"), "caret-begin-line",
+         KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard",
+         KeyStroke.getKeyStroke("KP_DOWN"), "caret-down",
+         KeyStroke.getKeyStroke("ctrl A"), "select-all",
+         KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward",
+         KeyStroke.getKeyStroke("shift ctrl END"), "selection-end",
+         KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard",
+         KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-previous-word",
+         KeyStroke.getKeyStroke("ctrl T"), "next-link-action",
+         KeyStroke.getKeyStroke("shift KP_DOWN"), "selection-down",
+         KeyStroke.getKeyStroke("TAB"), "insert-tab",
+         KeyStroke.getKeyStroke("UP"), "caret-up",
+         KeyStroke.getKeyStroke("shift ctrl HOME"), "selection-begin",
+         KeyStroke.getKeyStroke("shift PAGE_DOWN"), "selection-page-down",
+         KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward",
+         KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-next-word",
+         KeyStroke.getKeyStroke("PAGE_UP"), "page-up",
+         KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard"
+      }),
       "TextArea.margin", new InsetsUIResource(0, 0, 0, 0),
       "TextArea.selectionBackground", new ColorUIResource(Color.black),
       "TextArea.selectionForeground", new ColorUIResource(Color.white),
@@ -1017,17 +1221,41 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "TextField.inactiveForeground", new ColorUIResource(Color.GRAY),
       "TextField.light", new ColorUIResource(highLight),
       "TextField.highlight", new ColorUIResource(light),
-      "TextField.keyBindings", new JTextComponent.KeyBinding[] {
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,
-                                                             0),
-                                      "notify-field-accept"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT,
-                                 InputEvent.SHIFT_DOWN_MASK),
-                                 "selection-backward"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT,
-                                 InputEvent.SHIFT_DOWN_MASK),
-                                 "selection-forward"),
-          },
+      "TextField.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
+         KeyStroke.getKeyStroke("ENTER"), "notify-field-accept",
+         KeyStroke.getKeyStroke("LEFT"), "caret-backward",
+         KeyStroke.getKeyStroke("RIGHT"), "caret-forward",
+         KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous",
+         KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard",
+         KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard",
+         KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard",
+         KeyStroke.getKeyStroke("shift LEFT"), "selection-backward",
+         KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward",
+         KeyStroke.getKeyStroke("HOME"), "caret-begin-line",
+         KeyStroke.getKeyStroke("END"), "caret-end-line",
+         KeyStroke.getKeyStroke("DELETE"), "delete-next",
+         KeyStroke.getKeyStroke("shift ctrl O"), "toggle-componentOrientation",
+         KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward",
+         KeyStroke.getKeyStroke("ctrl H"), "delete-previous",
+         KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward",
+         KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward",
+         KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-next-word",
+         KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard",
+         KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line",
+         KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word",
+         KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-previous-word",
+         KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-next-word",
+         KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard",
+         KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-next-word",
+         KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect",
+         KeyStroke.getKeyStroke("ctrl A"), "select-all",
+         KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward",
+         KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard",
+         KeyStroke.getKeyStroke("ctrl LEFT"), "caret-previous-word",
+         KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-previous-word",
+         KeyStroke.getKeyStroke("shift END"), "selection-end-line",
+         KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word"
+      }),
       "TextField.margin", new InsetsUIResource(0, 0, 0, 0),
       "TextField.selectionBackground", new ColorUIResource(Color.black),
       "TextField.selectionForeground", new ColorUIResource(Color.white),
@@ -1038,20 +1266,63 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "TextPane.font", new FontUIResource("Serif", Font.PLAIN, 12),
       "TextPane.foreground", new ColorUIResource(Color.black),
       "TextPane.inactiveForeground", new ColorUIResource(Color.gray),
-      "TextPane.keyBindings", new JTextComponent.KeyBinding[] {
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_UP,
-                                                             0), "caret-up"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN,
-                                                             0), "caret-down"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP,
-                                                             0), "page-up"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN,
-                                                             0), "page-down"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,
-                                                             0), "insert-break"),
-        new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,
-                                                             0), "insert-tab")
-          },
+      "TextPane.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
+          KeyStroke.getKeyStroke("shift UP"), "selection-up", 
+          KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word", 
+          KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word", 
+          KeyStroke.getKeyStroke("shift KP_UP"), "selection-up", 
+          KeyStroke.getKeyStroke("DOWN"), "caret-down", 
+          KeyStroke.getKeyStroke("shift ctrl T"), "previous-link-action", 
+          KeyStroke.getKeyStroke("ctrl LEFT"), "caret-previous-word", 
+          KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard", 
+          KeyStroke.getKeyStroke("END"), "caret-end-line", 
+          KeyStroke.getKeyStroke("shift PAGE_UP"), "selection-page-up", 
+          KeyStroke.getKeyStroke("KP_UP"), "caret-up", 
+          KeyStroke.getKeyStroke("DELETE"), "delete-next", 
+          KeyStroke.getKeyStroke("ctrl HOME"), "caret-begin", 
+          KeyStroke.getKeyStroke("shift LEFT"), "selection-backward", 
+          KeyStroke.getKeyStroke("ctrl END"), "caret-end", 
+          KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous", 
+          KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-next-word", 
+          KeyStroke.getKeyStroke("LEFT"), "caret-backward", 
+          KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward", 
+          KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward", 
+          KeyStroke.getKeyStroke("ctrl SPACE"), "activate-link-action", 
+          KeyStroke.getKeyStroke("ctrl H"), "delete-previous", 
+          KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect", 
+          KeyStroke.getKeyStroke("ENTER"), "insert-break", 
+          KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line", 
+          KeyStroke.getKeyStroke("RIGHT"), "caret-forward", 
+          KeyStroke.getKeyStroke("shift ctrl PAGE_UP"), "selection-page-left", 
+          KeyStroke.getKeyStroke("shift DOWN"), "selection-down", 
+          KeyStroke.getKeyStroke("PAGE_DOWN"), "page-down", 
+          KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward", 
+          KeyStroke.getKeyStroke("shift ctrl O"), "toggle-componentOrientation", 
+          KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard", 
+          KeyStroke.getKeyStroke("shift ctrl PAGE_DOWN"), "selection-page-right", 
+          KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard", 
+          KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-next-word", 
+          KeyStroke.getKeyStroke("shift END"), "selection-end-line", 
+          KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-previous-word", 
+          KeyStroke.getKeyStroke("HOME"), "caret-begin-line", 
+          KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard", 
+          KeyStroke.getKeyStroke("KP_DOWN"), "caret-down", 
+          KeyStroke.getKeyStroke("ctrl A"), "select-all", 
+          KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward", 
+          KeyStroke.getKeyStroke("shift ctrl END"), "selection-end", 
+          KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard", 
+          KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-previous-word", 
+          KeyStroke.getKeyStroke("ctrl T"), "next-link-action", 
+          KeyStroke.getKeyStroke("shift KP_DOWN"), "selection-down", 
+          KeyStroke.getKeyStroke("TAB"), "insert-tab", 
+          KeyStroke.getKeyStroke("UP"), "caret-up", 
+          KeyStroke.getKeyStroke("shift ctrl HOME"), "selection-begin", 
+          KeyStroke.getKeyStroke("shift PAGE_DOWN"), "selection-page-down", 
+          KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward", 
+          KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-next-word", 
+          KeyStroke.getKeyStroke("PAGE_UP"), "page-up", 
+          KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard"
+      }),
       "TextPane.margin", new InsetsUIResource(3, 3, 3, 3),
       "TextPane.selectionBackground", new ColorUIResource(Color.black),
       "TextPane.selectionForeground", new ColorUIResource(Color.white),
@@ -1063,8 +1334,8 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       new BorderUIResource.CompoundBorderUIResource(null, null),
       "ToggleButton.darkShadow", new ColorUIResource(shadow),
       "ToggleButton.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
-        "SPACE",  "pressed",
-        "released SPACE", "released"
+          KeyStroke.getKeyStroke("SPACE"),  "pressed",
+          KeyStroke.getKeyStroke("released SPACE"), "released"
       }),
       "ToggleButton.font", new FontUIResource("Dialog", Font.PLAIN, 12),
       "ToggleButton.foreground", new ColorUIResource(darkShadow),
@@ -1095,7 +1366,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       "ToolBar.foreground", new ColorUIResource(darkShadow),
       "ToolBar.highlight", new ColorUIResource(highLight),
       "ToolBar.light", new ColorUIResource(highLight),
-      "ToolBar.separatorSize", new DimensionUIResource(20, 20),
+      "ToolBar.separatorSize", new DimensionUIResource(10, 10),
       "ToolBar.shadow", new ColorUIResource(shadow),
       "ToolTip.background", new ColorUIResource(light),
       "ToolTip.border", new BorderUIResource.LineBorderUIResource(Color.lightGray),
@@ -1106,72 +1377,147 @@ public abstract class BasicLookAndFeel extends LookAndFeel
       }),
       "Tree.background", new ColorUIResource(new Color(255, 255, 255)),
       "Tree.changeSelectionWithFocus", Boolean.TRUE,
-//      "Tree.closedIcon", new IconUIResource(new ImageIcon("icons/TreeClosed.png")),
-//      "Tree.collapsedIcon", new IconUIResource(new ImageIcon("icons/TreeCollapsed.png")),
       "Tree.drawsFocusBorderAroundIcon", Boolean.FALSE,
       "Tree.editorBorder", new BorderUIResource.LineBorderUIResource(Color.lightGray),
       "Tree.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
-        "shift PAGE_DOWN", "scrollDownExtendSelection",
-        "PAGE_DOWN", "scrollDownChangeSelection",
-        "END",  "selectLast",
-        "ctrl KP_UP", "selectPreviousChangeLead",
-        "shift END", "selectLastExtendSelection",
-        "HOME",  "selectFirst",
-        "ctrl END", "selectLastChangeLead",
-        "ctrl SLASH", "selectAll",
-        "LEFT",  "selectParent",
-        "shift HOME", "selectFirstExtendSelection",
-        "UP",  "selectPrevious",
-        "ctrl KP_DOWN", "selectNextChangeLead",
-        "RIGHT", "selectChild",
-        "ctrl HOME", "selectFirstChangeLead",
-        "DOWN",  "selectNext",
-        "ctrl KP_LEFT", "scrollLeft",
-        "shift UP", "selectPreviousExtendSelection",
-        "F2",  "startEditing",
-        "ctrl LEFT", "scrollLeft",
-        "ctrl KP_RIGHT","scrollRight",
-        "ctrl UP", "selectPreviousChangeLead",
-        "shift DOWN", "selectNextExtendSelection",
-        "ENTER", "toggle",
-        "KP_UP", "selectPrevious",
-        "KP_DOWN", "selectNext",
-        "ctrl RIGHT", "scrollRight",
-        "KP_LEFT", "selectParent",
-        "KP_RIGHT", "selectChild",
-        "ctrl DOWN", "selectNextChangeLead",
-        "ctrl A", "selectAll",
-        "shift KP_UP", "selectPreviousExtendSelection",
-        "shift KP_DOWN","selectNextExtendSelection",
-        "ctrl SPACE", "toggleSelectionPreserveAnchor",
-        "ctrl shift PAGE_UP", "scrollUpExtendSelection",
-        "ctrl BACK_SLASH", "clearSelection",
-        "shift SPACE", "extendSelection",
-        "ctrl PAGE_UP", "scrollUpChangeLead",
-        "shift PAGE_UP","scrollUpExtendSelection",
-        "SPACE", "toggleSelectionPreserveAnchor",
-        "ctrl shift PAGE_DOWN", "scrollDownExtendSelection",
-        "PAGE_UP",  "scrollUpChangeSelection",
-        "ctrl PAGE_DOWN", "scrollDownChangeLead"
+              KeyStroke.getKeyStroke("ctrl DOWN"), "selectNextChangeLead",
+              KeyStroke.getKeyStroke("shift UP"), "selectPreviousExtendSelection",
+              KeyStroke.getKeyStroke("ctrl RIGHT"), "scrollRight",
+              KeyStroke.getKeyStroke("shift KP_UP"), "selectPreviousExtendSelection",
+              KeyStroke.getKeyStroke("DOWN"), "selectNext",
+              KeyStroke.getKeyStroke("ctrl UP"), "selectPreviousChangeLead",
+              KeyStroke.getKeyStroke("ctrl LEFT"), "scrollLeft",
+              KeyStroke.getKeyStroke("CUT"), "cut",
+              KeyStroke.getKeyStroke("END"), "selectLast",
+              KeyStroke.getKeyStroke("shift PAGE_UP"), "scrollUpExtendSelection",
+              KeyStroke.getKeyStroke("KP_UP"), "selectPrevious",
+              KeyStroke.getKeyStroke("shift ctrl UP"), "selectPreviousExtendSelection",
+              KeyStroke.getKeyStroke("ctrl HOME"), "selectFirstChangeLead",
+              KeyStroke.getKeyStroke("ctrl END"), "selectLastChangeLead",
+              KeyStroke.getKeyStroke("ctrl PAGE_DOWN"), "scrollDownChangeLead",
+              KeyStroke.getKeyStroke("LEFT"), "selectParent",
+              KeyStroke.getKeyStroke("ctrl PAGE_UP"), "scrollUpChangeLead",
+              KeyStroke.getKeyStroke("KP_LEFT"), "selectParent",
+              KeyStroke.getKeyStroke("SPACE"), "addToSelection",
+              KeyStroke.getKeyStroke("ctrl SPACE"), "toggleAndAnchor",
+              KeyStroke.getKeyStroke("shift SPACE"), "extendTo",
+              KeyStroke.getKeyStroke("shift ctrl SPACE"), "moveSelectionTo",
+              KeyStroke.getKeyStroke("ADD"), "expand",
+              KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "clearSelection",
+              KeyStroke.getKeyStroke("shift ctrl DOWN"), "selectNextExtendSelection",
+              KeyStroke.getKeyStroke("shift HOME"), "selectFirstExtendSelection",
+              KeyStroke.getKeyStroke("RIGHT"), "selectChild",
+              KeyStroke.getKeyStroke("shift ctrl PAGE_UP"), "scrollUpExtendSelection",
+              KeyStroke.getKeyStroke("shift DOWN"), "selectNextExtendSelection",
+              KeyStroke.getKeyStroke("PAGE_DOWN"), "scrollDownChangeSelection",
+              KeyStroke.getKeyStroke("shift ctrl KP_UP"), "selectPreviousExtendSelection",
+              KeyStroke.getKeyStroke("SUBTRACT"), "collapse",
+              KeyStroke.getKeyStroke("ctrl X"), "cut",
+              KeyStroke.getKeyStroke("shift ctrl PAGE_DOWN"), "scrollDownExtendSelection",
+              KeyStroke.getKeyStroke("ctrl SLASH"), "selectAll",
+              KeyStroke.getKeyStroke("ctrl C"), "copy",
+              KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "scrollRight",
+              KeyStroke.getKeyStroke("shift END"), "selectLastExtendSelection",
+              KeyStroke.getKeyStroke("shift ctrl KP_DOWN"), "selectNextExtendSelection",
+              KeyStroke.getKeyStroke("ctrl KP_LEFT"), "scrollLeft",
+              KeyStroke.getKeyStroke("HOME"), "selectFirst",
+              KeyStroke.getKeyStroke("ctrl V"), "paste",
+              KeyStroke.getKeyStroke("KP_DOWN"), "selectNext",
+              KeyStroke.getKeyStroke("ctrl A"), "selectAll",
+              KeyStroke.getKeyStroke("ctrl KP_DOWN"), "selectNextChangeLead",
+              KeyStroke.getKeyStroke("shift ctrl END"), "selectLastExtendSelection",
+              KeyStroke.getKeyStroke("COPY"), "copy",
+              KeyStroke.getKeyStroke("ctrl KP_UP"), "selectPreviousChangeLead",
+              KeyStroke.getKeyStroke("shift KP_DOWN"), "selectNextExtendSelection",
+              KeyStroke.getKeyStroke("UP"), "selectPrevious",
+              KeyStroke.getKeyStroke("shift ctrl HOME"), "selectFirstExtendSelection",
+              KeyStroke.getKeyStroke("shift PAGE_DOWN"), "scrollDownExtendSelection",
+              KeyStroke.getKeyStroke("KP_RIGHT"), "selectChild",
+              KeyStroke.getKeyStroke("F2"), "startEditing",
+              KeyStroke.getKeyStroke("PAGE_UP"), "scrollUpChangeSelection",
+              KeyStroke.getKeyStroke("PASTE"), "paste"
       }),
       "Tree.font", new FontUIResource("Dialog", Font.PLAIN, 12),
       "Tree.foreground", new ColorUIResource(Color.black),
       "Tree.hash", new ColorUIResource(new Color(128, 128, 128)),
       "Tree.leftChildIndent", new Integer(7),
       "Tree.rightChildIndent", new Integer(13),
-      "Tree.rowHeight", new Integer(0),
+      "Tree.rowHeight", new Integer(16),
       "Tree.scrollsOnExpand", Boolean.TRUE,
       "Tree.selectionBackground", new ColorUIResource(Color.black),
       "Tree.nonSelectionBackground", new ColorUIResource(new Color(255, 255, 255)),
       "Tree.selectionBorderColor", new ColorUIResource(Color.black),
       "Tree.selectionBorder", new BorderUIResource.LineBorderUIResource(Color.black),
       "Tree.selectionForeground", new ColorUIResource(new Color(255, 255, 255)),
-      "Tree.textBackground", new ColorUIResource(new Color(192, 192, 192)),
-      "Tree.textForeground", new ColorUIResource(new Color(0, 0, 0)),
       "Viewport.background", new ColorUIResource(light),
       "Viewport.foreground", new ColorUIResource(Color.black),
       "Viewport.font", new FontUIResource("Dialog", Font.PLAIN, 12)
     };
     defaults.putDefaults(uiDefaults);
   }
-} // class BasicLookAndFeel
+
+  /**
+   * Returns the <code>ActionMap</code> that stores all the actions that are
+   * responsibly for rendering auditory cues.
+   *
+   * @return the action map that stores all the actions that are
+   *         responsibly for rendering auditory cues
+   *
+   * @see #createAudioAction
+   * @see #playSound
+   *
+   * @since 1.4
+   */
+  protected ActionMap getAudioActionMap()
+  {
+    if (audioActionMap != null)
+      audioActionMap = new ActionMap();
+    return audioActionMap;
+  }
+
+  /**
+   * Creates an <code>Action</code> that can play an auditory cue specified by
+   * the key. The UIDefaults value for the key is normally a String that points
+   * to an audio file relative to the current package.
+   *
+   * @param key a UIDefaults key that specifies the sound
+   *
+   * @return an action that can play the sound
+   *
+   * @see #playSound
+   *
+   * @since 1.4
+   */
+  protected Action createAudioAction(Object key)
+  {
+    return new AudioAction(key);
+  }
+
+  /**
+   * Plays the sound of the action if it is listed in
+   * <code>AuditoryCues.playList</code>.
+   *
+   * @param audioAction the audio action to play
+   *
+   * @since 1.4
+   */
+  protected void playSound(Action audioAction)
+  {
+    if (audioAction instanceof AudioAction)
+      {
+        Object[] playList = (Object[]) UIManager.get("AuditoryCues.playList");
+        for (int i = 0; i < playList.length; ++i)
+          {
+            if (playList[i].equals(((AudioAction) audioAction).key))
+              {
+                ActionEvent ev = new ActionEvent(this,
+                                                 ActionEvent.ACTION_PERFORMED,
+                                                 (String) playList[i]);
+                audioAction.actionPerformed(ev);
+                break;
+              }
+          }
+      }
+  }
+
+}
index c8754a3e049e1e18d12711d8590822afadd4a199..63f0ce2068b4a3704a6bf30bf37b78fe6e3c6d81 100644 (file)
@@ -206,7 +206,10 @@ public class BasicMenuItemUI extends MenuItemUI
             map.remove((KeyStroke)e.getOldValue());
           else
             map = new ComponentInputMapUIResource(menuItem);
-          map.put((KeyStroke)e.getNewValue(), "doClick");
+
+          KeyStroke accelerator = (KeyStroke) e.getNewValue();
+          if (accelerator != null)
+            map.put(accelerator, "doClick");
         }
     }
   }
@@ -485,7 +488,9 @@ public class BasicMenuItemUI extends MenuItemUI
     InputMap focusedWindowMap = SwingUtilities.getUIInputMap(menuItem, JComponent.WHEN_IN_FOCUSED_WINDOW);
     if (focusedWindowMap == null)
       focusedWindowMap = new ComponentInputMapUIResource(menuItem);
-    focusedWindowMap.put(menuItem.getAccelerator(), "doClick");
+    KeyStroke accelerator = menuItem.getAccelerator();
+    if (accelerator != null)
+      focusedWindowMap.put(accelerator, "doClick");
     SwingUtilities.replaceUIInputMap(menuItem, JComponent.WHEN_IN_FOCUSED_WINDOW, focusedWindowMap);
     
     ActionMap UIActionMap = SwingUtilities.getUIActionMap(menuItem);
@@ -555,17 +560,16 @@ public class BasicMenuItemUI extends MenuItemUI
     // Menu item is considered to be highlighted when it is selected.
     // But we don't want to paint the background of JCheckBoxMenuItems
     ButtonModel mod = menuItem.getModel();
-    if ((menuItem.isSelected() && checkIcon == null) || (mod != null && 
-        mod.isArmed())
-        && (menuItem.getParent() instanceof MenuElement))
+    if (menuItem.isContentAreaFilled())
       {
-        if (menuItem.isContentAreaFilled())
-          {
-            g.setColor(selectionBackground);
-            g.fillRect(0, 0, menuItem.getWidth(), menuItem.getHeight());
-          }
-      }
-
+        if ((menuItem.isSelected() && checkIcon == null) || (mod != null && 
+            mod.isArmed())
+            && (menuItem.getParent() instanceof MenuElement))
+          g.setColor(selectionBackground);
+        else
+          g.setColor(bgColor);
+        g.fillRect(0, 0, menuItem.getWidth(), menuItem.getHeight());
+      } 
   }
 
   /**
@@ -608,7 +612,7 @@ public class BasicMenuItemUI extends MenuItemUI
     FontMetrics fm = g.getFontMetrics(f);
     SwingUtilities.calculateInnerArea(m, br);
     SwingUtilities.calculateInsetArea(br, m.getInsets(), vr);
-    paintBackground(g, m, m.getBackground());
+    paintBackground(g, m, background);
 
     /*
      * MenuItems insets are equal to menuItems margin, space between text and
index 6b37d315fa84f3f5b7261b34070e35adb9e30251..005a3b394a8460df9a69121590e933a5576fdb5e 100644 (file)
@@ -774,7 +774,7 @@ public class BasicOptionPaneUI extends OptionPaneUI
        // it will create a box and burst the string.
        // otherwise, it will just create a label and re-call 
        // this method with the label o.O
-       if (msg.toString().length() > maxll)
+       if (msg.toString().length() > maxll || msg.toString().contains("\n"))
          {
            Box tmp = new Box(BoxLayout.Y_AXIS);
            burstStringInto(tmp, msg.toString(), maxll);
@@ -796,17 +796,35 @@ public class BasicOptionPaneUI extends OptionPaneUI
    */
   protected void burstStringInto(Container c, String d, int maxll)
   {
-    // FIXME: Verify that this is the correct behaviour.
-    // One interpretation of the spec is that this method
-    // should recursively call itself to create (and add) 
-    // JLabels to the container if the length of the String d
-    // is greater than maxll.
-    // but in practice, even with a really long string, this is 
-    // all that happens.
     if (d == null || c == null)
       return;
-    JLabel label = new JLabel(d);
+
+    int newlineIndex = d.indexOf('\n');
+    String line;
+    String remainder;
+    if (newlineIndex >= 0 && newlineIndex < maxll)
+      {
+        line = d.substring(0, newlineIndex);
+        remainder = d.substring(newlineIndex + 1);
+      }
+    else
+      {
+        line = d.substring(0, maxll);
+        remainder = d.substring(maxll);
+      }
+    JLabel label = new JLabel(line);
     c.add(label);
+
+    // If there is nothing left to burst, then we can stop.
+    if (remainder.length() == 0)
+      return;
+
+    // Recursivly call ourselves to burst the remainder of the string, 
+    if ((remainder.length() > maxll || remainder.contains("\n")))
+      burstStringInto(c, remainder, maxll);
+    else
+      // Add the remainder to the container and be done.
+      c.add(new JLabel(remainder)); 
   }
 
   /**
index 808ed2763e9d1c8216d22fdf157ff4bea79dd131..71671b79943b5ab50abcb426eeba0424909cd741 100644 (file)
@@ -505,7 +505,8 @@ public class BasicScrollPaneUI extends ScrollPaneUI
     JViewport oldViewport = (JViewport) ev.getOldValue();
     oldViewport.removeChangeListener(viewportChangeListener);
     JViewport newViewport = (JViewport) ev.getNewValue();
-    oldViewport.addChangeListener(viewportChangeListener);
+    newViewport.addChangeListener(viewportChangeListener);
+    syncScrollPaneWithViewport();
   }
 }
 
index 69ed2be7c616a184074c7c50d73ab91998d8cb08..ff17ff084c2c31f333950ba77dfe523ba7b14822 100644 (file)
@@ -376,6 +376,11 @@ public class BasicSplitPaneDivider extends Container
        dividerSize = getSize();
        border.paintBorder(this, g, 0, 0, dividerSize.width, dividerSize.height);
       }
+    if (splitPane.isOneTouchExpandable())
+      {
+        ((BasicArrowButton) rightButton).paint(g);
+        ((BasicArrowButton) leftButton).paint(g);
+      }
   }
 
   /**
@@ -583,7 +588,7 @@ public class BasicSplitPaneDivider extends Container
     public void mouseReleased(MouseEvent e)
     {
       if (isDragging)
-       dragger.completeDrag(e);
+        dragger.completeDrag(e);
       isDragging = false;
     }
 
@@ -596,7 +601,7 @@ public class BasicSplitPaneDivider extends Container
     public void mouseDragged(MouseEvent e)
     {
       if (dragger != null)
-       dragger.continueDrag(e);
+        dragger.continueDrag(e);
     }
 
     /**
index ce9ea3ec7f1c3e641b3f243cabc136c591d5e2cd..a8f52cef617af695b0d92ba12e92e52add44e10a 100644 (file)
@@ -208,7 +208,7 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
           incrButton = createIncreaseButton();
           decrButton = createDecreaseButton();
         }
-      tabPane.layout();
+      tabPane.revalidate();
       tabPane.repaint();
     }
   }
@@ -241,6 +241,9 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
      */
     public void calculateLayoutInfo()
     {
+      assureRectsCreated(tabPane.getTabCount());
+      contentRect = SwingUtilities.calculateInnerArea(tabPane, contentRect);
+
       calculateTabRects(tabPane.getTabPlacement(), tabPane.getTabCount());
 
       if (tabPane.getSelectedIndex() != -1)
@@ -286,8 +289,6 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
               componentWidth = Math.max(componentWidth, dims.width);
             }
         }
-      Insets insets = tabPane.getInsets();
-
       if (tabPlacement == SwingConstants.TOP
           || tabPlacement == SwingConstants.BOTTOM)
         {
@@ -331,7 +332,6 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
     {
       if (tabCount == 0)
         return;
-      assureRectsCreated(tabCount);
 
       FontMetrics fm = getFontMetrics();
       SwingUtilities.calculateInnerArea(tabPane, calcRect);
@@ -944,13 +944,11 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
     {
       if (tabCount == 0)
         return;
-      assureRectsCreated(tabCount);
 
       FontMetrics fm = getFontMetrics();
       SwingUtilities.calculateInnerArea(tabPane, calcRect);
       Insets tabAreaInsets = getTabAreaInsets(tabPlacement);
       Insets insets = tabPane.getInsets();
-      int max = 0;
       int runs = 1;
       int start = 0;
       int top = 0;
@@ -959,7 +957,6 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
         {
           int maxHeight = calculateMaxTabHeight(tabPlacement);
           calcRect.width -= tabAreaInsets.left + tabAreaInsets.right;
-          max = calcRect.width + tabAreaInsets.left + insets.left;
           start = tabAreaInsets.left + insets.left;
           int width = 0;
           int runWidth = start;
@@ -996,7 +993,6 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
           int maxWidth = calculateMaxTabWidth(tabPlacement);
 
           calcRect.height -= tabAreaInsets.top + tabAreaInsets.bottom;
-          max = calcRect.height + tabAreaInsets.top;
           int height = 0;
           start = tabAreaInsets.top + insets.top;
           int runHeight = start;
@@ -1048,8 +1044,8 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
       if (tabCount == 0)
         return;
       int tabPlacement = tabPane.getTabPlacement();
-      incrButton.hide();
-      decrButton.hide();
+      incrButton.setVisible(false);
+      decrButton.setVisible(false);
       if (tabPlacement == SwingConstants.TOP
           || tabPlacement == SwingConstants.BOTTOM)
         {
@@ -1068,8 +1064,8 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
                                    decrDims.width, tabAreaRect.height);
 
               tabAreaRect.width -= decrDims.width + incrDims.width;
-              incrButton.show();
-              decrButton.show();
+              incrButton.setVisible(true);
+              decrButton.setVisible(true);
             }
         }
 
@@ -1092,8 +1088,8 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
                                    incrDims.height);
 
               tabAreaRect.height -= decrDims.height + incrDims.height;
-              incrButton.show();
-              decrButton.show();
+              incrButton.setVisible(true);
+              decrButton.setVisible(true);
             }
         }
       viewport.setBounds(tabAreaRect.x, tabAreaRect.y, tabAreaRect.width,
@@ -1348,6 +1344,8 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
   public BasicTabbedPaneUI()
   {
     super();
+    rects = new Rectangle[0];
+    tabRuns = new int[10];
   }
 
   /**
@@ -1460,7 +1458,6 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
         
         layoutManager = createLayoutManager();
         tabPane.setLayout(layoutManager);
-        tabPane.layout();
       }
   }
 
@@ -1552,9 +1549,9 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
     textIconGap = UIManager.getInt("TabbedPane.textIconGap");
     tabRunOverlay = UIManager.getInt("TabbedPane.tabRunOverlay");
 
-    tabInsets = UIManager.getInsets("TabbedPane.tabbedPaneTabInsets");
+    tabInsets = UIManager.getInsets("TabbedPane.tabInsets");
     selectedTabPadInsets = UIManager.getInsets("TabbedPane.tabbedPaneTabPadInsets");
-    tabAreaInsets = UIManager.getInsets("TabbedPane.tabbedPaneTabAreaInsets");
+    tabAreaInsets = UIManager.getInsets("TabbedPane.tabAreaInsets");
     contentBorderInsets = UIManager.getInsets("TabbedPane.tabbedPaneContentBorderInsets");
 
     calcRect = new Rectangle();
@@ -1884,7 +1881,8 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
   protected void paintIcon(Graphics g, int tabPlacement, int tabIndex,
                            Icon icon, Rectangle iconRect, boolean isSelected)
   {
-    icon.paintIcon(tabPane, g, iconRect.x, iconRect.y);
+    if (icon != null)
+      icon.paintIcon(tabPane, g, iconRect.x, iconRect.y);
   }
 
   /**
@@ -2110,7 +2108,6 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
   protected void paintContentBorder(Graphics g, int tabPlacement,
                                     int selectedIndex)
   {
-    Insets insets = getContentBorderInsets(tabPlacement);
     int x = contentRect.x;
     int y = contentRect.y;
     int w = contentRect.width;
@@ -2396,16 +2393,13 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
    */
   protected void assureRectsCreated(int tabCount)
   {
-    if (rects == null)
-      rects = new Rectangle[tabCount];
-    if (tabCount == rects.length)
-      return;
-    else
+    if (rects.length < tabCount)
       {
-        int numToCopy = Math.min(tabCount, rects.length);
-        Rectangle[] tmp = new Rectangle[tabCount];
-        System.arraycopy(rects, 0, tmp, 0, numToCopy);
-        rects = tmp;
+        Rectangle[] old = rects;
+        rects = new Rectangle[tabCount];
+        System.arraycopy(old, 0, rects, 0, old.length);
+        for (int i = old.length; i < rects.length; i++)
+          rects[i] = new Rectangle();
       }
   }
 
@@ -2763,7 +2757,7 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
    */
   protected FontMetrics getFontMetrics()
   {
-    FontMetrics fm = tabPane.getToolkit().getFontMetrics(tabPane.getFont());
+    FontMetrics fm = tabPane.getFontMetrics(tabPane.getFont());
     return fm;
   }
 
index ec0467a74f3bdc22246c7ecaa27acf364c8b7195..9c8a5ef9598c288ca84975c86905dc123b817e07 100644 (file)
@@ -139,6 +139,7 @@ public class BasicTableHeaderUI extends TableHeaderUI
   public void installUI(JComponent c)
   {
     header = (JTableHeader) c;
+    rendererPane = new CellRendererPane();
     installDefaults();
     installKeyboardActions();
     installListeners();
@@ -194,18 +195,15 @@ public class BasicTableHeaderUI extends TableHeaderUI
                                                                 false, // isSelected
                                                                 false, // isFocused
                                                                 -1, i);
+            // FIXME: The following settings should be performed in
+            // rend.getTableCellRendererComponent().
             comp.setFont(header.getFont());
             comp.setBackground(header.getBackground());
             comp.setForeground(header.getForeground());
             if (comp instanceof JComponent)
               ((JComponent)comp).setBorder(cellBorder);
-            gfx.translate(bounds.x, bounds.y);
-            gfx.setClip(0, 0, bounds.width, bounds.height);
-            comp.setSize(bounds.width, bounds.height);
-            comp.setLocation(0,0);
-            comp.paint(gfx);
-            gfx.translate(-bounds.x, -bounds.y);
-            gfx.setClip(oldClip);
+            rendererPane.paintComponent(gfx, comp, header, bounds.x, bounds.y,
+                                        bounds.width, bounds.height);
           }
       }
 
index 015443946d720a5342744c83e4a498e929850cbd..18b69120d115d0542d379bcd7508e4b4be1d33cd 100644 (file)
@@ -1193,29 +1193,9 @@ public class BasicTableUI extends TableUI
                  TableCellRenderer rend, TableModel data,
                  int rowLead, int colLead)
   {
-    boolean rowSelAllowed = table.getRowSelectionAllowed();
-    boolean colSelAllowed = table.getColumnSelectionAllowed();
-    boolean isSel = false;
-    if (rowSelAllowed && colSelAllowed || !rowSelAllowed && !colSelAllowed)
-      isSel = table.isCellSelected(row, col);
-    else
-      isSel = table.isRowSelected(row) && table.getRowSelectionAllowed()
-           || table.isColumnSelected(col) && table.getColumnSelectionAllowed();
-
-    // Determine the focused cell. The focused cell is the cell at the
-    // leadSelectionIndices of the row and column selection model.
-    ListSelectionModel rowSel = table.getSelectionModel();
-    ListSelectionModel colSel = table.getColumnModel().getSelectionModel();
-    boolean hasFocus = table.hasFocus() && table.isEnabled()
-                       && rowSel.getLeadSelectionIndex() == row
-                       && colSel.getLeadSelectionIndex() == col;
-
-    Component comp = rend.getTableCellRendererComponent(table,
-                                                       data.getValueAt(row, col),
-                                                       isSel, hasFocus, row, col);
-    
+    Component comp = table.prepareRenderer(rend, row, col);
     rendererPane.paintComponent(g, comp, table, bounds);
-    
+
     // FIXME: this is manual painting of the Caret, why doesn't the 
     // JTextField take care of this itself?
     if (comp instanceof JTextField)
@@ -1263,7 +1243,7 @@ public class BasicTableUI extends TableUI
                                              width - gap.width + 1,
                                              height - gap.height);
             if (bounds.intersects(clip))
-              {                                                     
+              {           
                 paintCell(gfx, r, c, bounds, table.getCellRenderer(r, c),
                           table.getModel(),
                           table.getSelectionModel().getLeadSelectionIndex(),
@@ -1286,12 +1266,10 @@ public class BasicTableUI extends TableUI
         x = x0;
         Color save = gfx.getColor();
         gfx.setColor(grid);
-        boolean paintedLine = false;
         for (int c = 0; c < ncols && x < xmax; ++c)
           {
             x += cols.getColumn(c).getWidth();
             gfx.drawLine(x, y0, x, ymax);
-            paintedLine = true;
           }
         gfx.setColor(save);
       }
@@ -1302,12 +1280,10 @@ public class BasicTableUI extends TableUI
         y = y0;
         Color save = gfx.getColor();
         gfx.setColor(grid);
-        boolean paintedLine = false;
         for (int r = 0; r < nrows && y < ymax; ++r)
           {
             y += height;
             gfx.drawLine(x0, y, xmax, y);
-            paintedLine = true;
           }
         gfx.setColor(save);
       }
index e8eeece3b328d52c7b5ea490793b293b83b3e94e..fc3889484199ff39714a70dab0ea35fefa478288 100644 (file)
@@ -46,15 +46,20 @@ import java.awt.Insets;
 import java.awt.Point;
 import java.awt.Rectangle;
 import java.awt.Shape;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
 import java.awt.event.FocusEvent;
 import java.awt.event.FocusListener;
+import java.awt.event.KeyEvent;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 
+import javax.swing.AbstractAction;
 import javax.swing.Action;
 import javax.swing.ActionMap;
 import javax.swing.InputMap;
 import javax.swing.JComponent;
+import javax.swing.KeyStroke;
 import javax.swing.LookAndFeel;
 import javax.swing.SwingConstants;
 import javax.swing.SwingUtilities;
@@ -62,6 +67,7 @@ import javax.swing.UIManager;
 import javax.swing.event.DocumentEvent;
 import javax.swing.event.DocumentListener;
 import javax.swing.plaf.ActionMapUIResource;
+import javax.swing.plaf.InputMapUIResource;
 import javax.swing.plaf.TextUI;
 import javax.swing.plaf.UIResource;
 import javax.swing.text.BadLocationException;
@@ -334,9 +340,9 @@ public abstract class BasicTextUI extends TextUI
      * Returns the document position that is (visually) nearest to the given
      * document position <code>pos</code> in the given direction <code>d</code>.
      *
-     * @param c the text component
      * @param pos the document position
      * @param b the bias for <code>pos</code>
+     * @param a the allocation for the view
      * @param d the direction, must be either {@link SwingConstants#NORTH},
      *        {@link SwingConstants#SOUTH}, {@link SwingConstants#WEST} or
      *        {@link SwingConstants#EAST}
@@ -351,12 +357,11 @@ public abstract class BasicTextUI extends TextUI
      * @throws BadLocationException if <code>pos</code> is not a valid offset in
      *         the document model
      */
-    public int getNextVisualPositionFrom(JTextComponent c, int pos,
-                                         Position.Bias b, int d,
-                                         Position.Bias[] biasRet)
+    public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a,
+                                         int d, Position.Bias[] biasRet)
       throws BadLocationException
     {
-      return view.getNextVisualPositionFrom(c, pos, b, d, biasRet);
+      return view.getNextVisualPositionFrom(pos, b, a, d, biasRet);
     }
   }
 
@@ -616,15 +621,25 @@ public abstract class BasicTextUI extends TextUI
    */
   protected Keymap createKeymap()
   {
+    JTextComponent.KeyBinding[] bindings = null;
     String prefix = getPropertyPrefix();
-    JTextComponent.KeyBinding[] bindings = 
-      (JTextComponent.KeyBinding[]) UIManager.get(prefix + ".keyBindings");
+    InputMapUIResource m = (InputMapUIResource) UIManager.get(prefix + ".focusInputMap");
+    if (m != null)
+      {
+        KeyStroke[] keys = m.keys();
+        int len = keys.length;
+        bindings = new JTextComponent.KeyBinding[len];
+        for (int i = 0; i < len; i++)
+          {
+            KeyStroke curr = keys[i];
+            bindings[i] = new JTextComponent.KeyBinding(curr,
+                                                        (String) m.get(curr));
+          }
+      }
     if (bindings == null)
       {
         bindings = new JTextComponent.KeyBinding[0];
-        // FIXME: Putting something into the defaults map is certainly wrong.
-        // Must be fixed somehow.
-        UIManager.put(prefix + ".keyBindings", bindings);
+        UIManager.put(prefix + ".focusInputMap", bindings);
       }
 
     Keymap km = JTextComponent.addKeymap(getKeymapName(), 
@@ -637,18 +652,45 @@ public abstract class BasicTextUI extends TextUI
    * Installs the keyboard actions on the text components.
    */
   protected void installKeyboardActions()
-  {    
-    // load any bindings for the older Keymap interface
+  {
+    // load key bindings for the older interface
     Keymap km = JTextComponent.getKeymap(getKeymapName());
     if (km == null)
       km = createKeymap();
     textComponent.setKeymap(km);
 
     // load any bindings for the newer InputMap / ActionMap interface
-    SwingUtilities.replaceUIInputMap(textComponent, 
-                                     JComponent.WHEN_FOCUSED,
+    SwingUtilities.replaceUIInputMap(textComponent, JComponent.WHEN_FOCUSED,
                                      getInputMap(JComponent.WHEN_FOCUSED));
-    SwingUtilities.replaceUIActionMap(textComponent, getActionMap());
+    SwingUtilities.replaceUIActionMap(textComponent, createActionMap());
+    
+    ActionMap parentActionMap = new ActionMapUIResource();
+    Action[] actions = textComponent.getActions();
+    for (int j = 0; j < actions.length; j++)
+      {
+        Action currAction = actions[j];
+        parentActionMap.put(currAction.getValue(Action.NAME), currAction);
+      }
+    
+    SwingUtilities.replaceUIActionMap(textComponent, parentActionMap);
+  }
+  
+  /**
+   * Creates an ActionMap to be installed on the text component.
+   * 
+   * @return an ActionMap to be installed on the text component
+   */
+  ActionMap createActionMap()
+  {
+    Action[] actions = textComponent.getActions();
+    ActionMap am = new ActionMapUIResource();
+    for (int i = 0; i < actions.length; ++i)
+      {
+        String name = (String) actions[i].getValue(Action.NAME);
+        if (name != null)
+          am.put(name, actions[i]);
+      }
+    return am;
   }
 
   /**
@@ -674,46 +716,6 @@ public abstract class BasicTextUI extends TextUI
       }
   }
 
-  /**
-   * Returns the ActionMap to be installed on the text component.
-   *
-   * @return the ActionMap to be installed on the text component
-   */
-  // FIXME: The UIDefaults have no entries for .actionMap, so this should
-  // be handled somehow different.
-  ActionMap getActionMap()
-  {
-    String prefix = getPropertyPrefix();
-    ActionMap am = (ActionMap) UIManager.get(prefix + ".actionMap");
-    if (am == null)
-      {
-        am = createActionMap();
-        // FIXME: Putting something in the UIDefaults map is certainly wrong.
-        // However, the whole method seems wrong and must be replaced by
-        // something that is less wrong.
-        UIManager.put(prefix + ".actionMap", am);
-      }
-    return am;
-  }
-
-  /**
-   * Creates an ActionMap to be installed on the text component.
-   *
-   * @return an ActionMap to be installed on the text component
-   */
-  ActionMap createActionMap()
-  {
-    Action[] actions = textComponent.getActions();
-    ActionMap am = new ActionMapUIResource();
-    for (int i = 0; i < actions.length; ++i)
-      {
-        String name = (String) actions[i].getValue(Action.NAME);
-        if (name != null)
-          am.put(name, actions[i]);
-      }
-    return am;
-  }
-
   /**
    * Uninstalls this TextUI from the text component.
    *
index 7bf2a4ab167ad5b773653de798edd5b441079228..261db687aa870abb3fb15ae4862fe3a246d9bea9 100644 (file)
@@ -1060,7 +1060,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
       isDragging = true;
 
       if (dragWindow != null)
-       dragWindow.setOffset(new Point(e.getX(), e.getY()));
+       dragWindow.setOffset(new Point(cachedBounds.width/2, cachedBounds.height/2));
 
       dragTo(e.getPoint(), origin);
     }
index 2d54983e61f9c42c1c0138d5861869203b29891f..f2ebcfca9ac002ab8ed15df57a94e5cb828e8b45 100644 (file)
@@ -112,7 +112,6 @@ import javax.swing.tree.TreeSelectionModel;
  * the Basic look and feel.
  * 
  * @see javax.swing.JTree
- *
  * @author Lillian Angel (langel@redhat.com)
  * @author Sascha Brawer (brawer@dandelis.ch)
  */
@@ -173,7 +172,7 @@ public class BasicTreeUI extends TreeUI
 
   /** Size needed to completely display all the nodes. */
   protected Dimension preferredSize;
-  
+
   /** Minimum size needed to completely display all the nodes. */
   protected Dimension preferredMinSize;
 
@@ -225,7 +224,7 @@ public class BasicTreeUI extends TreeUI
 
   /** Set to true if the editor has a different size than the renderer. */
   protected boolean editorHasDifferentSize;
-  
+
   /** The action listener for the editor's Timer. */
   Timer editorTimer = new EditorUpdateTimer();
 
@@ -234,29 +233,38 @@ public class BasicTreeUI extends TreeUI
 
   /** The action bound to KeyStrokes. */
   TreeAction action;
-  
+
   /** Boolean to keep track of editing. */
   boolean isEditing;
-  
+
   /** The current path of the visible nodes in the tree. */
   TreePath currentVisiblePath;
-  
+
   /** The gap between the icon and text. */
   int gap = 4;
-  
-  /** Default row height, if none was set. */
-  int rowHeight = 20;
+
+  /** The max height of the nodes in the tree. */
+  int maxHeight = 0;
 
   /** Listeners */
   private PropertyChangeListener propertyChangeListener;
+
   private FocusListener focusListener;
+
   private TreeSelectionListener treeSelectionListener;
+
   private MouseListener mouseListener;
+
   private KeyListener keyListener;
+
   private PropertyChangeListener selectionModelPropertyChangeListener;
+
   private ComponentListener componentListener;
+
   CellEditorListener cellEditorListener;
+
   private TreeExpansionListener treeExpansionListener;
+
   private TreeModelListener treeModelListener;
 
   /**
@@ -437,7 +445,7 @@ public class BasicTreeUI extends TreeUI
   protected void setRowHeight(int rowHeight)
   {
     if (rowHeight == 0)
-      rowHeight = this.rowHeight;
+      rowHeight = Math.max(getMaxHeight(tree), 20);
     treeState.setRowHeight(rowHeight);
   }
 
@@ -625,19 +633,49 @@ public class BasicTreeUI extends TreeUI
    */
   public Rectangle getPathBounds(JTree tree, TreePath path)
   {
-    Rectangle bounds = null;
     int row = -1;
     Object cell = null;
     if (path != null)
       {
         row = getRowForPath(tree, path);
         cell = path.getLastPathComponent();
-        bounds = new Rectangle(0, row * getRowHeight(), 0, 0);
       }
-    return nodeDimensions.getNodeDimensions(cell, row,
-                                            getLevel(cell),
+    return nodeDimensions.getNodeDimensions(cell, row, getLevel(cell),
                                             tree.isExpanded(path),
-                                            bounds);
+                                            new Rectangle());
+  }
+
+  /**
+   * Returns the max height of all the nodes in the tree.
+   * 
+   * @param tree -
+   *          the current tree
+   * @return the max height.
+   */
+  private int getMaxHeight(JTree tree)
+  {
+    if (maxHeight != 0)
+      return maxHeight;
+
+    Icon e = UIManager.getIcon("Tree.openIcon");
+    Icon c = UIManager.getIcon("Tree.closedIcon");
+    Icon l = UIManager.getIcon("Tree.leafIcon");
+    int rc = getRowCount(tree);
+    int iconHeight = 0;
+
+    for (int row = 0; row < rc; row++)
+      {
+        if (isLeaf(row))
+          iconHeight = l.getIconHeight();
+        else if (tree.isExpanded(row))
+          iconHeight = e.getIconHeight();
+        else
+          iconHeight = c.getIconHeight();
+
+        maxHeight = Math.max(maxHeight, iconHeight + gap);
+      }
+
+    return maxHeight;
   }
 
   /**
@@ -684,7 +722,7 @@ public class BasicTreeUI extends TreeUI
           {
             if (dest.equals(nodes[row]))
               return row;
-            row++;          
+            row++;
           }
       }
     return -1;
@@ -720,7 +758,7 @@ public class BasicTreeUI extends TreeUI
    */
   public TreePath getClosestPathForLocation(JTree tree, int x, int y)
   {
-    int row = Math.round(y / getRowHeight());
+    int row = Math.round(y / getMaxHeight(tree));
     TreePath path = getPathForRow(tree, row);
 
     // no row is visible at this node
@@ -977,10 +1015,12 @@ public class BasicTreeUI extends TreeUI
   protected TreeCellEditor createDefaultCellEditor()
   {
     if (currentCellRenderer != null)
-      return new DefaultTreeCellEditor(tree,
+      return new DefaultTreeCellEditor(
+                                       tree,
                                        (DefaultTreeCellRenderer) currentCellRenderer,
                                        cellEditor);
-    return new DefaultTreeCellEditor(tree,
+    return new DefaultTreeCellEditor(
+                                     tree,
                                      (DefaultTreeCellRenderer) createDefaultCellRenderer(),
                                      cellEditor);
   }
@@ -1034,7 +1074,8 @@ public class BasicTreeUI extends TreeUI
   protected void uninstallKeyboardActions()
   {
     action = null;
-    tree.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).setParent(null);
+    tree.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).setParent(
+                                                                              null);
     tree.getActionMap().setParent(null);
   }
 
@@ -1094,7 +1135,7 @@ public class BasicTreeUI extends TreeUI
   {
     Enumeration expanded = tree.getExpandedDescendants(path);
     while (expanded.hasMoreElements())
-      treeState.setExpandedState(((TreePath) expanded.nextElement()), true); 
+      treeState.setExpandedState(((TreePath) expanded.nextElement()), true);
   }
 
   /**
@@ -1125,7 +1166,7 @@ public class BasicTreeUI extends TreeUI
   protected void updateCellEditor()
   {
     if (tree.isEditable() && cellEditor == null)
-        setCellEditor(createDefaultCellEditor());
+      setCellEditor(createDefaultCellEditor());
     createdCellEditor = true;
   }
 
@@ -1136,10 +1177,10 @@ public class BasicTreeUI extends TreeUI
   {
     if (tree != null)
       {
-        if(tree.getCellRenderer() == null)
-          {  
-            if(currentCellRenderer == null) 
-              currentCellRenderer = createDefaultCellRenderer();                
+        if (tree.getCellRenderer() == null)
+          {
+            if (currentCellRenderer == null)
+              currentCellRenderer = createDefaultCellRenderer();
             tree.setCellRenderer(currentCellRenderer);
           }
       }
@@ -1186,9 +1227,13 @@ public class BasicTreeUI extends TreeUI
               bounds.width += getCurrentControlIcon(curr).getIconWidth();
             maxWidth = Math.max(maxWidth, bounds.x + bounds.width);
           }
-        preferredSize = new Dimension(maxWidth, (getRowHeight() * path.length));
+
+        maxHeight = 0;
+        maxHeight = getMaxHeight(tree);
+        preferredSize = new Dimension(maxWidth, (maxHeight * path.length));
       }
-    else preferredSize = new Dimension(0, 0);
+    else
+      preferredSize = new Dimension(0, 0);
     validCachedPreferredSize = true;
   }
 
@@ -1201,7 +1246,6 @@ public class BasicTreeUI extends TreeUI
   protected void pathWasExpanded(TreePath path)
   {
     validCachedPreferredSize = false;
-    tree.revalidate();
     tree.repaint();
   }
 
@@ -1211,7 +1255,6 @@ public class BasicTreeUI extends TreeUI
   protected void pathWasCollapsed(TreePath path)
   {
     validCachedPreferredSize = false;
-    tree.revalidate();
     tree.repaint();
   }
 
@@ -1345,19 +1388,12 @@ public class BasicTreeUI extends TreeUI
     installComponents();
     installKeyboardActions();
     installListeners();
-    
+
     setCellEditor(createDefaultCellEditor());
     createdCellEditor = true;
     isEditing = false;
 
-    TreeModel mod = tree.getModel();
-    setModel(mod);
-    if (mod != null)
-      {
-        TreePath path = new TreePath(mod.getRoot());
-        if (!tree.isExpanded(path))
-          toggleExpandState(path);
-      }
+    setModel(tree.getModel());
     treeSelectionModel = tree.getSelectionModel();
 
     completeUIInstall();
@@ -1406,8 +1442,7 @@ public class BasicTreeUI extends TreeUI
   public void paint(Graphics g, JComponent c)
   {
     JTree tree = (JTree) c;
-    if (currentVisiblePath == null)
-      updateCurrentVisiblePath();
+    updateCurrentVisiblePath();
 
     Rectangle clip = g.getClipBounds();
     Insets insets = tree.getInsets();
@@ -1451,7 +1486,7 @@ public class BasicTreeUI extends TreeUI
         endRow = beginRow;
         beginRow = temp;
       }
-    
+
     for (int i = beginRow; i < endRow; i++)
       {
         TreePath path = getPathForRow(tree, i);
@@ -1508,8 +1543,8 @@ public class BasicTreeUI extends TreeUI
    */
   public Dimension getPreferredSize(JComponent c, boolean checkConsistancy)
   {
-    // FIXME: checkConsistancy not implemented, c not used 
-    if(!validCachedPreferredSize) 
+    // FIXME: checkConsistancy not implemented, c not used
+    if (!validCachedPreferredSize)
       updateCachedPreferredSize();
     return preferredSize;
   }
@@ -1524,7 +1559,7 @@ public class BasicTreeUI extends TreeUI
    */
   public Dimension getMinimumSize(JComponent c)
   {
-    Dimension min = getPreferredMinSize(); 
+    Dimension min = getPreferredMinSize();
     if (min == null)
       return new Dimension();
     return min;
@@ -1636,7 +1671,7 @@ public class BasicTreeUI extends TreeUI
         tree.add(editingComponent.getParent());
         editingComponent.getParent().validate();
         validCachedPreferredSize = false;
-        tree.revalidate();
+
         ((JTextField) editingComponent).requestFocusInWindow(false);
         editorTimer.start();
         return true;
@@ -1682,12 +1717,13 @@ public class BasicTreeUI extends TreeUI
   {
     boolean cntlClick = false;
     int row = getRowForPath(tree, path);
-    
+
     if (!isLeaf(row))
       {
         Rectangle bounds = getPathBounds(tree, path);
 
-        if (hasControlIcons() && (mouseX < bounds.x) 
+        if (hasControlIcons()
+            && (mouseX < bounds.x)
             && (mouseX > (bounds.x - getCurrentControlIcon(path).getIconWidth() - gap)))
           cntlClick = true;
       }
@@ -1725,7 +1761,6 @@ public class BasicTreeUI extends TreeUI
       tree.collapsePath(path);
     else
       tree.expandPath(path);
-    updateCurrentVisiblePath();
   }
 
   /**
@@ -1739,8 +1774,7 @@ public class BasicTreeUI extends TreeUI
    */
   protected boolean isToggleSelectionEvent(MouseEvent event)
   {
-    return (tree.getSelectionModel().getSelectionMode() == 
-      TreeSelectionModel.SINGLE_TREE_SELECTION);
+    return (tree.getSelectionModel().getSelectionMode() == TreeSelectionModel.SINGLE_TREE_SELECTION);
   }
 
   /**
@@ -1754,8 +1788,7 @@ public class BasicTreeUI extends TreeUI
    */
   protected boolean isMultiSelectEvent(MouseEvent event)
   {
-    return (tree.getSelectionModel().getSelectionMode() == 
-      TreeSelectionModel.CONTIGUOUS_TREE_SELECTION);
+    return (tree.getSelectionModel().getSelectionMode() == TreeSelectionModel.CONTIGUOUS_TREE_SELECTION);
   }
 
   /**
@@ -1834,8 +1867,7 @@ public class BasicTreeUI extends TreeUI
    * are pressed for the JTree. The actionPerformed method is called when a key
    * that has been registered for the JTree is received.
    */
-  class TreeAction
-    extends AbstractAction
+  class TreeAction extends AbstractAction
   {
 
     /**
@@ -1877,7 +1909,7 @@ public class BasicTreeUI extends TreeUI
       else if (e.getActionCommand().equals("toggle"))
         {
           if (tree.isEditing())
-              tree.stopEditing();
+            tree.stopEditing();
           else
             {
               Object last = lead.getLastPathComponent();
@@ -1903,8 +1935,7 @@ public class BasicTreeUI extends TreeUI
    * to the true receiver after altering the actionCommand property of the
    * event.
    */
-  private static class ActionListenerProxy
-    extends AbstractAction
+  private static class ActionListenerProxy extends AbstractAction
   {
     ActionListener target;
 
@@ -1929,9 +1960,7 @@ public class BasicTreeUI extends TreeUI
   /**
    * The timer that updates the editor component.
    */
-  private class EditorUpdateTimer
-    extends Timer
-    implements ActionListener
+  private class EditorUpdateTimer extends Timer implements ActionListener
   {
     /**
      * Creates a new EditorUpdateTimer object with a default delay of 0.3
@@ -1975,8 +2004,8 @@ public class BasicTreeUI extends TreeUI
   /**
    * Updates the preferred size when scrolling, if necessary.
    */
-  public class ComponentHandler extends ComponentAdapter
-    implements ActionListener
+  public class ComponentHandler extends ComponentAdapter implements
+      ActionListener
   {
     /**
      * Timer used when inside a scrollpane and the scrollbar is adjusting
@@ -2006,8 +2035,8 @@ public class BasicTreeUI extends TreeUI
     }
 
     /**
-     * Creates, if necessary, and starts a Timer to check if needed to resize the
-     * bounds
+     * Creates, if necessary, and starts a Timer to check if needed to resize
+     * the bounds
      */
     protected void startTimer()
     {
@@ -2082,7 +2111,6 @@ public class BasicTreeUI extends TreeUI
       tree.requestFocusInWindow(false);
       editorTimer.stop();
       validCachedPreferredSize = false;
-      tree.revalidate();
       tree.repaint();
     }
 
@@ -2113,7 +2141,6 @@ public class BasicTreeUI extends TreeUI
       editorTimer.stop();
       isEditing = false;
       validCachedPreferredSize = false;
-      tree.revalidate();
       tree.repaint();
     }
   }// CellEditorHandler
@@ -2121,8 +2148,7 @@ public class BasicTreeUI extends TreeUI
   /**
    * Repaints the lead selection row when focus is lost/grained.
    */
-  public class FocusHandler
-    implements FocusListener
+  public class FocusHandler implements FocusListener
   {
     /**
      * Constructor
@@ -2161,8 +2187,7 @@ public class BasicTreeUI extends TreeUI
    * This is used to get multiple key down events to appropriately genereate
    * events.
    */
-  public class KeyHandler
-    extends KeyAdapter
+  public class KeyHandler extends KeyAdapter
   {
     /** Key code that is being generated for. */
     protected Action repeatKeyAction;
@@ -2247,7 +2272,7 @@ public class BasicTreeUI extends TreeUI
           boolean cntlClick = isLocationInExpandControl(path, click.x, click.y);
 
           boolean isLeaf = isLeaf(row);
-          
+
           TreeCellRenderer tcr = getCellRenderer();
           Icon icon;
           if (isLeaf)
@@ -2256,17 +2281,17 @@ public class BasicTreeUI extends TreeUI
             icon = UIManager.getIcon("Tree.openIcon");
           else
             icon = UIManager.getIcon("Tree.closedIcon");
-          
+
           if (tcr instanceof DefaultTreeCellRenderer)
             {
-             Icon tmp = ((DefaultTreeCellRenderer) tcr).getIcon();
-             if (tmp != null)
-               icon = tmp;
+              Icon tmp = ((DefaultTreeCellRenderer) tcr).getIcon();
+              if (tmp != null)
+                icon = tmp;
             }
-          
+
           // add gap*2 for the space before and after the text
           if (icon != null)
-            bounds.width += icon.getIconWidth() + gap*2;
+            bounds.width += icon.getIconWidth() + gap * 2;
 
           boolean inBounds = bounds.contains(click.x, click.y);
           if ((inBounds || cntlClick) && tree.isVisible(path))
@@ -2275,9 +2300,9 @@ public class BasicTreeUI extends TreeUI
                 {
                   selectPath(tree, path);
                   if (e.getClickCount() == 2 && !isLeaf(row))
-                      toggleExpandState(path);
+                    toggleExpandState(path);
                 }
-              
+
               if (cntlClick)
                 {
                   handleExpandControlClick(path, click.x, click.y);
@@ -2455,8 +2480,7 @@ public class BasicTreeUI extends TreeUI
    * BasicTreeUI method. X location does not include insets, that is handled in
    * getPathBounds.
    */
-  public class NodeDimensionsHandler
-    extends AbstractLayoutCache.NodeDimensions
+  public class NodeDimensionsHandler extends AbstractLayoutCache.NodeDimensions
   {
     /**
      * Constructor
@@ -2467,10 +2491,10 @@ public class BasicTreeUI extends TreeUI
     }
 
     /**
-     * Returns, by reference in bounds, the size and x origin to place value at. 
-     * The calling method is responsible for determining the Y location. 
-     * If bounds is null, a newly created Rectangle should be returned, 
-     * otherwise the value should be placed in bounds and returned.
+     * Returns, by reference in bounds, the size and x origin to place value at.
+     * The calling method is responsible for determining the Y location. If
+     * bounds is null, a newly created Rectangle should be returned, otherwise
+     * the value should be placed in bounds and returned.
      * 
      * @param cell
      *          the value to be represented
@@ -2498,8 +2522,10 @@ public class BasicTreeUI extends TreeUI
         {
           size.x = getRowX(row, depth);
           size.width = SwingUtilities.computeStringWidth(fm, s);
-          size.height = fm.getHeight();
+          size.height = getMaxHeight(tree);
+          size.y = size.height * row;
         }
+
       return size;
     }
 
@@ -2520,8 +2546,7 @@ public class BasicTreeUI extends TreeUI
    * PropertyChangeListener for the tree. Updates the appropriate varaible, or
    * TreeState, based on what changes.
    */
-  public class PropertyChangeHandler
-    implements PropertyChangeListener
+  public class PropertyChangeHandler implements PropertyChangeListener
   {
 
     /**
@@ -2544,8 +2569,6 @@ public class BasicTreeUI extends TreeUI
       if ((event.getPropertyName()).equals("rootVisible"))
         {
           validCachedPreferredSize = false;
-          updateCurrentVisiblePath();
-          tree.revalidate();
           tree.repaint();
         }
     }
@@ -2555,8 +2578,8 @@ public class BasicTreeUI extends TreeUI
    * Listener on the TreeSelectionModel, resets the row selection if any of the
    * properties of the model change.
    */
-  public class SelectionModelPropertyChangeHandler
-    implements PropertyChangeListener
+  public class SelectionModelPropertyChangeHandler implements
+      PropertyChangeListener
   {
 
     /**
@@ -2583,8 +2606,7 @@ public class BasicTreeUI extends TreeUI
   /**
    * ActionListener that invokes cancelEditing when action performed.
    */
-  public class TreeCancelEditingAction
-    extends AbstractAction
+  public class TreeCancelEditingAction extends AbstractAction
   {
 
     /**
@@ -2621,8 +2643,7 @@ public class BasicTreeUI extends TreeUI
   /**
    * Updates the TreeState in response to nodes expanding/collapsing.
    */
-  public class TreeExpansionHandler
-    implements TreeExpansionListener
+  public class TreeExpansionHandler implements TreeExpansionListener
   {
 
     /**
@@ -2642,8 +2663,6 @@ public class BasicTreeUI extends TreeUI
     public void treeExpanded(TreeExpansionEvent event)
     {
       validCachedPreferredSize = false;
-      updateCurrentVisiblePath();
-      tree.revalidate();
       tree.repaint();
     }
 
@@ -2656,8 +2675,6 @@ public class BasicTreeUI extends TreeUI
     public void treeCollapsed(TreeExpansionEvent event)
     {
       validCachedPreferredSize = false;
-      updateCurrentVisiblePath();
-      tree.revalidate();
       tree.repaint();
     }
   }// TreeExpansionHandler
@@ -2666,8 +2683,7 @@ public class BasicTreeUI extends TreeUI
    * TreeHomeAction is used to handle end/home actions. Scrolls either the first
    * or last cell to be visible based on direction.
    */
-  public class TreeHomeAction
-    extends AbstractAction
+  public class TreeHomeAction extends AbstractAction
   {
 
     /** direction is either home or end */
@@ -2713,8 +2729,7 @@ public class BasicTreeUI extends TreeUI
    * TreeIncrementAction is used to handle up/down actions. Selection is moved
    * up or down based on direction.
    */
-  public class TreeIncrementAction
-    extends AbstractAction
+  public class TreeIncrementAction extends AbstractAction
   {
 
     /** Specifies the direction to adjust the selection by. */
@@ -2746,7 +2761,7 @@ public class BasicTreeUI extends TreeUI
       if (e.getActionCommand().equals("selectPreviousChangeLead"))
         {
           Object prev = getPreviousVisibleNode(last);
-          
+
           if (prev != null)
             {
               TreePath newPath = new TreePath(getPathToRoot(prev, 0));
@@ -2767,7 +2782,7 @@ public class BasicTreeUI extends TreeUI
       else if (e.getActionCommand().equals("selectPrevious"))
         {
           Object prev = getPreviousVisibleNode(last);
-          
+
           if (prev != null)
             {
               TreePath newPath = new TreePath(getPathToRoot(prev, 0));
@@ -2777,7 +2792,7 @@ public class BasicTreeUI extends TreeUI
       else if (e.getActionCommand().equals("selectNext"))
         {
           Object next = getNextVisibleNode(last);
-          
+
           if (next != null)
             {
               TreePath newPath = new TreePath(getPathToRoot(next, 0));
@@ -2847,8 +2862,6 @@ public class BasicTreeUI extends TreeUI
     public void treeNodesChanged(TreeModelEvent e)
     {
       validCachedPreferredSize = false;
-      updateCurrentVisiblePath();
-      tree.revalidate();
       tree.repaint();
     }
 
@@ -2863,8 +2876,6 @@ public class BasicTreeUI extends TreeUI
     public void treeNodesInserted(TreeModelEvent e)
     {
       validCachedPreferredSize = false;
-      updateCurrentVisiblePath();
-      tree.revalidate();
       tree.repaint();
     }
 
@@ -2882,8 +2893,6 @@ public class BasicTreeUI extends TreeUI
     public void treeNodesRemoved(TreeModelEvent e)
     {
       validCachedPreferredSize = false;
-      updateCurrentVisiblePath();
-      tree.revalidate();
       tree.repaint();
     }
 
@@ -2902,9 +2911,7 @@ public class BasicTreeUI extends TreeUI
       if (e.getPath().length == 1
           && !e.getPath()[0].equals(treeModel.getRoot()))
         tree.expandPath(new TreePath(treeModel.getRoot()));
-      updateCurrentVisiblePath();
       validCachedPreferredSize = false;
-      tree.revalidate();
       tree.repaint();
     }
   }// TreeModelHandler
@@ -3102,7 +3109,7 @@ public class BasicTreeUI extends TreeUI
       return true;
     return false;
   }
-  
+
   /**
    * Returns control icon. It is null if the LookAndFeel does not implements the
    * control icons. Package private for use in inner classes.
@@ -3127,10 +3134,9 @@ public class BasicTreeUI extends TreeUI
    */
   Object getParent(Object root, Object node)
   {
-    if (root == null || node == null ||
-        root.equals(node))
+    if (root == null || node == null || root.equals(node))
       return null;
-    
+
     if (node instanceof TreeNode)
       return ((TreeNode) node).getParent();
     return findNode(root, node);
@@ -3163,7 +3169,7 @@ public class BasicTreeUI extends TreeUI
       }
     return null;
   }
-  
+
   /**
    * Get previous visible node in the tree. Package private for use in inner
    * classes.
@@ -3182,8 +3188,8 @@ public class BasicTreeUI extends TreeUI
         while (i < nodes.length && !node.equals(nodes[i]))
           i++;
         // return the next node
-        if (i-1 >= 0)
-          return nodes[i-1];
+        if (i - 1 >= 0)
+          return nodes[i - 1];
       }
     return null;
   }
@@ -3191,7 +3197,7 @@ public class BasicTreeUI extends TreeUI
   /**
    * Returns the next node in the tree Package private for use in inner classes.
    * 
-   * @param curr - 
+   * @param curr -
    *          current node
    * @return the next node in the tree
    */
@@ -3208,7 +3214,7 @@ public class BasicTreeUI extends TreeUI
         node = getParent(treeModel.getRoot(), node);
       }
     while (sibling == null && node != null);
-    
+
     return sibling;
   }
 
@@ -3250,7 +3256,7 @@ public class BasicTreeUI extends TreeUI
    * Returns the next sibling in the tree Package private for use in inner
    * classes.
    * 
-   * @param node - 
+   * @param node -
    *          current node
    * @return the next sibling in the tree
    */
@@ -3270,7 +3276,7 @@ public class BasicTreeUI extends TreeUI
 
     return treeModel.getChild(parent, index);
   }
-  
+
   /**
    * Returns the previous sibling in the tree Package private for use in inner
    * classes.
@@ -3309,15 +3315,13 @@ public class BasicTreeUI extends TreeUI
   {
     if (path != null)
       {
-        if (tree.getSelectionModel().getSelectionMode() == 
-                          TreeSelectionModel.SINGLE_TREE_SELECTION)
+        if (tree.getSelectionModel().getSelectionMode() == TreeSelectionModel.SINGLE_TREE_SELECTION)
           {
             tree.getSelectionModel().clearSelection();
             tree.addSelectionPath(path);
             tree.setLeadSelectionPath(path);
           }
-        else if (tree.getSelectionModel().getSelectionMode() == 
-                  TreeSelectionModel.CONTIGUOUS_TREE_SELECTION)
+        else if (tree.getSelectionModel().getSelectionMode() == TreeSelectionModel.CONTIGUOUS_TREE_SELECTION)
           {
             // TODO
           }
@@ -3325,8 +3329,8 @@ public class BasicTreeUI extends TreeUI
           {
             tree.addSelectionPath(path);
             tree.setLeadSelectionPath(path);
-            tree.getSelectionModel().setSelectionMode
-                      (TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
+            tree.getSelectionModel().setSelectionMode(
+                                                      TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
           }
       }
   }
@@ -3351,7 +3355,8 @@ public class BasicTreeUI extends TreeUI
         return new Object[depth];
       }
 
-    Object[] path = getPathToRoot(getParent(treeModel.getRoot(), node), depth + 1);
+    Object[] path = getPathToRoot(getParent(treeModel.getRoot(), node),
+                                  depth + 1);
     path[path.length - depth - 1] = node;
     return path;
   }
@@ -3374,7 +3379,7 @@ public class BasicTreeUI extends TreeUI
         Object root = treeModel.getRoot();
         if (!tree.isRootVisible() && tree.isExpanded(new TreePath(root)))
           count--;
-        
+
         do
           {
             current = getParent(root, current);
@@ -3441,28 +3446,32 @@ public class BasicTreeUI extends TreeUI
    * @param x
    *          is the center position in x-direction
    * @param y
-   *          is the center position in y-direction 
+   *          is the center position in y-direction
    */
   protected void drawCentered(Component c, Graphics g, Icon icon, int x, int y)
   {
     x -= icon.getIconWidth() / 2;
     y -= icon.getIconHeight() / 2;
-    
+
     if (x < 0)
       x = 0;
     if (y < 0)
       y = 0;
-    
+
     icon.paintIcon(c, g, x, y);
   }
-  
+
   /**
    * Draws a dashed horizontal line.
    * 
-   * @param g - the graphics configuration.
-   * @param y - the y location to start drawing at
-   * @param x1 - the x location to start drawing at
-   * @param x2 - the x location to finish drawing at
+   * @param g -
+   *          the graphics configuration.
+   * @param y -
+   *          the y location to start drawing at
+   * @param x1 -
+   *          the x location to start drawing at
+   * @param x2 -
+   *          the x location to finish drawing at
    */
   protected void drawDashedHorizontalLine(Graphics g, int y, int x1, int x2)
   {
@@ -3470,14 +3479,18 @@ public class BasicTreeUI extends TreeUI
     for (int i = x1; i < x2; i += 2)
       g.drawLine(i, y, i + 1, y);
   }
-  
+
   /**
    * Draws a dashed vertical line.
    * 
-   * @param g - the graphics configuration.
-   * @param x - the x location to start drawing at
-   * @param y1 - the y location to start drawing at
-   * @param y2 - the y location to finish drawing at
+   * @param g -
+   *          the graphics configuration.
+   * @param x -
+   *          the x location to start drawing at
+   * @param y1 -
+   *          the y location to start drawing at
+   * @param y2 -
+   *          the y location to finish drawing at
    */
   protected void drawDashedVerticalLine(Graphics g, int x, int y1, int y2)
   {
@@ -3485,72 +3498,89 @@ public class BasicTreeUI extends TreeUI
     for (int i = y1; i < y2; i += 2)
       g.drawLine(x, i, x, i + 1);
   }
-  
+
   /**
-   * Paints the expand (toggle) part of a row. The receiver should NOT modify 
+   * Paints the expand (toggle) part of a row. The receiver should NOT modify
    * clipBounds, or insets.
    * 
-   * @param g - the graphics configuration
-   * @param clipBounds - 
-   * @param insets - 
-   * @param bounds - bounds of expand control
-   * @param path - path to draw control for
-   * @param row - row to draw control for
-   * @param isExpanded - is the row expanded
-   * @param hasBeenExpanded - has the row already been expanded
-   * @param isLeaf - is the path a leaf
+   * @param g -
+   *          the graphics configuration
+   * @param clipBounds -
+   * @param insets -
+   * @param bounds -
+   *          bounds of expand control
+   * @param path -
+   *          path to draw control for
+   * @param row -
+   *          row to draw control for
+   * @param isExpanded -
+   *          is the row expanded
+   * @param hasBeenExpanded -
+   *          has the row already been expanded
+   * @param isLeaf -
+   *          is the path a leaf
    */
   protected void paintExpandControl(Graphics g, Rectangle clipBounds,
                                     Insets insets, Rectangle bounds,
-                                    TreePath path, int row,
-                                    boolean isExpanded, boolean hasBeenExpanded,
-                                    boolean isLeaf)
+                                    TreePath path, int row, boolean isExpanded,
+                                    boolean hasBeenExpanded, boolean isLeaf)
   {
     if (shouldPaintExpandControl(path, row, isExpanded, hasBeenExpanded, isLeaf))
       {
         Icon icon = getCurrentControlIcon(path);
         int iconW = icon.getIconWidth();
-        int x = bounds.x - rightChildIndent + iconW/2;
+        int x = bounds.x - rightChildIndent + iconW / 2;
         if (x + iconW > bounds.x)
           x = bounds.x - rightChildIndent - gap;
-        icon.paintIcon(tree, g, x, bounds.y + bounds.height/2 - icon.getIconHeight()/2);
+        icon.paintIcon(tree, g, x, bounds.y + bounds.height / 2
+                                   - icon.getIconHeight() / 2);
       }
   }
 
   /**
-   *  Paints the horizontal part of the leg. The receiver should NOT modify 
-   *  clipBounds, or insets.
-   *  NOTE: parentRow can be -1 if the root is not visible. 
-   *  
-   * @param g - the graphics configuration
-   * @param clipBounds - 
-   * @param insets - 
-   * @param bounds - bounds of the cell
-   * @param path - path to draw leg for
-   * @param row - row to start drawing at
-   * @param isExpanded - is the row expanded
-   * @param hasBeenExpanded - has the row already been expanded
-   * @param isLeaf - is the path a leaf
+   * Paints the horizontal part of the leg. The receiver should NOT modify
+   * clipBounds, or insets. NOTE: parentRow can be -1 if the root is not
+   * visible.
+   * 
+   * @param g -
+   *          the graphics configuration
+   * @param clipBounds -
+   * @param insets -
+   * @param bounds -
+   *          bounds of the cell
+   * @param path -
+   *          path to draw leg for
+   * @param row -
+   *          row to start drawing at
+   * @param isExpanded -
+   *          is the row expanded
+   * @param hasBeenExpanded -
+   *          has the row already been expanded
+   * @param isLeaf -
+   *          is the path a leaf
    */
   protected void paintHorizontalPartOfLeg(Graphics g, Rectangle clipBounds,
                                           Insets insets, Rectangle bounds,
                                           TreePath path, int row,
-                                          boolean isExpanded, boolean hasBeenExpanded,
+                                          boolean isExpanded,
+                                          boolean hasBeenExpanded,
                                           boolean isLeaf)
   {
     if (row != 0)
-      paintHorizontalLine(g, tree, bounds.y + bounds.height/2, bounds.x - gap - 2,
-                          bounds.x);
+      paintHorizontalLine(g, tree, bounds.y + bounds.height / 2, bounds.x - gap
+                                                                 - 2, bounds.x);
   }
-  
+
   /**
-   * Paints the vertical part of the leg. The receiver should NOT modify 
+   * Paints the vertical part of the leg. The receiver should NOT modify
    * clipBounds, insets.
    * 
-   * @param g - the graphics configuration.
-   * @param clipBounds - 
-   * @param insets - 
-   * @param path - the path to draw the vertical part for.
+   * @param g -
+   *          the graphics configuration.
+   * @param clipBounds -
+   * @param insets -
+   * @param path -
+   *          the path to draw the vertical part for.
    */
   protected void paintVerticalPartOfLeg(Graphics g, Rectangle clipBounds,
                                         Insets insets, TreePath path)
@@ -3564,56 +3594,65 @@ public class BasicTreeUI extends TreeUI
         if (numChild > 0 && tree.isExpanded(currPath))
           {
             Rectangle bounds = getPathBounds(tree, currPath);
-            Rectangle lastChildBounds = getPathBounds(tree, 
-                                        new TreePath(getPathToRoot(
-                                        treeModel.getChild(curr, numChild - 1), 
-                                        0)));
-            paintVerticalLine(g, tree, bounds.x + gap + 2, bounds.y + 
-                              bounds.height - 2, lastChildBounds.y + 
-                              lastChildBounds.height/2);
+            Rectangle lastChildBounds = getPathBounds(
+                                                      tree,
+                                                      new TreePath(
+                                                                   getPathToRoot(
+                                                                                 treeModel.getChild(
+                                                                                                    curr,
+                                                                                                    numChild - 1),
+                                                                                 0)));
+            paintVerticalLine(g, tree, bounds.x + gap + 2, bounds.y
+                                                           + bounds.height - 2,
+                              lastChildBounds.y + lastChildBounds.height / 2);
           }
       }
   }
 
   /**
-   * Paints the renderer part of a row. The receiver should NOT modify clipBounds,
-   * or insets.
+   * Paints the renderer part of a row. The receiver should NOT modify
+   * clipBounds, or insets.
    * 
-   * @param g - the graphics configuration
-   * @param clipBounds - 
-   * @param insets - 
-   * @param bounds - bounds of expand control
-   * @param path - path to draw control for
-   * @param row - row to draw control for
-   * @param isExpanded - is the row expanded
-   * @param hasBeenExpanded - has the row already been expanded
-   * @param isLeaf - is the path a leaf
-   */
-  protected void paintRow(Graphics g, Rectangle clipBounds,
-                          Insets insets, Rectangle bounds,
-                          TreePath path, int row,
+   * @param g -
+   *          the graphics configuration
+   * @param clipBounds -
+   * @param insets -
+   * @param bounds -
+   *          bounds of expand control
+   * @param path -
+   *          path to draw control for
+   * @param row -
+   *          row to draw control for
+   * @param isExpanded -
+   *          is the row expanded
+   * @param hasBeenExpanded -
+   *          has the row already been expanded
+   * @param isLeaf -
+   *          is the path a leaf
+   */
+  protected void paintRow(Graphics g, Rectangle clipBounds, Insets insets,
+                          Rectangle bounds, TreePath path, int row,
                           boolean isExpanded, boolean hasBeenExpanded,
                           boolean isLeaf)
   {
     boolean selected = tree.isPathSelected(path);
     boolean hasIcons = false;
     Object node = path.getLastPathComponent();
-    
+
     if (tree.isVisible(path))
       {
         if (!validCachedPreferredSize)
           updateCachedPreferredSize();
-        
-        
-        paintExpandControl(g, clipBounds, insets, bounds, path, row, isExpanded, hasBeenExpanded, isLeaf);
-        
+
+        paintExpandControl(g, clipBounds, insets, bounds, path, row,
+                           isExpanded, hasBeenExpanded, isLeaf);
+
         if (row != 0)
           bounds.x += gap;
         bounds.width = preferredSize.width + bounds.x;
-        
         if (editingComponent != null && editingPath != null && isEditing(tree)
             && node.equals(editingPath.getLastPathComponent()))
-          {    
+          {
             rendererPane.paintComponent(g, editingComponent.getParent(), null,
                                         bounds);
           }
@@ -3622,9 +3661,12 @@ public class BasicTreeUI extends TreeUI
             TreeCellRenderer dtcr = tree.getCellRenderer();
             if (dtcr == null)
               dtcr = createDefaultCellRenderer();
-            
+
             Component c = dtcr.getTreeCellRendererComponent(tree, node,
-                                     selected, isExpanded, isLeaf, row, tree.hasFocus());
+                                                            selected,
+                                                            isExpanded, isLeaf,
+                                                            row,
+                                                            tree.hasFocus());
             rendererPane.paintComponent(g, c, c.getParent(), bounds);
           }
       }
@@ -3637,16 +3679,21 @@ public class BasicTreeUI extends TreeUI
   {
     // TODO: Implement this properly.
   }
-  
+
   /**
    * Returns true if the expand (toggle) control should be drawn for the
    * specified row.
    * 
-   * @param path - current path to check for.
-   * @param row - current row to check for.
-   * @param isExpanded - true if the path is expanded
-   * @param hasBeenExpanded - true if the path has been expanded already
-   * @param isLeaf - true if the row is a lead
+   * @param path -
+   *          current path to check for.
+   * @param row -
+   *          current row to check for.
+   * @param isExpanded -
+   *          true if the path is expanded
+   * @param hasBeenExpanded -
+   *          true if the path has been expanded already
+   * @param isLeaf -
+   *          true if the row is a lead
    */
   protected boolean shouldPaintExpandControl(TreePath path, int row,
                                              boolean isExpanded,
@@ -3656,10 +3703,9 @@ public class BasicTreeUI extends TreeUI
     Object node = path.getLastPathComponent();
     return (!isLeaf && getLevel(node) != 0 && hasControlIcons());
   }
-  
+
   /**
-   * Updates the cached current TreePath of all visible
-   * nodes in the tree.
+   * Updates the cached current TreePath of all visible nodes in the tree.
    */
   void updateCurrentVisiblePath()
   {
@@ -3667,19 +3713,22 @@ public class BasicTreeUI extends TreeUI
       return;
 
     Object next = treeModel.getRoot();
+    if (next == null)
+      return;
+
     TreePath rootPath = new TreePath(next);
     Rectangle bounds = getPathBounds(tree, rootPath);
-    
+
     // If root is not a valid size to be visible, or is
     // not visible and the tree is expanded, then the next node acts
     // as the root
-    if ((bounds.width == 0 && bounds.height == 0) || (!isRootVisible()
-        && tree.isExpanded(new TreePath(next))))
+    if ((bounds.width == 0 && bounds.height == 0)
+        || (!isRootVisible() && tree.isExpanded(new TreePath(next))))
       {
         next = getNextNode(next);
         rootPath = new TreePath(next);
       }
-    
+
     Object root = next;
     TreePath current = null;
     while (next != null)
@@ -3688,7 +3737,7 @@ public class BasicTreeUI extends TreeUI
           current = rootPath;
         else
           current = current.pathByAddingChild(next);
-        
+
         do
           {
             TreePath path = new TreePath(getPathToRoot(next, 0));
@@ -3712,19 +3761,23 @@ public class BasicTreeUI extends TreeUI
                   }
               }
           }
-        while (next != null && 
-            !tree.isVisible(new TreePath(getPathToRoot(next, 0))));
+        while (next != null
+               && !tree.isVisible(new TreePath(getPathToRoot(next, 0))));
       }
 
     currentVisiblePath = current;
     tree.setVisibleRowCount(getRowCount(tree));
 
-    if (tree.getSelectionModel() != null && tree.getSelectionCount() == 0 &&
-        currentVisiblePath != null)
-      selectPath(tree, new TreePath(getPathToRoot(currentVisiblePath.
-                                                  getPathComponent(0), 0)));
+    if (tree.getSelectionModel() != null && tree.getSelectionCount() == 0
+        && currentVisiblePath != null)
+      selectPath(
+                 tree,
+                 new TreePath(
+                              getPathToRoot(
+                                            currentVisiblePath.getPathComponent(0),
+                                            0)));
   }
-  
+
   /**
    * Get next visible node in the currentVisiblePath. Package private for use in
    * inner classes.
@@ -3743,8 +3796,8 @@ public class BasicTreeUI extends TreeUI
         while (i < nodes.length && !node.equals(nodes[i]))
           i++;
         // return the next node
-        if (i+1 < nodes.length)
-          return nodes[i+1];
+        if (i + 1 < nodes.length)
+          return nodes[i + 1];
       }
     return null;
   }
index a43ee3cb04fe53130d6564e5f57ff23fa760ffce..0006b78fee364b41319c53296a47c588f4de0850 100644 (file)
@@ -313,4 +313,40 @@ public class MetalComboBoxUI extends BasicComboBoxUI
           d.height + insetsH + 1);
   }
   
+  /**
+   * Configures the editor for this combo box.
+   */
+  public void configureEditor()
+  {
+    ComboBoxEditor cbe = comboBox.getEditor();
+    if (cbe != null)
+      {
+        cbe.getEditorComponent().setFont(comboBox.getFont());
+        cbe.setItem(comboBox.getSelectedItem());
+        cbe.addActionListener(comboBox);
+      }
+  }
+  
+  /**
+   * Unconfigures the editor for this combo box.
+   */
+  public void unconfigureEditor()
+  {
+    ComboBoxEditor cbe = comboBox.getEditor();
+    if (cbe != null)
+      {
+        cbe.getEditorComponent().setFont(null);
+        cbe.setItem(null);
+        cbe.removeActionListener(comboBox);
+      }
+  }
+  
+  /** 
+   * Lays out the ComboBox
+   */
+  public void layoutComboBox(Container parent,
+                             MetalComboBoxUI.MetalComboBoxLayoutManager manager)
+  {
+    manager.layoutContainer(parent);
+  }
 }
index 3a2e1c1350870fedb25b357b4bfc88ce8a59f7a6..967c40d29ad2d3bff238539c86b150ed8f1aafbe 100644 (file)
@@ -38,39 +38,421 @@ exception statement from your version. */
 
 package javax.swing.plaf.metal;
 
+import java.awt.BorderLayout;
 import java.awt.Component;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.GridLayout;
+import java.awt.Insets;
+import java.awt.LayoutManager;
+import java.awt.Rectangle;
+import java.awt.Window;
 import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.text.NumberFormat;
+
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
+
 import java.io.File;
-import java.util.List;
 
 import javax.swing.AbstractAction;
 import javax.swing.AbstractListModel;
+import javax.swing.ActionMap;
+import javax.swing.BorderFactory;
+import javax.swing.ButtonGroup;
 import javax.swing.ComboBoxModel;
 import javax.swing.DefaultListCellRenderer;
+import javax.swing.Icon;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
 import javax.swing.JComponent;
+import javax.swing.JDialog;
 import javax.swing.JFileChooser;
+import javax.swing.JLabel;
 import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.JToggleButton;
+import javax.swing.JViewport;
+import javax.swing.ListModel;
+import javax.swing.ListSelectionModel;
+import javax.swing.SwingUtilities;
 import javax.swing.UIManager;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
 import javax.swing.filechooser.FileFilter;
 import javax.swing.filechooser.FileSystemView;
 import javax.swing.filechooser.FileView;
 import javax.swing.plaf.ComponentUI;
 import javax.swing.plaf.basic.BasicFileChooserUI;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.DefaultTableModel;
+
+import java.sql.Date;
+
+import java.text.DateFormat;
+
+import java.util.List;
 
 
 /**
  * A UI delegate for the {@link JFileChooser} component.  This class is only
  * partially implemented and is not usable yet.
  */
-public class MetalFileChooserUI extends BasicFileChooserUI
+public class MetalFileChooserUI 
+  extends BasicFileChooserUI
 {
+  
+  /**
+   * A renderer for the files and directories in the file chooser table.
+   */
+  class TableFileRenderer
+    extends DefaultTableCellRenderer
+  {
+    
+    /**
+     * Creates a new renderer.
+     */
+    public TableFileRenderer()
+    {
+      super();
+    }
+    
+    /**
+     * Returns a component that can render the specified value.
+     * 
+     * @param table  the table
+     * @param value  the string value of the cell
+     * @param isSelected  is the item selected?
+     * @param hasFocus  does the item have the focus?
+     * @param row  the row
+     * @param column  the column
+     * 
+     * @return The renderer.
+     */
+    public Component getTableCellRendererComponent(JTable table, Object value,
+        boolean isSelected, boolean hasFocus, int row, int column)
+    {
+      if (column == 0)
+        {
+          FileView v = getFileView(getFileChooser());
+          ListModel lm = fileList.getModel();
+          if (row < lm.getSize())
+            setIcon(v.getIcon((File) lm.getElementAt(row)));
+        }
+      else
+        setIcon(null);
+      
+      setText(value.toString());
+      setOpaque(true);
+      setEnabled(table.isEnabled());
+      setFont(fileList.getFont());
+      
+      if (startEditing && column == 0 || !isSelected)
+        {
+          setBackground(table.getBackground());
+          setForeground(table.getForeground());
+        }
+      else
+        {
+          setBackground(table.getSelectionBackground());
+          setForeground(table.getSelectionForeground());
+        }
+
+      if (hasFocus)
+        setBorder(UIManager.getBorder("Table.focusCellHighlightBorder"));
+      else
+        setBorder(noFocusBorder);
+      
+      return this;
+    }
+  }
+  
+  /**
+   * ActionListener for the list view.
+   */
+  class ListViewActionListener implements ActionListener
+  {
+    
+    /**
+     * This method is invoked when an action occurs.
+     * 
+     * @param e -
+     *          the <code>ActionEvent</code> that occurred
+     */
+    public void actionPerformed(ActionEvent e)
+    {
+      if (!listView)
+        {
+          int[] index = fileTable.getSelectedRows();
+          listView = true;
+          JFileChooser fc = getFileChooser();
+          fc.remove(fileTablePanel);
+          createList(fc);
+
+          fileList.getSelectionModel().clearSelection();
+          if (index.length > 0)
+              for (int i = 0; i < index.length; i++)
+                fileList.getSelectionModel().addSelectionInterval(index[i], index[i]);
+          
+          fc.add(fileListPanel, BorderLayout.CENTER);
+          fc.revalidate();
+          fc.repaint();
+        }
+    }
+  }
+  
+  /**
+   * ActionListener for the details view.
+   */
+  class DetailViewActionListener implements ActionListener
+  {
+    
+    /**
+     * This method is invoked when an action occurs.
+     * 
+     * @param e -
+     *          the <code>ActionEvent</code> that occurred
+     */
+    public void actionPerformed(ActionEvent e)
+    {
+      if (listView)
+        {
+          int[] index = fileList.getSelectedIndices();
+          JFileChooser fc = getFileChooser();
+          listView = false;
+          fc.remove(fileListPanel);
+          
+          if (fileTable == null)
+            createDetailsView(fc);
+          else
+            updateTable();
+
+          fileTable.getSelectionModel().clearSelection();
+          if (index.length > 0)
+            {
+              for (int i = 0; i < index.length; i++)
+                fileTable.getSelectionModel().addSelectionInterval(index[i], index[i]);
+            }
+          
+          fc.add(fileTablePanel, BorderLayout.CENTER);
+          fc.revalidate();
+          fc.repaint();
+        }
+    }
+  }
+  
+  /**
+   * A property change listener.
+   */
+  class MetalFileChooserPropertyChangeListener 
+    implements PropertyChangeListener
+  {
+    /**
+     * Default constructor.
+     */
+    public MetalFileChooserPropertyChangeListener()
+    {
+    }
+    
+    /**
+     * Handles a property change event.
+     * 
+     * @param e  the event.
+     */
+    public void propertyChange(PropertyChangeEvent e)
+    {
+      JFileChooser filechooser = getFileChooser();
+      
+      String n = e.getPropertyName();
+      if (n.equals(JFileChooser.MULTI_SELECTION_ENABLED_CHANGED_PROPERTY))
+        {
+          int mode = -1; 
+          if (filechooser.isMultiSelectionEnabled())
+            mode = ListSelectionModel.MULTIPLE_INTERVAL_SELECTION;
+          else
+            mode = ListSelectionModel.SINGLE_SELECTION;
+          
+          if (listView)
+            fileList.setSelectionMode(mode);
+          else
+            fileTable.setSelectionMode(mode);
+        }
+      else if (n.equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY))
+        {
+          File file = filechooser.getSelectedFile();
+          
+          if (file != null
+              && filechooser.getDialogType() == JFileChooser.SAVE_DIALOG)
+            {
+              if (file.isDirectory() && filechooser.isTraversable(file))
+                {
+                  directoryLabel = look;
+                  dirLabel.setText(directoryLabel);
+                  filechooser.setApproveButtonText(openButtonText);
+                  filechooser.setApproveButtonToolTipText(openButtonToolTipText);
+                }
+              else if (file.isFile())
+                {
+                  directoryLabel = save;
+                  dirLabel.setText(directoryLabel);
+                  filechooser.setApproveButtonText(saveButtonText);
+                  filechooser.setApproveButtonToolTipText(saveButtonToolTipText);
+                }
+            }
+            
+          if (file == null)
+            setFileName(null);
+          else
+            setFileName(file.getName());
+          int index = -1;
+          index = getModel().indexOf(file);
+          if (index >= 0)
+            {
+              if (listView)
+                {
+                  fileList.setSelectedIndex(index);
+                  fileList.ensureIndexIsVisible(index);
+                  fileList.revalidate();
+                  fileList.repaint();
+                }
+              else
+                {
+                  fileTable.getSelectionModel().addSelectionInterval(index, index);
+                  fileTable.scrollRectToVisible(fileTable.getCellRect(index, 0, true));
+                  fileTable.revalidate();
+                  fileTable.repaint();
+                }
+            }
+        }
+      
+      else if (n.equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY))
+        {
+          if (listView)
+            {
+              fileList.clearSelection();
+              fileList.revalidate();
+              fileList.repaint();
+            }
+          else
+            {
+              fileTable.clearSelection();
+              fileTable.revalidate();
+              fileTable.repaint();
+            }
+
+          setDirectorySelected(false);
+          File currentDirectory = filechooser.getCurrentDirectory();
+          setDirectory(currentDirectory);
+          boolean hasParent = (currentDirectory.getParentFile() != null);
+          getChangeToParentDirectoryAction().setEnabled(hasParent);
+        }
+      
+      else if (n.equals(JFileChooser.CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY))
+        {
+          filterModel.propertyChange(e);
+        }
+      else if (n.equals(JFileChooser.FILE_FILTER_CHANGED_PROPERTY))
+        {
+          filterModel.propertyChange(e);
+        }
+      else if (n.equals(JFileChooser.DIALOG_TYPE_CHANGED_PROPERTY)
+                 || n.equals(JFileChooser.DIALOG_TITLE_CHANGED_PROPERTY))
+        {
+          Window owner = SwingUtilities.windowForComponent(filechooser);
+          if (owner instanceof JDialog)
+            ((JDialog) owner).setTitle(getDialogTitle(filechooser));
+          approveButton.setText(getApproveButtonText(filechooser));
+          approveButton.setToolTipText(
+                  getApproveButtonToolTipText(filechooser));
+          approveButton.setMnemonic(getApproveButtonMnemonic(filechooser));
+        }
+      
+      else if (n.equals(JFileChooser.APPROVE_BUTTON_TEXT_CHANGED_PROPERTY))
+        approveButton.setText(getApproveButtonText(filechooser));
+      
+      else if (n.equals(
+              JFileChooser.APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY))
+        approveButton.setToolTipText(getApproveButtonToolTipText(filechooser));
+      
+      else if (n.equals(JFileChooser.APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY))
+        approveButton.setMnemonic(getApproveButtonMnemonic(filechooser));
+
+      else if (n.equals(
+              JFileChooser.CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY))
+        {
+          if (filechooser.getControlButtonsAreShown())
+            {
+              topPanel.add(controls, BorderLayout.EAST);
+            }
+          else
+            topPanel.remove(controls);
+          topPanel.revalidate();
+          topPanel.repaint();
+          topPanel.doLayout();
+        }
+      
+      else if (n.equals(
+              JFileChooser.ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY))
+        {
+          if (filechooser.isAcceptAllFileFilterUsed())
+            filechooser.addChoosableFileFilter(
+                    getAcceptAllFileFilter(filechooser));
+          else
+            filechooser.removeChoosableFileFilter(
+                    getAcceptAllFileFilter(filechooser));
+        }
+      
+      else if (n.equals(JFileChooser.ACCESSORY_CHANGED_PROPERTY))
+        {
+          JComponent old = (JComponent) e.getOldValue();
+          if (old != null)
+            getAccessoryPanel().remove(old);
+          JComponent newval = (JComponent) e.getNewValue();
+          if (newval != null)
+            getAccessoryPanel().add(newval);
+        }
+      
+      if (n.equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY)
+          || n.equals(JFileChooser.FILE_FILTER_CHANGED_PROPERTY)
+          || n.equals(JFileChooser.FILE_HIDING_CHANGED_PROPERTY))
+        {
+          // Remove editing component
+          if (fileTable != null)
+            fileTable.removeAll();
+          if (fileList != null)
+            fileList.removeAll();
+          startEditing = false;
+          
+          // Set text on button back to original.
+          if (filechooser.getDialogType() == JFileChooser.SAVE_DIALOG)
+            {
+              directoryLabel = save;
+              dirLabel.setText(directoryLabel);
+              filechooser.setApproveButtonText(saveButtonText);
+              filechooser.setApproveButtonToolTipText(saveButtonToolTipText);
+            }
+          
+          rescanCurrentDirectory(filechooser);
+        }
+      
+      filechooser.revalidate();
+      filechooser.repaint();
+    }
+  };
+  
   /** 
    * A combo box model containing the selected directory and all its parent
    * directories.
    */
-  protected class DirectoryComboBoxModel extends AbstractListModel
+  protected class DirectoryComboBoxModel
+    extends AbstractListModel
     implements ComboBoxModel
   {
     /** Storage for the items in the model. */
@@ -161,7 +543,8 @@ public class MetalFileChooserUI extends BasicFileChooserUI
   /**
    * Handles changes to the selection in the directory combo box.
    */
-  protected class DirectoryComboBoxAction extends AbstractAction
+  protected class DirectoryComboBoxAction
+    extends AbstractAction
   {
     /**
      * Creates a new action.
@@ -183,10 +566,61 @@ public class MetalFileChooserUI extends BasicFileChooserUI
     }
   }
 
+  /**
+   * A renderer for the items in the directory combo box.
+   */
+  class DirectoryComboBoxRenderer
+    extends DefaultListCellRenderer
+  {
+    /**
+     * Creates a new renderer.
+     */
+    public DirectoryComboBoxRenderer(JFileChooser fc)
+    { 
+    }
+    
+    /**
+     * Returns a component that can be used to paint the given value within 
+     * the list.
+     * 
+     * @param list  the list.
+     * @param value  the value (a {@link File}).
+     * @param index  the item index.
+     * @param isSelected  is the item selected?
+     * @param cellHasFocus  does the list cell have focus?
+     * 
+     * @return The list cell renderer.
+     */
+    public Component getListCellRendererComponent(JList list, Object value,
+        int index, boolean isSelected, boolean cellHasFocus)
+    {
+      FileView fileView = getFileView(getFileChooser());
+      File file = (File) value;
+      setIcon(fileView.getIcon(file));
+      setText(fileView.getName(file));
+      
+      if (isSelected)
+        {
+          setBackground(list.getSelectionBackground());
+          setForeground(list.getSelectionForeground());
+        }
+      else
+        {
+          setBackground(list.getBackground());
+          setForeground(list.getForeground());
+        }
+
+      setEnabled(list.isEnabled());
+      setFont(list.getFont());
+      return this;
+    }
+  }
+
   /**
    * A renderer for the files and directories in the file chooser.
    */
-  protected class FileRenderer extends DefaultListCellRenderer
+  protected class FileRenderer
+    extends DefaultListCellRenderer
   {
     
     /**
@@ -213,8 +647,17 @@ public class MetalFileChooserUI extends BasicFileChooserUI
     {
       FileView v = getFileView(getFileChooser());
       File f = (File) value;
-      setText(v.getName(f));
-      setIcon(v.getIcon(f));
+      if (f != null)
+       {
+         setText(v.getName(f));
+         setIcon(v.getIcon(f));
+       }
+      else
+       {
+         setText("");
+         setIcon(null);
+       }
+      setOpaque(true);
       if (isSelected)
         {
           setBackground(list.getSelectionBackground());
@@ -249,7 +692,7 @@ public class MetalFileChooserUI extends BasicFileChooserUI
     protected FileFilter[] filters;
 
     /** The index of the selected file filter. */
-    private int selectedIndex;
+    private Object selected;
     
     /**
      * Creates a new model.
@@ -258,7 +701,7 @@ public class MetalFileChooserUI extends BasicFileChooserUI
     {
       filters = new FileFilter[1];
       filters[0] = getAcceptAllFileFilter(getFileChooser());
-      selectedIndex = 0;
+      selected = filters[0];
     }
     
     /**
@@ -270,11 +713,11 @@ public class MetalFileChooserUI extends BasicFileChooserUI
     {
       if (e.getPropertyName().equals(JFileChooser.FILE_FILTER_CHANGED_PROPERTY))
         {
-          selectedIndex = -1;
-          FileFilter selected = (FileFilter) e.getNewValue();
-          for (int i = 0; i < filters.length; i++)
-            if (filters[i].equals(selected))
-              selectedIndex = i;
+          JFileChooser fc = getFileChooser();
+          FileFilter[] choosableFilters = fc.getChoosableFileFilters();
+          filters = choosableFilters;
+          fireContentsChanged(this, 0, filters.length);
+          selected = e.getNewValue();
           fireContentsChanged(this, -1, -1);
         }
       else if (e.getPropertyName().equals(
@@ -291,13 +734,15 @@ public class MetalFileChooserUI extends BasicFileChooserUI
     /**
      * Sets the selected filter.
      * 
-     * @param filter  the filter.
+     * @param filter  the filter (<code>null</code> ignored).
      */
     public void setSelectedItem(Object filter)
     {
-      // change the filter in the file chooser and let the property change
-      // event trigger the change to the selected item
-      getFileChooser().setFileFilter((FileFilter) filter);
+      if (filter != null)
+      {
+          selected = filter;
+          fireContentsChanged(this, -1, -1);
+      }
     }
     
     /**
@@ -307,9 +752,7 @@ public class MetalFileChooserUI extends BasicFileChooserUI
      */
     public Object getSelectedItem()
     {
-      if (selectedIndex >= 0) 
-        return filters[selectedIndex];
-      return null;
+      return selected;
     }
     
     /**
@@ -339,7 +782,8 @@ public class MetalFileChooserUI extends BasicFileChooserUI
   /**
    * A renderer for the items in the file filter combo box.
    */
-  public class FilterComboBoxRenderer extends DefaultListCellRenderer
+  public class FilterComboBoxRenderer
+    extends DefaultListCellRenderer
   {
     /**
      * Creates a new renderer.
@@ -359,72 +803,1277 @@ public class MetalFileChooserUI extends BasicFileChooserUI
      * @param isSelected  is the item selected?
      * @param cellHasFocus  does the list cell have focus?
      * 
-     * @return A component.
+     * @return This component as the renderer.
      */
     public Component getListCellRendererComponent(JList list, Object value,
         int index, boolean isSelected, boolean cellHasFocus)
     {
+      super.getListCellRendererComponent(list, value, index, isSelected, 
+                                         cellHasFocus);
       FileFilter filter = (FileFilter) value;
-      return super.getListCellRendererComponent(list, filter.getDescription(),
-              index, isSelected, cellHasFocus);
+      setText(filter.getDescription());
+      return this;
     }
   }
 
-  /** The model for the directory combo box. */
-  DirectoryComboBoxModel directoryModel;
-  
   /**
-   * A factory method that returns a UI delegate for the specified
-   * component.
+   * A listener for selection events in the file list.
    * 
-   * @param c  the component (which should be a {@link JFileChooser}).
+   * @see #createListSelectionListener(JFileChooser)
    */
-  public static ComponentUI createUI(JComponent c)
+  class MetalFileChooserSelectionListener 
+    implements ListSelectionListener
   {
-    JFileChooser chooser = (JFileChooser) c;
-    return new MetalFileChooserUI(chooser);
-  }
+    /**
+     * Creates a new <code>SelectionListener</code> object.
+     */
+    protected MetalFileChooserSelectionListener()
+    {
+      // Do nothing here.
+    }
 
-  /**
-   * Creates a new instance of this UI delegate.
-   * 
-   * @param filechooser  the file chooser component.
-   */
-  public MetalFileChooserUI(JFileChooser filechooser)
-  {
-    super(filechooser);
-  }
-  
-  /**
-   * Creates and returns a new instance of {@link DirectoryComboBoxModel}.
-   * 
-   * @return A new instance of {@link DirectoryComboBoxModel}.
-   */
-  protected MetalFileChooserUI.DirectoryComboBoxModel 
-      createDirectoryComboBoxModel(JFileChooser fc)
-  {
-    return new DirectoryComboBoxModel();
+    /**
+     * Makes changes to different properties when
+     * a value has changed in the filechooser's selection.
+     *
+     * @param e - the list selection event that occured.
+     */
+    public void valueChanged(ListSelectionEvent e)
+    {
+      File f = (File) fileList.getSelectedValue();
+      if (f == null)
+        return;
+      JFileChooser filechooser = getFileChooser();
+      if (! filechooser.isTraversable(f))
+        filechooser.setSelectedFile(f);
+      else
+        filechooser.setSelectedFile(null);
+    }
   }
 
   /**
-   * Creates and returns a new instance of {@link FilterComboBoxModel}.
-   * 
-   * @return A new instance of {@link FilterComboBoxModel}.
+   * A mouse listener for the {@link JFileChooser}.
+   * This listener is used for editing filenames.
    */
-  protected FilterComboBoxModel createFilterComboBoxModel()
+  protected class SingleClickListener
+    extends MouseAdapter
   {
-    return new FilterComboBoxModel();  
+    
+    /** Stores instance of the list */
+    JList list;
+    
+    /** 
+     * Stores the current file that is being edited.
+     * It is null if nothing is currently being edited.
+     */
+    File editFile;
+    
+    /** The current file chooser. */
+    JFileChooser fc;
+    
+    /** The last file selected. */
+    Object lastSelected;
+    
+    /** The textfield used for editing. */
+    JTextField editField;
+    
+    /**
+     * Creates a new listener.
+     * 
+     * @param list  the directory/file list.
+     */
+    public SingleClickListener(JList list)
+    {
+      this.list = list;
+      editFile = null;
+      fc = getFileChooser();
+      lastSelected = null;
+      startEditing = false;
+    }
+    
+    /**
+     * Receives notification of a mouse click event.
+     * 
+     * @param e  the event.
+     */
+    public void mouseClicked(MouseEvent e)
+    {
+      if (e.getClickCount() == 1 && e.getButton() == MouseEvent.BUTTON1)
+        {
+          int index = list.locationToIndex(e.getPoint());
+          File[] sf = fc.getSelectedFiles();
+          if ((!fc.isMultiSelectionEnabled() || (sf != null && sf.length <= 1))
+              && index >= 0 && !startEditing && list.isSelectedIndex(index))
+            {
+              Object tmp = list.getModel().getElementAt(index);
+              if (lastSelected != null && lastSelected.equals(tmp))
+                editFile(index);
+              lastSelected = tmp;
+            }
+          else
+              completeEditing();
+        }
+      else
+        completeEditing();
+    }
+    
+    /**
+     * Sets up the text editor for the current file.
+     * 
+     * @param index -
+     *          the current index of the item in the list to be edited.
+     */
+    void editFile(int index)
+    {
+      Rectangle bounds = list.getCellBounds(index, index);
+      list.scrollRectToVisible(bounds);
+      editFile = (File) list.getModel().getElementAt(index);
+      if (editFile.canWrite())
+        {
+          startEditing = true;
+          editField = new JTextField(editFile.getName());
+          editField.addActionListener(new EditingActionListener());
+          
+          Icon icon = getFileView(fc).getIcon(editFile);
+          if (icon != null)
+            {
+              int padding = icon.getIconWidth() + 4;
+              bounds.x += padding;
+              bounds.width -= padding;
+            }
+          editField.setBounds(bounds);
+          
+          list.add(editField);
+          
+          editField.requestFocus();
+          editField.selectAll();
+        }
+      else
+        completeEditing();
+      list.repaint();
+    }
+    
+    /** 
+     * Completes the editing.
+     */
+    void completeEditing()
+    {
+      if (editField != null && editFile != null)
+        {
+          String text = editField.getText();
+          if (text != null && text != "" && !text.equals(fc.getName(editFile)))
+              if (editFile.renameTo
+                  (fc.getFileSystemView().createFileObject
+                   (fc.getCurrentDirectory(), text)))
+                  rescanCurrentDirectory(fc);
+          list.remove(editField);
+        }
+      startEditing = false;
+      editFile = null;
+      lastSelected = null;
+      editField = null;
+      list.repaint();
+    }
+    
+    /**
+     * ActionListener for the editing text field.
+     */
+    class EditingActionListener implements ActionListener
+    {
+      
+      /**
+       * This method is invoked when an action occurs.
+       * 
+       * @param e -
+       *          the <code>ActionEvent</code> that occurred
+       */
+      public void actionPerformed(ActionEvent e)
+      {
+        if (e.getActionCommand().equals("notify-field-accept"))
+          completeEditing();
+        else if (editField != null)
+          {
+            list.remove(editField);
+            startEditing = false;
+            editFile = null;
+            lastSelected = null;
+            editField = null;
+            list.repaint();
+          }
+      }
+    }
   }
 
   /**
-   * Creates and returns a new instance of {@link FilterComboBoxRenderer}.
-   * 
-   * @return A new instance of {@link FilterComboBoxRenderer}.
+   * A mouse listener for the {@link JFileChooser}.
+   * This listener is used for the table
    */
-  protected MetalFileChooserUI.FilterComboBoxRenderer 
-      createFilterComboBoxRenderer()
+  private class TableClickListener extends MouseAdapter
   {
-    return new FilterComboBoxRenderer(); 
+
+    /** Stores instance of the table */
+    JTable table;
+
+    /** Stores instance of the file chooser */
+    JFileChooser fc;
+
+    /** The last selected file. */
+    Object lastSelected = null;
+    
+    /** 
+     * Stores the current file that is being edited.
+     * It is null if nothing is currently being edited.
+     */
+    File editFile;
+    
+    /** The textfield used for editing. */
+    JTextField editField;
+
+    /**
+     * Creates a new listener.
+     * 
+     * @param table
+     *          the directory/file table
+     * @param fc
+     *          the JFileChooser
+     */
+    public TableClickListener(JTable table, JFileChooser fc)
+    {
+      this.table = table;
+      this.fc = fc;
+      lastSelected = fileList.getSelectedValue();
+      setDirectorySelected(false);
+      startEditing = false;
+      editFile = null;
+      editField = null;
+    }
+
+    /**
+     * Receives notification of a mouse click event.
+     * 
+     * @param e
+     *          the event.
+     */
+    public void mouseClicked(MouseEvent e)
+    {
+      int row = table.getSelectedRow();
+      Object selVal = fileList.getModel().getElementAt(row);
+      if (selVal == null)
+        return;
+      FileSystemView fsv = fc.getFileSystemView();
+      if (e.getClickCount() == 1 &&
+          selVal.equals(lastSelected) &&
+          e.getButton() == MouseEvent.BUTTON1)
+        {
+          File[] sf = fc.getSelectedFiles();
+          if ((!fc.isMultiSelectionEnabled() || (sf != null && sf.length <= 1))
+              && !startEditing)
+            {
+              editFile = (File) selVal;
+              editFile(row);
+            }
+        }
+      else if (e.getClickCount() >= 2 &&
+          selVal.equals(lastSelected))
+        {
+          if (startEditing)
+            completeEditing();
+          File f = fsv.createFileObject(lastSelected.toString());
+          if (fc.isTraversable(f))
+            {
+              fc.setCurrentDirectory(f);
+              fc.rescanCurrentDirectory();
+            }
+          else
+            {
+              fc.setSelectedFile(f);
+              fc.approveSelection();
+              closeDialog();
+            }
+        }
+      else
+        {
+          if (startEditing)
+            completeEditing();
+          String path = selVal.toString();
+          File f = fsv.createFileObject(path);
+          fc.setSelectedFile(f);
+          if (fc.isTraversable(f))
+            {
+              setDirectorySelected(true);
+              setDirectory(f);
+            }
+          else
+            {
+              setDirectorySelected(false);
+              setDirectory(null);
+            }
+          lastSelected = selVal;
+          if (f.isFile())
+            setFileName(path.substring(path.lastIndexOf("/") + 1));
+          else if (fc.getFileSelectionMode() == JFileChooser.DIRECTORIES_ONLY)
+            setFileName(path);
+        }
+      fileTable.repaint();
+    }
+
+    /**
+     * Sets up the text editor for the current file.
+     * 
+     * @param row -
+     *          the current row of the item in the list to be edited.
+     */
+    void editFile(int row)
+    {
+      Rectangle bounds = table.getCellRect(row, 0, true);
+      table.scrollRectToVisible(bounds);
+      if (editFile.canWrite())
+        {
+          startEditing = true;
+          editField = new JTextField(editFile.getName());
+          editField.addActionListener(new EditingActionListener());
+
+          // Need to adjust y pos
+          bounds.y = row * table.getRowHeight();
+          editField.setBounds(bounds);
+          
+          table.add(editField);
+          
+          editField.requestFocus();
+          editField.selectAll();
+        }
+      else
+        completeEditing();
+      table.repaint();
+    }
+    
+    /** 
+     * Completes the editing.
+     */
+    void completeEditing()
+    {
+      if (editField != null && editFile != null)
+        {
+          String text = editField.getText();
+          if (text != null && text != "" && !text.equals(fc.getName(editFile)))
+              if (editFile.renameTo
+                  (fc.getFileSystemView().createFileObject
+                   (fc.getCurrentDirectory(), text)))
+                  rescanCurrentDirectory(fc);
+          table.remove(editField);
+        }
+      startEditing = false;
+      editFile = null;
+      editField = null;
+      table.repaint();
+    }
+    
+    /**
+     * ActionListener for the editing text field.
+     */
+    class EditingActionListener implements ActionListener
+    {
+      
+      /**
+       * This method is invoked when an action occurs.
+       * 
+       * @param e -
+       *          the <code>ActionEvent</code> that occurred
+       */
+      public void actionPerformed(ActionEvent e)
+      {
+        if (e.getActionCommand().equals("notify-field-accept"))
+          completeEditing();
+        else if (editField != null)
+          {
+            table.remove(editField);
+            startEditing = false;
+            editFile = null;
+            editField = null;
+            table.repaint();
+          }
+      }
+    }
+    
+    /**
+     * Closes the dialog.
+     */
+    public void closeDialog()
+    {
+      Window owner = SwingUtilities.windowForComponent(fc);
+      if (owner instanceof JDialog)
+        ((JDialog) owner).dispose();
+    }
+  } 
+  
+  /** The text for a label describing the directory combo box. */
+  private String directoryLabel;
+  
+  private JComboBox directoryComboBox;
+  
+  /** The model for the directory combo box. */
+  DirectoryComboBoxModel directoryModel;
+  
+  /** The text for a label describing the file text field. */
+  private String fileLabel;
+  
+  /** The file name text field. */
+  private JTextField fileTextField;
+  
+  /** The text for a label describing the filter combo box. */
+  private String filterLabel;
+
+  /** 
+   * The top panel (contains the directory combo box and the control buttons). 
+   */
+  private JPanel topPanel;
+  
+  /** A panel containing the control buttons ('up', 'home' etc.). */
+  private JPanel controls;
+
+  /** 
+   * The panel that contains the filename field and the filter combobox. 
+   */
+  private JPanel bottomPanel;
+
+  /** 
+   * The panel that contains the 'Open' (or 'Save') and 'Cancel' buttons. 
+   */
+  private JPanel buttonPanel;
+  
+  private JButton approveButton;
+  
+  /** The file list. */
+  JList fileList;
+  
+  /** The file table. */
+  JTable fileTable;
+  
+  /** The panel containing the file list. */
+  JPanel fileListPanel;
+  
+  /** The panel containing the file table. */
+  JPanel fileTablePanel;
+  
+  /** The filter combo box model. */
+  private FilterComboBoxModel filterModel;
+
+  /** The action map. */
+  private ActionMap actionMap;
+  
+  /** True if currently in list view. */
+  boolean listView;
+  
+  /** True if we can or have started editing a cell. */
+  boolean startEditing;
+  
+  /** The scrollpane used for the table and list. */
+  JScrollPane scrollPane;
+  
+  /** The text for the label when saving. */
+  String save;
+  
+  /** The text for the label when opening a directory. */
+  String look;
+  
+  /** The label for the file combo box. */
+  JLabel dirLabel;
+  
+  /** Listeners. */
+  ListSelectionListener listSelList;
+  MouseListener doubleClickList;
+  SingleClickListener singleClickList;
+  TableClickListener tableClickList;
+  
+  /**
+   * A factory method that returns a UI delegate for the specified
+   * component.
+   * 
+   * @param c  the component (which should be a {@link JFileChooser}).
+   */
+  public static ComponentUI createUI(JComponent c)
+  {
+    JFileChooser chooser = (JFileChooser) c;
+    return new MetalFileChooserUI(chooser);
+  }
+
+  /**
+   * Creates a new instance of this UI delegate.
+   * 
+   * @param filechooser  the file chooser component.
+   */
+  public MetalFileChooserUI(JFileChooser filechooser)
+  {
+    super(filechooser);
+    bottomPanel = new JPanel(new GridLayout(3, 2));
+    buttonPanel = new JPanel();
+  }
+
+  public void installUI(JComponent c)
+  {
+    super.installUI(c);
+    actionMap = createActionMap();
+  }
+  
+  public void uninstallUI(JComponent c)
+  {
+    super.uninstallUI(c);
+    actionMap = null;
+  }
+  
+  /**
+   * Installs the sub-components of the file chooser.
+   * 
+   * @param fc  the file chooser component.
+   */
+  public void installComponents(JFileChooser fc)
+  {
+    fc.setLayout(new BorderLayout());
+    topPanel = new JPanel(new BorderLayout());
+    dirLabel = new JLabel(directoryLabel);
+    topPanel.add(dirLabel, BorderLayout.WEST);
+    this.controls = new JPanel();
+    addControlButtons();
+    
+    JPanel dirPanel = new JPanel(new VerticalMidLayout());
+    directoryModel = createDirectoryComboBoxModel(fc);
+    directoryComboBox = new JComboBox(directoryModel);
+    directoryComboBox.setRenderer(createDirectoryComboBoxRenderer(fc));
+    dirPanel.add(directoryComboBox);
+    topPanel.add(dirPanel);
+    topPanel.add(controls, BorderLayout.EAST);
+    topPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 0, 8));
+    fc.add(topPanel, BorderLayout.NORTH);
+    
+    JPanel list = createList(fc);
+    list.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8));
+    fc.add(list, BorderLayout.CENTER);
+    
+    JPanel bottomPanel = getBottomPanel();
+    filterModel = createFilterComboBoxModel();
+    JComboBox fileFilterCombo = new JComboBox(filterModel);
+    fileFilterCombo.setRenderer(createFilterComboBoxRenderer());
+    
+    fileTextField = new JTextField();
+    JPanel fileNamePanel = new JPanel(new VerticalMidLayout());
+    fileNamePanel.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 5));
+    fileNamePanel.add(fileTextField);
+    JPanel row1 = new JPanel(new BorderLayout());
+    row1.add(new JLabel(this.fileLabel), BorderLayout.WEST);
+    row1.add(fileNamePanel);
+    bottomPanel.add(row1);
+    
+    JPanel row2 = new JPanel(new BorderLayout());
+    row2.add(new JLabel(this.filterLabel), BorderLayout.WEST);
+    row2.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 5));
+    row2.add(fileFilterCombo);
+    bottomPanel.add(row2);
+    JPanel buttonPanel = new JPanel(new ButtonLayout());
+    
+    approveButton = new JButton(getApproveSelectionAction());
+    approveButton.setText(getApproveButtonText(fc));
+    approveButton.setToolTipText(getApproveButtonToolTipText(fc));
+    approveButton.setMnemonic(getApproveButtonMnemonic(fc));
+    buttonPanel.add(approveButton);
+    buttonPanel.setBorder(BorderFactory.createEmptyBorder(8, 0, 0, 0));
+    
+    JButton cancelButton = new JButton(getCancelSelectionAction());
+    cancelButton.setText(cancelButtonText);
+    cancelButton.setToolTipText(cancelButtonToolTipText);
+    cancelButton.setMnemonic(cancelButtonMnemonic);
+    buttonPanel.add(cancelButton);
+    bottomPanel.add(buttonPanel, BorderLayout.SOUTH);
+    bottomPanel.setBorder(BorderFactory.createEmptyBorder(0, 8, 8, 8));
+    fc.add(bottomPanel, BorderLayout.SOUTH);
+    
+    fc.add(getAccessoryPanel(), BorderLayout.EAST);
+  }
+  
+  /**
+   * Uninstalls the components added by 
+   * {@link #installComponents(JFileChooser)}.
+   * 
+   * @param fc  the file chooser.
+   */
+  public void uninstallComponents(JFileChooser fc)
+  {
+    fc.remove(bottomPanel);
+    bottomPanel = null;
+    fc.remove(fileListPanel);
+    fc.remove(fileTablePanel);
+    fileTablePanel = null;
+    fileListPanel = null;
+    fc.remove(topPanel);
+    topPanel = null;
+    
+    directoryModel = null;
+    fileTextField = null;
+    directoryComboBox = null;
+  }
+  
+  /**
+   * Returns the panel that contains the 'Open' (or 'Save') and 'Cancel' 
+   * buttons.
+   * 
+   * @return The panel.
+   */
+  protected JPanel getButtonPanel()
+  {
+    return buttonPanel;    
+  }
+  
+  /**
+   * Creates and returns a new panel that will be used for the controls at
+   * the bottom of the file chooser.
+   * 
+   * @return A new panel.
+   */
+  protected JPanel getBottomPanel()
+  {
+    if (bottomPanel == null)
+      bottomPanel = new JPanel(new GridLayout(3, 2));
+    return bottomPanel;
+  }
+  
+  /**
+   * Fetches localised strings for use by the labels and buttons on the
+   * file chooser.
+   * 
+   * @param fc  the file chooser.
+   */
+  protected void installStrings(JFileChooser fc)
+  { 
+     super.installStrings(fc);
+     look = "Look In: ";
+     save = "Save In: ";
+     if (fc.getDialogType() == JFileChooser.SAVE_DIALOG)
+       directoryLabel = save;
+     else
+       directoryLabel = look;
+     
+     fileLabel = "File Name: ";
+     filterLabel = "Files of Type: ";
+     
+     this.cancelButtonMnemonic = 0;
+     this.cancelButtonText = "Cancel";
+     this.cancelButtonToolTipText = "Abort file chooser dialog";
+     
+     this.directoryOpenButtonMnemonic = 0;
+     this.directoryOpenButtonText = "Open";
+     this.directoryOpenButtonToolTipText = "Open selected directory";
+     
+     this.helpButtonMnemonic = 0;
+     this.helpButtonText = "Help";
+     this.helpButtonToolTipText = "Filechooser help";
+     
+     this.openButtonMnemonic = 0;
+     this.openButtonText = "Open";
+     this.openButtonToolTipText = "Open selected file";
+     
+     this.saveButtonMnemonic = 0;
+     this.saveButtonText = "Save";
+     this.saveButtonToolTipText = "Save selected file";
+     
+     this.updateButtonMnemonic = 0;
+     this.updateButtonText = "Update";
+     this.updateButtonToolTipText = "Update directory listing";   
+  }
+  
+  /**
+   * Installs the listeners required.
+   * 
+   * @param fc  the file chooser.
+   */
+  protected void installListeners(JFileChooser fc)
+  {
+    directoryComboBox.setAction(new DirectoryComboBoxAction());
+    fc.addPropertyChangeListener(filterModel);
+    listSelList = createListSelectionListener(fc);
+    doubleClickList = this.createDoubleClickListener(fc, fileList);
+    singleClickList = new SingleClickListener(fileList);
+    fileList.addListSelectionListener(listSelList);
+    fileList.addMouseListener(doubleClickList);
+    fileList.addMouseListener(singleClickList);
+    super.installListeners(fc);
+  }
+  
+  protected void uninstallListeners(JFileChooser fc) 
+  {
+    super.uninstallListeners(fc);
+    fc.removePropertyChangeListener(filterModel);
+    directoryComboBox.setAction(null);
+    fileList.removeListSelectionListener(listSelList);
+    fileList.removeMouseListener(doubleClickList);
+    fileList.removeMouseListener(singleClickList);
+    
+    if (fileTable != null)
+      fileTable.removeMouseListener(tableClickList);
+  }
+  
+  protected ActionMap getActionMap()
+  {
+    if (actionMap == null)
+      actionMap = createActionMap();
+    return actionMap;
+  }
+  
+  /**
+   * Creates and returns an action map.
+   * 
+   * @return The action map.
+   */
+  protected ActionMap createActionMap()
+  {
+    ActionMap map = new ActionMap();
+    map.put("approveSelection", getApproveSelectionAction());
+    map.put("cancelSelection", getCancelSelectionAction());
+    map.put("Go Up", getChangeToParentDirectoryAction());
+    return map;
+  }
+
+  /**
+   * Creates a panel containing a list of files.
+   * 
+   * @param fc  the file chooser.
+   * 
+   * @return A panel.
+   */
+  protected JPanel createList(JFileChooser fc)
+  {
+    if (fileList == null)
+      {
+        fileListPanel = new JPanel(new BorderLayout());
+        fileList = new JList(getModel());
+        scrollPane = new JScrollPane(fileList);
+        scrollPane.setVerticalScrollBarPolicy
+                                        (JScrollPane.VERTICAL_SCROLLBAR_NEVER);
+        fileList.setLayoutOrientation(JList.VERTICAL_WRAP);
+        fileList.setCellRenderer(new FileRenderer());
+      }
+    else
+      {
+        fileList.setModel(getModel());
+        fileListPanel.removeAll();
+        scrollPane.getViewport().setView(fileList);
+      }
+    fileListPanel.add(scrollPane);
+
+    return fileListPanel;
+  }
+  
+  /**
+   * Creates a panel containing a table within a scroll pane.
+   * 
+   * @param fc  the file chooser.
+   * 
+   * @return The details view.
+   */
+  protected JPanel createDetailsView(JFileChooser fc)
+  {
+    fileTablePanel = new JPanel(new BorderLayout());
+    
+    Object[] cols = new Object[] {"Name", "Size", "Modified"};
+    Object[][] rows = new Object[fileList.getModel().getSize()][3];
+    
+    fileTable = new JTable(new DefaultTableModel(rows, cols));
+    
+    if (fc.isMultiSelectionEnabled())
+      fileTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
+    else
+      fileTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+    
+    fileTable.setShowGrid(false);
+    fileTable.setColumnSelectionAllowed(false);
+    fileTable.setDefaultRenderer(Object.class, new TableFileRenderer());
+
+    tableClickList = new TableClickListener(fileTable, fc);
+    fileTable.addMouseListener(tableClickList);
+    
+    return updateTable();  
+  }
+  
+  /**
+   * Sets the values in the table, and puts it in the panel.
+   * 
+   * @return the panel containing the table.
+   */
+  JPanel updateTable()
+  {
+    DefaultTableModel mod = (DefaultTableModel) fileTable.getModel();
+    ListModel lm = fileList.getModel();
+    DateFormat dt = DateFormat.getDateTimeInstance(DateFormat.SHORT,
+                                                   DateFormat.SHORT);
+    File curr = null;
+    int size = lm.getSize();
+    int rc = mod.getRowCount();
+
+    // If there are not enough rows
+    for (int x = rc; x < size; x++)
+      mod.addRow(new Object[3]);
+
+    for (int i = 0; i < size; i++)
+      {
+        curr = (File) lm.getElementAt(i);
+        fileTable.setValueAt(curr.getName(), i, 0);
+        fileTable.setValueAt(formatSize(curr.length()), i, 1);
+        fileTable.setValueAt(dt.format(new Date(curr.lastModified())), i, 2);
+      }
+
+    // If there are too many rows
+    while (rc > size)
+      mod.removeRow(--rc);
+
+    scrollPane.getViewport().setView(fileTable);
+    scrollPane.setColumnHeaderView(fileTable.getTableHeader());
+
+    fileTablePanel.removeAll();
+    fileTablePanel.add(scrollPane);
+
+    return fileTablePanel;
+  }
+  
+  /**
+   * Formats bytes into the appropriate size.
+   * 
+   * @param bytes -
+   *          the number of bytes to convert
+   * @return a string representation of the size
+   */
+  private String formatSize(long bytes)
+  {
+    NumberFormat nf = NumberFormat.getNumberInstance();
+    long mb = (long) Math.pow(2, 20);
+    long kb = (long) Math.pow(2, 10);
+    long gb = (long) Math.pow(2, 30);
+    double size = 0;
+    String id = "";
+    
+    if ((bytes / gb) >= 1)
+      {
+        size = (double) bytes / (double) gb;
+        id = "GB";
+      }
+    else if ((bytes / mb) >= 1)
+      {
+        size = (double) bytes / (double) mb;
+        id = "MB";
+      }
+    else if ((bytes / kb) >= 1)
+      {
+        size = (double) bytes / (double) kb;
+        id = "KB";
+      }
+    else
+      {
+        size = bytes;
+        id = "Bytes";
+      }
+    
+    return nf.format(size) + " " + id;
+  }
+  /**
+   * Creates a listener that monitors selections in the directory/file list
+   * and keeps the {@link JFileChooser} component up to date.
+   * 
+   * @param fc  the file chooser.
+   * 
+   * @return The listener.
+   * 
+   * @see #installListeners(JFileChooser)
+   */
+  public ListSelectionListener createListSelectionListener(JFileChooser fc)
+  {
+    return new MetalFileChooserSelectionListener();
+  }
+  
+  /**
+   * Returns the preferred size for the file chooser component.
+   * 
+   * @return The preferred size.
+   */
+  public Dimension getPreferredSize(JComponent c)
+  {
+    Dimension tp = topPanel.getPreferredSize();
+    Dimension bp = bottomPanel.getPreferredSize();
+    Dimension fl = fileListPanel.getPreferredSize();
+    return new Dimension(fl.width, tp.height + bp.height + fl.height);
+  }
+
+  /**
+   * Returns the minimum size for the file chooser component.
+   * 
+   * @return The minimum size.
+   */
+  public Dimension getMinimumSize(JComponent c)
+  {
+    Dimension tp = topPanel.getMinimumSize();
+    Dimension bp = bottomPanel.getMinimumSize();
+    Dimension fl = fileListPanel.getMinimumSize();
+    return new Dimension(fl.width, tp.height + bp.height + fl.height);
+  }
+  
+  /**
+   * Returns the maximum size for the file chooser component.
+   * 
+   * @return The maximum size.
+   */
+  public Dimension getMaximumSize(JComponent c)
+  {
+    return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
+  }
+  
+  /**
+   * Creates a property change listener that monitors the {@link JFileChooser}
+   * for property change events and updates the component display accordingly.
+   * 
+   * @param fc  the file chooser.
+   * 
+   * @return The property change listener.
+   * 
+   * @see #installListeners(JFileChooser)
+   */
+  public PropertyChangeListener createPropertyChangeListener(JFileChooser fc)
+  {
+    return new MetalFileChooserPropertyChangeListener();
+  }
+
+  /**
+   * Creates and returns a new instance of {@link DirectoryComboBoxModel}.
+   * 
+   * @return A new instance of {@link DirectoryComboBoxModel}.
+   */
+  protected MetalFileChooserUI.DirectoryComboBoxModel 
+      createDirectoryComboBoxModel(JFileChooser fc)
+  {
+    return new DirectoryComboBoxModel();
+  }
+
+  /**
+   * Creates a new instance of the renderer used in the directory
+   * combo box.
+   * 
+   * @param fc  the file chooser.
+   * 
+   * @return The renderer.
+   */
+  protected DirectoryComboBoxRenderer createDirectoryComboBoxRenderer(
+          JFileChooser fc)
+  {
+    return new DirectoryComboBoxRenderer(fc);
+  }
+
+  /**
+   * Creates and returns a new instance of {@link FilterComboBoxModel}.
+   * 
+   * @return A new instance of {@link FilterComboBoxModel}.
+   */
+  protected FilterComboBoxModel createFilterComboBoxModel()
+  {
+    return new FilterComboBoxModel();  
+  }
+
+  /**
+   * Creates and returns a new instance of {@link FilterComboBoxRenderer}.
+   * 
+   * @return A new instance of {@link FilterComboBoxRenderer}.
+   */
+  protected MetalFileChooserUI.FilterComboBoxRenderer 
+      createFilterComboBoxRenderer()
+  {
+    return new FilterComboBoxRenderer(); 
+  }
+
+  /**
+   * Adds the control buttons ('up', 'home' etc.) to the panel.
+   */
+  protected void addControlButtons()
+  {
+    JButton upButton = new JButton(getChangeToParentDirectoryAction());
+    upButton.setText(null);
+    upButton.setIcon(this.upFolderIcon);
+    upButton.setMargin(new Insets(0, 0, 0, 0));
+    controls.add(upButton);
+    
+    JButton homeButton = new JButton(getGoHomeAction());
+    homeButton.setText(null);
+    homeButton.setIcon(this.homeFolderIcon);
+    homeButton.setMargin(new Insets(0, 0, 0, 0));
+    controls.add(homeButton);
+    
+    JButton newFolderButton = new JButton(getNewFolderAction());
+    newFolderButton.setText(null);
+    newFolderButton.setIcon(this.newFolderIcon);
+    newFolderButton.setMargin(new Insets(0, 0, 0, 0));
+    controls.add(newFolderButton);
+    
+    JToggleButton listButton = new JToggleButton(this.listViewIcon);
+    listButton.setMargin(new Insets(0, 0, 0, 0));
+    listButton.addActionListener(new ListViewActionListener());
+    listButton.setSelected(true);
+    listView = true; 
+    controls.add(listButton);
+    
+    JToggleButton detailButton = new JToggleButton(this.detailsViewIcon);
+    detailButton.setMargin(new Insets(0, 0, 0, 0));
+    detailButton.addActionListener(new DetailViewActionListener());
+    detailButton.setSelected(false);
+    controls.add(detailButton);
+
+    ButtonGroup buttonGroup = new ButtonGroup();
+    buttonGroup.add(listButton);
+    buttonGroup.add(detailButton);
+  }
+  
+  /**
+   * Removes all the buttons from the control panel.
+   */
+  protected void removeControlButtons()
+  {
+    controls.removeAll();
+    controls.revalidate();
+    controls.repaint();
+  }
+  
+  /**
+   * Updates the current directory.
+   * 
+   * @param the file chooser to update.
+   */
+  public void rescanCurrentDirectory(JFileChooser fc)
+  {
+    directoryModel.setSelectedItem(fc.getCurrentDirectory());
+    getModel().validateFileCache();
+    if (!listView)
+        updateTable();
+    else
+      createList(fc);
+  }
+  
+  /**
+   * Returns the file name in the text field.
+   * 
+   * @return The file name.
+   */
+  public String getFileName()
+  {
+    String result = null;
+    if (fileTextField != null) 
+      result = fileTextField.getText();
+    return result;
+  }
+  
+  /**
+   * Sets the file name in the text field.
+   * 
+   * @param filename  the file name.
+   */
+  public void setFileName(String filename)
+  {
+    fileTextField.setText(filename);
+  }
+  
+  /**
+   * DOCUMENT ME!!
+   * 
+   * @param e - DOCUMENT ME!
+   */
+  public void valueChanged(ListSelectionEvent e)
+  {
+    // FIXME: Not sure what we should be doing here, if anything.
+  }
+  
+  /**
+   * Returns the approve button.
+   * 
+   * @return The approve button.
+   */
+  protected JButton getApproveButton(JFileChooser fc)
+  {
+    return approveButton;
+  }
+
+  /**
+   * A layout manager that is used to arrange the subcomponents of the
+   * {@link JFileChooser}.
+   */
+  class VerticalMidLayout implements LayoutManager
+  {
+    /**
+     * Performs the layout.
+     * 
+     * @param parent  the container.
+     */
+    public void layoutContainer(Container parent) 
+    {
+      int count = parent.getComponentCount();
+      if (count > 0)
+        {
+          Insets insets = parent.getInsets();
+          Component c = parent.getComponent(0);
+          Dimension prefSize = c.getPreferredSize();
+          int h = parent.getHeight() - insets.top - insets.bottom;
+          int adj = Math.max(0, (h - prefSize.height) / 2);
+          c.setBounds(insets.left, insets.top + adj, parent.getWidth() 
+              - insets.left - insets.right, 
+              (int) Math.min(prefSize.getHeight(), h));
+        }
+    }
+    
+    /**
+     * Returns the minimum layout size.
+     * 
+     * @param parent  the container.
+     * 
+     * @return The minimum layout size.
+     */
+    public Dimension minimumLayoutSize(Container parent) 
+    {
+      return preferredLayoutSize(parent);
+    }
+    
+    /**
+     * Returns the preferred layout size.
+     * 
+     * @param parent  the container.
+     * 
+     * @return The preferred layout size.
+     */
+    public Dimension preferredLayoutSize(Container parent) 
+    {
+      if (parent.getComponentCount() > 0)
+        {
+          return parent.getComponent(0).getPreferredSize();
+        }
+      else return null;
+    }
+    
+    /**
+     * This layout manager does not need to track components, so this 
+     * method does nothing.
+     * 
+     * @param name  the name the component is associated with.
+     * @param component  the component.
+     */
+    public void addLayoutComponent(String name, Component component) 
+    {
+      // do nothing
+    }
+    
+    /**
+     * This layout manager does not need to track components, so this 
+     * method does nothing.
+     * 
+     * @param component  the component.
+     */
+    public void removeLayoutComponent(Component component) {
+      // do nothing
+    }
+  }
+
+  /**
+   * A layout manager that is used to arrange buttons for the
+   * {@link JFileChooser}.
+   */
+  class ButtonLayout implements LayoutManager
+  {
+    static final int GAP = 4;
+      
+    /**
+     * Performs the layout.
+     * 
+     * @param parent  the container.
+     */
+    public void layoutContainer(Container parent) 
+    {
+      int count = parent.getComponentCount();
+      if (count > 0)
+        {
+          // first find the widest button
+          int maxW = 0;
+          for (int i = 0; i < count; i++)
+            {
+              Component c = parent.getComponent(i);
+              Dimension prefSize = c.getPreferredSize();
+              maxW = Math.max(prefSize.width, maxW);
+            }
+  
+          // then position the buttons
+          Insets insets = parent.getInsets();
+          int availableH = parent.getHeight() - insets.top - insets.bottom;
+          int currentX = parent.getWidth() - insets.right;
+          for (int i = count - 1; i >= 0; i--)
+            {
+              Component c = parent.getComponent(i);
+              Dimension prefSize = c.getPreferredSize();      
+              int adj = Math.max(0, (availableH - prefSize.height) / 2);
+              currentX = currentX - prefSize.width;
+              c.setBounds(currentX, insets.top + adj, prefSize.width, 
+                  (int) Math.min(prefSize.getHeight(), availableH));
+              currentX = currentX - GAP;
+            }
+        }
+    }
+    
+    /**
+     * Returns the minimum layout size.
+     * 
+     * @param parent  the container.
+     * 
+     * @return The minimum layout size.
+     */
+    public Dimension minimumLayoutSize(Container parent) 
+    {
+      return preferredLayoutSize(parent);
+    }
+    
+    /**
+     * Returns the preferred layout size.
+     * 
+     * @param parent  the container.
+     * 
+     * @return The preferred layout size.
+     */
+    public Dimension preferredLayoutSize(Container parent) 
+    {
+      Insets insets = parent.getInsets();
+      int maxW = 0;
+      int maxH = 0;
+      int count = parent.getComponentCount();
+      if (count > 0) 
+        {
+          for (int i = 0; i < count; i++)
+            {
+              Component c = parent.getComponent(i);
+              Dimension d = c.getPreferredSize();
+              maxW = Math.max(d.width, maxW);
+              maxH = Math.max(d.height, maxH);
+            }
+        }
+      return new Dimension(maxW * count + GAP * (count - 1) + insets.left 
+              + insets.right, maxH + insets.top + insets.bottom);
+    }
+    
+    /**
+     * This layout manager does not need to track components, so this 
+     * method does nothing.
+     * 
+     * @param name  the name the component is associated with.
+     * @param component  the component.
+     */
+    public void addLayoutComponent(String name, Component component) 
+    {
+      // do nothing
+    }
+    
+    /**
+     * This layout manager does not need to track components, so this 
+     * method does nothing.
+     * 
+     * @param component  the component.
+     */
+    public void removeLayoutComponent(Component component) {
+      // do nothing
+    }
   }
 
 }
index bcb86e6104779574968696462b7733163b1edd4e..0b644f30037479178a5562232ca421d93ae23f3a 100644 (file)
@@ -68,6 +68,12 @@ public class MetalIconFactory implements Serializable
     
   /** A constant representing "light". */
   public static final boolean LIGHT = true;
+  
+  /** A shared instance of the MenuArrowIcon. */
+  private static Icon menuArrow;
+  
+  /** A shared instance of the MenuItemArrowIcon. */
+  private static Icon menuItemArrow;
     
   /**
    * An icon displayed for {@link JCheckBoxMenuItem} components.
@@ -2467,4 +2473,102 @@ public class MetalIconFactory implements Serializable
     return treeHardDriveIcon;
   }
 
+  /**
+   * Returns a new instance of a 4 x 8 icon showing a small black triangle that
+   * points to the right.  This is displayed in menu items that have a 
+   * sub menu.
+   * 
+   * @return The icon.
+   */
+  public static Icon getMenuArrowIcon()
+  {
+    if (menuArrow == null)
+      menuArrow = new Icon()
+      {
+        public int getIconHeight()
+        {
+          return 8;
+        }
+
+        public int getIconWidth()
+        {
+          return 4;
+        }
+
+        public void paintIcon(Component c, Graphics g, int x, int y)
+        {
+          Color saved = g.getColor();
+          g.setColor(Color.BLACK);
+          for (int i = 0; i < 4; i++)
+            g.drawLine(x + i, y + i, x + i, y + 7 - i);
+          g.setColor(saved);
+        }
+      };
+    return menuArrow;
+  }
+  
+  /**
+   * Returns a new instance of a 4 x 8 icon showing a small black triangle that
+   * points to the right. This is displayed in menu items that have a sub menu.
+   * 
+   * @return The icon.
+   */
+  public static Icon getMenuItemArrowIcon()
+  {
+    if (menuItemArrow == null)
+      menuItemArrow = new Icon()
+      {
+        public int getIconHeight()
+        {
+          return 8;
+        }
+
+        public int getIconWidth()
+        {
+          return 4;
+        }
+
+        public void paintIcon(Component c, Graphics g, int x, int y)
+        {
+          Color saved = g.getColor();
+          g.setColor(Color.BLACK);
+          for (int i = 0; i < 4; i++)
+            g.drawLine(x + i, y + i, x + i, y + 7 - i);
+          g.setColor(saved);
+        }
+      };
+    return menuItemArrow;
+  }
+  
+  /**
+   * Returns a new instance of a 13 x 13 icon showing a small black check mark.
+   * 
+   * @return The icon.
+   */
+  public static Icon getMenuItemCheckIcon()
+  {
+    return new Icon()
+    {
+      public int getIconHeight()
+      {
+        return 13;
+      }
+
+      public int getIconWidth()
+      {
+        return 13;
+      }
+
+      public void paintIcon(Component c, Graphics g, int x, int y)
+      {
+        Color saved = g.getColor();
+        g.setColor(Color.BLACK);
+        g.drawLine(3 + x, 5 + y, 3 + x, 9 + y);
+        g.drawLine(4 + x, 5 + y, 4 + x, 9 + y);
+        g.drawLine(5 + x, 7 + y, 9 + x, 3 + y);
+        g.drawLine(5 + x, 8 + y, 9 + x, 4 + y);
+        g.setColor(saved);
+      }
+    };
+  }
 }
index da019379bf51ca2c4df0609a5e6e15360bc688b5..c60b55c9e7bb4bafbb016bfb633d77ba8c2b9158 100644 (file)
@@ -40,7 +40,6 @@ package javax.swing.plaf.metal;
 
 import java.awt.Color;
 import java.awt.Font;
-import java.awt.Insets;
 
 import javax.swing.LookAndFeel;
 import javax.swing.UIDefaults;
@@ -55,7 +54,17 @@ import javax.swing.plaf.basic.BasicLookAndFeel;
 
 /**
  * A custom look and feel that is designed to look similar across different
- * operating systems.
+ * operating systems.  To install this look and feel, add the following code 
+ * (or something similar) near the start of your application:</p>
+ * <pre>
+ * try
+ * {
+ * &nbsp;&nbsp;UIManager.setLookAndFeel(new MetalLookAndFeel());
+ * }
+ * catch (UnsupportedLookAndFeelException e)
+ * {
+ * &nbsp;&nbsp;e.printStackTrace();
+ * }</pre>
  */
 public class MetalLookAndFeel extends BasicLookAndFeel
 {         
@@ -72,8 +81,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public MetalLookAndFeel()
   {
-    if (theme == null)
-      createDefaultTheme();
+    createDefaultTheme();
   }
 
   /**
@@ -81,7 +89,8 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   protected void createDefaultTheme()
   {
-    setCurrentTheme(new DefaultMetalTheme());
+    if (theme == null)
+      setCurrentTheme(new DefaultMetalTheme());
   }
 
   /**
@@ -115,7 +124,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public String getDescription()
   {
-    return "Metal look and feel";
+    return "The Java(tm) Look and Feel";
   }
 
   /**
@@ -125,7 +134,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public String getID()
   {
-    return "MetalLookAndFeel";
+    return "Metal";
   }
 
   /**
@@ -135,7 +144,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public String getName()
   {
-    return "MetalLookAndFeel";
+    return "Metal";
   }
 
   public UIDefaults getDefaults()
@@ -145,7 +154,8 @@ public class MetalLookAndFeel extends BasicLookAndFeel
         LAF_defaults = super.getDefaults();
 
         // add custom theme entries to the table
-        theme.addCustomEntriesToTable(LAF_defaults);
+        if (theme != null)
+          theme.addCustomEntriesToTable(LAF_defaults);
       }
     
     // Returns the default values for this look and feel. 
@@ -159,7 +169,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getAcceleratorForeground()
   {
-    return theme.getAcceleratorForeground();
+    if (theme != null)
+      return theme.getAcceleratorForeground();
+    return null;
   }
 
   /**
@@ -170,7 +182,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getAcceleratorSelectedForeground()
   {
-    return theme.getAcceleratorSelectedForeground();
+    if (theme != null)
+      return theme.getAcceleratorSelectedForeground();
+    return null;
   }
 
   /**
@@ -180,7 +194,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getBlack()
   {
-    return theme.getBlack();
+    if (theme != null)
+      return theme.getBlack();
+    return null;
   }
 
   /**
@@ -190,7 +206,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getControl()
   {
-    return theme.getControl();
+    if (theme != null)
+      return theme.getControl();
+    return null;
   }
 
   /**
@@ -201,7 +219,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getControlDarkShadow()
   {
-    return theme.getControlDarkShadow();
+    if (theme != null)
+      return theme.getControlDarkShadow();
+    return null;
   }
 
   /**
@@ -211,7 +231,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getControlDisabled()
   {
-    return theme.getControlDisabled();
+    if (theme != null)
+      return theme.getControlDisabled();
+    return null;
   }
 
   /**
@@ -222,7 +244,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getControlHighlight()
   {
-    return theme.getControlHighlight();
+    if (theme != null)
+      return theme.getControlHighlight();
+    return null;
   }
 
   /**
@@ -233,7 +257,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getControlInfo()
   {
-    return theme.getControlInfo();
+    if (theme != null)
+      return theme.getControlInfo();
+    return null;
   }
 
   /**
@@ -244,7 +270,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getControlShadow()
   {
-    return theme.getControlShadow();
+    if (theme != null)
+      return theme.getControlShadow();
+    return null;
   }
 
   /**
@@ -254,7 +282,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getControlTextColor()
   {
-    return theme.getControlTextColor();
+    if (theme != null)
+      return theme.getControlTextColor();
+    return null;
   }
 
   /**
@@ -264,7 +294,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static FontUIResource getControlTextFont()
   {
-    return theme.getControlTextFont();
+    if (theme != null)
+      return theme.getControlTextFont();
+    return null;
   }
 
   /**
@@ -275,7 +307,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getDesktopColor()
   {
-    return theme.getDesktopColor();
+    if (theme != null)
+      return theme.getDesktopColor();
+    return null;
   }
 
   /**
@@ -286,7 +320,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getFocusColor()
   {
-    return theme.getFocusColor();
+    if (theme != null)
+      return theme.getFocusColor();
+    return null;
   }
 
   /**
@@ -297,7 +333,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getHighlightedTextColor()
   {
-    return theme.getHighlightedTextColor();
+    if (theme != null)
+      return theme.getHighlightedTextColor();
+    return null;
   }
 
   /**
@@ -308,7 +346,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getInactiveControlTextColor()
   {
-    return theme.getInactiveControlTextColor();
+    if (theme != null)
+      return theme.getInactiveControlTextColor();
+    return null;
   }
 
   /**
@@ -319,7 +359,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getInactiveSystemTextColor()
   {
-    return theme.getInactiveSystemTextColor();
+    if (theme != null)
+      return theme.getInactiveSystemTextColor();
+    return null;
   }
 
   /**
@@ -331,7 +373,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getMenuBackground()
   {
-    return theme.getMenuBackground();
+    if (theme != null)
+      return theme.getMenuBackground();
+    return null;
   }
 
   /**
@@ -344,7 +388,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getMenuDisabledForeground()
   {
-    return theme.getMenuDisabledForeground();
+    if (theme != null)
+      return theme.getMenuDisabledForeground();
+    return null;
   }
 
   /**
@@ -357,7 +403,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getMenuForeground()
   {
-    return theme.getMenuForeground();
+    if (theme != null)
+      return theme.getMenuForeground();
+    return null;
   }
 
   /**
@@ -370,7 +418,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getMenuSelectedBackground()
   {
-    return theme.getMenuSelectedBackground();
+    if (theme != null)
+      return theme.getMenuSelectedBackground();
+    return null;
   }
 
   /**
@@ -383,7 +433,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getMenuSelectedForeground()
   {
-    return theme.getMenuSelectedForeground();
+    if (theme != null)
+      return theme.getMenuSelectedForeground();
+    return null;
   }
 
   /**
@@ -393,7 +445,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static FontUIResource getMenuTextFont()
   {
-    return theme.getMenuTextFont();
+    if (theme != null)
+      return theme.getMenuTextFont();
+    return null;
   }
 
   /**
@@ -403,7 +457,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getPrimaryControl()
   {
-    return theme.getPrimaryControl();
+    if (theme != null)
+      return theme.getPrimaryControl();
+    return null;
   }
 
   /**
@@ -414,7 +470,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getPrimaryControlDarkShadow()
   {
-    return theme.getPrimaryControlDarkShadow();
+    if (theme != null)
+      return theme.getPrimaryControlDarkShadow();
+    return null;
   }
 
   /**
@@ -425,7 +483,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getPrimaryControlHighlight()
   {
-    return theme.getPrimaryControlHighlight();
+    if (theme != null)
+      return theme.getPrimaryControlHighlight();
+    return null;
   }
 
   /**
@@ -436,7 +496,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getPrimaryControlInfo()
   {
-    return theme.getPrimaryControlInfo();
+    if (theme != null)
+      return theme.getPrimaryControlInfo();
+    return null;
   }
 
   /**
@@ -447,7 +509,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getPrimaryControlShadow()
   {
-    return theme.getPrimaryControlShadow();
+    if (theme != null)
+      return theme.getPrimaryControlShadow();
+    return null;
   }
 
   /**
@@ -457,7 +521,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getSeparatorBackground()
   {
-    return theme.getSeparatorBackground();
+    if (theme != null)
+      return theme.getSeparatorBackground();
+    return null;
   }
 
   /**
@@ -467,7 +533,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getSeparatorForeground()
   {
-    return theme.getSeparatorForeground();
+    if (theme != null)
+      return theme.getSeparatorForeground();
+    return null;
   }
 
   /**
@@ -477,7 +545,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static FontUIResource getSubTextFont()
   {
-    return theme.getSubTextFont();
+    if (theme != null)
+      return theme.getSubTextFont();
+    return null;
   }
 
   /**
@@ -487,7 +557,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getSystemTextColor()
   {
-    return theme.getSystemTextColor();
+    if (theme != null)
+      return theme.getSystemTextColor();
+    return null;
   }
 
   /**
@@ -497,7 +569,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static FontUIResource getSystemTextFont()
   {
-    return theme.getSystemTextFont();
+    if (theme != null)
+      return theme.getSystemTextFont();
+    return null;
   }
 
   /**
@@ -507,7 +581,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getTextHighlightColor()
   {
-    return theme.getTextHighlightColor();
+    if (theme != null)
+      return theme.getTextHighlightColor();
+    return null;
   }
 
   /**
@@ -517,7 +593,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getUserTextColor()
   {
-    return theme.getUserTextColor();
+    if (theme != null)
+      return theme.getUserTextColor();
+    return null;
   }
 
   /**
@@ -527,7 +605,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static FontUIResource getUserTextFont()
   {
-    return theme.getUserTextFont();
+    if (theme != null)
+      return theme.getUserTextFont();
+    return null;
   }
 
   /**
@@ -537,7 +617,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getWhite()
   {
-    return theme.getWhite();
+    if (theme != null)
+      return theme.getWhite();
+    return null;
   }
 
   /**
@@ -547,7 +629,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getWindowBackground()
   {
-    return theme.getWindowBackground();
+    if (theme != null)
+      return theme.getWindowBackground();
+    return null;
   }
 
   /**
@@ -557,7 +641,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getWindowTitleBackground()
   {
-    return theme.getWindowTitleBackground();
+    if (theme != null)
+      return theme.getWindowTitleBackground();
+    return null;
   }
 
   /**
@@ -569,7 +655,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static FontUIResource getWindowTitleFont()
   {
-    return theme.getWindowTitleFont();
+    if (theme != null)
+      return theme.getWindowTitleFont();
+    return null;
   }
 
   /**
@@ -579,7 +667,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getWindowTitleForeground()
   {
-    return theme.getWindowTitleForeground();
+    if (theme != null)
+      return theme.getWindowTitleForeground();
+    return null;
   }
 
   /**
@@ -590,7 +680,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getWindowTitleInactiveBackground()
   {
-    return theme.getWindowTitleInactiveBackground();
+    if (theme != null)
+      return theme.getWindowTitleInactiveBackground();
+    return null;
   }
 
   /**
@@ -601,7 +693,9 @@ public class MetalLookAndFeel extends BasicLookAndFeel
    */
   public static ColorUIResource getWindowTitleInactiveForeground()
   {
-    return theme.getWindowTitleInactiveForeground();
+    if (theme != null)
+      return theme.getWindowTitleInactiveForeground();
+    return null;
   }
 
   /**
@@ -691,6 +785,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
       "CheckBoxUI", "javax.swing.plaf.metal.MetalCheckBoxUI",
       "ComboBoxUI", "javax.swing.plaf.metal.MetalComboBoxUI",
       "DesktopIconUI", "javax.swing.plaf.metal.MetalDesktopIconUI",
+      "FileChooserUI", "javax.swing.plaf.metal.MetalFileChooserUI",
       "InternalFrameUI", "javax.swing.plaf.metal.MetalInternalFrameUI",
       "LabelUI", "javax.swing.plaf.metal.MetalLabelUI",
       "MenuBarUI", "javax.swing.plaf.metal.MetalMenuBarUI",
@@ -841,7 +936,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
 
       "EditorPane.background", getWindowBackground(),
       "EditorPane.caretForeground", getUserTextColor(),
-      "EditorPane.font", new FontUIResource("Dialog", Font.PLAIN, 12),
+      "EditorPane.font", new FontUIResource("Dialog", Font.BOLD, 12),
       "EditorPane.foreground",  getUserTextColor(),
       "EditorPane.inactiveForeground",  getInactiveSystemTextColor(),
       "EditorPane.selectionBackground", getTextHighlightColor(),
@@ -858,6 +953,19 @@ public class MetalLookAndFeel extends BasicLookAndFeel
       "FormattedTextField.selectionBackground", getTextHighlightColor(),
       "FormattedTextField.selectionForeground", getHighlightedTextColor(),
 
+      "FileChooser.upFolderIcon", 
+          MetalIconFactory.getFileChooserUpFolderIcon(),
+      "FileChooser.listViewIcon", 
+          MetalIconFactory.getFileChooserListViewIcon(),
+      "FileChooser.newFolderIcon", 
+          MetalIconFactory.getFileChooserNewFolderIcon(),
+      "FileChooser.homeFolderIcon", 
+          MetalIconFactory.getFileChooserHomeFolderIcon(),
+      "FileChooser.detailsViewIcon", 
+          MetalIconFactory.getFileChooserDetailViewIcon(),
+      "FileChooser.fileNameLabelMnemonic", new Integer(78),
+      "FileChooser.filesOfTypeLabelMnemonic",new Integer(84),
+      "FileChooser.lookInLabelMnemonic", new Integer(73),
       "FileView.computerIcon", MetalIconFactory.getTreeComputerIcon(),
       "FileView.directoryIcon", MetalIconFactory.getTreeFolderIcon(),
       "FileView.fileIcon", MetalIconFactory.getTreeLeafIcon(),
@@ -875,15 +983,20 @@ public class MetalLookAndFeel extends BasicLookAndFeel
       "InternalFrame.icon", MetalIconFactory.getInternalFrameDefaultMenuIcon(),
       "InternalFrame.closeIcon", 
         MetalIconFactory.getInternalFrameCloseIcon(16),
+      "InternalFrame.closeSound", "sounds/FrameClose.wav",
       "InternalFrame.inactiveTitleBackground", getWindowTitleInactiveBackground(),
       "InternalFrame.inactiveTitleForeground", getWindowTitleInactiveForeground(),
       "InternalFrame.maximizeIcon", 
         MetalIconFactory.getInternalFrameMaximizeIcon(16),
+      "InternalFrame.maximizeSound", "sounds/FrameMaximize.wav",
       "InternalFrame.iconifyIcon", 
         MetalIconFactory.getInternalFrameMinimizeIcon(16),
+      "InternalFrame.minimizeSound", "sounds/FrameMinimize.wav",
       "InternalFrame.paletteBorder", new MetalBorders.PaletteBorder(),
       "InternalFrame.paletteCloseIcon", new MetalIconFactory.PaletteCloseIcon(),
       "InternalFrame.paletteTitleHeight", new Integer(11),
+      "InternalFrame.restoreDownSound", "sounds/FrameRestoreDown.wav",
+      "InternalFrame.restoreUpSound", "sounds/FrameRestoreUp.wav",
 
       "Label.background", getControl(),
       "Label.disabledForeground", getInactiveSystemTextColor(),
@@ -902,14 +1015,18 @@ public class MetalLookAndFeel extends BasicLookAndFeel
       "Menu.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 10),
       "Menu.acceleratorForeground", getAcceleratorForeground(),
       "Menu.acceleratorSelectionForeground", getAcceleratorSelectedForeground(),
+      "Menu.arrowIcon", MetalIconFactory.getMenuArrowIcon(),
       "Menu.background", getMenuBackground(),
       "Menu.border", new MetalBorders.MenuItemBorder(),
       "Menu.borderPainted", Boolean.TRUE,
+      "MenuItem.commandSound", "sounds/MenuItemCommand.wav",
       "Menu.disabledForeground", getMenuDisabledForeground(),
       "Menu.font", getControlTextFont(),
       "Menu.foreground", getMenuForeground(),
       "Menu.selectionBackground", getMenuSelectedBackground(),
       "Menu.selectionForeground", getMenuSelectedForeground(),
+      "Menu.submenuPopupOffsetX", new Integer(-4),
+      "Menu.submenuPopupOffsetY", new Integer(-3),
 
       "MenuBar.background", getMenuBackground(),
       "MenuBar.border", new MetalBorders.MenuBarBorder(),
@@ -918,11 +1035,14 @@ public class MetalLookAndFeel extends BasicLookAndFeel
       "MenuBar.highlight", getControlHighlight(),
       "MenuBar.shadow", getControlShadow(),
 
+      "MenuItem.acceleratorDelimiter", "-",
       "MenuItem.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 10),
       "MenuItem.acceleratorForeground", getAcceleratorForeground(),
       "MenuItem.acceleratorSelectionForeground", getAcceleratorSelectedForeground(),
+      "MenuItem.arrowIcon", MetalIconFactory.getMenuItemArrowIcon(),
       "MenuItem.background", getMenuBackground(),
       "MenuItem.border", new MetalBorders.MenuItemBorder(),
+      "MenuItem.borderPainted", Boolean.TRUE,
       "MenuItem.disabledForeground", getMenuDisabledForeground(),
       "MenuItem.font", getControlTextFont(),
       "MenuItem.foreground", getMenuForeground(),
@@ -930,6 +1050,10 @@ public class MetalLookAndFeel extends BasicLookAndFeel
       "MenuItem.selectionForeground", getMenuSelectedForeground(),
 
       "OptionPane.background", getControl(),
+      "OptionPane.errorSound", "sounds/OptionPaneError.wav",
+      "OptionPane.informationSound", "sounds/OptionPaneInformation.wav",
+      "OptionPane.questionSound", "sounds/OptionPaneQuestion.wav",
+      "OptionPane.warningSound", "sounds/OptionPaneWarning.wav",
       "OptionPane.errorDialog.border.background", new ColorUIResource(153, 51, 51), 
       "OptionPane.errorDialog.titlePane.background", new ColorUIResource(255, 153, 153),
       "OptionPane.errorDialog.titlePane.foreground", new ColorUIResource(51, 0, 0),
@@ -953,6 +1077,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
       new BorderUIResource(MetalBorders.getTextFieldBorder()),
       "PasswordField.caretForeground", getUserTextColor(),
       "PasswordField.foreground", getUserTextColor(),
+      "PasswordField.font", new FontUIResource("Dialog", Font.PLAIN, 12),
       "PasswordField.inactiveBackground", getControl(),
       "PasswordField.inactiveForeground", getInactiveSystemTextColor(),
       "PasswordField.selectionBackground", getTextHighlightColor(),
@@ -962,6 +1087,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
       "PopupMenu.border", new MetalBorders.PopupMenuBorder(),
       "PopupMenu.font", new FontUIResource("Dialog", Font.BOLD, 12),
       "PopupMenu.foreground", getMenuForeground(),
+      "PopupMenu.popupSound", "sounds/PopupMenuPopup.wav",
 
       "ProgressBar.background", getControl(),
       "ProgressBar.border", new BorderUIResource.LineBorderUIResource(getControlDarkShadow(), 1),
@@ -997,6 +1123,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
       "RadioButtonMenuItem.borderPainted", Boolean.TRUE,
       "RadioButtonMenuItem.checkIcon", 
         MetalIconFactory.getRadioButtonMenuItemIcon(),
+      "RadioButtonMenuItem.commandSound", "sounds/MenuItemCommand.wav",
       "RadioButtonMenuItem.disabledForeground", getMenuDisabledForeground(),
       "RadioButtonMenuItem.font", MetalLookAndFeel.getControlTextFont(),
       "RadioButtonMenuItem.foreground", getMenuForeground(),
@@ -1006,6 +1133,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
       "RadioButtonMenuItem.selectionForeground", 
         MetalLookAndFeel.getMenuSelectedForeground(),
 
+      "ScrollBar.allowsAbsolutePositioning", Boolean.TRUE,
       "ScrollBar.background", getControl(),
       "ScrollBar.darkShadow", getControlDarkShadow(),
       "ScrollBar.foreground", getControl(),
@@ -1041,6 +1169,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
       "Slider.verticalThumbIcon", 
       MetalIconFactory.getVerticalSliderThumbIcon(),
 
+      "Spinner.arrowButtonInsets", new InsetsUIResource(0, 0, 0, 0),
       "Spinner.background", getControl(),
       "Spinner.font", new FontUIResource("Dialog", Font.BOLD, 12),
       "Spinner.foreground", getControl(),
@@ -1048,6 +1177,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
       "SplitPane.background", getControl(),
       "SplitPane.darkShadow", getControlDarkShadow(),
       "SplitPane.dividerFocusColor", getPrimaryControl(),
+      "SplitPane.dividerSize", new Integer(10),
       "SplitPane.highlight", getControlHighlight(),
       "SplitPane.shadow", getControlShadow(),
 
@@ -1150,6 +1280,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
       "ToolTip.font", new FontUIResource("Dialog", Font.PLAIN, 12),
       "ToolTip.foreground", getPrimaryControlInfo(),
       "ToolTip.foregroundInactive", getControlDarkShadow(),
+      "ToolTip.hideAccelerator", Boolean.FALSE,
 
       "Tree.background", getWindowBackground(),
       "Tree.closedIcon", MetalIconFactory.getTreeFolderIcon(),
index de71fe8e5b2a468f8943d5721b485319ecb67025..9fb960f68b9872c4d315f233e414284191933ef6 100644 (file)
@@ -176,7 +176,7 @@ public class MetalRadioButtonUI
   protected void paintFocus(Graphics g, Rectangle t, Dimension d)
   {
     g.setColor(focusColor);
-    g.drawRect(t.x - 1, t.y + 2, t.width + 2, t.height - 4);
+    g.drawRect(t.x - 1, t.y - 1, t.width + 2, t.height + 2);
   }
   
 }
index d5bf175f92dbc5b869a7857ef9758a4a4c2cbdcd..ae14af3cae98ddd71deb49c80fd4aeae2b48ccbc 100644 (file)
@@ -38,7 +38,10 @@ exception statement from your version. */
 
 package javax.swing.plaf.metal;
 
+import java.beans.PropertyChangeListener;
+
 import javax.swing.JComponent;
+import javax.swing.JScrollBar;
 import javax.swing.JScrollPane;
 import javax.swing.plaf.ComponentUI;
 import javax.swing.plaf.basic.BasicScrollPaneUI;
@@ -68,4 +71,89 @@ public class MetalScrollPaneUI
   {
     return new MetalScrollPaneUI();
   }
+  
+  /**
+   * Configures the specified component appropriate for the look and feel. 
+   * This method is invoked when the ComponentUI instance is being installed 
+   * as the UI delegate on the specified component. This method should 
+   * completely configure the component for the look and feel, 
+   * including the following:
+   * 1. Install any default property values for color, fonts, borders,
+   * icons, opacity, etc. on the component. Whenever possible, property
+   * values initialized by the client program should not be overridden.
+   * 2. Install a LayoutManager on the component if necessary.
+   * 3. Create/add any required sub-components to the component.
+   * 4. Create/install event listeners on the component.
+   * 5. Create/install a PropertyChangeListener on the component in order
+   * to detect and respond to component property changes appropriately.
+   * 6. Install keyboard UI (mnemonics, traversal, etc.) on the component.
+   * 7. Initialize any appropriate instance data. 
+   * 
+   * @param c - the component to install the ui on
+   */
+  public void installUI(JComponent c)
+  {
+    super.installUI(c);
+    JScrollBar hsb = scrollpane.getHorizontalScrollBar();
+    hsb.putClientProperty(MetalScrollBarUI.FREE_STANDING_PROP, Boolean.FALSE);
+    JScrollBar vsb = scrollpane.getVerticalScrollBar();
+    vsb.putClientProperty(MetalScrollBarUI.FREE_STANDING_PROP, Boolean.FALSE);
+  }
+
+  /**
+   * Reverses configuration which was done on the specified component 
+   * during installUI. This method is invoked when this UIComponent 
+   * instance is being removed as the UI delegate for the specified 
+   * component. This method should undo the configuration performed in 
+   * installUI, being careful to leave the JComponent instance in a 
+   * clean state (no extraneous listeners, look-and-feel-specific property
+   *  objects, etc.). This should include the following:
+   *  1. Remove any UI-set borders from the component.
+   *  2. Remove any UI-set layout managers on the component.
+   *  3. Remove any UI-added sub-components from the component.
+   *  4. Remove any UI-added event/property listeners from the component.
+   *  5. Remove any UI-installed keyboard UI from the component.
+   *  6. Nullify any allocated instance data objects to allow for GC. 
+   *  
+   *  @param c - the component to uninstall the ui on
+   */
+  public void uninstallUI(JComponent c)
+  {
+    JScrollBar hsb = scrollpane.getHorizontalScrollBar();
+    hsb.putClientProperty(MetalScrollBarUI.FREE_STANDING_PROP, null);
+    JScrollBar vsb = scrollpane.getVerticalScrollBar();
+    vsb.putClientProperty(MetalScrollBarUI.FREE_STANDING_PROP, null);
+    super.uninstallUI(c);
+  }
+
+  /**
+   * Installs listeners on scrollPane
+   * 
+   * @param scrollPane - the component to install the listeners on
+   */
+  public void installListeners(JScrollPane scrollPane)
+  {
+    super.installListeners(scrollPane);
+  }
+  
+  /**
+   * Uninstalls listeners on scrollPane
+   * 
+   * @param scrollPane - the component to uninstall the listeners on
+   */
+  public void uninstallListeners(JScrollPane scrollPane)
+  {
+    super.uninstallListeners(scrollPane);
+  }
+
+  /**
+   * TODO
+   * 
+   * @return TODO
+   */
+  protected PropertyChangeListener createScrollBarSwapListener()
+  {
+    // FIXME: Anything else to do here?
+    return super.createPropertyChangeListener();
+  }
 }
index 016e09557d629e8c67e1a7421c997871db9d15ca..34a964cb339187f8ce1e6aa2b2341fd788b9a76d 100644 (file)
@@ -38,9 +38,16 @@ exception statement from your version. */
 package javax.swing.plaf.metal;
 
 import java.awt.Color;
+import java.awt.Component;
+import java.awt.Container;
 import java.awt.Dimension;
 import java.awt.Graphics;
+import java.awt.LayoutManager;
+import java.awt.Point;
 
+import javax.swing.JSplitPane;
+import javax.swing.SwingConstants;
+import javax.swing.plaf.basic.BasicArrowButton;
 import javax.swing.plaf.basic.BasicSplitPaneDivider;
 
 /**
@@ -56,7 +63,13 @@ class MetalSplitPaneDivider extends BasicSplitPaneDivider
 
   /** The light color in the pattern. */
   Color light;
+  
+  /** The JSplitPane the divider is on. */
+  JSplitPane splitPane;
 
+  /** The split pane orientation. */
+  int orientation;
+  
   /**
    * Creates a new instance of MetalSplitPaneDivider.
    *
@@ -65,6 +78,9 @@ class MetalSplitPaneDivider extends BasicSplitPaneDivider
   public MetalSplitPaneDivider(MetalSplitPaneUI ui, Color light, Color dark)
   {
     super(ui);
+    setLayout(new MetalDividerLayout());
+    this.splitPane = super.splitPane;
+    this.orientation = super.orientation;
     this.light = light;
     this.dark = dark;
   }
@@ -76,9 +92,127 @@ class MetalSplitPaneDivider extends BasicSplitPaneDivider
    */
   public void paint(Graphics g)
   {
-    //super.paint(g);
     Dimension s = getSize();
     MetalUtils.fillMetalPattern(splitPane, g, 2, 2, s.width - 4, s.height - 4,
                                 light, dark);
+    if (splitPane.isOneTouchExpandable())
+      {
+        ((BasicArrowButton) rightButton).paint(g);
+        ((BasicArrowButton) leftButton).paint(g);
+      }
+  }
+  
+  /**
+   * This helper class acts as the Layout Manager for the divider.
+   */
+  public class MetalDividerLayout implements LayoutManager
+  {
+    /** The right button. */
+    BasicArrowButton rb;
+    
+    /** The left button. */
+    BasicArrowButton lb;
+    
+    /**
+     * Creates a new DividerLayout object.
+     */
+    public MetalDividerLayout()
+    {
+      // Nothing to do here
+    }
+
+    /**
+     * This method is called when a Component is added.
+     *
+     * @param string The constraints string.
+     * @param c The Component to add.
+     */
+    public void addLayoutComponent(String string, Component c)
+    {
+      // Nothing to do here, constraints are set depending on
+      // orientation in layoutContainer
+    }
+    
+    /**
+     * This method is called to lay out the container.
+     *
+     * @param c The container to lay out.
+     */
+    public void layoutContainer(Container c)
+    {
+      // The only components we care about setting up are the
+      // one touch buttons.
+      if (splitPane.isOneTouchExpandable())
+        {
+          if (c.getComponentCount() == 2)
+            {
+              Component c1 = c.getComponent(0);
+              Component c2 = c.getComponent(1);
+              if ((c1 instanceof BasicArrowButton)
+                  && (c2 instanceof BasicArrowButton))
+                {
+                  lb = ((BasicArrowButton) c1);
+                  rb = ((BasicArrowButton) c2);
+                }
+            }
+          if (rb != null && lb != null)
+            {
+              Point p = getLocation();
+              lb.setSize(lb.getPreferredSize());
+              rb.setSize(rb.getPreferredSize());
+              lb.setLocation(p.x, p.y);
+              
+              if (orientation == JSplitPane.HORIZONTAL_SPLIT)
+                {
+                  rb.setDirection(SwingConstants.EAST);
+                  lb.setDirection(SwingConstants.WEST);
+                  rb.setLocation(p.x, p.y + lb.getHeight());
+                }
+              else
+                {
+                  rb.setDirection(SwingConstants.SOUTH);
+                  lb.setDirection(SwingConstants.NORTH);
+                  rb.setLocation(p.x + lb.getWidth(), p.y);
+                }
+            }
+        }
+    }
+
+    /**
+     * This method returns the minimum layout size.
+     *
+     * @param c The container to calculate for.
+     *
+     * @return The minimum layout size.
+     */
+    public Dimension minimumLayoutSize(Container c)
+    {
+      return preferredLayoutSize(c);
+    }
+
+    /**
+     * This method returns the preferred layout size.
+     *
+     * @param c The container to calculate for.
+     *
+     * @return The preferred layout size.
+     */
+    public Dimension preferredLayoutSize(Container c)
+    {
+      int dividerSize = getDividerSize();
+      return new Dimension(dividerSize, dividerSize);
+    }
+
+    /**
+     * This method is called when a component is removed.
+     *
+     * @param c The component to remove.
+     */
+    public void removeLayoutComponent(Component c)
+    {
+      // Nothing to do here. If buttons are removed
+      // they will not be layed out when layoutContainer is 
+      // called.
+    }
   }
 }
index b1e02c7a6b04bbe7c2f622682ab49d849accb15a..c6c46ffe6145553892fb3f1a40b66b9453a040e8 100644 (file)
@@ -38,11 +38,14 @@ exception statement from your version. */
 
 package javax.swing.plaf.metal;
 
+import java.awt.Color;
 import java.awt.Graphics;
 import java.awt.LayoutManager;
+import java.awt.Rectangle;
 
 import javax.swing.JComponent;
 import javax.swing.JTabbedPane;
+import javax.swing.UIManager;
 import javax.swing.plaf.ComponentUI;
 import javax.swing.plaf.basic.BasicTabbedPaneUI;
 
@@ -100,6 +103,29 @@ public class MetalTabbedPaneUI extends BasicTabbedPaneUI
     }
   }
 
+  /**
+   * The minimum tab width.
+   */
+  protected int minTabWidth;
+
+  /**
+   * The color for the selected tab.
+   */
+  protected Color selectColor;
+
+  /**
+   * The color for a highlighted selected tab.
+   */
+  protected Color selectHighlight;
+
+  /**
+   * The background color used for the tab area.
+   */
+  protected Color tabAreaBackground;
+
+  /** The graphics to draw the highlight below the tab. */
+  private Graphics hg;
+  
   /**
    * Constructs a new instance of MetalTabbedPaneUI.
    */
@@ -175,6 +201,16 @@ public class MetalTabbedPaneUI extends BasicTabbedPaneUI
   protected void paintTopTabBorder(int tabIndex, Graphics g, int x, int y,
       int w, int h, int btm, int rght, boolean isSelected)
   {
+    int currentRun = getRunForTab(tabPane.getTabCount(), tabIndex);
+    if (shouldFillGap(currentRun, tabIndex, x, y))
+      {
+        g.translate(x, y);
+        g.setColor(getColorForGap(currentRun, x, y));
+        g.fillRect(1, 0, 5, 3);
+        g.fillRect(1, 3, 2, 2);
+        g.translate(-x, -y);
+      }
+    
     if (isSelected)
     {
       g.setColor(MetalLookAndFeel.getControlHighlight());
@@ -267,6 +303,16 @@ public class MetalTabbedPaneUI extends BasicTabbedPaneUI
   protected void paintBottomTabBorder(int tabIndex, Graphics g, int x, int y,
       int w, int h, int btm, int rght, boolean isSelected)
   {
+    int currentRun = getRunForTab(tabPane.getTabCount(), tabIndex);
+    if (shouldFillGap(currentRun, tabIndex, x, y))
+      {
+        g.translate(x, y);
+        g.setColor(getColorForGap(currentRun, x, y));
+        g.fillRect(1, h - 5, 3, 5);
+        g.fillRect(4, h - 2, 2, 2);
+        g.translate(-x, -y);
+      }
+    
     if (isSelected)
     {
       g.setColor(MetalLookAndFeel.getControlHighlight());
@@ -297,9 +343,16 @@ public class MetalTabbedPaneUI extends BasicTabbedPaneUI
       int tabIndex, int x, int y, int w, int h, boolean isSelected)
   {
     if (isSelected)
-      g.setColor(MetalLookAndFeel.getControl());
+      g.setColor(UIManager.getColor("TabbedPane.selected"));
     else
-      g.setColor(MetalLookAndFeel.getControlShadow());
+      {
+        // This is only present in the OceanTheme, so we must check if it
+        // is actually there
+        Color background = UIManager.getColor("TabbedPane.unselectedBackground");
+        if (background == null)
+          background = UIManager.getColor("TabbedPane.background");
+        g.setColor(background);
+      }
     int[] px, py;
     if (tabPlacement == TOP) 
       {
@@ -324,6 +377,8 @@ public class MetalTabbedPaneUI extends BasicTabbedPaneUI
     else 
       throw new AssertionError("Unrecognised 'tabPlacement' argument.");
     g.fillPolygon(px, py, 5);
+    hg = g;
+    paintHighlightBelowTab();
   }
   
   /**
@@ -342,5 +397,94 @@ public class MetalTabbedPaneUI extends BasicTabbedPaneUI
     // (which is drawn at the very top for tabPlacement == TOP)
     return run < this.runCount - 1;
   }
+
+  /**
+   * Installs the defaults for this UI. This method calls super.installDefaults
+   * and then loads the Metal specific defaults for TabbedPane.
+   */
+  protected void installDefaults()
+  {
+    super.installDefaults();
+    selectColor = UIManager.getColor("TabbedPane.selected");
+    selectHighlight = UIManager.getColor("TabbedPane.selectHighlight");
+    tabAreaBackground = UIManager.getColor("TabbedPane.tabAreaBackground");
+    minTabWidth = 0;
+  }
   
+  /**
+   * Returns the color for the gap.
+   * 
+   * @param currentRun - The current run to return the color for
+   * @param x - The x position of the current run
+   * @param y - The y position of the current run
+   * 
+   * @return the color for the gap in the current run.
+   */
+  protected Color getColorForGap(int currentRun, int x, int y)
+  {
+    int index = tabForCoordinate(tabPane, x, y);
+    int selected = tabPane.getSelectedIndex();
+    if (selected == index)
+      return selectColor;
+    return tabAreaBackground;
+  }
+  
+  /**
+   * Returns true if the gap should be filled in.
+   * 
+   * @param currentRun - The current run
+   * @param tabIndex - The current tab
+   * @param x - The x position of the tab
+   * @param y - The y position of the tab
+   * 
+   * @return true if the gap at the current run should be filled 
+   */
+  protected boolean shouldFillGap(int currentRun, int tabIndex, int x, int y)
+  {
+    // As far as I can tell, the gap is never filled in.
+    return false;
+  }
+  
+  /**
+   * Paints the highlight below the tab, if there is one.
+   */
+  protected void paintHighlightBelowTab()
+  {
+    int selected = tabPane.getSelectedIndex();
+    int tabPlacement = tabPane.getTabPlacement();
+    Rectangle bounds = getTabBounds(tabPane, selected);
+    
+    hg.setColor(selectColor);
+    int x = bounds.x;
+    int y = bounds.y;
+    int w = bounds.width;
+    int h = bounds.height;
+
+    if (tabPlacement == TOP) 
+        hg.fillRect(x, y + h - 2, w, 30);
+    else if (tabPlacement == LEFT)
+        hg.fillRect(x + w - 1, y, 20, h);
+    else if (tabPlacement == BOTTOM)
+        hg.fillRect(x, y - h + 2, w, 30);
+    else if (tabPlacement == RIGHT)
+        hg.fillRect(x - 18, y, 20, h);
+    else 
+      throw new AssertionError("Unrecognised 'tabPlacement' argument.");
+    hg = null;
+  }
+  
+  /**
+   * Returns true if we should rotate the tab runs. 
+   * 
+   * @param tabPlacement - The current tab placement.
+   * @param selectedRun - The selected run.
+   * 
+   * @return true if the tab runs should be rotated.
+   */
+  protected boolean shouldRotateTabRuns(int tabPlacement,
+                                        int selectedRun)
+  {
+    // false because tab runs are not rotated in the MetalLookAndFeel
+    return false;
+  }
 }
index 6984daeccbea17ac4072f57a3c497799803bfe3f..30738b37c7273290936cba0b99f5192b81f7a31c 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package javax.swing.plaf.metal;
 
+import java.beans.PropertyChangeEvent;
+
 import javax.swing.JComponent;
 import javax.swing.JTextField;
 import javax.swing.plaf.ComponentUI;
@@ -67,4 +69,14 @@ public class MetalTextFieldUI extends BasicTextFieldUI
   {
     return new MetalTextFieldUI();
   }
+  
+  /**
+   * This method gets called when a bound property is changed on the associated
+   * JTextComponent. This is a hook which UI implementations may change to 
+   * reflect how the UI displays bound properties of JTextComponent subclasses.
+   */
+  public void propertyChange(PropertyChangeEvent evt)
+  {
+    super.propertyChange(evt);
+  }
 }
index c5ca91399ab868d6f4fa2d54d55bad4e69a26586..16e22ac5286129d3797531cbc0c9e5630b5428ee 100644 (file)
@@ -38,12 +38,16 @@ exception statement from your version. */
 
 package javax.swing.plaf.metal;
 
+import java.awt.Point;
 import java.awt.event.ContainerListener;
+import java.awt.event.MouseEvent;
+
 import java.beans.PropertyChangeListener;
 
 import javax.swing.JComponent;
 import javax.swing.JToolBar;
 import javax.swing.border.Border;
+import javax.swing.event.MouseInputListener;
 import javax.swing.plaf.ComponentUI;
 import javax.swing.plaf.basic.BasicToolBarUI;
 
@@ -158,5 +162,67 @@ public class MetalToolBarUI extends BasicToolBarUI
   {
     return MetalBorders.getToolbarButtonBorder();   
   }
-
+  
+  /**
+   * Sets the offset for the window used for dragging the toolbar.
+   * It is set as long as the window is not null (it has been installed).
+   */
+  protected void setDragOffset(Point p)
+  {
+    if (dragWindow != null)
+      dragWindow.setOffset(p);
+  }
+  
+  /** 
+   * Creates and returns an instance of MetalDockingListener.
+   * 
+   * @return an instance of MetalDockingListener.
+   */
+  protected MouseInputListener createDockingListener()
+  {
+    return new MetalDockingListener(toolBar);
+  }
+  
+  /**
+   * This is the MouseHandler class that allows the user to drag the JToolBar
+   * in and out of the parent and dock it if it can.
+   */
+  protected class MetalDockingListener extends BasicToolBarUI.DockingListener
+  {    
+    /**
+     * Creates a new DockingListener object.
+     *
+     * @param t The JToolBar this DockingListener is being used for.
+     */
+    public MetalDockingListener(JToolBar t)
+    {
+      super(t);
+    }
+    
+    /**
+     * This method is called when the mouse is pressed in the JToolBar. If the
+     * press doesn't occur in a place where it causes the JToolBar to be
+     * dragged, it returns. Otherwise, it starts a drag session.
+     *
+     * @param e The MouseEvent.
+     */
+    public void mousePressed(MouseEvent e)
+    {
+      super.mousePressed(e);
+      setDragOffset(new Point(e.getX(), e.getY()));
+    }
+    
+    /**
+     * This method is called when the mouse is dragged. It delegates the drag
+     * painting to the dragTo method.
+     *
+     * @param e The MouseEvent.
+     */
+    public void mouseDragged(MouseEvent e)
+    {
+      // Does not do anything differently than dragging 
+      // BasicToolBarUI.DockingListener
+      super.mouseDragged(e);
+    }
+  }
 }
index f1886b167cf8b58046be30ac16dda2ed478a8f38..d1fc4cfecde27c2577a84768506e28fc39c93ece 100644 (file)
@@ -238,6 +238,10 @@ public class OceanTheme extends DefaultMetalTheme
       {new Double(0.3), new Double(0.0), new ColorUIResource(221, 232, 243),
        new ColorUIResource(Color.WHITE), new ColorUIResource(184, 207, 229)}));
 
+    
     defaults.put("Button.rollover", Boolean.TRUE);
+
+    defaults.put("TabbedPane.selected", new ColorUIResource(200, 221, 242));
+    defaults.put("TabbedPane.unselectedBackground", SECONDARY3);
   }
 }
index a187d74a686fb239003438c475df18a7cf306117..233528c7d676130dc9001ea5b57abc3058592343 100644 (file)
@@ -181,7 +181,6 @@ public class DefaultTableCellRenderer extends JLabel
     else
       setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
 
-    setEnabled(table.isEnabled());
     setFont(table.getFont());
 
     // If the current background is equal to the table's background, then we
index a324425562ef23c284c3c6708e1f4571cdfa80b9..c7353885e1213c551a8c031c671cdb4d46d8f15c 100644 (file)
@@ -541,6 +541,9 @@ public abstract class AbstractDocument implements Document, Serializable
     
     writeLock();
     UndoableEdit undo = content.insertString(offset, text);
+    if (undo != null)
+      event.addEdit(undo);
+
     insertUpdate(event, attributes);
     writeUnlock();
 
@@ -1326,7 +1329,14 @@ public abstract class AbstractDocument implements Document, Serializable
      */
     public Object getAttribute(Object key)
     {
-      return attributes.getAttribute(key);
+      Object result = attributes.getAttribute(key);
+      if (result == null && element_parent != null)
+        {
+          AttributeSet parentSet = element_parent.getAttributes();
+          if (parentSet != null)
+            result = parentSet.getAttribute(key);
+        }
+      return result;
     }
 
     /**
@@ -1808,6 +1818,12 @@ public abstract class AbstractDocument implements Document, Serializable
      */
     Hashtable changes;
 
+    /**
+     * Indicates if this event has been modified or not. This is used to
+     * determine if this event is thrown.
+     */
+    boolean modified;
+
     /**
      * Creates a new <code>DefaultDocumentEvent</code>.
      *
@@ -1822,6 +1838,7 @@ public abstract class AbstractDocument implements Document, Serializable
       this.length = length;
       this.type = type;
       changes = new Hashtable();
+      modified = false;
     }
 
     /**
@@ -1836,6 +1853,7 @@ public abstract class AbstractDocument implements Document, Serializable
       // XXX - Fully qualify ElementChange to work around gcj bug #2499.
       if (edit instanceof DocumentEvent.ElementChange)
         {
+          modified = true;
           DocumentEvent.ElementChange elEdit =
             (DocumentEvent.ElementChange) edit;
           changes.put(elEdit.getElement(), elEdit);
@@ -1896,6 +1914,15 @@ public abstract class AbstractDocument implements Document, Serializable
       // XXX - Fully qualify ElementChange to work around gcj bug #2499.
       return (DocumentEvent.ElementChange) changes.get(elem);
     }
+    
+    /**
+     * Returns a String description of the change event.  This returns the
+     * toString method of the Vector of edits.
+     */
+    public String toString()
+    {
+      return edits.toString();
+    }
   }
   
   /**
index 830dda3ecdc425771bebf0ae06f86ca25b110ddb..2846f8b536b53192b783c599fa0438f2dbd52f08 100644 (file)
@@ -264,34 +264,4 @@ public class ComponentView extends View
     Element el = getElement();
     return el.getStartOffset();
   }
-
-  /**
-   * Returns the document position that is (visually) nearest to the given
-   * document position <code>pos</code> in the given direction <code>d</code>.
-   *
-   * @param c the text component
-   * @param pos the document position
-   * @param b the bias for <code>pos</code>
-   * @param d the direction, must be either {@link SwingConstants#NORTH},
-   *        {@link SwingConstants#SOUTH}, {@link SwingConstants#WEST} or
-   *        {@link SwingConstants#EAST}
-   * @param biasRet an array of {@link Position.Bias} that can hold at least
-   *        one element, which is filled with the bias of the return position
-   *        on method exit
-   *
-   * @return the document position that is (visually) nearest to the given
-   *         document position <code>pos</code> in the given direction
-   *         <code>d</code>
-   *
-   * @throws BadLocationException if <code>pos</code> is not a valid offset in
-   *         the document model
-   */
-  public int getNextVisualPositionFrom(JTextComponent c, int pos,
-                                       Position.Bias b, int d,
-                                       Position.Bias[] biasRet)
-    throws BadLocationException
-  {
-    // FIXME: Implement this method.
-    throw new AssertionError("Not yet implemented");
-  }
 }
index e6c2e4cc2d8aff1e4db1d2aa890d17b93a363654..cd6645215428e401fd76c6d8862761da9b0543bb 100644 (file)
@@ -661,34 +661,4 @@ public abstract class CompositeView
   {
     return false;
   }
-
-  /**
-   * Returns the document position that is (visually) nearest to the given
-   * document position <code>pos</code> in the given direction <code>d</code>.
-   *
-   * @param c the text component
-   * @param pos the document position
-   * @param b the bias for <code>pos</code>
-   * @param d the direction, must be either {@link SwingConstants#NORTH},
-   *        {@link SwingConstants#SOUTH}, {@link SwingConstants#WEST} or
-   *        {@link SwingConstants#EAST}
-   * @param biasRet an array of {@link Position.Bias} that can hold at least
-   *        one element, which is filled with the bias of the return position
-   *        on method exit
-   *
-   * @return the document position that is (visually) nearest to the given
-   *         document position <code>pos</code> in the given direction
-   *         <code>d</code>
-   *
-   * @throws BadLocationException if <code>pos</code> is not a valid offset in
-   *         the document model
-   */
-  public int getNextVisualPositionFrom(JTextComponent c, int pos,
-                                       Position.Bias b, int d,
-                                       Position.Bias[] biasRet)
-    throws BadLocationException
-  {
-    // TODO: Implement this properly.
-    throw new AssertionError("Not implemented yet.");
-  }
 }
index 3ebeceb947de9512ba328cdcc9b39bed2f0fc720..776ef69e5b3b14731357fa1d8a3bc75896b22e1e 100644 (file)
@@ -1,5 +1,5 @@
 /* DefaultCaret.java --
-   Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -430,18 +430,45 @@ public class DefaultCaret extends Rectangle
    */
   public void focusGained(FocusEvent event)
   {
-    setVisible(true);
+    setVisible(true);    
+    updateTimerStatus();
   }
 
   /**
    * Sets the caret to <code>invisible</code>.
-   *
+   * 
    * @param event the <code>FocusEvent</code>
    */
   public void focusLost(FocusEvent event)
   {
     if (event.isTemporary() == false)
-      setVisible(false);
+      {
+        setVisible(false);
+        // Stop the blinker, if running.
+        if (blinkTimer != null && blinkTimer.isRunning())
+          blinkTimer.stop();
+      }
+  }
+  
+  /**
+   * Install (if not present) and start the timer, if the caret must blink. The
+   * caret does not blink if it is invisible, or the component is disabled or
+   * not editable.
+   */
+  private void updateTimerStatus()
+  {
+    if (textComponent.isEnabled() && textComponent.isEditable())
+      {
+        if (blinkTimer == null)
+          initBlinkTimer();
+        if (!blinkTimer.isRunning())
+          blinkTimer.start();
+      }
+    else
+      {
+        if (blinkTimer != null)
+          blinkTimer.stop();
+      }
   }
 
   /**
@@ -641,8 +668,10 @@ public class DefaultCaret extends Rectangle
       }
     catch (BadLocationException e)
       {
-        assert false : "Unexpected bad caret location: " + dot;
-        return;
+        AssertionError ae;
+       ae = new AssertionError("Unexpected bad caret location: " + dot);
+       ae.initCause(e);
+        throw ae;
       }
 
     if (rect == null)
@@ -802,9 +831,12 @@ public class DefaultCaret extends Rectangle
   public void setDot(int dot)
   {
     if (dot >= 0)
-      {
+      {        
+        Document doc = textComponent.getDocument();
+        if (doc != null)
+          this.dot = Math.min(dot, doc.getLength());
+        this.dot = Math.max(this.dot, 0);
         this.mark = dot;
-        this.dot = dot;
         handleHighlight();
         adjustVisibility(this);
         appear();
@@ -833,13 +865,17 @@ public class DefaultCaret extends Rectangle
         visible = true;
 
         Rectangle area = null;
+       int dot = getDot();
         try
           {
-            area = getComponent().modelToView(getDot());
+            area = getComponent().modelToView(dot);
           }
-        catch (BadLocationException ex)
+        catch (BadLocationException e)
           {
-            assert false : "Unexpected bad caret location: " + getDot();
+           AssertionError ae;
+           ae = new AssertionError("Unexpected bad caret location: " + dot);
+           ae.initCause(e);
+           throw ae;
           }
         if (area != null)
           damage(area);
@@ -870,26 +906,19 @@ public class DefaultCaret extends Rectangle
     if (v != visible)
       {
         visible = v;
-        if (visible)
-          if (textComponent.isEnabled() && textComponent.isEditable())
-            {
-              if (blinkTimer == null)
-                initBlinkTimer();
-              blinkTimer.start();
-            }
-        else
-          {
-            if (blinkTimer != null)
-              blinkTimer.stop();
-          }
+        updateTimerStatus();
         Rectangle area = null;
+       int dot = getDot();
         try
           {            
-            area = getComponent().modelToView(getDot());
+            area = getComponent().modelToView(dot);
           }
-        catch (BadLocationException ex)
+        catch (BadLocationException e)
           {
-            assert false: "Unexpected bad caret location: " + getDot();
+           AssertionError ae;
+           ae = new AssertionError("Unexpected bad caret location: " + dot);
+           ae.initCause(e);
+           throw ae;
           }
         if (area != null)
           damage(area);
index 3b3fc1f7238615cc5708dba7dad145c19fc9c3f8..88094b898f7c01f6c1bd973ca6802832042fc60f 100644 (file)
@@ -38,8 +38,10 @@ exception statement from your version. */
 
 package javax.swing.text;
 
+import java.awt.Point;
 import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
+
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
@@ -112,8 +114,7 @@ public class DefaultEditorKit extends EditorKit
      */
     public void actionPerformed(ActionEvent event)
     {
-      // FIXME: Implement me. Tookit.getSystemClipboard should be used
-      // for that.
+      getTextComponent(event).copy();
     }
   }
 
@@ -144,8 +145,7 @@ public class DefaultEditorKit extends EditorKit
      */
     public void actionPerformed(ActionEvent event)
     {
-      // FIXME: Implement me. Tookit.getSystemClipboard should be used
-      // for that.
+      getTextComponent(event).cut();
     }
   }
 
@@ -174,8 +174,7 @@ public class DefaultEditorKit extends EditorKit
      */
     public void actionPerformed(ActionEvent event)
     {
-      // FIXME: Implement me. Tookit.getSystemClipboard should be used
-      // for that.
+      getTextComponent(event).paste();
     }
   }
 
@@ -216,19 +215,9 @@ public class DefaultEditorKit extends EditorKit
         return;
 
       JTextComponent t = getTextComponent(event);
-      if (t != null)
-        {
-          try
-            {
-              t.getDocument().insertString(t.getCaret().getDot(),
-                                           event.getActionCommand(), null);
-            }
-          catch (BadLocationException be)
-            {
-              // FIXME: we're not authorized to throw this.. swallow it?
-            }
-        }
-    }
+      if (t != null && t.isEnabled() && t.isEditable())
+        t.replaceSelection(event.getActionCommand());
+    }    
   }
 
   /**
@@ -309,7 +298,8 @@ public class DefaultEditorKit extends EditorKit
      */
     public void actionPerformed(ActionEvent event)
     {
-      // FIXME: Implement this.
+      JTextComponent t = getTextComponent(event);
+      t.replaceSelection("\t");
     }
   }
 
@@ -710,6 +700,53 @@ public class DefaultEditorKit extends EditorKit
     new InsertContentAction(),
     new InsertTabAction(),
     new PasteAction(),
+    new TextAction(beginLineAction)
+    {
+      public void actionPerformed(ActionEvent event)
+      {
+        JTextComponent t = getTextComponent(event);
+        try
+        {
+          // TODO: There is a more efficent solution, but
+          // viewToModel doesn't work properly.
+          Point p = t.modelToView(t.getCaret().getDot()).getLocation();
+          int cur = t.getCaretPosition();
+          int y = p.y;
+          while (y == p.y && cur > 0)
+            y = t.modelToView(--cur).getLocation().y;
+          if (cur != 0)
+            cur++;
+          t.setCaretPosition(cur);
+        }
+        catch (BadLocationException ble)
+        {
+          // Do nothing here.
+        }
+      }
+    },
+    new TextAction(endLineAction)
+    {
+      public void actionPerformed(ActionEvent event)
+      {
+        JTextComponent t = getTextComponent(event);
+       try
+       {
+         Point p = t.modelToView(t.getCaret().getDot()).getLocation();
+         int cur = t.getCaretPosition();
+         int y = p.y;
+         int length = t.getDocument().getLength();
+         while (y == p.y && cur < length)
+           y = t.modelToView(++cur).getLocation().y;
+         if (cur != length)
+           cur--;
+         t.setCaretPosition(cur);
+       }
+       catch (BadLocationException ble)
+       {
+         // Nothing to do here
+       }
+      }
+    },
     new TextAction(deleteNextCharAction) 
     { 
       public void actionPerformed(ActionEvent event)
@@ -911,7 +948,7 @@ public class DefaultEditorKit extends EditorKit
        content.append("\n");
       }
     
-    document.insertString(offset, content.toString(),
+    document.insertString(offset, content.substring(0, content.length() - 1),
                          SimpleAttributeSet.EMPTY);
   }
 
index f9e0f10e6540ce1c7aaa86adefff8204c4d13efd..493699dacba3460c795470805e9cde8223ad359f 100644 (file)
@@ -400,6 +400,8 @@ public class DefaultFormatter extends JFormattedTextField.AbstractFormatter
   public String valueToString(Object value)
     throws ParseException
   {
+    if (value == null)
+      return "";
     return value.toString();
   }
 
diff --git a/libjava/classpath/javax/swing/text/DefaultFormatterFactory.java b/libjava/classpath/javax/swing/text/DefaultFormatterFactory.java
new file mode 100644 (file)
index 0000000..84a1676
--- /dev/null
@@ -0,0 +1,280 @@
+/* DefaultFormatterFactory.java -- FIXME: briefly describe file purpose
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.swing.text;
+
+import java.io.Serializable;
+
+import javax.swing.JFormattedTextField;
+import javax.swing.JFormattedTextField.AbstractFormatter;
+import javax.swing.JFormattedTextField.AbstractFormatterFactory;
+
+/**
+ * This class is Swing's only concrete implementation of 
+ * JFormattedTextField.AbstractFormatterFactory.  It holds several
+ * formatters and determines the best one to be used based on the 
+ * passed-in value from the text field.
+ * 
+ * @author Anthony Balkissoon abalkiss at redhat dot com
+ * @since 1.4
+ */
+public class DefaultFormatterFactory extends AbstractFormatterFactory implements
+    Serializable
+{
+  /** 
+   * The default formatter. 
+   **/
+  AbstractFormatter defaultFormatter;
+
+  /**
+   * The formatter to use when the JFormattedTextField has focus and either the
+   * value isn't null or the value is null but no <code>nullFormatter</code>
+   * has been specified.
+   */
+  AbstractFormatter editFormatter;
+
+  /**
+   * The formatter to use when the JFormattedTextField doesn't havefocus and 
+   * either the value isn't null or the value is null but no 
+   * <code>nullFormatter</code> has been specified.
+   */
+  AbstractFormatter displayFormatter;
+
+  /**
+   * The formatter to use when the value of the JFormattedTextField is null.   
+   */
+  AbstractFormatter nullFormatter;
+
+  /**
+   * Creates a DefaultFormatterFactory with no formatters
+   */
+  public DefaultFormatterFactory()
+  {
+    // Nothing to be done here.
+  }
+
+  /**
+   * Creates a new DefaultFormatterFactory with the specified formatters.
+   * @param defaultFormat the formatter to use if no other appropriate non-null
+   * formatted can be found.
+   */
+  public DefaultFormatterFactory(AbstractFormatter defaultFormat)
+  {
+    defaultFormatter = defaultFormat;
+  }
+
+  /**
+   * Creates a new DefaultFormatterFactory with the specified formatters.
+   * @param defaultFormat the formatter to use if no other appropriate non-null
+   * formatted can be found.
+   * @param displayFormat the formatter to use if the JFormattedTextField 
+   * doesn't have focus and either the value is not null or the value is null
+   * but no <code>nullFormatter</code> has been specified.
+   */
+  public DefaultFormatterFactory(AbstractFormatter defaultFormat,
+                                 AbstractFormatter displayFormat)
+  {
+    defaultFormatter = defaultFormat;
+    displayFormatter = displayFormat;
+  }
+
+  /**
+   * Creates a new DefaultFormatterFactory with the specified formatters.
+   * @param defaultFormat the formatter to use if no other appropriate non-null
+   * formatted can be found.
+   * @param displayFormat the formatter to use if the JFormattedTextField 
+   * doesn't have focus and either the value is not null or the value is null
+   * but no <code>nullFormatter</code> has been specified.
+   * @param editFormat the formatter to use if the JFormattedTextField has
+   * focus and either the value is not null or the value is null but not
+   * <code>nullFormatter</code> has been specified.
+   */
+  public DefaultFormatterFactory(AbstractFormatter defaultFormat,
+                                 AbstractFormatter displayFormat,
+                                 AbstractFormatter editFormat)
+  {
+    defaultFormatter = defaultFormat;
+    displayFormatter = displayFormat;
+    editFormatter = editFormat;
+  }
+
+  /**
+   * Creates a new DefaultFormatterFactory with the specified formatters.
+   * @param defaultFormat the formatter to use if no other appropriate non-null
+   * formatted can be found.
+   * @param displayFormat the formatter to use if the JFormattedTextField 
+   * doesn't have focus and either the value is not null or the value is null
+   * but no <code>nullFormatter</code> has been specified.
+   * @param editFormat the formatter to use if the JFormattedTextField has
+   * focus and either the value is not null or the value is null but not
+   * <code>nullFormatter</code> has been specified.
+   * @param nullFormat the formatter to use when the value of the 
+   * JFormattedTextField is null.
+   */
+  public DefaultFormatterFactory(AbstractFormatter defaultFormat,
+                                 AbstractFormatter displayFormat,
+                                 AbstractFormatter editFormat,
+                                 AbstractFormatter nullFormat)
+  {
+    defaultFormatter = defaultFormat;
+    displayFormatter = displayFormat;
+    editFormatter = editFormat;
+    nullFormatter = nullFormat;
+  }
+
+  /**
+   * Returns the formatted to be used if no other appropriate non-null 
+   * formatter can be found.
+   * @return the formatted to be used if no other appropriate non-null 
+   * formatter can be found.
+   */
+  public AbstractFormatter getDefaultFormatter()
+  {
+    return defaultFormatter;
+  }
+
+  /**
+   * Sets the formatted to be used if no other appropriate non-null formatter 
+   * can be found.
+   * @param defaultFormatter the formatted to be used if no other appropriate
+   * non-null formatter can be found.
+   */
+  public void setDefaultFormatter(AbstractFormatter defaultFormatter)
+  {
+    this.defaultFormatter = defaultFormatter;
+  }
+
+  /**
+   * Gets the <code>displayFormatter</code>.  This is the formatter to use if 
+   * the JFormattedTextField is not being edited and either the value is not 
+   * null or the value is null and no <code>nullFormatter<code> has been 
+   * specified.
+   * @return the formatter to use if 
+   * the JFormattedTextField is not being edited and either the value is not 
+   * null or the value is null and no <code>nullFormatter<code> has been 
+   * specified.
+   */
+  public AbstractFormatter getDisplayFormatter()
+  {
+    return displayFormatter;
+  }
+
+  /**
+   * Sets the <code>displayFormatter</code>.  This is the formatter to use if 
+   * the JFormattedTextField is not being edited and either the value is not 
+   * null or the value is null and no <code>nullFormatter<code> has been 
+   * specified.
+   * @param displayFormatter the formatter to use.
+   */
+  public void setDisplayFormatter(AbstractFormatter displayFormatter)
+  {
+    this.displayFormatter = displayFormatter;
+  }
+
+  /**
+   * Gets the <code>editFormatter</code>.  This is the formatter to use if the
+   * JFormattedTextField is being edited and either the value is not null or 
+   * the value is null and no <code>nullFormatter<code> has been specified.
+   * @return the formatter to use if the JFormattedTextField is being edited
+   * and the value is not null or the value is null but no nullFormatted has 
+   * been specified.
+   */
+  public AbstractFormatter getEditFormatter()
+  {
+    return editFormatter;
+  }
+
+  /**
+   * Sets the <code>editFormatter</code>.  This is the formatter to use if the
+   * JFormattedTextField is being edited and either the value is not null or 
+   * the value is null and no <code>nullFormatter<code> has been specified.
+   * @param editFormatter the formatter to use.
+   */
+  public void setEditFormatter(AbstractFormatter editFormatter)
+  {
+    this.editFormatter = editFormatter;
+  }
+
+  /**
+   * Gets the formatter to use if the value of the JFormattedTextField is null.
+   * @return the formatter to use for null values.
+   */
+  public AbstractFormatter getNullFormatter()
+  {
+    return nullFormatter;
+  }
+
+  /**
+   * Sets the <code>nullFormatter</code>.  This is the formatter to use if the
+   * value of the JFormattedTextField is null.
+   * @param nullFormatter the formatter to use for null values.
+   */
+  public void setNullFormatter(AbstractFormatter nullFormatter)
+  {
+    this.nullFormatter = nullFormatter;
+  }
+
+  /**
+   * Returns the appropriate formatter based on the state of 
+   * <code>tf</code>. If <code>tf<code> is null we return null, otherwise
+   * we return one of the following:
+   * 1. Returns <code>nullFormatter</code> if <code>tf.getValue()</code> is 
+   * null and <code>nullFormatter</code> is not.  
+   * 2. Returns <code>editFormatter</code> if <code>tf.hasFocus()</code> is
+   * true and <code>editFormatter</code> is not null.
+   * 3. Returns <code>displayFormatter</code> if <code>tf.hasFocus()</code> is
+   * false and <code>displayFormatter</code> is not null.
+   * 4. Otherwise returns <code>defaultFormatter</code>.
+   */
+  public AbstractFormatter getFormatter(JFormattedTextField tf)
+  {
+    if (tf == null)
+      return null;
+    
+    if (tf.getValue() == null && nullFormatter != null)
+      return nullFormatter;
+
+    if (tf.hasFocus() && editFormatter != null)
+      return editFormatter;
+
+    if (!tf.hasFocus() && displayFormatter != null)
+      return displayFormatter;
+
+    return defaultFormatter;
+  }
+}
index eb56bb0f8e5674ef6ee7251487b71156387921c8..46b82259b6597e8e4888a9618273a2da660cc599 100644 (file)
@@ -42,11 +42,13 @@ import java.awt.Color;
 import java.awt.Font;
 import java.io.Serializable;
 import java.util.Enumeration;
+import java.util.Stack;
 import java.util.Vector;
 
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 import javax.swing.event.DocumentEvent;
+import javax.swing.event.UndoableEditEvent;
 import javax.swing.undo.AbstractUndoableEdit;
 import javax.swing.undo.UndoableEdit;
 
@@ -365,7 +367,6 @@ public class DefaultStyledDocument extends AbstractDocument
     public String toString()
     {
       StringBuilder b = new StringBuilder();
-      b.append('<');
       switch (type)
         {
         case StartTagType:
@@ -427,6 +428,29 @@ public class DefaultStyledDocument extends AbstractDocument
 
     /** Holds the length of structural changes. */
     private int length;
+    
+    /** Holds the end offset for structural changes. **/
+    private int endOffset;
+
+    /**
+     * The number of inserted end tags. This is a counter which always gets
+     * incremented when an end tag is inserted. This is evaluated before
+     * content insertion to go up the element stack.
+     */
+    private int numEndTags;
+
+    /**
+     * The number of inserted start tags. This is a counter which always gets
+     * incremented when an end tag is inserted. This is evaluated before
+     * content insertion to go up the element stack.
+     */
+    private int numStartTags;
+
+    /**
+     * The current position in the element tree. This is used for bulk inserts
+     * using ElementSpecs.
+     */
+    private Stack elementStack;
 
     /**
      * Holds fractured elements during insertion of end and start tags.
@@ -450,6 +474,7 @@ public class DefaultStyledDocument extends AbstractDocument
     public ElementBuffer(Element root)
     {
       this.root = root;
+      elementStack = new Stack();
     }
 
     /**
@@ -462,6 +487,85 @@ public class DefaultStyledDocument extends AbstractDocument
       return root;
     }
 
+    /**
+     * Updates the element structure of the document in response to removal of
+     * content. It removes the affected {@link Element}s from the document
+     * structure.
+     *
+     * This method sets some internal parameters and delegates the work
+     * to {@link #removeUpdate}.
+     *
+     * @param offs the offset from which content is remove
+     * @param len the length of the removed content
+     * @param ev the document event that records the changes
+     */
+    public void remove(int offs, int len, DefaultDocumentEvent ev)
+    {
+      offset = offs;
+      length = len;
+      documentEvent = ev;
+      removeUpdate();
+    }
+
+    /**
+     * Updates the element structure of the document in response to removal of
+     * content. It removes the affected {@link Element}s from the document
+     * structure.
+     */
+    protected void removeUpdate()
+    {
+      int startParagraph = root.getElementIndex(offset);
+      int endParagraph = root.getElementIndex(offset + length);
+      Element[] empty = new Element[0];
+      int removeStart = -1;
+      int removeEnd = -1;
+      for (int i = startParagraph;  i < endParagraph; i++)
+        {
+          Element paragraph = root.getElement(i);
+          int contentStart = paragraph.getElementIndex(offset);
+          int contentEnd = paragraph.getElementIndex(offset + length);
+          if (contentStart == paragraph.getStartOffset()
+              && contentEnd == paragraph.getEndOffset())
+            {
+              // In this case we only need to remove the whole paragraph. We
+              // do this in one go after this loop and only record the indices
+              // here.
+              if (removeStart == -1)
+                {
+                  removeStart = i;
+                  removeEnd = i;
+                }
+              else
+                removeEnd = i;
+            }
+          else
+            {
+              // In this case we remove a couple of child elements from this
+              // paragraph.
+              int removeLen = contentEnd - contentStart;
+              Element[] removed = new Element[removeLen];
+              for (int j = contentStart; j < contentEnd; j++)
+                removed[j] = paragraph.getElement(j);
+              ((BranchElement) paragraph).replace(contentStart, removeLen,
+                                                  empty);
+              documentEvent.addEdit(new ElementEdit(paragraph, contentStart,
+                                                    removed, empty));
+            }
+        }
+      // Now we remove paragraphs from the root that have been tagged for
+      // removal.
+      if (removeStart != -1)
+        {
+          int removeLen = removeEnd - removeStart;
+          Element[] removed = new Element[removeLen];
+          for (int i = removeStart; i < removeEnd; i++)
+            removed[i] = root.getElement(i);
+          ((BranchElement) root).replace(removeStart, removeLen, empty);
+          documentEvent.addEdit(new ElementEdit(root, removeStart, removed,
+                                                empty));
+        }
+    }
+
     /**
      * Modifies the element structure so that the specified interval starts
      * and ends at an element boundary. Content and paragraph elements
@@ -493,11 +597,50 @@ public class DefaultStyledDocument extends AbstractDocument
     {
       // Split up the element at the start offset if necessary.
       Element el = getCharacterElement(offset);
-      split(el, offset);
+      Element[] res = split(el, offset, 0);
+      BranchElement par = (BranchElement) el.getParentElement();
+      if (res[1] != null)
+        {
+          int index = par.getElementIndex(offset);
+          Element[] removed;
+          Element[] added;
+          if (res[0] == null)
+            {
+              removed = new Element[0];
+              added = new Element[]{ res[1] };
+              index++;
+            }
+          else
+            {
+              removed = new Element[]{ el };
+              added = new Element[]{ res[0], res[1] };
+            }
+          par.replace(index, removed.length, added);
+          addEdit(par, index, removed, added);
+        }
 
       int endOffset = offset + length;
       el = getCharacterElement(endOffset);
-      split(el, endOffset);
+      res = split(el, endOffset, 0);
+      par = (BranchElement) el.getParentElement();
+      if (res[1] != null)
+        {
+          int index = par.getElementIndex(offset);
+          Element[] removed;
+          Element[] added;
+          if (res[1] == null)
+            {
+              removed = new Element[0];
+              added = new Element[]{ res[1] };
+            }
+          else
+            {
+              removed = new Element[]{ el };
+              added = new Element[]{ res[0], res[1] };
+            }
+          par.replace(index, removed.length, added);
+          addEdit(par, index, removed, added);
+        }
     }
 
     /**
@@ -505,42 +648,96 @@ public class DefaultStyledDocument extends AbstractDocument
      *
      * @param el the Element to possibly split
      * @param offset the offset at which to possibly split
+     * @param space the amount of space to create between the splitted parts
+     *
+     * @return An array of elements which represent the split result. This
+     *         array has two elements, the two parts of the split. The first
+     *         element might be null, which means that the element which should
+     *         be splitted can remain in place. The second element might also
+     *         be null, which means that the offset is already at an element
+     *         boundary and the element doesn't need to be splitted.
+     *          
      */
-    void split(Element el, int offset)
+    private Element[] split(Element el, int offset, int space)
     {
-      if (el instanceof AbstractElement)
+      // If we are at an element boundary, then return an empty array.
+      if ((offset == el.getStartOffset() || offset == el.getEndOffset())
+          && space == 0 && el.isLeaf())
+        return new Element[2];
+
+      // If the element is an instance of BranchElement, then we recursivly
+      // call this method to perform the split.
+      Element[] res = new Element[2];
+      if (el instanceof BranchElement)
         {
-          AbstractElement ael = (AbstractElement) el;
-          int startOffset = ael.getStartOffset();
-          int endOffset = ael.getEndOffset();
-          int len = endOffset - startOffset;
-          if (startOffset != offset && endOffset != offset)
+          int index = el.getElementIndex(offset);
+          Element child = el.getElement(index);
+          Element[] result = split(child, offset, space);
+          Element[] removed;
+          Element[] added;
+          Element[] newAdded;
+
+          int count = el.getElementCount();
+          if (!(result[1] == null))
             {
-              Element paragraph = ael.getParentElement();
-              if (paragraph instanceof BranchElement)
+              // This is the case when we can keep the first element.
+              if (result[0] == null)
                 {
-                  BranchElement par = (BranchElement) paragraph;
-                  Element child1 = createLeafElement(par, ael, startOffset,
-                                                     offset);
-                  Element child2 = createLeafElement(par, ael, offset,
-                                                     endOffset);
-                  int index = par.getElementIndex(startOffset);
-                  Element[] add = new Element[]{ child1, child2 };
-                  par.replace(index, 1, add);
-                  documentEvent.addEdit(new ElementEdit(par, index,
-                                                        new Element[]{ el },
-                                                        add));
+                  removed = new Element[count - index - 1];
+                  newAdded = new Element[count - index - 1];
+                  added = new Element[]{};
                 }
+              // This is the case when we may not keep the first element.
               else
-                throw new AssertionError("paragraph elements are expected to "
-                                         + "be instances of "
-                         + "javax.swing.text.AbstractDocument.BranchElement");
+                {
+                  removed = new Element[count - index];
+                  newAdded = new Element[count - index];
+                  added = new Element[]{result[0]};
+                }
+              newAdded[0] = result[1];
+              for (int i = index; i < count; i++)
+                {
+                  Element el2 = el.getElement(i);
+                  int ind = i - count + removed.length;
+                  removed[ind] = el2;
+                  if (ind != 0)
+                    newAdded[ind] = el2;
+                }
+
+              ((BranchElement) el).replace(index, removed.length, added);
+              addEdit(el, index, removed, added);
+              BranchElement newPar =
+                (BranchElement) createBranchElement(el.getParentElement(),
+                                                    el.getAttributes());
+              newPar.replace(0, 0, newAdded);
+              res = new Element[]{ null, newPar };
+            }
+          else
+            {
+              removed = new Element[count - index];
+              for (int i = index; i < count; ++i)
+                removed[i - index] = el.getElement(i);
+              added = new Element[0];
+              ((BranchElement) el).replace(index, removed.length,
+                                           added);
+              addEdit(el, index, removed, added);
+              BranchElement newPar =
+                (BranchElement) createBranchElement(el.getParentElement(),
+                                                    el.getAttributes());
+              newPar.replace(0, 0, removed);
+              res = new Element[]{ null, newPar };
             }
         }
-      else
-        throw new AssertionError("content elements are expected to be "
-                                 + "instances of "
-                       + "javax.swing.text.AbstractDocument.AbstractElement");
+      else if (el instanceof LeafElement)
+        {
+          BranchElement par = (BranchElement) el.getParentElement();
+          Element el1 = createLeafElement(par, el.getAttributes(),
+                                          el.getStartOffset(), offset);
+          Element el2 = createLeafElement(par, el.getAttributes(),
+                                          offset + space, el.getEndOffset());
+          res = new Element[]{ el1, el2 };
+        }
+      return res;
     }
 
     /**
@@ -560,9 +757,18 @@ public class DefaultStyledDocument extends AbstractDocument
     public void insert(int offset, int length, ElementSpec[] data,
                        DefaultDocumentEvent ev)
     {
+      if (length == 0)
+        return;
       this.offset = offset;
       this.length = length;
+      this.endOffset = offset + length;
       documentEvent = ev;
+      // Push the root and the paragraph at offset onto the element stack.
+      elementStack.clear();
+      elementStack.push(root);
+      elementStack.push(root.getElement(root.getElementIndex(offset)));
+      numEndTags = 0;
+      numStartTags = 0;
       insertUpdate(data);
     }
 
@@ -573,202 +779,348 @@ public class DefaultStyledDocument extends AbstractDocument
      * {@link #insert}.
      *
      * @param data the element specifications for the elements to be inserte
-     */
+     */ 
     protected void insertUpdate(ElementSpec[] data)
     {
+      if (data[0].getType() == ElementSpec.EndTagType)
+        {
+          // fracture deepest child here
+          BranchElement paragraph = (BranchElement) elementStack.peek();
+          Element curr = paragraph.getParentElement();
+          int index = curr.getElementIndex(offset);
+          while (!curr.isLeaf())
+            {
+              index = curr.getElementIndex(offset);
+              curr = curr.getElement(index);
+            }
+          Element parent = curr.getParentElement();
+          Element newEl1 = createLeafElement(parent,
+                                             curr.getAttributes(),
+                                             curr.getStartOffset(), offset);
+          Element grandParent = parent.getParentElement();
+          BranchElement nextBranch = 
+            (BranchElement) grandParent.getElement
+              (grandParent.getElementIndex(parent.getEndOffset()));
+          Element firstLeaf = nextBranch.getElement(0);
+          while (!firstLeaf.isLeaf())
+            {
+              firstLeaf = firstLeaf.getElement(0);
+            }
+          BranchElement parent2 = (BranchElement) firstLeaf.getParentElement();
+          Element newEl2 = 
+            createLeafElement(parent2, 
+                              firstLeaf.getAttributes(), 
+                              offset, firstLeaf.getEndOffset());
+          parent2.replace(0, 1, new Element[] { newEl2 });
+          
+          
+          ((BranchElement) parent).
+              replace(index, 1, new Element[] { newEl1 });
+        }
+      
       for (int i = 0; i < data.length; i++)
         {
+          BranchElement paragraph = (BranchElement) elementStack.peek();
           switch (data[i].getType())
             {
             case ElementSpec.StartTagType:
-              insertStartTag(data[i]);
+              switch (data[i].getDirection())
+                {
+                case ElementSpec.JoinFractureDirection:
+                  insertFracture(data[i]);
+                  break;
+                case ElementSpec.JoinNextDirection:
+                  int index = paragraph.getElementIndex(offset);
+                  elementStack.push(paragraph.getElement(index));
+                  break;
+                case ElementSpec.OriginateDirection:
+                  Element current = (Element) elementStack.peek();
+                  Element newParagraph =
+                    insertParagraph((BranchElement) current, offset);
+                  elementStack.push(newParagraph);
+                  break;
+                default:
+                  break;
+                }
               break;
             case ElementSpec.EndTagType:
-              insertEndTag(data[i]);
+              elementStack.pop();
               break;
-            default:
+            case ElementSpec.ContentType:
               insertContentTag(data[i]);
               break;
             }
         }
+      endEdit();
     }
 
     /**
-     * Insert a new paragraph after the paragraph at the current position.
-     *
-     * @param tag the element spec that describes the element to be inserted
+     * Finishes an insertion by possibly evaluating the outstanding start and
+     * end tags. However, this is only performed if the event has received any
+     * modifications.
+     */
+    private void endEdit()
+    {
+      if (documentEvent.modified)
+        prepareContentInsertion();
+    }
+
+    /**
+     * Evaluates the number of inserted end tags and performs the corresponding
+     * structural changes.
      */
-    void insertStartTag(ElementSpec tag)
+    private void prepareContentInsertion()
     {
-      BranchElement root = (BranchElement) getDefaultRootElement();
-      int index = root.getElementIndex(offset);
-      if (index == -1)
-        index = 0;
-
-      BranchElement newParagraph =
-        (BranchElement) createBranchElement(root, tag.getAttributes());
-      newParagraph.setResolveParent(getStyle(StyleContext.DEFAULT_STYLE));
-
-      // Add new paragraph into document structure.
-      Element[] added = new Element[]{newParagraph};
-      root.replace(index + 1, 0, added);
-      ElementEdit edit = new ElementEdit(root, index + 1, new Element[0],
-                                         added);
-      documentEvent.addEdit(edit);
-
-      // Maybe add fractured elements.
-      if (tag.getDirection() == ElementSpec.JoinFractureDirection)
+      while (numEndTags > 0)
+        {
+          elementStack.pop();
+          numEndTags--;
+        }
+
+      while (numStartTags > 0)
         {
-          Element[] newFracture = new Element[fracture.length];
-          for (int i = 0; i < fracture.length; i++)
+          Element current = (Element) elementStack.peek();
+          Element newParagraph =
+            insertParagraph((BranchElement) current, offset);
+          elementStack.push(newParagraph);
+          numStartTags--;
+        }
+    }
+
+    private Element insertParagraph(BranchElement par, int offset)
+    {
+      Element current = par.getElement(par.getElementIndex(offset));
+      Element[] res = split(current, offset, 0);
+      int index = par.getElementIndex(offset);
+      Element ret;
+      if (res[1] != null)
+        {
+          Element[] removed;
+          Element[] added;
+          if (res[0] == null)
             {
-              Element oldLeaf = fracture[i];
-              Element newLeaf = createLeafElement(newParagraph,
-                                                  oldLeaf.getAttributes(),
-                                                  oldLeaf.getStartOffset(),
-                                                  oldLeaf.getEndOffset());
-              newFracture[i] = newLeaf;
+              removed = new Element[0];
+              if (res[1] instanceof BranchElement)
+                {
+                  added = new Element[]{ res[1] };
+                  ret = res[1];
+                }
+              else
+                {
+                  ret = createBranchElement(par, null);
+                  added = new Element[]{ ret, res[1] };
+                }
+              index++;
+            }
+          else
+            {
+              removed = new Element[]{ current };
+              if (res[1] instanceof BranchElement)
+                {
+                  ret = res[1];
+                  added = new Element[]{ res[0], res[1] };
+                }
+              else
+                {
+                  ret = createBranchElement(par, null);
+                  added = new Element[]{ res[0], ret, res[1] };
+                }
             }
-          newParagraph.replace(0, 0, newFracture);
-          edit = new ElementEdit(newParagraph, 0, new Element[0],
-                                 fracture);
-          documentEvent.addEdit(edit);
-          fracture = new Element[0];
+          par.replace(index, removed.length, added);
+          addEdit(par, index, removed, added);
         }
+      else
+        {
+          ret = createBranchElement(par, null);
+          Element[] added = new Element[]{ ret };
+          par.replace(index, 0, added);
+          addEdit(par, index, new Element[0], added);
+        }
+      return ret;
     }
-
+    
     /**
-     * Inserts an end tag into the document structure. This cuts of the
-     * current paragraph element, possibly fracturing it's child elements.
-     * The fractured elements are saved so that they can be joined later
-     * with a new paragraph element.
+     * Inserts a fracture into the document structure.
+     * 
+     * @param tag - the element spec.
      */
-    void insertEndTag(ElementSpec tag)
+    private void insertFracture(ElementSpec tag)
     {
-      BranchElement root = (BranchElement) getDefaultRootElement();
-      int parIndex = root.getElementIndex(offset);
-      BranchElement paragraph = (BranchElement) root.getElement(parIndex);
-
-      int index = paragraph.getElementIndex(offset);
-      LeafElement content = (LeafElement) paragraph.getElement(index);
-      // We might have to split the element at offset.
-      split(content, offset);
-      index = paragraph.getElementIndex(offset);
-
-      int count = paragraph.getElementCount();
-      // Store fractured elements.
-      fracture = new Element[count - index];
-      for (int i = index; i < count; ++i)
-        fracture[i - index] = paragraph.getElement(i);
-
-      // Delete fractured elements.
-      paragraph.replace(index, count - index, new Element[0]);
-
-      // Add this action to the document event.
-      ElementEdit edit = new ElementEdit(paragraph, index, fracture,
-                                         new Element[0]);
-      documentEvent.addEdit(edit);
+      // This is the parent of the paragraph about to be fractured.  We will
+      // create a new child of this parent.
+      BranchElement parent = (BranchElement) elementStack.peek();
+      int parentIndex = parent.getElementIndex(offset);
+      
+      // This is the old paragraph.  We must remove all its children that 
+      // occur after offset and move them to a new paragraph.  We must
+      // also recreate its child that occurs at offset to have the proper
+      // end offset.  The remainder of this child will also go in the new
+      // paragraph.
+      BranchElement previous = (BranchElement) parent.getElement(parentIndex);
+      
+      // This is the new paragraph.
+      BranchElement newBranch = 
+        (BranchElement) createBranchElement(parent, previous.getAttributes());
+      
+      
+      // The steps we must take to properly fracture are:
+      // 1. Recreate the LeafElement at offset to have the correct end offset.
+      // 2. Create a new LeafElement with the remainder of the LeafElement in 
+      //    #1 ==> this is whatever was in that LeafElement to the right of the
+      //    inserted newline.
+      // 3. Find the paragraph at offset and remove all its children that 
+      //    occur _after_ offset.  These will be moved to the newly created
+      //    paragraph.
+      // 4. Move the LeafElement created in #2 and all the LeafElements removed
+      //    in #3 to the newly created paragraph.
+      // 5. Add the new paragraph to the parent.
+      int previousIndex = previous.getElementIndex(offset);
+      int numReplaced = previous.getElementCount() - previousIndex;
+      Element previousLeaf = previous.getElement(previousIndex);
+      AttributeSet prevLeafAtts = previous.getAttributes();
+      
+      // This recreates the child at offset to have the proper end offset.  
+      // (Step 1).
+      Element newPreviousLeaf = 
+        createLeafElement(previous, 
+                          prevLeafAtts, previousLeaf.getStartOffset(), 
+                          offset);
+      // This creates the new child, which is the remainder of the old child.  
+      // (Step 2).
+      
+      Element firstLeafInNewBranch = 
+        createLeafElement(newBranch, prevLeafAtts, 
+                          offset, previousLeaf.getEndOffset());
+      
+      // Now we move the new LeafElement and all the old children that occurred
+      // after the offset to the new paragraph.  (Step 4).
+      Element[] newLeaves = new Element[numReplaced];
+      newLeaves[0] = firstLeafInNewBranch;
+      for (int i = 1; i < numReplaced; i++)
+        newLeaves[i] = previous.getElement(previousIndex + i);
+      newBranch.replace(0, 0, newLeaves);
+      addEdit(newBranch, 0, null, newLeaves);
+            
+      // Now we remove the children after the offset from the previous 
+      // paragraph. (Step 3).
+      int removeSize = previous.getElementCount() - previousIndex;
+      Element[] add = new Element[] { newPreviousLeaf };
+      Element[] remove = new Element[removeSize];
+      for (int j = 0; j < removeSize; j++)
+        remove[j] = previous.getElement(previousIndex + j);
+      previous.replace(previousIndex, removeSize, add);
+      addEdit(previous, previousIndex, remove, add);
+      
+      // Finally we add the new paragraph to the parent. (Step 5).
+      Element[] nb = new Element[] { newBranch };
+      int index = parentIndex + 1;
+      parent.replace(index, 0, nb);
+      addEdit(parent, index, null, nb);
     }
-
+    
     /**
      * Inserts a content element into the document structure.
-     *
+     * 
      * @param tag the element spec
      */
-    void insertContentTag(ElementSpec tag)
+    private void insertContentTag(ElementSpec tag)
     {
+      prepareContentInsertion();
       int len = tag.getLength();
       int dir = tag.getDirection();
+      AttributeSet tagAtts = tag.getAttributes();
       if (dir == ElementSpec.JoinPreviousDirection)
         {
-          Element prev = getCharacterElement(offset);
-          BranchElement prevParent = (BranchElement) prev.getParentElement();
-          Element join = createLeafElement(prevParent, tag.getAttributes(),
-                                           prev.getStartOffset(),
-                                           Math.max(prev.getEndOffset(),
-                                                    offset + len));
-          int ind = prevParent.getElementIndex(offset);
-          if (ind == -1)
-            ind = 0;
-          Element[] add = new Element[]{join};
-          prevParent.replace(ind, 1, add);
-
-          // Add this action to the document event.
-          ElementEdit edit = new ElementEdit(prevParent, ind,
-                                             new Element[]{prev}, add);
-          documentEvent.addEdit(edit);
+          // The mauve tests to this class show that a JoinPrevious insertion
+          // does not add any edits to the document event. To me this means
+          // that nothing is done here. The previous element naturally should
+          // expand so that it covers the new characters.
         }
       else if (dir == ElementSpec.JoinNextDirection)
         {
-          Element next = getCharacterElement(offset + len);
-          BranchElement nextParent = (BranchElement) next.getParentElement();
-          Element join = createLeafElement(nextParent, tag.getAttributes(),
-                                           offset,
-                                           next.getEndOffset());
-          int ind = nextParent.getElementIndex(offset + len);
-          if (ind == -1)
-            ind = 0;
-          Element[] add = new Element[]{join};
-          nextParent.replace(ind, 1, add);
-
-          // Add this action to the document event.
-          ElementEdit edit = new ElementEdit(nextParent, ind,
-                                             new Element[]{next}, add);
-          documentEvent.addEdit(edit);
+          // FIXME:
+          // Have to handle JoinNext differently depending on whether
+          // or not it comes after a fracture.  If comes after a fracture, 
+          // the insertFracture method takes care of everything and nothing
+          // needs to be done here.  Otherwise, we need to adjust the
+          // Element structure.  For now, I check if the elementStack's 
+          // top Element is the immediate parent of the LeafElement at
+          // offset - if so, we did not come immediately after a 
+          // fracture.  This seems awkward and should probably be improved.
+          // We may be doing too much in insertFracture because we are 
+          // adjusting the offsets, the correct thing to do may be to 
+          // create a new branch element and push it on to element stack
+          // and then this method here can be more general.
+          
+          BranchElement paragraph = (BranchElement) elementStack.peek();
+          int index = paragraph.getElementIndex(offset);
+          Element target = paragraph.getElement(index);
+          if (target.isLeaf() && paragraph.getElementCount() > (index + 1))
+            {
+              Element next = paragraph.getElement(index + 1);
+              Element newEl1 = createLeafElement(paragraph,
+                                                 target.getAttributes(),
+                                                 target.getStartOffset(),
+                                                 offset);
+              Element newEl2 = createLeafElement(paragraph,
+                                                 next.getAttributes(), offset,
+                                                 next.getEndOffset());
+              Element[] add = new Element[] { newEl1, newEl2 };
+              paragraph.replace (index, 2, add);
+              addEdit(paragraph, index, new Element[] { target, next }, add);
+            }
         }
-      else
+      else if (dir == ElementSpec.OriginateDirection)
         {
-          BranchElement par = (BranchElement) getParagraphElement(offset);
-
-          int ind = par.getElementIndex(offset);
-
-          // Make room for the element.
-          // Cut previous element.
-          Element prev = par.getElement(ind);
-          if (prev != null && prev.getStartOffset() < offset)
+          BranchElement paragraph = (BranchElement) elementStack.peek();
+          int index = paragraph.getElementIndex(offset);
+          Element current = paragraph.getElement(index);
+          
+          Element[] added;
+          Element[] removed = new Element[] {current};
+          Element[] splitRes = split(current, offset, length);
+          if (splitRes[0] == null)
             {
-              Element cutPrev = createLeafElement(par, prev.getAttributes(),
-                                                  prev.getStartOffset(),
-                                                  offset);
-              Element[] remove = new Element[]{prev};
-              Element[] add = new Element[]{cutPrev};
-              if (prev.getEndOffset() > offset + len)
-                {
-                  Element rem = createLeafElement(par, prev.getAttributes(),
-                                                  offset + len,
-                                                  prev.getEndOffset());
-                  add = new Element[]{cutPrev, rem};
-                }
-
-              par.replace(ind, 1, add);
-              documentEvent.addEdit(new ElementEdit(par, ind, remove, add));
-              ind++;
+              added = new Element[2];
+              added[0] = createLeafElement(paragraph, tagAtts,
+                                           offset, endOffset);
+              added[1] = splitRes[1];
+              removed = new Element[0];
+              index++;
             }
-          // ind now points to the next element.
-
-          // Cut next element if necessary.
-          Element next = par.getElement(ind);
-          if (next != null && next.getStartOffset() < offset + len)
+          else if (current.getStartOffset() == offset)
+            { 
+              // This is if the new insertion happens immediately before 
+              // the <code>current</code> Element.  In this case there are 2 
+              // resulting Elements.              
+              added = new Element[2];
+              added[0] = createLeafElement(paragraph, tagAtts, offset,
+                                           endOffset);
+              added[1] = splitRes[1];
+            }
+          else if (current.getEndOffset() == endOffset)
             {
-              Element cutNext = createLeafElement(par, next.getAttributes(),
-                                                  offset + len,
-                                                  next.getEndOffset());
-              Element[] remove = new Element[]{next};
-              Element[] add = new Element[]{cutNext};
-              par.replace(ind, 1, add);
-              documentEvent.addEdit(new ElementEdit(par, ind, remove,
-                                                    add));
+              // This is if the new insertion happens right at the end of 
+              // the <code>current</code> Element.  In this case there are 
+              // 2 resulting Elements.
+              added = new Element[2];
+              added[0] = splitRes[0];
+              added[1] = createLeafElement(paragraph, tagAtts, offset,
+                                           endOffset);
             }
-
-          // Insert new element.
-          Element newEl = createLeafElement(par, tag.getAttributes(),
-                                            offset, offset + len);
-          Element[] added = new Element[]{newEl};
-          par.replace(ind, 0, added);
-          // Add this action to the document event.
-          ElementEdit edit = new ElementEdit(par, ind, new Element[0],
-                                             added);
-          documentEvent.addEdit(edit);
+          else
+            {
+              // This is if the new insertion is in the middle of the 
+              // <code>current</code> Element.  In this case 
+              // there will be 3 resulting Elements.
+              added = new Element[3];
+              added[0] = splitRes[0];
+              added[1] = createLeafElement(paragraph, tagAtts, offset,
+                                           endOffset);
+              added[2] = splitRes[1];
+            }          
+          paragraph.replace(index, removed.length, added);
+          addEdit(paragraph, index, removed, added);
         }
       offset += len;
     }
@@ -800,6 +1152,79 @@ public class DefaultStyledDocument extends AbstractDocument
       result.replace(0, 0, children);
       return result;
     }
+
+    /**
+     * Adds an ElementChange for a given element modification to the document
+     * event. If there already is an ElementChange registered for this element,
+     * this method tries to merge the ElementChanges together. However, this
+     * is only possible if the indices of the new and old ElementChange are
+     * equal.
+     *
+     * @param e the element
+     * @param i the index of the change
+     * @param removed the removed elements, or <code>null</code>
+     * @param added the added elements, or <code>null</code>
+     */
+    private void addEdit(Element e, int i, Element[] removed, Element[] added)
+    {
+      // Perform sanity check first.
+      DocumentEvent.ElementChange ec = documentEvent.getChange(e);
+
+      // Merge the existing stuff with the new stuff.
+      Element[] oldAdded = ec == null ? null: ec.getChildrenAdded();
+      Element[] newAdded;
+      if (oldAdded != null && added != null)
+        {
+          if (ec.getIndex() <= i)
+            {
+              int index = i - ec.getIndex();
+              // Merge adds together.
+              newAdded = new Element[oldAdded.length + added.length];
+              System.arraycopy(oldAdded, 0, newAdded, 0, index);
+              System.arraycopy(added, 0, newAdded, index, added.length);
+              System.arraycopy(oldAdded, index, newAdded, index + added.length,
+                               oldAdded.length - index);
+              i = ec.getIndex();
+            }
+          else
+            throw new AssertionError("Not yet implemented case.");
+        }
+      else if (added != null)
+        newAdded = added;
+      else if (oldAdded != null)
+        newAdded = oldAdded;
+      else
+        newAdded = new Element[0];
+
+      Element[] oldRemoved = ec == null ? null: ec.getChildrenRemoved();
+      Element[] newRemoved;
+      if (oldRemoved != null && removed != null)
+        {
+          if (ec.getIndex() <= i)
+            {
+              int index = i - ec.getIndex();
+              // Merge removes together.
+              newRemoved = new Element[oldRemoved.length + removed.length];
+              System.arraycopy(oldAdded, 0, newRemoved, 0, index);
+              System.arraycopy(removed, 0, newRemoved, index, removed.length);
+              System.arraycopy(oldRemoved, index, newRemoved,
+                               index + removed.length,
+                               oldRemoved.length - index);
+              i = ec.getIndex();
+            }
+          else
+            throw new AssertionError("Not yet implemented case.");
+        }
+      else if (removed != null)
+        newRemoved = removed;
+      else if (oldRemoved != null)
+        newRemoved = oldRemoved;
+      else
+        newRemoved = new Element[0];
+
+      // Replace the existing edit for the element with the merged.
+      documentEvent.addEdit(new ElementEdit(e, i, newRemoved, newAdded));
+    }
   }
 
   /**
@@ -824,7 +1249,7 @@ public class DefaultStyledDocument extends AbstractDocument
      */
     public String getName()
     {
-      return "section";
+      return SectionElementName;
     }
   }
 
@@ -945,9 +1370,7 @@ public class DefaultStyledDocument extends AbstractDocument
     // Use createBranchElement() and createLeafElement instead.
     SectionElement section = new SectionElement();
 
-    BranchElement paragraph =
-      (BranchElement) createBranchElement(section, null);
-    paragraph.setResolveParent(getStyle(StyleContext.DEFAULT_STYLE));
+    BranchElement paragraph = new BranchElement(section, null);
     tmp = new Element[1];
     tmp[0] = paragraph;
     section.replace(0, 0, tmp);
@@ -1043,7 +1466,11 @@ public class DefaultStyledDocument extends AbstractDocument
   {
     Element paragraph = getParagraphElement(position);
     AttributeSet attributes = paragraph.getAttributes();
-    return (Style) attributes.getResolveParent();
+    AttributeSet a = attributes.getResolveParent();
+    // If the resolve parent is not of type Style, we return null.
+    if (a instanceof Style)
+      return (Style) a;
+    return null;
   }
 
   /**
@@ -1112,50 +1539,54 @@ public class DefaultStyledDocument extends AbstractDocument
                                     AttributeSet attributes,
                                     boolean replace)
   {
-    DefaultDocumentEvent ev =
-      new DefaultDocumentEvent(offset, length,
-                              DocumentEvent.EventType.CHANGE);
-
-    // Modify the element structure so that the interval begins at an element
-    // start and ends at an element end.
-    buffer.change(offset, length, ev);
-
-    Element root = getDefaultRootElement();
-    // Visit all paragraph elements within the specified interval
-    int paragraphCount =  root.getElementCount();
-    for (int pindex = 0; pindex < paragraphCount; pindex++)
+    // Exit early if length is 0, so no DocumentEvent is created or fired.
+    if (length == 0)
+      return;
+    try
       {
-        Element paragraph = root.getElement(pindex);
-        // Skip paragraphs that lie outside the interval.
-        if ((paragraph.getStartOffset() > offset + length)
-            || (paragraph.getEndOffset() < offset))
-          continue;
-
-        // Visit content elements within this paragraph
-        int contentCount = paragraph.getElementCount();
-        for (int cindex = 0; cindex < contentCount; cindex++)
+        // Must obtain a write lock for this method.  writeLock() and
+        // writeUnlock() should always be in try/finally block to make
+        // sure that locking happens in a balanced manner.
+        writeLock();
+        DefaultDocumentEvent ev = 
+          new DefaultDocumentEvent(
+                                   offset, 
+                                   length, 
+                                   DocumentEvent.EventType.CHANGE);
+
+        // Modify the element structure so that the interval begins at an
+        // element
+        // start and ends at an element end.
+        buffer.change(offset, length, ev);
+
+        Element root = getDefaultRootElement();
+        // Visit all paragraph elements within the specified interval
+        int end = offset + length;
+        Element curr;
+        for (int pos = offset; pos < end; )
           {
-            Element content = paragraph.getElement(cindex);
-            // Skip content that lies outside the interval.
-            if ((content.getStartOffset() > offset + length)
-                || (content.getEndOffset() < offset))
-              continue;
-
-            if (content instanceof AbstractElement)
-              {
-                AbstractElement el = (AbstractElement) content;
-                if (replace)
-                  el.removeAttributes(el);
-                el.addAttributes(attributes);
-              }
-            else
-              throw new AssertionError("content elements are expected to be"
-                                       + "instances of "
-                      + "javax.swing.text.AbstractDocument.AbstractElement");
+            // Get the CharacterElement at offset pos.
+            curr = getCharacterElement(pos);
+            if (pos == curr.getEndOffset())
+              break;
+            
+            MutableAttributeSet a = (MutableAttributeSet) curr.getAttributes();
+            ev.addEdit(new AttributeUndoableEdit(curr, attributes, replace));
+            // If replace is true, remove all the old attributes.
+            if (replace)
+              a.removeAttributes(a);
+            // Add all the new attributes.
+            a.addAttributes(attributes);
+            // Increment pos so we can check the next CharacterElement.
+            pos = curr.getEndOffset();
           }
+        fireChangedUpdate(ev);
+        fireUndoableEditUpdate(new UndoableEditEvent(this, ev));
+      }
+    finally
+      {
+        writeUnlock();
       }
-
-    fireChangedUpdate(ev);
   }
   
   /**
@@ -1167,14 +1598,36 @@ public class DefaultStyledDocument extends AbstractDocument
   public void setLogicalStyle(int position, Style style)
   {
     Element el = getParagraphElement(position);
-    if (el instanceof AbstractElement)
-      {
-        AbstractElement ael = (AbstractElement) el;
-        ael.setResolveParent(style);
-      }
-    else
-      throw new AssertionError("paragraph elements are expected to be"
-         + "instances of javax.swing.text.AbstractDocument.AbstractElement");
+    // getParagraphElement doesn't return null but subclasses might so
+    // we check for null here.
+    if (el == null)
+      return;
+    try
+    {
+      writeLock();    
+      if (el instanceof AbstractElement)
+        {
+          AbstractElement ael = (AbstractElement) el;
+          ael.setResolveParent(style);
+          int start = el.getStartOffset();
+          int end = el.getEndOffset();
+          DefaultDocumentEvent ev = 
+            new DefaultDocumentEvent (
+                                      start, 
+                                      end - start, 
+                                      DocumentEvent.EventType.CHANGE);
+          // FIXME: Add an UndoableEdit to this event and fire it.
+          fireChangedUpdate(ev);
+        }
+      else
+        throw new 
+        AssertionError("paragraph elements are expected to be"
+                       + "instances of AbstractDocument.AbstractElement");
+    }
+    finally
+    {
+      writeUnlock();
+    }
   }
 
   /**
@@ -1190,15 +1643,47 @@ public class DefaultStyledDocument extends AbstractDocument
                                      AttributeSet attributes,
                                      boolean replace)
   {
-    int index = offset;
-    while (index < offset + length)
+    try
+      {
+        // Must obtain a write lock for this method.  writeLock() and
+        // writeUnlock() should always be in try/finally blocks to make
+        // sure that locking occurs in a balanced manner.
+        writeLock();
+        
+        // Create a DocumentEvent to use for changedUpdate().
+        DefaultDocumentEvent ev = 
+          new DefaultDocumentEvent (
+                                    offset, 
+                                    length, 
+                                    DocumentEvent.EventType.CHANGE);
+        
+        // Have to iterate through all the _paragraph_ elements that are
+        // contained or partially contained in the interval
+        // (offset, offset + length).
+        Element rootElement = getDefaultRootElement();
+        int startElement = rootElement.getElementIndex(offset);
+        int endElement = rootElement.getElementIndex(offset + length - 1);
+        if (endElement < startElement)
+          endElement = startElement;
+        
+        for (int i = startElement; i <= endElement; i++)
+          {
+            Element par = rootElement.getElement(i);
+            MutableAttributeSet a = (MutableAttributeSet) par.getAttributes();
+            // Add the change to the DocumentEvent.
+            ev.addEdit(new AttributeUndoableEdit(par, attributes, replace));
+            // If replace is true remove the old attributes.
+            if (replace)
+              a.removeAttributes(a);
+            // Add the new attributes.
+            a.addAttributes(attributes);
+          }
+        fireChangedUpdate(ev);
+        fireUndoableEditUpdate(new UndoableEditEvent(this, ev));
+      }
+    finally
       {
-        AbstractElement par = (AbstractElement) getParagraphElement(index);
-        AttributeContext ctx = getAttributeContext();
-        if (replace)
-          par.removeAttributes(par);
-        par.addAttributes(attributes);
-        index = par.getElementCount();
+        writeUnlock();
       }
   }
 
@@ -1212,9 +1697,14 @@ public class DefaultStyledDocument extends AbstractDocument
   protected void insertUpdate(DefaultDocumentEvent ev, AttributeSet attr)
   {
     super.insertUpdate(ev, attr);
+    // If the attribute set is null, use an empty attribute set.
+    if (attr == null)
+      attr = SimpleAttributeSet.EMPTY;
     int offset = ev.getOffset();
     int length = ev.getLength();
     int endOffset = offset + length;
+    AttributeSet paragraphAttributes = 
+      getParagraphElement(endOffset).getAttributes();    
     Segment txt = new Segment();
     try
       {
@@ -1229,72 +1719,188 @@ public class DefaultStyledDocument extends AbstractDocument
 
     int len = 0;
     Vector specs = new Vector();
-
+    ElementSpec finalStartTag = null;
+    short finalStartDirection = ElementSpec.OriginateDirection;
+    boolean prevCharWasNewline = false;
     Element prev = getCharacterElement(offset);
-    Element next = getCharacterElement(endOffset);
+    Element next = getCharacterElement(endOffset);    
+    Element prevParagraph = getParagraphElement(offset);
+    Element paragraph = getParagraphElement(endOffset);
+    
+    int segmentEnd = txt.offset + txt.count;
+    
+    // Check to see if we're inserting immediately after a newline.
+    if (offset > 0)
+      {
+        try
+        {
+          String s = getText(offset - 1, 1);
+          if (s.equals("\n"))
+            {
+              finalStartDirection = 
+                handleInsertAfterNewline(specs, offset, endOffset,
+                                         prevParagraph,
+                                         paragraph,
+                                         paragraphAttributes);
+              
+              prevCharWasNewline = true;
+              // Find the final start tag from the ones just created.
+              for (int i = 0; i < specs.size(); i++)
+                if (((ElementSpec) specs.get(i)).getType() 
+                    == ElementSpec.StartTagType)
+                  finalStartTag = (ElementSpec)specs.get(i);
+            }
+        }
+        catch (BadLocationException ble)
+        {          
+          // This shouldn't happen.
+          AssertionError ae = new AssertionError();
+          ae.initCause(ble);
+          throw ae;
+        }        
+      }
 
-    for (int i = offset; i < endOffset; ++i)
+        
+    for (int i = txt.offset; i < segmentEnd; ++i)
       {
         len++;
         if (txt.array[i] == '\n')
           {
-            ElementSpec spec = new ElementSpec(attr, ElementSpec.ContentType,
-                                               len);
-
-            // If we are at the last index, then check if we could probably be
-            // joined with the next element.
-            if (i == endOffset - 1)
-              {
-                if (next.getAttributes().isEqual(attr))
-                  spec.setDirection(ElementSpec.JoinNextDirection);
-              }
-            // If we are at the first new element, then check if it could be
-            // joined with the previous element.
-            else if (specs.size() == 0)
-              {
-                if (prev.getAttributes().isEqual(attr))
-                    spec.setDirection(ElementSpec.JoinPreviousDirection);
-              }
-
-            specs.add(spec);
+            // Add the ElementSpec for the content.
+            specs.add(new ElementSpec(attr, ElementSpec.ContentType, len));            
 
             // Add ElementSpecs for the newline.
-            ElementSpec endTag = new ElementSpec(null, ElementSpec.EndTagType);
-            specs.add(endTag);
-            ElementSpec startTag = new ElementSpec(null,
+            specs.add(new ElementSpec(null, ElementSpec.EndTagType));
+            finalStartTag = new ElementSpec(paragraphAttributes,
                                                    ElementSpec.StartTagType);
-            startTag.setDirection(ElementSpec.JoinFractureDirection);
-            specs.add(startTag);
-
+            specs.add(finalStartTag);
             len = 0;
-            offset += len;
           }
       }
 
     // Create last element if last character hasn't been a newline.
-    if (len > 0)
+    if (len > 0)                      
+      specs.add(new ElementSpec(attr, ElementSpec.ContentType, len));
+
+    // Set the direction of the last spec of type StartTagType.  
+    // If we are inserting after a newline then this value comes from 
+    // handleInsertAfterNewline.
+    if (finalStartTag != null)
+      {        
+        if (prevCharWasNewline)
+          finalStartTag.setDirection(finalStartDirection);
+        else if (prevParagraph.getEndOffset() != endOffset)
+          {
+            try
+              {
+                String last = getText(endOffset - 1, 1);
+                if (!last.equals("\n"))
+                  finalStartTag.setDirection(ElementSpec.JoinFractureDirection);
+              }
+            catch (BadLocationException ble)
+              {
+                // This shouldn't happen.
+                AssertionError ae = new AssertionError();
+                ae.initCause(ble);
+                throw ae;
+              } 
+          }
+        else
+          {
+            // If there is an element AFTER this one, then set the 
+            // direction to JoinNextDirection.
+            Element parent = prevParagraph.getParentElement();
+            int index = parent.getElementIndex(offset);
+            if (index + 1 < parent.getElementCount()
+                && !parent.getElement(index + 1).isLeaf())
+              finalStartTag.setDirection(ElementSpec.JoinNextDirection);
+          }
+      }
+    
+    // If we are at the last index, then check if we could probably be
+    // joined with the next element.
+    // This means:
+    //  - we must be a ContentTag
+    //  - if there is a next Element, we must have the same attributes
+    //  - if there is no next Element, but one will be created,
+    //    we must have the same attributes as the higher-level run.
+    ElementSpec last = (ElementSpec) specs.lastElement();
+    if (last.getType() == ElementSpec.ContentType)
       {
-        ElementSpec spec = new ElementSpec(attr, ElementSpec.ContentType, len);
-        // If we are at the first new element, then check if it could be
-        // joined with the previous element.
-        if (specs.size() == 0)
+        Element currentRun = 
+          prevParagraph.getElement(prevParagraph.getElementIndex(offset));
+        if (currentRun.getEndOffset() == endOffset)
           {
-            if (prev.getAttributes().isEqual(attr))
-              spec.setDirection(ElementSpec.JoinPreviousDirection);
+            if (endOffset < getLength() && next.getAttributes().isEqual(attr)
+                && last.getType() == ElementSpec.ContentType)
+              last.setDirection(ElementSpec.JoinNextDirection);
+          }
+        else
+          {
+            if (finalStartTag != null
+                && finalStartTag.getDirection() == 
+                  ElementSpec.JoinFractureDirection
+                && currentRun.getAttributes().isEqual(attr))
+              {
+                last.setDirection(ElementSpec.JoinNextDirection);
+              }
           }
-        // Check if we could probably be joined with the next element.
-        else if (next.getAttributes().isEqual(attr))
-          spec.setDirection(ElementSpec.JoinNextDirection);
-
-        specs.add(spec);
       }
-
+    
+    // If we are at the first new element, then check if it could be
+    // joined with the previous element.
+    ElementSpec first = (ElementSpec) specs.firstElement();
+    if (prev.getAttributes().isEqual(attr)
+        && first.getType() == ElementSpec.ContentType)
+      first.setDirection(ElementSpec.JoinPreviousDirection);
+    
     ElementSpec[] elSpecs =
       (ElementSpec[]) specs.toArray(new ElementSpec[specs.size()]);
 
     buffer.insert(offset, length, elSpecs, ev);
   }
 
+  /**
+   * A helper method to set up the ElementSpec buffer for the special
+   * case of an insertion occurring immediately after a newline.
+   * @param specs the ElementSpec buffer to initialize.
+   */
+  short handleInsertAfterNewline(Vector specs, int offset, int endOffset,
+                                Element prevParagraph, Element paragraph,
+                                AttributeSet a)
+  {
+    if (prevParagraph.getParentElement() == paragraph.getParentElement())
+      {
+        specs.add(new ElementSpec(a, ElementSpec.EndTagType));
+        specs.add(new ElementSpec(a, ElementSpec.StartTagType));
+        if (prevParagraph.getEndOffset() != endOffset)
+          return ElementSpec.JoinFractureDirection;
+        // If there is an Element after this one, use JoinNextDirection.
+        Element parent = paragraph.getParentElement();
+        if (parent.getElementCount() > parent.getElementIndex(offset) + 1)
+          return ElementSpec.JoinNextDirection;
+      }
+    else
+      {
+        // TODO: What to do here?
+      }
+    return ElementSpec.OriginateDirection;
+  }
+  
+  /**
+   * Updates the document structure in response to text removal. This is
+   * forwarded to the {@link ElementBuffer} of this document. Any changes to
+   * the document structure are added to the specified document event and
+   * sent to registered listeners.
+   *
+   * @param ev the document event that records the changes to the document
+   */
+  protected void removeUpdate(DefaultDocumentEvent ev)
+  {
+    super.removeUpdate(ev);
+    buffer.remove(ev.getOffset(), ev.getLength(), ev);
+  }
+
   /**
    * Returns an enumeration of all style names.
    *
@@ -1316,6 +1922,35 @@ public class DefaultStyledDocument extends AbstractDocument
     // Nothing to do here. This is intended to be overridden by subclasses.
   }
 
+  void printElements (Element start, int pad)
+  {
+    for (int i = 0; i < pad; i++)
+      System.out.print(" ");
+    if (pad == 0)
+      System.out.println ("ROOT ELEMENT ("+start.getStartOffset()+", "+start.getEndOffset()+")");
+    else if (start instanceof AbstractDocument.BranchElement)
+      System.out.println ("BranchElement ("+start.getStartOffset()+", "+start.getEndOffset()+")");
+    else
+      {
+        {
+          try
+            {
+              System.out.println ("LeafElement ("+start.getStartOffset()+", "
+                                  + start.getEndOffset()+"): "+ 
+                                  start.getDocument().
+                                  getText(start.getStartOffset(), 
+                                          start.getEndOffset() - 
+                                          start.getStartOffset()));
+            }
+          catch (BadLocationException ble)
+            {
+            }
+        }
+      }
+    for (int i = 0; i < start.getElementCount(); i ++)
+      printElements (start.getElement(i), pad+3);
+  }
+  
   /**
    * Inserts a bulk of structured content at once.
    *
@@ -1325,36 +1960,53 @@ public class DefaultStyledDocument extends AbstractDocument
   protected void insert(int offset, ElementSpec[] data)
     throws BadLocationException
   {
-    writeLock();
-    // First we insert the content.
-    int index = offset;
-    for (int i = 0; i < data.length; i++)
+    if (data == null || data.length == 0)
+      return;
+    try
       {
-        ElementSpec spec = data[i];
-        if (spec.getArray() != null && spec.getLength() > 0)
+        // writeLock() and writeUnlock() should always be in a try/finally
+        // block so that locking balance is guaranteed even if some 
+        // exception is thrown.
+        writeLock();
+        
+        // First we collect the content to be inserted.
+        StringBuffer contentBuffer = new StringBuffer();
+        for (int i = 0; i < data.length; i++)
           {
-            String insertString = new String(spec.getArray(), spec.getOffset(),
-                                             spec.getLength());
-            content.insertString(index, insertString);
+            // Collect all inserts into one so we can get the correct
+            // ElementEdit
+            ElementSpec spec = data[i];
+            if (spec.getArray() != null && spec.getLength() > 0)
+              contentBuffer.append(spec.getArray(), spec.getOffset(),
+                                   spec.getLength());
           }
-        index += spec.getLength();
+
+        int length = contentBuffer.length();
+
+        // If there was no content inserted then exit early.
+        if (length == 0)
+          return;
+        
+        UndoableEdit edit = content.insertString(offset,
+                                                 contentBuffer.toString());
+
+        // Create the DocumentEvent with the ElementEdit added
+        DefaultDocumentEvent ev = 
+          new DefaultDocumentEvent(offset,
+                                   length,
+                                   DocumentEvent.EventType.INSERT);
+        ev.addEdit(edit);
+
+        // Finally we must update the document structure and fire the insert
+        // update event.
+        buffer.insert(offset, length, data, ev);
+        fireInsertUpdate(ev);
+        fireUndoableEditUpdate(new UndoableEditEvent(this, ev));
       }
-    // Update the view structure.
-    DefaultDocumentEvent ev = new DefaultDocumentEvent(offset, index - offset,
-                                               DocumentEvent.EventType.INSERT);
-    for (int i = 0; i < data.length; i++)
+    finally
       {
-        ElementSpec spec = data[i];
-        AttributeSet atts = spec.getAttributes();
-        if (atts != null)
-          insertUpdate(ev, atts);
+        writeUnlock();
       }
-
-    // Finally we must update the document structure and fire the insert update
-    // event.
-    buffer.insert(offset, index - offset, data, ev);
-    fireInsertUpdate(ev);
-    writeUnlock();
   }
 
   /**
@@ -1382,4 +2034,9 @@ public class DefaultStyledDocument extends AbstractDocument
         throw err;
       }
   }
+  
+  static boolean attributeSetsAreSame (AttributeSet a, AttributeSet b)
+  {
+    return (a == null && b == null) || (a != null && a.isEqual(b));
+  }
 }
index 765f515a20d574d960c65085954e681606f5c975..6d4b9cd3174464ea5ea4880c29967c1e725f4df2 100644 (file)
@@ -396,37 +396,6 @@ public abstract class FlowView extends BoxView
       throw new AssertionError("This method must not be called in "
                                + "LogicalView.");
     }
-
-    /**
-     * Returns the document position that is (visually) nearest to the given
-     * document position <code>pos</code> in the given direction <code>d</code>.
-     *
-     * @param c the text component
-     * @param pos the document position
-     * @param b the bias for <code>pos</code>
-     * @param d the direction, must be either {@link SwingConstants#NORTH},
-     *        {@link SwingConstants#SOUTH}, {@link SwingConstants#WEST} or
-     *        {@link SwingConstants#EAST}
-     * @param biasRet an array of {@link Position.Bias} that can hold at least
-     *        one element, which is filled with the bias of the return position
-     *        on method exit
-     *
-     * @return the document position that is (visually) nearest to the given
-     *         document position <code>pos</code> in the given direction
-     *         <code>d</code>
-     *
-     * @throws BadLocationException if <code>pos</code> is not a valid offset in
-     *         the document model
-     */
-    public int getNextVisualPositionFrom(JTextComponent c, int pos,
-                                         Position.Bias b, int d,
-                                         Position.Bias[] biasRet)
-      throws BadLocationException
-    {
-      assert false : "getNextVisualPositionFrom() must not be called in "
-        + "LogicalView";
-      return 0;
-    }
   }
 
   /**
index 4c65de0f5f4cbdcf29a24c4898209c0291d6a3e1..80dcfa56e06192e9f1a3334e245c10016a55c451 100644 (file)
@@ -64,6 +64,7 @@ import javax.swing.undo.UndoableEdit;
 public class GapContent
     implements AbstractDocument.Content, Serializable
 {
+  
   /**
    * A {@link Position} implementation for <code>GapContent</code>.
    */
@@ -100,15 +101,15 @@ public class GapContent
     public int compareTo(Object o)
     {
       if (o instanceof Integer)
-      {
-        int otherMark = ((Integer) o).intValue();
-        return mark - otherMark;
-      }
+        {
+          int otherMark = ((Integer) o).intValue();
+          return mark - otherMark;
+        }
       else
-      {
-        GapContentPosition other = (GapContentPosition) o;
-        return mark - other.mark;
-      }
+        {
+          GapContentPosition other = (GapContentPosition) o;
+          return mark - other.mark;
+        }
     }
 
     /**
@@ -122,7 +123,6 @@ public class GapContent
       assert mark <= gapStart || mark >= gapEnd : "mark: " + mark
                                                + ", gapStart: " + gapStart
                                                + ", gapEnd: " + gapEnd;
-
       if (mark <= gapStart)
         return mark;
       else
@@ -130,11 +130,11 @@ public class GapContent
     }
   }
 
-  class UndoInsertString extends AbstractUndoableEdit
+  class InsertUndo extends AbstractUndoableEdit
   {
     public int where, length;
     String text;
-    public UndoInsertString(int start, int len)
+    public InsertUndo(int start, int len)
     {
       where = start;
       length = len;
@@ -316,7 +316,7 @@ public class GapContent
 
     replace(where, 0, str.toCharArray(), strLen);
 
-    return new UndoInsertString(where, strLen);
+    return new InsertUndo(where, strLen);
   }
 
   /**
@@ -449,7 +449,7 @@ public class GapContent
     // We store the actual array index in the GapContentPosition. The real
     // offset is then calculated in the GapContentPosition.
     int mark = offset;
-    if (offset > gapStart)
+    if (offset >= gapStart)
       mark += gapEnd - gapStart;
     GapContentPosition pos = new GapContentPosition(mark);
 
@@ -584,8 +584,9 @@ public class GapContent
   {
     if (gapStart != position)
       shiftGap(position);
+      
     // Remove content
-    if (rmSize > 0)
+    if (rmSize > 0) 
       shiftGapEndUp(gapEnd + rmSize);
 
     // If gap is too small, enlarge the gap.
@@ -644,6 +645,13 @@ public class GapContent
                                           new GapContentPosition(offset));
     if (index1 < 0)
       index1 = -(index1 + 1);
+
+    // Search the first index with the specified offset. The binarySearch does
+    // not necessarily find the first one.
+    while (index1 > 0
+        && ((GapContentPosition) positions.get(index1 - 1)).mark == offset)
+      index1--;
+
     for (ListIterator i = positions.listIterator(index1); i.hasNext();)
       {
         GapContentPosition p = (GapContentPosition) i.next();
@@ -672,6 +680,13 @@ public class GapContent
                                           new GapContentPosition(offset));
     if (index1 < 0)
       index1 = -(index1 + 1);
+
+    // Search the first index with the specified offset. The binarySearch does
+    // not necessarily find the first one.
+    while (index1 > 0
+        && ((GapContentPosition) positions.get(index1 - 1)).mark == offset)
+      index1--;
+
     for (ListIterator i = positions.listIterator(index1); i.hasNext();)
       {
         GapContentPosition p = (GapContentPosition) i.next();
@@ -700,6 +715,12 @@ public class GapContent
                                           new GapContentPosition(offset));
     if (index1 < 0)
       index1 = -(index1 + 1);
+
+    // Search the first index with the specified offset. The binarySearch does
+    // not necessarily find the first one.
+    while (index1 > 0
+        && ((GapContentPosition) positions.get(index1 - 1)).mark == offset)
+      index1--;
     for (ListIterator i = positions.listIterator(index1); i.hasNext();)
       {
         GapContentPosition p = (GapContentPosition) i.next();
index d3dd75e624bd2e13f0ba89976a292b5aa5ef8120..47deb50d03ab320d2aa01b2143bfa02c28de96e0 100644 (file)
@@ -1057,34 +1057,4 @@ public class GlyphView extends View implements TabableView, Cloneable
     return painter.getNextVisualPositionFrom(this, pos, bias, a, direction,
                                              biasRet);
   }
-
-  /**
-   * Returns the document position that is (visually) nearest to the given
-   * document position <code>pos</code> in the given direction <code>d</code>.
-   *
-   * @param c the text component
-   * @param pos the document position
-   * @param b the bias for <code>pos</code>
-   * @param d the direction, must be either {@link SwingConstants#NORTH},
-   *        {@link SwingConstants#SOUTH}, {@link SwingConstants#WEST} or
-   *        {@link SwingConstants#EAST}
-   * @param biasRet an array of {@link Position.Bias} that can hold at least
-   *        one element, which is filled with the bias of the return position
-   *        on method exit
-   *
-   * @return the document position that is (visually) nearest to the given
-   *         document position <code>pos</code> in the given direction
-   *         <code>d</code>
-   *
-   * @throws BadLocationException if <code>pos</code> is not a valid offset in
-   *         the document model
-   */
-  public int getNextVisualPositionFrom(JTextComponent c, int pos,
-                                       Position.Bias b, int d,
-                                       Position.Bias[] biasRet)
-    throws BadLocationException
-  {
-    // TODO: Implement this properly.
-    throw new AssertionError("Not implemented yet.");
-  }
 }
index 86c27dd5fda0f639299d47aaf41ee06ec4135178..af2581a8831465072901a532c0e261cc409d107e 100644 (file)
@@ -158,34 +158,4 @@ public class IconView
     return el.getStartOffset();
   }
 
-  /**
-   * Returns the document position that is (visually) nearest to the given
-   * document position <code>pos</code> in the given direction <code>d</code>.
-   *
-   * @param c the text component
-   * @param pos the document position
-   * @param b the bias for <code>pos</code>
-   * @param d the direction, must be either {@link SwingConstants#NORTH},
-   *        {@link SwingConstants#SOUTH}, {@link SwingConstants#WEST} or
-   *        {@link SwingConstants#EAST}
-   * @param biasRet an array of {@link Position.Bias} that can hold at least
-   *        one element, which is filled with the bias of the return position
-   *        on method exit
-   *
-   * @return the document position that is (visually) nearest to the given
-   *         document position <code>pos</code> in the given direction
-   *         <code>d</code>
-   *
-   * @throws BadLocationException if <code>pos</code> is not a valid offset in
-   *         the document model
-   */
-  public int getNextVisualPositionFrom(JTextComponent c, int pos,
-                                       Position.Bias b, int d,
-                                       Position.Bias[] biasRet)
-    throws BadLocationException
-  {
-    // TODO: Implement this properly.
-    throw new AssertionError("Not implemented yet.");
-  }
-
 }
index 86300a70d8ec371809794b1c150ee96668ef5cdf..ba3cffaba5b50ba5921eb71ebf80ef4bb8a46d85 100644 (file)
@@ -78,6 +78,8 @@ public class InternationalFormatter
     minimum = null;
     maximum = null;
     format = null;
+    setCommitsOnValidEdit(false);
+    setOverwriteMode(false);
   }
 
   /**
@@ -226,6 +228,8 @@ public class InternationalFormatter
   public String valueToString(Object value)
     throws ParseException
   {
+    if (value == null)
+      return "";
     if (format != null)
       return format.format(value);
     else
index 83966bbdf47a58a748ecdd4562e70c2064b21228..afa1f24a6a4f6342ba96095001675c961fc8da62 100644 (file)
@@ -380,12 +380,18 @@ public abstract class JTextComponent extends JComponent
     public KeyStroke[] allKeys()
     {
       KeyStroke[] superKeys = super.allKeys();
-      KeyStroke[] mapKeys = map.getBoundKeyStrokes(); 
-      KeyStroke[] bothKeys = new KeyStroke[superKeys.length + mapKeys.length];
-      for (int i = 0; i < superKeys.length; ++i)
+      KeyStroke[] mapKeys = map.getBoundKeyStrokes();
+      int skl = 0;
+      int mkl = 0;
+      if (superKeys != null)
+        skl = superKeys.length;
+      if (mapKeys != null)
+        mkl = mapKeys.length;
+      KeyStroke[] bothKeys = new KeyStroke[skl + mkl];
+      for (int i = 0; i < skl; ++i)
         bothKeys[i] = superKeys[i];
-      for (int i = 0; i < mapKeys.length; ++i)
-        bothKeys[i + superKeys.length] = mapKeys[i];
+      for (int i = 0; i < mkl; ++i)
+        bothKeys[i + skl] = mapKeys[i];
       return bothKeys;
     }
   }
@@ -864,7 +870,7 @@ public abstract class JTextComponent extends JComponent
     Hashtable acts = new Hashtable(actions.length);
     for (int i = 0; i < actions.length; ++i)
       acts.put(actions[i].getValue(Action.NAME), actions[i]);
-    for (int i = 0; i < bindings.length; ++i)
+      for (int i = 0; i < bindings.length; ++i)
       if (acts.containsKey(bindings[i].actionName))
         map.addActionForKeyStroke(bindings[i].key, (Action) acts.get(bindings[i].actionName));
   }
@@ -906,33 +912,16 @@ public abstract class JTextComponent extends JComponent
   public JTextComponent()
   {
     Keymap defkeymap = getKeymap(DEFAULT_KEYMAP);
-    boolean creatingKeymap = false;
     if (defkeymap == null)
       {
         defkeymap = addKeymap(DEFAULT_KEYMAP, null);
         defkeymap.setDefaultAction(new DefaultEditorKit.DefaultKeyTypedAction());
-        creatingKeymap = true;
       }
 
     setFocusable(true);
     setEditable(true);
     enableEvents(AWTEvent.KEY_EVENT_MASK);
     updateUI();
-    
-    // need to do this after updateUI()
-    if (creatingKeymap)
-      loadKeymap(defkeymap, 
-                 new KeyBinding[] { 
-                   new KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0),
-                                  DefaultEditorKit.backwardAction),
-                   new KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0),
-                                  DefaultEditorKit.forwardAction),
-                   new KeyBinding(KeyStroke.getKeyStroke("typed \b"),
-                                  DefaultEditorKit.deletePrevCharAction),
-                   new KeyBinding(KeyStroke.getKeyStroke("typed \u007f"),
-                                  DefaultEditorKit.deleteNextCharAction)                   
-                 },
-                 getActions());
   }
 
   public void setDocument(Document newDoc)
diff --git a/libjava/classpath/javax/swing/text/MaskFormatter.java b/libjava/classpath/javax/swing/text/MaskFormatter.java
new file mode 100644 (file)
index 0000000..d12b9ea
--- /dev/null
@@ -0,0 +1,583 @@
+/* MaskFormatter.java -- 
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.swing.text;
+
+import java.text.ParseException;
+
+import javax.swing.JFormattedTextField;
+
+/**
+ * @author Anthony Balkissoon abalkiss at redhat dot com
+ *
+ */
+public class MaskFormatter extends DefaultFormatter
+{
+  // The declaration of the valid mask characters
+  private static final char NUM_CHAR = '#';
+  private static final char ESCAPE_CHAR = '\'';
+  private static final char UPPERCASE_CHAR = 'U';
+  private static final char LOWERCASE_CHAR = 'L';
+  private static final char ALPHANUM_CHAR = 'A';
+  private static final char LETTER_CHAR = '?';
+  private static final char ANYTHING_CHAR = '*';
+  private static final char HEX_CHAR = 'H';
+  
+  /** The mask for this MaskFormatter **/
+  private String mask;
+  
+  /** 
+   * A String made up of the characters that are not valid for input for 
+   * this MaskFormatter. 
+   */
+  private String invalidChars;
+  
+  /** 
+   * A String made up of the characters that are valid for input for 
+   * this MaskFormatter. 
+   */
+  private String validChars;
+  
+  /** A String used in place of missing chracters if the value does not 
+   * completely fill in the spaces in the mask.
+   */
+  private String placeHolder;
+  
+  /** A character used in place of missing characters if the value does 
+   * not completely fill in the spaces in the mask.
+   */
+  private char placeHolderChar = ' ';
+  
+  /**
+   * Whether or not stringToValue should return literal characters in the mask.
+   */
+  private boolean valueContainsLiteralCharacters = true;
+  
+  /** A String used for easy access to valid HEX characters **/
+  private static String hexString = "0123456789abcdefABCDEF";
+  
+  /** An int to hold the length of the mask, accounting for escaped characters **/
+  int maskLength = 0;
+  
+  public MaskFormatter ()
+  {
+    // Override super's default behaviour, in MaskFormatter the default
+    // is not to allow invalid values
+    setAllowsInvalid(false);
+  }
+  
+  /**
+   * Creates a MaskFormatter with the specified mask.
+   * @specnote doesn't actually throw a ParseException although it 
+   * is declared to do so
+   * @param mask
+   * @throws java.text.ParseException
+   */
+  public MaskFormatter (String mask) throws java.text.ParseException
+  {
+    // Override super's default behaviour, in MaskFormatter the default
+    // is not to allow invalid values
+    setAllowsInvalid(false);
+    setMask (mask);
+  }
+  
+  /**
+   * Returns the mask used in this MaskFormatter.
+   * @return the mask used in this MaskFormatter.
+   */
+  public String getMask()
+  {
+    return mask;
+  }
+  
+  /**
+   * Returns a String containing the characters that are not valid for input
+   * for this MaskFormatter.
+   * @return a String containing the invalid characters.
+   */
+  public String getInvalidCharacters()
+  {
+    return invalidChars;
+  }
+  
+  /**
+   * Sets characters that are not valid for input. If
+   * <code>invalidCharacters</code> is non-null then no characters contained
+   * in it will be allowed to be input.
+   * 
+   * @param invalidCharacters the String specifying invalid characters.
+   */
+  public void setInvalidCharacters (String invalidCharacters)
+  {
+    this.invalidChars = invalidCharacters;
+  }
+  
+  /**
+   * Returns a String containing the characters that are valid for input
+   * for this MaskFormatter.
+   * @return a String containing the valid characters.
+   */
+  public String getValidCharacters()
+  {
+    return validChars;
+  }
+  
+  /**
+   * Sets characters that are valid for input. If
+   * <code>validCharacters</code> is non-null then no characters that are
+   * not contained in it will be allowed to be input.
+   * 
+   * @param validCharacters the String specifying valid characters.
+   */
+  public void setValidCharacters (String validCharacters)
+  {
+    this.validChars = validCharacters;
+  }
+
+  /**
+   * Returns the place holder String that is used in place of missing 
+   * characters when the value doesn't completely fill in the spaces
+   * in the mask.
+   * @return the place holder String.
+   */
+  public String getPlaceholder()
+  {
+    return placeHolder;
+  }
+  
+  /**
+   * Sets the string to use if the value does not completely fill in the mask.
+   * If this is null, the place holder character will be used instead.
+   * @param placeholder the String to use if the value doesn't completely 
+   * fill in the mask.
+   */
+  public void setPlaceholder (String placeholder)
+  {
+    this.placeHolder = placeholder;
+  }
+  
+  /**
+   * Returns the character used in place of missing characters when the
+   * value doesn't completely fill the mask.
+   * @return the place holder character
+   */
+  public char getPlaceholderCharacter()
+  {
+    return placeHolderChar;
+  }
+  
+  /**
+   * Sets the char  to use if the value does not completely fill in the mask.
+   * This is only used if the place holder String has not been set or does 
+   * not completely fill in the mask.
+   * @param placeholder the char to use if the value doesn't completely 
+   * fill in the mask.
+   */
+  public void setPlaceholderCharacter (char placeholder)
+  {
+    this.placeHolderChar = placeholder;
+  }
+  
+  /**
+   * Returns true if stringToValue should return the literal 
+   * characters in the mask.
+   * @return true if stringToValue should return the literal 
+   * characters in the mask
+   */
+  public boolean getValueContainsLiteralCharacters()
+  {
+    return valueContainsLiteralCharacters;
+  }
+  
+  /**
+   * Determines whether stringToValue will return literal characters or not.
+   * @param containsLiteralChars if true, stringToValue will return the 
+   * literal characters in the mask, otherwise it will not.
+   */
+  public void setValueContainsLiteralCharacters (boolean containsLiteralChars)
+  {
+    this.valueContainsLiteralCharacters = containsLiteralChars;
+  }
+  
+  /**
+   * Sets the mask for this MaskFormatter.  
+   * @specnote doesn't actually throw a ParseException even though it is
+   * declared to do so
+   * @param mask the new mask for this MaskFormatter
+   * @throws ParseException if <code>mask</code> is not valid.
+   */
+  public void setMask (String mask) throws ParseException
+  {
+    this.mask = mask;
+
+    // Update the cached maskLength.
+    int end = mask.length() - 1;
+    maskLength = 0;    
+    for (int i = 0; i <= end; i++)
+      {
+        // Handle escape characters properly - they don't add to the maskLength
+        // but 2 escape characters in a row is really one escape character and
+        // one literal single quote, so that does add 1 to the maskLength.
+        if (mask.charAt(i) == '\'')
+          {            
+            // Escape characters at the end of the mask don't do anything.
+            if (i != end)
+              maskLength++;
+            i++;
+          }
+        else
+          maskLength++;
+      }
+  }
+  
+  /**
+   * Installs this MaskFormatter on the JFormattedTextField.
+   * Invokes valueToString to convert the current value from the 
+   * JFormattedTextField to a String, then installs the Actions from
+   * getActions, the DocumentFilter from getDocumentFilter, and the 
+   * NavigationFilter from getNavigationFilter.
+   * 
+   * If valueToString throws a ParseException, this method sets the text
+   * to an empty String and marks the JFormattedTextField as invalid.
+   */
+  public void install (JFormattedTextField ftf)
+  {
+    super.install(ftf);
+    if (ftf != null)
+      {
+        try
+        {
+          valueToString(ftf.getValue());
+        }
+        catch (ParseException pe)
+        {
+          // Set the text to an empty String and mark the JFormattedTextField
+          // as invalid.
+          ftf.setText("");
+          setEditValid(false);
+        }
+      }
+  }
+  
+  /**
+   * Parses the text using the mask, valid characters, and invalid characters
+   * to determine the appropriate Object to return.  This strips the literal
+   * characters if necessary and invokes super.stringToValue.  If the paramter
+   * is invalid for the current mask and valid/invalid character sets this 
+   * method will throw a ParseException.
+   * 
+   * @param value the String to parse
+   * @throws ParseException if value doesn't match the mask and valid/invalid
+   * character sets
+   */
+  public Object stringToValue (String value) throws ParseException
+  {
+    int vLength = value.length();
+    
+    // For value to be a valid it must be the same length as the mask
+    // note this doesn't take into account symbols that occupy more than 
+    // one character, this is something we may possibly need to fix.
+    if (maskLength != vLength)
+      throw new ParseException ("stringToValue passed invalid value", vLength);
+    
+    // Check if the value is valid according to the mask and valid/invalid 
+    // sets.
+    try
+    {
+      convertValue(value, false);      
+    }
+    catch (ParseException pe)
+    {
+      throw new ParseException("stringToValue passed invalid value",
+                                 pe.getErrorOffset());
+    }
+    
+    if (!getValueContainsLiteralCharacters())
+      value = stripLiterals(value);
+    return super.stringToValue(value);
+  }
+  
+  /**
+   * Strips the literal characters from the given String.
+   * @param value the String to strip
+   * @return the stripped String
+   */
+  String stripLiterals(String value)
+  {
+    StringBuffer result = new StringBuffer();
+    for (int i = 0; i < value.length(); i++)
+      {
+        // Only append the characters that don't correspond to literal
+        // characters in the mask.
+        switch (mask.charAt(i))
+          {
+          case NUM_CHAR:
+          case UPPERCASE_CHAR:
+          case LOWERCASE_CHAR:
+          case ALPHANUM_CHAR:
+          case LETTER_CHAR:
+          case HEX_CHAR:
+          case ANYTHING_CHAR:
+            result.append(value.charAt(i));
+            break;
+          default:
+          }
+      }
+    return result.toString();
+  }
+  
+  /**
+   * Returns a String representation of the Object value based on the mask.
+   * 
+   * @param value the value to convert
+   * @throws ParseException if value is invalid for this mask and valid/invalid
+   * character sets
+   */
+  public String valueToString (Object value) throws ParseException
+  {
+    String result = super.valueToString(value);
+    int rLength = result.length();
+    
+    // If value is longer than the mask, truncate it.  Note we may need to 
+    // account for symbols that are more than one character long.
+    if (rLength > maskLength)
+      result = result.substring(0, maskLength);
+    
+    // Verify the validity and convert to upper/lowercase as needed.
+    result = convertValue(result, true);        
+    if (rLength < maskLength)
+      return pad(result, rLength);    
+    return result;
+  }
+  
+  /**
+   * This method takes in a String and runs it through the mask to make
+   * sure that it is valid.  If <code>convert</code> is true, it also
+   * converts letters to upper/lowercase as required by the mask.
+   * @param value the String to convert
+   * @param convert true if we should convert letters to upper/lowercase
+   * @return the converted String
+   * @throws ParseException if the given String isn't valid for the mask
+   */
+  String convertValue(String value, boolean convert) throws ParseException
+  {
+    StringBuffer result = new StringBuffer(value);
+    char markChar;
+    char resultChar;
+    boolean literal;
+
+    // this boolean is specifically to avoid calling the isCharValid method
+    // when neither invalidChars or validChars has been set
+    boolean checkCharSets = (invalidChars != null || validChars != null);
+
+    for (int i = 0, j = 0; i < value.length(); i++, j++)
+      {
+        literal = false;
+        resultChar = result.charAt(i);
+        // This switch block on the mask character checks that the character 
+        // within <code>value</code> at that point is valid according to the
+        // mask and also converts to upper/lowercase as needed.
+        switch (mask.charAt(j))
+          {
+          case NUM_CHAR:
+            if (!Character.isDigit(resultChar))
+              throw new ParseException("Number expected", i);
+            break;
+          case UPPERCASE_CHAR:
+            if (!Character.isLetter(resultChar))
+              throw new ParseException("Letter expected", i);
+            if (convert)
+              result.setCharAt(i, Character.toUpperCase(resultChar));
+            break;
+          case LOWERCASE_CHAR:
+            if (!Character.isLetter(resultChar))
+              throw new ParseException("Letter expected", i);
+            if (convert)
+              result.setCharAt(i, Character.toLowerCase(resultChar));
+            break;
+          case ALPHANUM_CHAR:
+            if (!Character.isLetterOrDigit(resultChar))
+              throw new ParseException("Letter or number expected", i);
+            break;
+          case LETTER_CHAR:
+            if (!Character.isLetter(resultChar))
+              throw new ParseException("Letter expected", i);
+            break;
+          case HEX_CHAR:
+            if (hexString.indexOf(resultChar) == -1)
+              throw new ParseException("Hexadecimal character expected", i);
+            break;
+          case ANYTHING_CHAR:
+            break;
+          case ESCAPE_CHAR:
+            // Escape character, check the next character to make sure that 
+            // the literals match
+            j++;
+            literal = true;
+            if (resultChar != mask.charAt(j))
+              throw new ParseException ("Invalid character: "+resultChar, i);
+            break;
+          default:
+            literal = true;
+            if (!getValueContainsLiteralCharacters() && convert)
+              throw new ParseException ("Invalid character: "+resultChar, i);
+            else if (resultChar != mask.charAt(j))
+              throw new ParseException ("Invalid character: "+resultChar, i);
+          }
+        // If necessary, check if the character is valid.
+        if (!literal && checkCharSets && !isCharValid(resultChar))
+          throw new ParseException("invalid character: "+resultChar, i);
+
+      }
+    return result.toString();
+  }
+  
+  /**
+   * Convenience method used by many other methods to check if a character is 
+   * valid according to the mask, the validChars, and the invalidChars.  To
+   * be valid a character must:
+   * 1. be allowed by the mask
+   * 2. be present in any non-null validChars String
+   * 3. not be present in any non-null invalidChars String
+   * @param testChar the character to test
+   * @return true if the character is valid
+   */
+  boolean isCharValid(char testChar)
+  {
+    char lower = Character.toLowerCase(testChar);
+    char upper = Character.toUpperCase(testChar);
+    // If validChars isn't null, the character must appear in it.
+    if (validChars != null)
+      if (validChars.indexOf(lower) == -1 && validChars.indexOf(upper) == -1)
+        return false;
+    // If invalidChars isn't null, the character must not appear in it.
+    if (invalidChars != null)
+      if (invalidChars.indexOf(lower) != -1
+          || invalidChars.indexOf(upper) != -1)
+        return false;
+    return true;
+  }
+  
+  /**
+   * Pads the value with literals, the placeholder String and/or placeholder
+   * character as appropriate.
+   * @param value the value to pad
+   * @param currLength the current length of the value
+   * @return the padded String
+   */
+  String pad (String value, int currLength)
+  {
+    StringBuffer result = new StringBuffer(value);
+    int index = currLength;
+    while (result.length() < maskLength)
+      {
+        // The character used to pad may be a literal, a character from the 
+        // place holder string, or the place holder character.  getPadCharAt
+        // will find the proper one for us.
+        result.append (getPadCharAt(index));
+        index++;
+      }
+    return result.toString();
+  }
+
+  /**
+   * Returns the character with which to pad the value at the given index
+   * position.  If the mask has a literal at this position, this is returned
+   * otherwise if the place holder string is initialized and is longer than 
+   * <code>i</code> characters then the character at position <code>i</code>
+   * from this String is returned.  Else, the place holder character is 
+   * returned.
+   * @param i the index at which we want to pad the value
+   * @return the character with which we should pad the value
+   */
+  char getPadCharAt(int i)
+  {
+    boolean escaped = false;
+    int target = i;
+    char maskChar;
+    int holderLength = placeHolder == null ? -1 : placeHolder.length();
+    // We must iterate through the mask from the beginning, because the given
+    // index doesn't account for escaped characters.  For example, with the 
+    // mask "1A'A''A1" index 2 refers to the literalized A, not to the 
+    // single quotation.
+    for (int n = 0; n < mask.length(); n++)
+      {
+        maskChar = mask.charAt(n);
+        if (maskChar == ESCAPE_CHAR && !escaped)
+          {
+            target++;
+            escaped = true;
+          }
+        else if (escaped == true)
+          {
+            // Check if target == n which means we've come to the character
+            // we want to return and since it is a literal (because escaped 
+            // is true), we return it.
+            if (target == n)
+              return maskChar;
+            escaped = false;
+          }
+        if (target == n)
+          {
+            // We've come to the character we want to return.  It wasn't
+            // escaped so if it isn't a literal we should return either
+            // the character from place holder string or the place holder
+            // character, depending on whether or not the place holder
+            // string is long enough.
+            switch (maskChar)
+            {
+            case NUM_CHAR:
+            case UPPERCASE_CHAR:
+            case LOWERCASE_CHAR:
+            case ALPHANUM_CHAR:
+            case LETTER_CHAR:
+            case HEX_CHAR:
+            case ANYTHING_CHAR:
+              if (holderLength > i)
+                return placeHolder.charAt(i);
+              else
+                return placeHolderChar;
+            default:
+              return maskChar;
+            }
+          }
+      }
+    // This shouldn't happen
+    throw new AssertionError("MaskFormatter.getMaskCharAt failed");
+  }
+}
diff --git a/libjava/classpath/javax/swing/text/NumberFormatter.java b/libjava/classpath/javax/swing/text/NumberFormatter.java
new file mode 100644 (file)
index 0000000..a858ff4
--- /dev/null
@@ -0,0 +1,86 @@
+/* NumberFormatter.java -- 
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.swing.text;
+
+import java.text.Format;
+import java.text.NumberFormat;
+
+/**
+ * <code>NumberFormatter</code> is an {@link InternationalFormatter}
+ * that implements value to string and string to value conversion via
+ * an instance of {@link NumberFormat}.
+ * 
+ * @author Anthony Balkissoon abalkiss at redhat dot com
+ * @since 1.4
+ */
+public class NumberFormatter extends InternationalFormatter
+{
+  
+  /**
+   * Creates a NumberFormatter with the default NumberFormat from 
+   * NumberFormat.getNumberInstance().   
+   */
+  public NumberFormatter ()
+  {
+    this (NumberFormat.getNumberInstance());
+  }
+  
+  /**
+   * Creates a NumberFormatter with the specified NumberFormat.
+   * @param format the NumberFormat to use for this NumberFormatter.
+   */
+  public NumberFormatter (NumberFormat format)
+  {
+    super(format);
+    setFormat(format);
+  }
+  
+  /**
+   * Sets the NumberFormat that this NumberFormatter will use to determine
+   * legal values for editing and displaying.
+   * 
+   * @param format the Format to use to determine legal values.
+   */
+  public void setFormat (Format format)
+  {
+    // TODO: This should be different from the super implementation
+    // but I don't yet know how.
+    super.setFormat(format);
+  }
+}
index c3aa66cbe17c73f579874006351ca5ed18e59e56..e54331c5a8eeb1c2a27eff795b02e8555f137348 100644 (file)
@@ -41,6 +41,7 @@ package javax.swing.text;
 import java.awt.Color;
 import java.awt.FontMetrics;
 import java.awt.Graphics;
+import java.awt.Rectangle;
 import java.awt.Shape;
 
 import javax.swing.JPasswordField;
@@ -211,7 +212,10 @@ public class PasswordView
   /**
    * Provides a mapping from the document model coordinate space to the
    * coordinate space of the view mapped to it.
-   * 
+   *
+   * This method is overridden to provide a correct mapping with respect to the
+   * echo char and not to the real content.
+   *
    * @param pos - the position to convert >= 0
    * @param a - the allocated region to render into
    * @param b - typesafe enumeration to indicate bias to a position in the model.
@@ -222,7 +226,35 @@ public class PasswordView
   public Shape modelToView(int pos, Shape a, Position.Bias b)
     throws BadLocationException
   {
-    return super.modelToView(pos, a, b);
+    Shape newAlloc = adjustAllocation(a);
+
+    // Ensure metrics are up-to-date.
+    updateMetrics();
+    
+    // Get rectangle of the line containing position.
+    int lineIndex = getElement().getElementIndex(pos);
+    Rectangle rect = lineToRect(newAlloc, lineIndex);
+
+    // Get the rectangle for position.
+    Element line = getElement().getElement(lineIndex);
+    int lineStart = line.getStartOffset();
+    Segment segment = getLineBuffer();
+    segment.array = new char[pos - lineStart];
+    char echoChar = getEchoChar();
+    for (int i = 0; i < segment.array.length; ++i)
+      segment.array[i] = echoChar;
+    segment.offset = 0;
+    segment.count = segment.array.length;
+
+    int xoffset = Utilities.getTabbedTextWidth(segment, metrics, rect.x,
+                           this, lineStart);
+
+    // Calc the real rectangle.
+    rect.x += xoffset;
+    rect.width = 1;
+    rect.height = metrics.getHeight();
+
+    return rect;
   }
 
   /**
@@ -239,6 +271,8 @@ public class PasswordView
    */
   public int viewToModel(float fx, float fy, Shape a, Position.Bias[] bias)
   {
+    // FIXME: This only provides a view->model mapping for the real text
+    // content and does not respect the echo char.
     return super.viewToModel(fx, fy, a, bias);
   }
 }
index 0c00a06ff252b3308e6e1a23cbde2e50a9392225..2200cae80a08a8cc167ce59caf0f447d6369e98e 100644 (file)
@@ -113,6 +113,46 @@ public class PlainDocument extends AbstractDocument
     int elementIndex = rootElement.getElementIndex(offset);
     Element firstElement = rootElement.getElement(elementIndex);
     
+    // If we're inserting immediately after a newline we have to fix the 
+    // Element structure.
+    if (offset > 0)
+      {
+        try
+        {
+          String s = getText(offset - 1, 1);
+          if (s.equals("\n"))
+            {
+              int newEl2EndOffset = end;
+              boolean replaceNext = false;
+              if (rootElement.getElementCount() > elementIndex + 1)
+                {
+                  replaceNext = true;
+                  newEl2EndOffset = 
+                    rootElement.getElement(elementIndex + 1).getEndOffset();
+                }
+              Element newEl1 = 
+                createLeafElement(rootElement, firstElement.getAttributes(), 
+                                  firstElement.getStartOffset(), offset);
+              Element newEl2 = 
+                createLeafElement (rootElement, firstElement.getAttributes(), 
+                                   offset, newEl2EndOffset);
+              if (replaceNext)
+                rootElement.replace(elementIndex, 2, new Element[] { newEl1, newEl2 });
+              else
+                rootElement.replace(elementIndex, 1, new Element[] { newEl1, newEl2 });
+              firstElement = newEl2;
+              elementIndex ++;
+            }
+        }
+        catch (BadLocationException ble)
+        {          
+          // This shouldn't happen.
+          AssertionError ae = new AssertionError();
+          ae.initCause(ble);
+          throw ae;
+        }        
+      }
+
     // added and removed are Element arrays used to add an ElementEdit
     // to the DocumentEvent if there were entire lines added or removed.
     Element[] removed = new Element[1];
index 9f5ee8ad3c8e18aaf326ebdbd3baf43621d5c77e..a318ee71ae0b08497305ad2f540d3fa9b33e5725 100644 (file)
@@ -185,7 +185,6 @@ public class PlainView extends View implements TabExpander
     
     JTextComponent textComponent = (JTextComponent) getContainer();
 
-    g.setFont(textComponent.getFont());
     selectedColor = textComponent.getSelectedTextColor();
     unselectedColor = textComponent.getForeground();
     disabledColor = textComponent.getDisabledTextColor();
@@ -513,7 +512,8 @@ public class PlainView extends View implements TabExpander
     else
       {
         Rectangle repaintRec = rec0.union(rec1);
-        host.repaint();
+        host.repaint(repaintRec.x, repaintRec.y, repaintRec.width,
+                     repaintRec.height);
       }    
   }
 
@@ -530,35 +530,5 @@ public class PlainView extends View implements TabExpander
       lineBuffer = new Segment();
     return lineBuffer;
   }
-
-  /**
-   * Returns the document position that is (visually) nearest to the given
-   * document position <code>pos</code> in the given direction <code>d</code>.
-   *
-   * @param c the text component
-   * @param pos the document position
-   * @param b the bias for <code>pos</code>
-   * @param d the direction, must be either {@link SwingConstants#NORTH},
-   *        {@link SwingConstants#SOUTH}, {@link SwingConstants#WEST} or
-   *        {@link SwingConstants#EAST}
-   * @param biasRet an array of {@link Position.Bias} that can hold at least
-   *        one element, which is filled with the bias of the return position
-   *        on method exit
-   *
-   * @return the document position that is (visually) nearest to the given
-   *         document position <code>pos</code> in the given direction
-   *         <code>d</code>
-   *
-   * @throws BadLocationException if <code>pos</code> is not a valid offset in
-   *         the document model
-   */
-  public int getNextVisualPositionFrom(JTextComponent c, int pos,
-                                       Position.Bias b, int d,
-                                       Position.Bias[] biasRet)
-    throws BadLocationException
-  {
-    // TODO: Implement this properly.
-    throw new AssertionError("Not implemented yet.");
-  }
 }
 
index 6c4e299455f6650ba68b0eacf825b631088166d4..dabc0ba9cd01b351f1112afb38d83b370cd34d58 100644 (file)
@@ -362,9 +362,8 @@ public class StyleContext
        
     public boolean isEqual(AttributeSet attr)
     {
-      return attr != null 
-        && attr.containsAttributes(this)
-        && this.containsAttributes(attr);
+      return getAttributeCount() == attr.getAttributeCount()
+             && this.containsAttributes(attr);
     }
        
     public String toString()
index e71f992b534ad04768cca3925cac69accca3bddf..c4eef4463fb7160d189acf0e6545db8d5e004ed1 100644 (file)
@@ -67,7 +67,7 @@ public class StyledEditorKit extends DefaultEditorKit
      */
     public UnderlineAction()
     {
-      super("TODO"); // TODO: Figure out name for this action.
+      super("font-underline");
     }
 
     /**
@@ -97,7 +97,7 @@ public class StyledEditorKit extends DefaultEditorKit
      */
     public ItalicAction()
     {
-      super("TODO"); // TODO: Figure out correct name of this Action.
+      super("font-italic");
     }
 
     /**
@@ -127,7 +127,7 @@ public class StyledEditorKit extends DefaultEditorKit
      */
     public BoldAction()
     {
-      super("TODO"); // TODO: Figure out correct name of this Action.
+      super("font-bold");
     }
 
     /**
@@ -585,8 +585,26 @@ public class StyledEditorKit extends DefaultEditorKit
   public Action[] getActions()
   {
     Action[] actions1 = super.getActions();
-    Action[] myActions = new Action[] { new BoldAction(), new ItalicAction(),
-                                       new UnderlineAction() };
+    Action[] myActions = new Action[] { 
+      new FontSizeAction("font-size-8", 8),
+      new FontSizeAction("font-size-10", 10),
+      new FontSizeAction("font-size-12", 12),
+      new FontSizeAction("font-size-14", 14),
+      new FontSizeAction("font-size-16", 16),
+      new FontSizeAction("font-size-18", 18),
+      new FontSizeAction("font-size-24", 24),
+      new FontSizeAction("font-size-36", 36),
+      new FontSizeAction("font-size-48", 48),
+      new FontFamilyAction("font-family-Serif", "Serif"),
+      new FontFamilyAction("font-family-Monospaced", "Monospaced"),
+      new FontFamilyAction("font-family-SansSerif", "SansSerif"),
+      new AlignmentAction("left-justify", StyleConstants.ALIGN_LEFT),
+      new AlignmentAction("center-justify", StyleConstants.ALIGN_CENTER),
+      new AlignmentAction("right-justify", StyleConstants.ALIGN_RIGHT),
+      new BoldAction(),
+      new ItalicAction(),
+      new UnderlineAction()
+    };
     return TextAction.augmentList(actions1, myActions);
   }
 
@@ -696,9 +714,8 @@ public class StyledEditorKit extends DefaultEditorKit
   protected void createInputAttributes(Element element,
                                       MutableAttributeSet set)
   {
-    AttributeSet atts = element.getAttributes();
-    set.removeAttributes(set);
     // FIXME: Filter out component, icon and element name attributes.
-    set.addAttributes(atts);
+    set.removeAttributes(set);
+    set.addAttributes(element.getAttributes());
   }
 }
diff --git a/libjava/classpath/javax/swing/text/TableView.java b/libjava/classpath/javax/swing/text/TableView.java
new file mode 100644 (file)
index 0000000..d3113b8
--- /dev/null
@@ -0,0 +1,465 @@
+/* TableView.java -- A view impl for tables inside styled text
+   Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.swing.text;
+
+import java.awt.Rectangle;
+import java.awt.Shape;
+
+import javax.swing.SizeRequirements;
+import javax.swing.event.DocumentEvent;
+
+/**
+ * A {@link View} implementation for rendering tables inside styled text.
+ * Tables are rendered as vertical boxes (see {@link BoxView}). These boxes
+ * have a number of child views, which are the rows of the table. These are
+ * horizontal boxes containing the actuall cells of the table. These cells
+ * can be arbitrary view implementations and are fetched via the
+ * {@link ViewFactory} returned by {@link View#getViewFactory}.
+ * 
+ * @author Roman Kennke (kennke@aicas.com)
+ */
+public class TableView
+  extends BoxView
+{
+
+  /**
+   * A view implementation that renders a row of a <code>TableView</code>.
+   * This is implemented as a horizontal box that contains the actual cells
+   * of the table.
+   *
+   * @author Roman Kennke (kennke@aicas.com)
+   */
+  public class TableRow
+    extends BoxView
+  {
+    /**
+     * Creates a new instance of <code>TableRow</code>.
+     *
+     * @param el the element for which to create a row view
+     */
+    public TableRow(Element el)
+    {
+      super(el, X_AXIS);
+    }
+
+    /**
+     * Replaces some child views with a new set of child views. This is
+     * implemented to call the superclass behaviour and invalidates the row
+     * grid so that rows and columns will be recalculated.
+     *
+     * @param offset the start offset at which to replace views
+     * @param length the number of views to remove
+     * @param views the new set of views
+     */
+    public void replace(int offset, int length, View[] views)
+    {
+      super.replace(offset, length, views);
+      layoutChanged(X_AXIS);
+    }
+
+    /**
+     * Lays out the box's child views along the major axis. This is
+     * reimplemented so that the child views all have the width of their
+     * column.
+     *
+     * @param targetSpan the total span of the view
+     * @param axis the axis that is laid out
+     * @param offsets an array that holds the offsets of the child views after
+     *        this method returned
+     * @param spans an array that holds the spans of the child views after this
+     *        method returned
+     */
+    protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets,
+                                   int[] spans)
+    {
+      // TODO: Maybe prepare columnSpans and columnOffsets.
+
+      // Some sanity checks. If these preconditions are not met, then the
+      // following code will not work. Also, there must be something
+      // seriously wrong then.
+      assert(offsets.length == columnOffsets.length);
+      assert(spans.length == columnSpans.length);
+      assert(offsets.length == spans.length);
+      for (int i = 0; i < offsets.length; ++i)
+        {
+          offsets[i] = columnOffsets[i];
+          spans[i] = columnSpans[i];
+        }
+    }
+
+    /**
+     * Lays out the box's child views along the minor axis (the orthogonal axis
+     * to the major axis). This is reimplemented to call the super behaviour
+     * and then adjust the span of the child views that span multiple rows.
+     *
+     * @param targetSpan the total span of the view
+     * @param axis the axis that is laid out
+     * @param offsets an array that holds the offsets of the child views after
+     *        this method returned
+     * @param spans an array that holds the spans of the child views after this
+     *        method returned
+     */
+    protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets,
+                                   int[] spans)
+    {
+      // FIXME: Figure out how to fetch the row heights from the TableView's
+      // element.
+      super.layoutMajorAxis(targetSpan, axis, offsets, spans);
+    }
+
+    /**
+     * Determines the resizeability of this view along the specified axis.
+     *
+     * @param axis the axis of which to fetch the resizability
+     *
+     * @return the resize weight or &lt;= 0 if this view is not resizable
+     *
+     * @throws IllegalArgumentException when an illegal axis is specified
+     */
+    public int getResizeWeight(int axis)
+    {
+      // TODO: Figure out if this is ok. I would think so, but better test
+      // this.
+      return 0;
+    }
+
+    /**
+     * Returns the child view that represents the specified position in the
+     * model. This is reimplemented because in this view we do not necessarily
+     * have a one to one mapping of child elements to child views.
+     *
+     * @param pos the model position for which to query the view
+     * @param a the allocation of this view
+     *
+     * @return the view that corresponds to the specified model position or
+     *         <code>null</code> if there is none
+     */
+    protected View getViewAtPosition(int pos, Rectangle a)
+    {
+      // FIXME: Do not call super here. Instead walk through the child views
+      // and look for a range that contains the given position.
+      return super.getViewAtPosition(pos, a);
+    }
+  }
+
+  /**
+   * This class is deprecated and not used anymore. Table cells are
+   * rendered by an arbitrary <code>View</code> implementation.
+   *
+   * @author Roman Kennke (kennke@aicas.com)
+   *
+   * @deprecated Table cells are now rendered by an arbitrary <code>View</code>
+   *             implementation.
+   */
+  public class TableCell
+    extends BoxView
+  {
+
+    /**
+     * The row number of this cell.
+     */
+    private int row;
+
+    /**
+     * The column number of this cell.
+     */
+    private int column;
+
+    /**
+     * Creates a new instance.
+     *
+     * @param el the element
+     *
+     * @deprecated Table cells are now rendered by an arbitrary
+     *             <code>View</code> implementation.
+     */
+    public TableCell(Element el)
+    {
+      super(el, X_AXIS);
+    }
+
+    /**
+     * Returns the number of columns that this cell spans.
+     *
+     * @return the number of columns that this cell spans
+     *
+     * @deprecated Table cells are now rendered by an arbitrary
+     *             <code>View</code> implementation.
+     */
+    public int getColumnCount()
+    {
+      // TODO: Figure out if this is right. However, this is not so important
+      // since this class isn't used anyway (except maybe be application code
+      // that still uses this deprecated class).
+      return 1;
+    }
+
+    /**
+     * Returns the number of rows that this cell spans.
+     *
+     * @return the number of rows that this cell spans
+     *
+     * @deprecated Table cells are now rendered by an arbitrary
+     *             <code>View</code> implementation.
+     */
+    public int getRowCount()
+    {
+      // TODO: Figure out if this is right. However, this is not so important
+      // since this class isn't used anyway (except maybe be application code
+      // that still uses this deprecated class).
+      return 1;
+    }
+
+    /**
+     * Sets the grid location of this table cell.
+     *
+     * @param r the row of this cell
+     * @param c the column of this cell
+     *
+     * @deprecated Table cells are now rendered by an arbitrary
+     *             <code>View</code> implementation.
+     */
+    public void setGridLocation(int r, int c)
+    {
+      row = r;
+      column = c;
+    }
+
+    /**
+     * Returns the row number of this cell.
+     *
+     * @return the row number of this cell
+     *
+     * @deprecated Table cells are now rendered by an arbitrary
+     *             <code>View</code> implementation.
+     */
+    public int getGridRow()
+    {
+      return row;
+    }
+
+    /**
+     * Returns the column number of this cell.
+     *
+     * @return the column number of this cell
+     *
+     * @deprecated Table cells are now rendered by an arbitrary
+     *             <code>View</code> implementation.
+     */
+    public int getGridColumn()
+    {
+      return column;
+    }
+  }
+
+  /**
+   * The offsets of the columns of this table. Package private to avoid
+   * synthetic accessor methods.
+   */
+  int[] columnOffsets;
+
+  /**
+   * The spans of the columns of this table. Package private to avoid
+   * synthetic accessor methods.
+   */
+  int[] columnSpans;
+
+  /**
+   * The size requirements of the columns.
+   */
+  private SizeRequirements[] columnRequirements;
+
+  /**
+   * Creates a new instance of <code>TableView</code>.
+   *
+   * @param el the element for which to create a table view
+   */
+  public TableView(Element el)
+  {
+    super(el, Y_AXIS);
+    int numChildren = el.getElementCount();
+    View[] rows = new View[numChildren];
+    for (int i = 0; i < numChildren; ++i)
+      {
+        Element rowEl = el.getElement(i);
+        TableRow rowView = createTableRow(rowEl);
+        rows[i] = rowView;
+      }
+    replace(0, 0, rows);
+  }
+
+  /**
+   * Replaces a number of child views with a set of new child views. This is
+   * implemented to call the superclass behaviour and invalidate the layout.
+   *
+   * @param offset the offset at which to replace child views
+   * @param length the number of child views to remove
+   * @param views the new set of views
+   */
+  public void replace(int offset, int length, View[] views)
+  {
+    super.replace(offset, length, views);
+    layoutChanged(Y_AXIS);
+  }
+
+  /**
+   * Creates a view for a table row.
+   *
+   * @param el the element that represents the table row
+   *
+   * @return a view for rendering the table row
+   */
+  protected TableRow createTableRow(Element el)
+  {
+    return new TableRow(el);
+  }
+
+  /**
+   * Creates a view for a table cell. This method is deprecated and not used
+   * anymore.
+   *
+   * @param el the element that represents the table cell
+   *
+   * @return a view for rendering the table cell
+   *
+   * @deprecated Table cells are now rendered by an arbitrary
+   *             <code>View</code> implementation.
+   */
+  protected TableCell createTableCell(Element el)
+  {
+    return new TableCell(el);
+  }
+
+  protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e,
+                               Shape a, ViewFactory vf)
+  {
+    // TODO: Figure out what to do here.
+  }
+
+  /**
+   * Lays out the columns to fit within the specified target span.
+   *
+   * @param targetSpan the total span for the columns
+   * @param offsets an array that holds the offsets of the columns when this
+   *        method returns
+   * @param spans an array that holds the spans of the columns when this method
+   *        returns
+   * @param reqs the size requirements for each column
+   */
+  protected void layoutColumns(int targetSpan, int[] offsets, int spans[],
+                               SizeRequirements[] reqs)
+  {
+    // TODO: Figure out what exactly to do here. 
+  }
+
+  /**
+   * Lays out the child views along the minor axis of the table (that is the
+   * horizontal axis). This is implemented to call {@link #layoutColumns} to
+   * layout the column layout of this table, and then forward to the superclass
+   * to actually lay out the rows.
+   *
+   * @param targetSpan the available span along the minor (horizontal) axis
+   * @param axis the axis
+   * @param offsets an array that holds the offsets of the columns when this
+   *        method returns
+   * @param spans an array that holds the spans of the columns when this method
+   *        returns
+   */
+  protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets,
+                                 int[] spans)
+  {
+    // TODO: Prepare size requirements for the columns.
+    layoutColumns(targetSpan, columnOffsets, columnSpans, columnRequirements);
+    super.layoutMinorAxis(targetSpan, axis, offsets, spans);
+  }
+
+  /**
+   * Calculates the requirements of this view for the minor (== horizontal)
+   * axis.
+   * 
+   * This is reimplemented to calculate the requirements as the sum of the
+   * size requirements of the columns.
+   *
+   * @param axis the axis
+   * @param req the size requirements object to use, if <code>null</code> a new
+   *        one will be created
+   */
+  protected SizeRequirements calculateMinorAxisRequirements(int axis,
+                                                            SizeRequirements req)
+  {
+    // TODO: Maybe prepare columnRequirements.
+    SizeRequirements res = req;
+    if (res == null)
+      res = new SizeRequirements();
+    else
+      {
+        res.alignment = 0.5f;
+        res.maximum = 0;
+        res.minimum = 0;
+        res.preferred = 0;
+      }
+
+    for (int i = 0; i < columnRequirements.length; ++i)
+      {
+        res.minimum += columnRequirements[i].minimum;
+        res.preferred += columnRequirements[i].preferred;
+        res.maximum += columnRequirements[i].maximum;
+        // TODO: Do we have to handle alignment somehow?
+      }
+    return res;
+  }
+
+  /**
+   * Returns the child view that represents the specified position in the
+   * model. This is reimplemented because in this view we do not necessarily
+   * have a one to one mapping of child elements to child views.
+   *
+   * @param pos the model position for which to query the view
+   * @param a the allocation of this view
+   *
+   * @return the view that corresponds to the specified model position or
+   *         <code>null</code> if there is none
+   */
+  protected View getViewAtPosition(int pos, Rectangle a)
+  {
+    // FIXME: Do not call super here. Instead walk through the child views
+    // and look for a range that contains the given position.
+    return super.getViewAtPosition(pos, a);
+  }
+}
index 7830b2fca0478de21d58609800a25b75c0c3f2df..1adc8ff87e9d97e6f9cecb29d2ec5ad50fb2c378 100644 (file)
@@ -45,6 +45,7 @@ import java.awt.Rectangle;
 import java.text.BreakIterator;
 
 import javax.swing.SwingConstants;
+import javax.swing.SwingUtilities;
 
 /**
  * A set of utilities to deal with text. This is used by several other classes
@@ -573,10 +574,11 @@ public class Utilities
     View rootView = c.getUI().getRootView(c);
     Rectangle r = c.modelToView(offset);
     int offs = c.viewToModel(new Point(x, r.y));
-    int pos = rootView.getNextVisualPositionFrom(c, offs,
-                                                 Position.Bias.Forward,
-                                                 SwingConstants.NORTH,
-                                                 new Position.Bias[1]);
+    int pos = rootView.getNextVisualPositionFrom(offs,
+                                    Position.Bias.Forward,
+                                    SwingUtilities.calculateInnerArea(c, null),
+                                    SwingConstants.NORTH,
+                                    new Position.Bias[1]);
     return pos;
   }
 
@@ -599,10 +601,11 @@ public class Utilities
     View rootView = c.getUI().getRootView(c);
     Rectangle r = c.modelToView(offset);
     int offs = c.viewToModel(new Point(x, r.y));
-    int pos = rootView.getNextVisualPositionFrom(c, offs,
-                                                 Position.Bias.Forward,
-                                                 SwingConstants.SOUTH,
-                                                 new Position.Bias[1]);
+    int pos = rootView.getNextVisualPositionFrom(offs,
+                                    Position.Bias.Forward,
+                                    SwingUtilities.calculateInnerArea(c, null),
+                                    SwingConstants.SOUTH,
+                                    new Position.Bias[1]);
     return pos;
   }
 }
index daab347d731072ac103f69a7741c0b4ac2cc4e2d..b835842bc0e74b0ff9a4e4635e8361f12fc44011 100644 (file)
@@ -447,9 +447,11 @@ public abstract class View implements SwingConstants
   protected void updateLayout(DocumentEvent.ElementChange ec,
                               DocumentEvent ev, Shape shape)
   {
-    Rectangle b = shape.getBounds();
-    if (ec != null)
-      preferenceChanged(this, true, true);
+    if (ec != null && shape != null)
+      preferenceChanged(null, true, true);
+    Container c = getContainer();
+    if (c != null)
+      c.repaint();
   }
 
   /**
@@ -599,9 +601,9 @@ public abstract class View implements SwingConstants
    * Returns the document position that is (visually) nearest to the given
    * document position <code>pos</code> in the given direction <code>d</code>.
    *
-   * @param c the text component
    * @param pos the document position
    * @param b the bias for <code>pos</code>
+   * @param a the allocation for this view
    * @param d the direction, must be either {@link SwingConstants#NORTH},
    *        {@link SwingConstants#SOUTH}, {@link SwingConstants#WEST} or
    *        {@link SwingConstants#EAST}
@@ -615,9 +617,31 @@ public abstract class View implements SwingConstants
    *
    * @throws BadLocationException if <code>pos</code> is not a valid offset in
    *         the document model
+   * @throws IllegalArgumentException if <code>d</code> is not a valid direction
    */
-  public abstract int getNextVisualPositionFrom(JTextComponent c, int pos,
-                                                Position.Bias b, int d,
-                                                Position.Bias[] biasRet)
-    throws BadLocationException;
+  public int getNextVisualPositionFrom(int pos, Position.Bias b,
+                                       Shape a, int d,
+                                       Position.Bias[] biasRet)
+    throws BadLocationException
+  {
+    int ret = pos;
+    switch (d)
+    {
+      case WEST:
+        ret = pos - 1;
+        break;
+      case EAST:
+        ret = pos + 1;
+        break;
+      case NORTH:
+        // TODO: Implement this
+        break;
+      case SOUTH:
+        // TODO: Implement this
+        break;
+      default:
+        throw new IllegalArgumentException("Illegal value for d");
+    }
+    return ret;
+  }
 }
index b03399d097455c94e403ef789ffb6186d2892bd2..baba343c5bf789f1bcf638ec0b067ac620af8585 100644 (file)
@@ -620,36 +620,6 @@ public class WrappedPlainView extends BoxView implements TabExpander
             currLineStart = currLineEnd;
         }
     }    
-
-    /**
-     * Returns the document position that is (visually) nearest to the given
-     * document position <code>pos</code> in the given direction <code>d</code>.
-     *
-     * @param c the text component
-     * @param pos the document position
-     * @param b the bias for <code>pos</code>
-     * @param d the direction, must be either {@link SwingConstants#NORTH},
-     *        {@link SwingConstants#SOUTH}, {@link SwingConstants#WEST} or
-     *        {@link SwingConstants#EAST}
-     * @param biasRet an array of {@link Position.Bias} that can hold at least
-     *        one element, which is filled with the bias of the return position
-     *        on method exit
-     *
-     * @return the document position that is (visually) nearest to the given
-     *         document position <code>pos</code> in the given direction
-     *         <code>d</code>
-     *
-     * @throws BadLocationException if <code>pos</code> is not a valid offset 
-     *         in the document model
-     */
-    public int getNextVisualPositionFrom(JTextComponent c, int pos,
-                                         Position.Bias b, int d,
-                                         Position.Bias[] biasRet)
-      throws BadLocationException
-    {
-      // TODO: Implement this properly.
-      throw new AssertionError("Not implemented yet.");
-    }
     
     /**
      * This method is called from insertUpdate and removeUpdate.
diff --git a/libjava/classpath/javax/swing/text/html/BlockView.java b/libjava/classpath/javax/swing/text/html/BlockView.java
new file mode 100644 (file)
index 0000000..6274e7b
--- /dev/null
@@ -0,0 +1,301 @@
+/* BlockView.java -- 
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.swing.text.html;
+
+import java.awt.Graphics;
+import java.awt.Rectangle;
+import java.awt.Shape;
+
+import javax.swing.SizeRequirements;
+import javax.swing.event.DocumentEvent;
+import javax.swing.text.AttributeSet;
+import javax.swing.text.BoxView;
+import javax.swing.text.Element;
+import javax.swing.text.View;
+import javax.swing.text.ViewFactory;
+
+/**
+ * @author Lillian Angel <langel@redhat.com>
+ */
+public class BlockView extends BoxView
+{
+  
+  /**
+   * Creates a new view that represents an html box. 
+   * This can be used for a number of elements.
+   * 
+   * @param elem - the element to create a view for
+   * @param axis - either View.X_AXIS or View.Y_AXIS
+   */
+  public BlockView(Element elem, int axis)
+  {
+    super(elem, axis);
+  }
+  
+  /**
+   * Creates the parent view for this. It is called before
+   * any other methods, if the parent view is working properly.
+   * Implemented to forward to the superclass and call
+   * setPropertiesFromAttributes to set the paragraph 
+   * properties.
+   * 
+   * @param parent - the new parent, or null if the view
+   * is being removed from a parent it was added to. 
+   */
+  public void setParent(View parent)
+  {
+    super.setParent(parent);
+    
+    if (parent != null)
+      setPropertiesFromAttributes();
+  }
+  
+  /**
+   * Calculates the requirements along the major axis.
+   * This is implemented to call the superclass and then
+   * adjust it if the CSS width or height attribute is specified
+   * and applicable.
+   * 
+   * @param axis - the axis to check the requirements for.
+   * @param r - the SizeRequirements. If null, one is created.
+   * @return the new SizeRequirements object.
+   */
+  protected SizeRequirements calculateMajorAxisRequirements(int axis,
+                                                            SizeRequirements r)
+  {
+    SizeRequirements sr = super.calculateMajorAxisRequirements(axis, r);
+    // FIXME: adjust it if the CSS width or height attribute is specified
+    // and applicable
+    return sr;
+  }
+  
+  /**
+   * Calculates the requirements along the minor axis.
+   * This is implemented to call the superclass and then
+   * adjust it if the CSS width or height attribute is specified
+   * and applicable.
+   * 
+   * @param axis - the axis to check the requirements for.
+   * @param r - the SizeRequirements. If null, one is created.
+   * @return the new SizeRequirements object.
+   */
+  protected SizeRequirements calculateMinorAxisRequirements(int axis,
+                                                            SizeRequirements r)
+  {
+    SizeRequirements sr = super.calculateMinorAxisRequirements(axis, r);
+    // FIXME: adjust it if the CSS width or height attribute is specified
+    // and applicable.
+    return sr;
+  }
+  
+  /**
+   * Lays out the box along the minor axis (the axis that is
+   * perpendicular to the axis that it represents). The results
+   * of the layout are placed in the given arrays which are
+   * the allocations to the children along the minor axis.
+   * 
+   * @param targetSpan - the total span given to the view, also 
+   * used to layout the children.
+   * @param axis - the minor axis
+   * @param offsets - the offsets from the origin of the view for
+   * all the child views. This is a return value and is filled in by this
+   * function.
+   * @param spans - the span of each child view. This is a return value and is 
+   * filled in by this function.
+   */
+  protected void layoutMinorAxis(int targetSpan, int axis,
+                                 int[] offsets, int[] spans)
+  {
+    // FIXME: Not implemented.
+    super.layoutMinorAxis(targetSpan, axis, offsets, spans);
+  }
+  
+  /**
+   * Paints using the given graphics configuration and shape.
+   * This delegates to the css box painter to paint the
+   * border and background prior to the interior.
+   * 
+   * @param g - Graphics configuration
+   * @param a - the Shape to render into.
+   */
+  public void paint(Graphics g, Shape a)
+  {
+    Rectangle rect = (Rectangle) a;
+    // FIXME: not fully implemented
+    getStyleSheet().getBoxPainter(getAttributes()).paint(g, rect.x, rect.y,
+                                                         rect.width,
+                                                         rect.height, this);
+    super.paint(g, a);
+  }
+  
+  /**
+   * Fetches the attributes to use when painting.
+   * 
+   * @return the attributes of this model.
+   */
+  public AttributeSet getAttributes()
+  {
+    return getStyleSheet().getViewAttributes(this);
+  }
+  
+  /**
+   * Gets the resize weight.
+   * 
+   * @param axis - the axis to get the resize weight for.
+   * @return the resize weight.
+   * @throws IllegalArgumentException - for an invalid axis
+   */
+  public int getResizeWeight(int axis) throws IllegalArgumentException
+  {
+    // Can't resize the Y_AXIS
+    if (axis == Y_AXIS)
+      return 0;
+    if (axis == X_AXIS)
+      return 1;
+    throw new IllegalArgumentException("Invalid Axis");
+  }
+  
+  /**
+   * Gets the alignment.
+   * 
+   * @param axis - the axis to get the alignment for.
+   * @return the alignment.
+   */
+  public float getAlignment(int axis)
+  {
+    if (axis == X_AXIS)
+      return 0.0F;
+    if (axis == Y_AXIS)
+      {
+        if (getViewCount() == 0)
+          return 0.0F;
+        float prefHeight = getPreferredSpan(Y_AXIS);
+        float firstRowHeight = getView(0).getPreferredSpan(Y_AXIS);
+        return (firstRowHeight / 2.F) / prefHeight;
+      }
+    throw new IllegalArgumentException("Invalid Axis");
+  }
+  
+  /**
+   * Gives notification from the document that attributes were
+   * changed in a location that this view is responsible for.
+   * 
+   * @param ev - the change information
+   * @param a - the current shape of the view
+   * @param f - the factory to use to rebuild if the view has children.
+   */
+  public void changedUpdate(DocumentEvent ev,
+                            Shape a, ViewFactory f)
+  {
+    super.changedUpdate(ev, a, f);
+    
+    // If more elements were added, then need to set the properties for them
+    int currPos = ev.getOffset();
+    if (currPos <= getStartOffset() && (currPos + ev.getLength()) >= getEndOffset())
+        setPropertiesFromAttributes();
+  }
+
+  /**
+   * Determines the preferred span along the axis.
+   * 
+   * @param axis - the view to get the preferred span for.
+   * @return the span the view would like to be painted into >=0/
+   * The view is usually told to paint into the span that is returned, 
+   * although the parent may choose to resize or break the view.
+   * @throws IllegalArgumentException - for an invalid axis
+   */
+  public float getPreferredSpan(int axis) throws IllegalArgumentException
+  {
+    if (axis == X_AXIS || axis == Y_AXIS)
+      return super.getPreferredSpan(axis);
+    throw new IllegalArgumentException("Invalid Axis");
+  }
+  
+  /**
+   * Determines the minimum span along the axis.
+   * 
+   * @param axis - the axis to get the minimum span for.
+   * @return the span the view would like to be painted into >=0/
+   * The view is usually told to paint into the span that is returned, 
+   * although the parent may choose to resize or break the view.
+   * @throws IllegalArgumentException - for an invalid axis
+   */
+  public float getMinimumSpan(int axis) throws IllegalArgumentException
+  {
+    if (axis == X_AXIS || axis == Y_AXIS)
+      return super.getMinimumSpan(axis);
+    throw new IllegalArgumentException("Invalid Axis");
+  }
+  
+  /**
+   * Determines the maximum span along the axis.
+   * 
+   * @param axis - the axis to get the maximum span for.
+   * @return the span the view would like to be painted into >=0/
+   * The view is usually told to paint into the span that is returned, 
+   * although the parent may choose to resize or break the view.
+   * @throws IllegalArgumentException - for an invalid axis
+   */
+  public float getMaximumSpan(int axis) throws IllegalArgumentException
+  {
+    if (axis == X_AXIS || axis == Y_AXIS)
+      return super.getMaximumSpan(axis);
+    throw new IllegalArgumentException("Invalid Axis");
+  }
+  
+  /**
+   * Updates any cached values that come from attributes.
+   */
+  protected void setPropertiesFromAttributes()
+  {
+    // FIXME: Not implemented (need to use StyleSheet).
+  }
+  
+  /**
+   * Gets the default style sheet.
+   * 
+   * @return the style sheet
+   */
+  protected StyleSheet getStyleSheet()
+  {
+    StyleSheet styleSheet = new StyleSheet();
+    styleSheet.importStyleSheet(getClass().getResource(HTMLEditorKit.DEFAULT_CSS));
+    return styleSheet;
+  }
+}
index 029ad26f8a9e4b7d5a3e8710f03aedebfd794098..c248e758ec29744cf2f63154a69b72fd22e43f63 100644 (file)
@@ -37,6 +37,7 @@ exception statement from your version. */
 
 package javax.swing.text.html;
 
+import java.io.Serializable;
 import java.util.HashMap;
 
 /**
@@ -46,7 +47,7 @@ import java.util.HashMap;
  *
  * @author Roman Kennke (kennke@aicas.com)
  */
-public class CSS
+public class CSS implements Serializable
 {
   /**
    * Returns an array of all CSS attributes.
diff --git a/libjava/classpath/javax/swing/text/html/CSSParser.java b/libjava/classpath/javax/swing/text/html/CSSParser.java
new file mode 100644 (file)
index 0000000..0bf76eb
--- /dev/null
@@ -0,0 +1,568 @@
+/* CSSParser.java --
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.swing.text.html;
+
+import java.io.*;
+
+/**
+ * Parses a CSS document. This works by way of a delegate that implements the
+ * CSSParserCallback interface. The delegate is notified of the following
+ * events: 
+ * - Import statement: handleImport 
+ * - Selectors handleSelector. This is invoked for each string. For example if 
+ * the Reader contained p, bar , a {}, the delegate would be notified 4 times, 
+ * for 'p,' 'bar' ',' and 'a'. 
+ * - When a rule starts, startRule 
+ * - Properties in the rule via the handleProperty. This
+ * is invoked one per property/value key, eg font size: foo;, would cause the
+ * delegate to be notified once with a value of 'font size'. 
+ * - Values in the rule via the handleValue, this is notified for the total value. 
+ * - When a rule ends, endRule
+ * 
+ * @author Lillian Angel (langel@redhat.com)
+ */
+class CSSParser
+{
+
+  /**
+   * Receives all information about the CSS document structure while parsing it.
+   * The methods are invoked by parser.
+   */
+  static interface CSSParserCallback
+  {
+    /**
+     * Handles the import statment in the document.
+     * 
+     * @param imp - the import string
+     */
+    public abstract void handleImport(String imp);
+
+    /**
+     * Called when the start of a rule is encountered.
+     */
+    public abstract void startRule();
+
+    /**
+     * Called when the end of a rule is encountered.
+     */
+    public abstract void endRule();
+
+    /**
+     * Handles the selector of a rule.
+     * 
+     * @param selector - the selector in the rule
+     */
+    public abstract void handleSelector(String selector);
+
+    /**
+     * Handles the properties in the document.
+     * 
+     * @param property - the property in the document.
+     */
+    public abstract void handleProperty(String property);
+
+    /**
+     * Handles the values in the document.
+     * 
+     * @param value - the value to handle.
+     */
+    public abstract void handleValue(String value);
+
+  }
+
+  /**
+   * The identifier of the rule.
+   */
+  private static final int IDENTIFIER = 1;
+
+  /**
+   * The open bracket.
+   */
+  private static final int BRACKET_OPEN = 2;
+
+  /**
+   * The close bracket.
+   */
+  private static final int BRACKET_CLOSE = 3;
+
+  /**
+   * The open brace.
+   */
+  private static final int BRACE_OPEN = 4;
+
+  /**
+   * The close brace.
+   */
+  private static final int BRACE_CLOSE = 5;
+
+  /**
+   * The open parentheses.
+   */
+  private static final int PAREN_OPEN = 6;
+
+  /**
+   * The close parentheses.
+   */
+  private static final int PAREN_CLOSE = 7;
+
+  /**
+   * The end of the document.
+   */
+  private static final int END = -1;
+
+  /**
+   * The character mapping in the document.
+   */
+  // FIXME: What is this used for?
+  private static final char[] charMapping = null;
+
+  /**
+   * Set to true if one character has been read ahead.
+   */
+  private boolean didPushChar;
+
+  /**
+   * The read ahead character.
+   */
+  private int pushedChar;
+
+  /**
+   * Temporary place to hold identifiers.
+   */
+  private StringBuffer unitBuffer;
+
+  /**
+   * Used to indicate blocks.
+   */
+  private int[] unitStack;
+
+  /**
+   * Number of valid blocks.
+   */
+  private int stackCount;
+
+  /**
+   * Holds the incoming CSS rules.
+   */
+  private Reader reader;
+
+  /**
+   * Set to true when the first non @ rule is encountered.
+   */
+  private boolean encounteredRuleSet;
+
+  /**
+   * The call back used to parse.
+   */
+  private CSSParser.CSSParserCallback callback;
+
+  /**
+   * nextToken() inserts the string here.
+   */
+  private char[] tokenBuffer;
+
+  /**
+   * Current number of chars in tokenBufferLength.
+   */
+  private int tokenBufferLength;
+
+  /**
+   * Set to true if any whitespace is read.
+   */
+  private boolean readWS;
+
+  /**
+   * Constructor
+   */
+  CSSParser()
+  {
+    unitBuffer = new StringBuffer();
+    tokenBuffer = new char[10];
+  }
+
+  /**
+   * Appends a character to the token buffer.
+   * 
+   * @param c - the character to append
+   */
+  private void append(char c)
+  {
+    if (tokenBuffer.length >= tokenBufferLength)
+      {
+        char[] temp = new char[tokenBufferLength * 2];
+        if (tokenBuffer != null)
+          System.arraycopy(tokenBuffer, 0, temp, 0, tokenBufferLength);
+
+        temp[tokenBufferLength] = c;
+        tokenBuffer = temp;
+      }
+    else
+      tokenBuffer[tokenBufferLength] = c;
+    tokenBufferLength++;
+  }
+
+  /**
+   * Fetches the next token.
+   * 
+   * @param c - the character to fetch.
+   * @return the location
+   * @throws IOException - any i/o error encountered while reading
+   */
+  private int nextToken(char c) throws IOException
+  {
+    readWS = false;
+    int next = readWS();
+
+    switch (next)
+      {
+      case '\"':
+        if (tokenBufferLength > 0)
+          tokenBufferLength--;
+        return IDENTIFIER;
+      case '\'':
+        if (tokenBufferLength > 0)
+          tokenBufferLength--;
+        return IDENTIFIER;
+      case '(':
+        return PAREN_OPEN;
+      case ')':
+        return PAREN_CLOSE;
+      case '{':
+        return BRACE_OPEN;
+      case '}':
+        return BRACE_CLOSE;
+      case '[':
+        return BRACKET_OPEN;
+      case ']':
+        return BRACKET_CLOSE;
+      case -1:
+        return END;
+      default:
+        pushChar(next);
+        getIdentifier(c);
+        return IDENTIFIER;
+      }
+  }
+
+  /**
+   * Reads a character from the stream.
+   * 
+   * @return the number of characters read or -1 if end of stream is reached.
+   * @throws IOException - any i/o encountered while reading
+   */
+  private int readChar() throws IOException
+  {
+    if (didPushChar)
+      {
+        didPushChar = false;
+        return pushedChar;
+      }
+    return reader.read();
+  }
+
+  /**
+   * Parses the the contents of the reader using the
+   * callback.
+   * 
+   * @param reader - the reader to read from
+   * @param callback - the callback instance
+   * @param parsingDeclaration - true if parsing a declaration
+   * @throws IOException - any i/o error from the reader
+   */
+  void parse(Reader reader, CSSParser.CSSParserCallback callback, 
+             boolean parsingDeclaration)
+      throws IOException
+  {
+    this.reader = reader;
+    this.callback = callback;
+    
+    try
+    {
+      if (!parsingDeclaration)
+        while(getNextStatement());
+      else
+        parseDeclarationBlock();
+    }
+    catch (IOException ioe)
+    {
+      // Nothing to do here.
+    }
+  }
+
+  /**
+   * Skips any white space, returning the character after the white space.
+   * 
+   * @return the character after the whitespace
+   * @throws IOException - any i/o error from the reader
+   */
+  private int readWS() throws IOException
+  {
+    int next = readChar();
+    while (Character.isWhitespace((char) next))
+      {
+        readWS = true;
+        int tempNext = readChar();
+        if (tempNext == END)
+          return next;
+        next = tempNext;
+      }
+    
+    // Its all whitespace
+    return END;
+  }
+
+  /**
+   * Gets the next statement, returning false if the end is reached.
+   * A statement is either an At-rule, or a ruleset.
+   * 
+   * @return false if the end is reached
+   * @throws IOException - any i/o error from the reader
+   */
+  private boolean getNextStatement() throws IOException
+  {
+    int c = nextToken((char) 0);
+    switch (c)
+      {
+        case PAREN_OPEN:
+        case BRACE_OPEN:
+        case BRACKET_OPEN:
+          parseTillClosed(c);
+          break;
+        case BRACKET_CLOSE:
+        case BRACE_CLOSE:
+        case PAREN_CLOSE:
+          throw new IOException("Not a proper statement.");
+        case IDENTIFIER:
+          if (tokenBuffer[0] == ('@'))
+            parseAtRule();
+          else
+            parseRuleSet();
+          break;  
+        case END:
+          return false;
+      }
+    return true;
+  }
+
+  /**
+   * Parses an @ rule, stopping at a matching brace pair, or ;.
+   * 
+   * @throws IOException - any i/o error from the reader
+   */
+  private void parseAtRule() throws IOException
+  {    
+    // An At-Rule begins with the "@" character followed immediately by a keyword. 
+    // Following the keyword separated by a space is an At-rule statement appropriate 
+    // to the At-keyword used. If the At-Rule is a simple declarative statement 
+    // (charset, import, fontdef), it is terminated by a semi-colon (";".) 
+    // If the At-Rule is a conditional or informative statement (media, page, font-face), 
+    // it is followed by optional arguments and then a style declaration block inside matching 
+    // curly braces ("{", "}".) At-Rules are sometimes nestable, depending on the context. 
+    // If any part of an At-Rule is not understood, it should be ignored.
+    
+    // FIXME: Not Implemented
+    // call handleimport 
+  }
+
+  /**
+   * Parses the next rule set, which is a selector followed by a declaration 
+   * block.
+   * 
+   * @throws IOException - any i/o error from the reader
+   */
+  private void parseRuleSet() throws IOException
+  {
+    // call parseDeclarationBlock
+    // call parse selectors
+    // call parse identifiers
+    // call startrule/endrule
+    // FIXME: Not Implemented
+  }
+
+  /**
+   * Parses a set of selectors, returning false if the end of the stream is 
+   * reached.
+   * 
+   * @return false if the end of stream is reached
+   * @throws IOException - any i/o error from the reader
+   */
+  private boolean parseSelectors() throws IOException
+  {
+    // FIXME: Not Implemented
+    // call handleselector
+    return false; 
+  }
+
+  /**
+   * Parses a declaration block. Which a number of declarations followed by a
+   * })].
+   * 
+   * @throws IOException - any i/o error from the reader
+   */
+  private void parseDeclarationBlock() throws IOException
+  {
+    // call parseDeclaration
+    // FIXME: Not Implemented
+  }
+
+  /**
+   * Parses a single declaration, which is an identifier a : and another identifier.
+   * This returns the last token seen.
+   * 
+   * @returns the last token
+   * @throws IOException - any i/o error from the reader
+   */
+  private int parseDeclaration() throws IOException
+  {
+    // call handleValue
+    // FIXME: Not Implemented
+    return 0; 
+  }
+
+  /**
+   * Parses identifiers until c is encountered, returning the ending token,
+   * which will be IDENTIFIER if c is found.
+   * 
+   * @param c - the stop character
+   * @param wantsBlocks - true if blocks are wanted
+   * @return the ending token
+   * @throws IOException - any i/o error from the reader
+   */
+  private int parseIdentifiers(char c, boolean wantsBlocks) throws IOException
+  {
+    // FIXME: Not implemented
+    // call handleproperty?
+    return 0;
+  }
+
+  /**
+   * Parses till a matching block close is encountered. This is only appropriate
+   * to be called at the top level (no nesting).
+   * 
+   * @param i - FIXME
+   * @throws IOException - any i/o error from the reader
+   */
+  private void parseTillClosed(int i) throws IOException
+  {
+    // FIXME: Not Implemented
+  }
+
+  /**
+   * Gets an identifier, returning true if the length of the string is greater
+   * than 0, stopping when c, whitespace, or one of {}()[] is hit.
+   * 
+   * @param c - the stop character
+   * @return returns true if the length of the string > 0
+   * @throws IOException - any i/o error from the reader
+   */
+  private boolean getIdentifier(char c) throws IOException
+  {
+    // FIXME: Not Implemented
+    return false;
+  }
+
+  /**
+   * Reads till c is encountered, escaping characters as necessary.
+   * 
+   * @param c - the stop character
+   * @throws IOException - any i/o error from the reader
+   */
+  private void readTill(char c) throws IOException
+  {
+    // FIXME: Not Implemented
+  }
+
+  /**
+   * Parses a comment block.
+   * 
+   * @throws IOException - any i/o error from the reader
+   */
+  private void readComment() throws IOException
+  {
+    // Should ignore comments. Read until end of comment.
+    // FIXME: Not implemented
+  }
+
+  /**
+   * Called when a block start is encountered ({[.
+   * 
+   * @param start of block
+   */
+  private void startBlock(int start)
+  {
+    // FIXME: Not Implemented
+  }
+
+  /**
+   * Called when an end block is encountered )]}
+   * 
+   * @param end of block
+   */
+  private void endBlock(int end)
+  {
+    // FIXME: Not Implemented
+  }
+
+  /**
+   * Checks if currently in a block.
+   * 
+   * @return true if currently in a block.
+   */
+  private boolean inBlock()
+  {
+    // FIXME: Not Implemented
+    return false; 
+  }
+
+  /**
+   * Supports one character look ahead, this will throw if called twice in a row.
+   * 
+   * @param c - the character to push.
+   * @throws IOException - if called twice in a row
+   */
+  private void pushChar(int c) throws IOException
+  {
+    if (didPushChar)
+      throw new IOException("pushChar called twice.");
+    didPushChar = true;
+    pushedChar = c;
+  }
+}
+
\ No newline at end of file
index d048a04e614ba15182ad08d83293d9836c9b25dc..5b2452b32f65deed97539a317c24313d18c4447f 100644 (file)
@@ -40,17 +40,32 @@ package javax.swing.text.html;
 
 import java.net.URL;
 
+import java.io.IOException;
+
+import java.util.HashMap;
+import java.util.Stack;
+import java.util.Vector;
+
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.UndoableEditEvent;
 import javax.swing.text.AbstractDocument;
 import javax.swing.text.AttributeSet;
+import javax.swing.text.BadLocationException;
 import javax.swing.text.DefaultStyledDocument;
 import javax.swing.text.Element;
 import javax.swing.text.ElementIterator;
+import javax.swing.text.GapContent;
+import javax.swing.text.MutableAttributeSet;
+import javax.swing.text.SimpleAttributeSet;
+import javax.swing.text.StyleConstants;
 import javax.swing.text.html.HTML.Tag;
 
 /**
- * TODO: This class is not yet completetely implemented.
- *
+ * TODO: Add more comments here 
+ * 
  * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
+ * @author Anthony Balkissoon (abalkiss@redhat.com)
+ * @author Lillian Angel (langel@redhat.com)
  */
 public class HTMLDocument extends DefaultStyledDocument
 {
@@ -60,6 +75,195 @@ public class HTMLDocument extends DefaultStyledDocument
   public static final String AdditionalComments = "AdditionalComments";
   URL baseURL = null;
   boolean preservesUnknownTags = true;
+  int tokenThreshold = Integer.MAX_VALUE;
+  HTMLEditorKit.Parser parser;
+  StyleSheet styleSheet;
+  AbstractDocument.Content content;
+  
+  /**
+   * Constructs an HTML document using the default buffer size and a default
+   * StyleSheet.
+   */
+  public HTMLDocument()
+  {
+    this(null);
+  }
+  
+  /**
+   * Constructs an HTML document with the default content storage 
+   * implementation and the specified style/attribute storage mechanism.
+   * 
+   * @param styles - the style sheet
+   */
+  public HTMLDocument(StyleSheet styles)
+  {
+   this(new GapContent(BUFFER_SIZE_DEFAULT), styles);
+  }
+  
+  /**
+   * Constructs an HTML document with the given content storage implementation 
+   * and the given style/attribute storage mechanism.
+   * 
+   * @param c - the document's content
+   * @param styles - the style sheet
+   */
+  public HTMLDocument(AbstractDocument.Content c, StyleSheet styles)
+  {
+    this.content = c;
+    if (styles == null)
+      {
+        styles = new StyleSheet();
+        styles.importStyleSheet(getClass().getResource(HTMLEditorKit.
+                                                       DEFAULT_CSS));
+      }
+    this.styleSheet = styles;
+  }
+  
+  /**
+   * Gets the style sheet with the document display rules (CSS) that were specified 
+   * in the HTML document.
+   * 
+   * @return - the style sheet
+   */
+  public StyleSheet getStyleSheet()
+  {
+    return styleSheet;
+  }
+  
+  /**
+   * Replaces the contents of the document with the given element specifications.
+   * This is called before insert if the loading is done in bursts. This is the
+   * only method called if loading the document entirely in one burst.
+   * 
+   * @param data - the date that replaces the content of the document
+   */
+  protected void create(DefaultStyledDocument.ElementSpec[] data)
+  {
+    // FIXME: Not implemented
+    System.out.println("create not implemented");
+    super.create(data);
+  }
+  
+  /**
+   * This method creates a root element for the new document.
+   * 
+   * @return the new default root
+   */
+  protected AbstractDocument.AbstractElement createDefaultRoot()
+  {
+    // FIXME: Not implemented
+    System.out.println("createDefaultRoot not implemented");
+    return super.createDefaultRoot();
+  }
+  
+  /**
+   * This method returns an HTMLDocument.RunElement object attached to
+   * parent representing a run of text from p0 to p1. The run has 
+   * attributes described by a.
+   * 
+   * @param parent - the parent element
+   * @param a - the attributes for the element
+   * @param p0 - the beginning of the range >= 0
+   * @param p1 - the end of the range >= p0
+   * @return the new element
+   */
+  protected Element createLeafElement(Element parent, AttributeSet a, int p0,
+                                      int p1)
+  {
+    // FIXME: Not implemented
+    System.out.println("createLeafElement not implemented");
+    return super.createLeafElement(parent, a, p0, p1);
+  }
+
+  /** This method returns an HTMLDocument.BlockElement object representing the
+   * attribute set a and attached to parent.
+   * 
+   * @param parent - the parent element
+   * @param a - the attributes for the element
+   * @return the new element
+   */
+  protected Element createBranchElement(Element parent, AttributeSet a)
+  {
+    // FIXME: Not implemented
+    System.out.println("createBranchElement not implemented");
+    return super.createBranchElement(parent, a);
+  }
+  
+  /**
+   * Inserts new elements in bulk. This is how elements get created in the
+   * document. The parsing determines what structure is needed and creates the
+   * specification as a set of tokens that describe the edit while leaving the
+   * document free of a write-lock. This method can then be called in bursts by
+   * the reader to acquire a write-lock for a shorter duration (i.e. while the
+   * document is actually being altered). 
+   * 
+   * @param offset - the starting offset 
+   * @param data - the element data
+   * @throws BadLocationException - if the given position does not
+   * represent a valid location in the associated document.
+   */
+  protected void insert(int offset, DefaultStyledDocument.ElementSpec[] data)
+    throws BadLocationException
+    {
+      super.insert(offset, data);
+    }
+  
+  /**
+   * Updates document structure as a result of text insertion. This will happen
+   * within a write lock. This implementation simply parses the inserted content
+   * for line breaks and builds up a set of instructions for the element buffer.
+   * 
+   * @param chng - a description of the document change
+   * @param attr - the attributes
+   */
+  protected void insertUpdate(AbstractDocument.DefaultDocumentEvent chng, 
+                              AttributeSet attr)
+  {
+    // FIXME: Not implemented
+    System.out.println("insertUpdate not implemented");
+    super.insertUpdate(chng, attr);    
+  }
+  
+  /**
+   * Returns the parser used by this HTMLDocument to insert HTML.
+   * 
+   * @return the parser used by this HTMLDocument to insert HTML.
+   */
+  public HTMLEditorKit.Parser getParser()
+  {
+    return parser; 
+  }
+  
+  /**
+   * Sets the parser used by this HTMLDocument to insert HTML.
+   * 
+   * @param p the parser to use
+   */
+  public void setParser (HTMLEditorKit.Parser p)
+  {
+    parser = p;
+  }
+  /**
+   * Sets the number of tokens to buffer before trying to display the
+   * Document.
+   * 
+   * @param n the number of tokens to buffer
+   */
+  public void setTokenThreshold (int n)
+  {
+    tokenThreshold = n;
+  }
+  
+  /**
+   * Returns the number of tokens that are buffered before the document
+   * is rendered.
+   * 
+   * @return the number of tokens buffered
+   */
+  public int getTokenThreshold ()
+  {
+    return tokenThreshold;
+  }
   
   /**
    * Returns the location against which to resolve relative URLs.
@@ -79,7 +283,7 @@ public class HTMLDocument extends DefaultStyledDocument
   public void setBase(URL u)
   {
     baseURL = u;
-    //TODO: also set the base of the StyleSheet
+    styleSheet.setBase(u);
   }
   
   /**
@@ -259,10 +463,1133 @@ public class HTMLDocument extends DefaultStyledDocument
       return null;
     }
     
+    /**
+     * Gets the name of the element.
+     * 
+     * @return the name of the element if it exists, null otherwise.
+     */
     public String getName()
     {
-      //FIXME: this is supposed to do something different from the super class
-      return super.getName();
+      return (String) getAttribute(StyleConstants.NameAttribute); 
+    }
+  }
+  
+  /**
+   * RunElement represents a section of text that has a set of 
+   * HTML character level attributes assigned to it.
+   */
+  public class RunElement extends AbstractDocument.LeafElement
+  {
+    
+    /**
+     * Constructs an element that has no children. It represents content
+     * within the document.
+     * 
+     * @param parent - parent of this
+     * @param a - elements attributes
+     * @param start - the start offset >= 0
+     * @param end - the end offset 
+     */
+    public RunElement(Element parent, AttributeSet a, int start, int end)
+    {
+      super(parent, a, start, end);
+    }
+    
+    /**
+     * Gets the name of the element.
+     * 
+     * @return the name of the element if it exists, null otherwise.
+     */
+    public String getName()
+    {
+      return (String) getAttribute(StyleConstants.NameAttribute);      
+    }
+    
+    /**
+     * Gets the resolving parent. HTML attributes do not inherit at the
+     * model level, so this method returns null.
+     * 
+     * @return null
+     */
+    public AttributeSet getResolveParent()
+    {
+      return null;
+    }
+  }
+  
+  /**
+   * A reader to load an HTMLDocument with HTML structure.
+   * 
+   * @author Anthony Balkissoon abalkiss at redhat dot com
+   */
+  public class HTMLReader extends HTMLEditorKit.ParserCallback
+  {    
+    /** Holds the current character attribute set **/
+    protected MutableAttributeSet charAttr = new SimpleAttributeSet();
+    
+    protected Vector parseBuffer = new Vector();
+    
+    /** A stack for character attribute sets **/
+    Stack charAttrStack = new Stack();
+    
+    /** A mapping between HTML.Tag objects and the actions that handle them **/
+    HashMap tagToAction;
+    
+    /** Tells us whether we've received the '</html>' tag yet **/
+    boolean endHTMLEncountered = false;
+    
+    /** Variables related to the constructor with explicit insertTag **/
+    int popDepth, pushDepth, offset;
+    HTML.Tag insertTag;
+    boolean insertTagEncountered = false;
+    
+    /** A temporary variable that helps with the printing out of debug information **/
+    boolean debug = false;
+    
+    void print (String line)
+    {
+      if (debug)
+        System.out.println (line);
+    }
+    
+    public class TagAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.  By default this does nothing.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // Nothing to do here.
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.  By default does nothing.
+       */
+      public void end(HTML.Tag t)
+      {
+        // Nothing to do here.
+      }
+    }
+
+    public class BlockAction extends TagAction
+    {      
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // Tell the parse buffer to open a new block for this tag.
+        blockOpen(t, a);
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // Tell the parse buffer to close this block.
+        blockClose(t);
+      }
+    }
+    
+    public class CharacterAction extends TagAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // Put the old attribute set on the stack.
+        pushCharacterStyle();
+        
+        // And create the new one by adding the attributes in <code>a</code>.
+        if (a != null)
+          charAttr.addAttribute(t, a.copyAttributes());          
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        popCharacterStyle();
+      } 
+    }
+    
+    public class FormAction extends SpecialAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // FIXME: Implement.
+        print ("FormAction.start not implemented");
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // FIXME: Implement.
+        print ("FormAction.end not implemented");
+      } 
+    }
+    
+    public class HiddenAction extends TagAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // FIXME: Implement.
+        print ("HiddenAction.start not implemented");
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // FIXME: Implement.
+        print ("HiddenAction.end not implemented");
+      } 
+    }
+    
+    public class IsindexAction extends TagAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // FIXME: Implement.
+        print ("IsindexAction.start not implemented");
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // FIXME: Implement.
+        print ("IsindexAction.end not implemented");
+      } 
+    }
+    
+    public class ParagraphAction extends BlockAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // FIXME: Implement.
+        print ("ParagraphAction.start not implemented");
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // FIXME: Implement.
+        print ("ParagraphAction.end not implemented");
+      } 
+    }
+    
+    public class PreAction extends BlockAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // FIXME: Implement.
+        print ("PreAction.start not implemented");
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // FIXME: Implement.
+        print ("PreAction.end not implemented");
+      } 
+    }
+    
+    public class SpecialAction extends TagAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // FIXME: Implement.
+        print ("SpecialAction.start not implemented");
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // FIXME: Implement.
+        print ("SpecialAction.end not implemented");
+      }                
+    }
+    
+    class AreaAction extends TagAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // FIXME: Implement.
+        print ("AreaAction.start not implemented");
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // FIXME: Implement.
+        print ("AreaAction.end not implemented");
+      } 
+    }
+    
+    class BaseAction extends TagAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // FIXME: Implement.
+        print ("BaseAction.start not implemented");
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // FIXME: Implement.
+        print ("BaseAction.end not implemented");
+      } 
+    }
+    
+    class HeadAction extends BlockAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // FIXME: Implement.
+        print ("HeadAction.start not implemented: "+t);
+        super.start(t, a);
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // FIXME: Implement.
+        print ("HeadAction.end not implemented: "+t);
+        super.end(t);
+      } 
+    }
+    
+    class LinkAction extends TagAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // FIXME: Implement.
+        print ("LinkAction.start not implemented");
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // FIXME: Implement.
+        print ("LinkAction.end not implemented");
+      } 
+    }
+    
+    class MapAction extends TagAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // FIXME: Implement.
+        print ("MapAction.start not implemented");
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // FIXME: Implement.
+        print ("MapAction.end not implemented");
+      } 
+    }
+    
+    class MetaAction extends TagAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // FIXME: Implement.
+        print ("MetaAction.start not implemented");
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // FIXME: Implement.
+        print ("MetaAction.end not implemented");
+      } 
+    }
+    
+    class StyleAction extends TagAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // FIXME: Implement.
+        print ("StyleAction.start not implemented");
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // FIXME: Implement.
+        print ("StyleAction.end not implemented");
+      } 
+    }
+    
+    class TitleAction extends TagAction
+    {
+      /**
+       * This method is called when a start tag is seen for one of the types
+       * of tags associated with this Action.
+       */
+      public void start(HTML.Tag t, MutableAttributeSet a)
+      {
+        // FIXME: Implement.
+        print ("TitleAction.start not implemented");
+      }
+      
+      /**
+       * Called when an end tag is seen for one of the types of tags associated
+       * with this Action.
+       */
+      public void end(HTML.Tag t)
+      {
+        // FIXME: Implement.
+        print ("TitleAction.end not implemented");
+      } 
+    }    
+    
+    public HTMLReader(int offset)
+    {
+      this (offset, 0, 0, null);
+    }
+    
+    public HTMLReader(int offset, int popDepth, int pushDepth,
+                      HTML.Tag insertTag)
+    {
+      print ("HTMLReader created with pop: "+popDepth
+                          + " push: "+pushDepth + " offset: "+offset
+                          + " tag: "+insertTag);
+      this.insertTag = insertTag;
+      this.offset = offset;
+      this.popDepth = popDepth;
+      this.pushDepth = pushDepth;
+      initTags();
+    }
+    
+    void initTags()
+    {
+      tagToAction = new HashMap(72);
+      CharacterAction characterAction = new CharacterAction();
+      HiddenAction hiddenAction = new HiddenAction();
+      AreaAction areaAction = new AreaAction();
+      BaseAction baseAction = new BaseAction();
+      BlockAction blockAction = new BlockAction();
+      SpecialAction specialAction = new SpecialAction();
+      ParagraphAction paragraphAction = new ParagraphAction();
+      HeadAction headAction = new HeadAction();
+      FormAction formAction = new FormAction();
+      IsindexAction isindexAction = new IsindexAction();
+      LinkAction linkAction = new LinkAction();
+      MapAction mapAction = new MapAction();
+      PreAction preAction = new PreAction();
+      MetaAction metaAction = new MetaAction();
+      StyleAction styleAction = new StyleAction();
+      TitleAction titleAction = new TitleAction();
+      
+      
+      tagToAction.put(HTML.Tag.A, characterAction);
+      tagToAction.put(HTML.Tag.ADDRESS, characterAction);
+      tagToAction.put(HTML.Tag.APPLET, hiddenAction);
+      tagToAction.put(HTML.Tag.AREA, areaAction);
+      tagToAction.put(HTML.Tag.B, characterAction);
+      tagToAction.put(HTML.Tag.BASE, baseAction);
+      tagToAction.put(HTML.Tag.BASEFONT, characterAction);
+      tagToAction.put(HTML.Tag.BIG, characterAction);
+      tagToAction.put(HTML.Tag.BLOCKQUOTE, blockAction);
+      tagToAction.put(HTML.Tag.BODY, blockAction);
+      tagToAction.put(HTML.Tag.BR, specialAction);
+      tagToAction.put(HTML.Tag.CAPTION, blockAction);
+      tagToAction.put(HTML.Tag.CENTER, blockAction);
+      tagToAction.put(HTML.Tag.CITE, characterAction);
+      tagToAction.put(HTML.Tag.CODE, characterAction);
+      tagToAction.put(HTML.Tag.DD, blockAction);
+      tagToAction.put(HTML.Tag.DFN, characterAction);
+      tagToAction.put(HTML.Tag.DIR, blockAction);
+      tagToAction.put(HTML.Tag.DIV, blockAction);
+      tagToAction.put(HTML.Tag.DL, blockAction);
+      tagToAction.put(HTML.Tag.DT, paragraphAction);
+      tagToAction.put(HTML.Tag.EM, characterAction);
+      tagToAction.put(HTML.Tag.FONT, characterAction);
+      tagToAction.put(HTML.Tag.FORM, blockAction);
+      tagToAction.put(HTML.Tag.FRAME, specialAction);
+      tagToAction.put(HTML.Tag.FRAMESET, blockAction);
+      tagToAction.put(HTML.Tag.H1, paragraphAction);
+      tagToAction.put(HTML.Tag.H2, paragraphAction);
+      tagToAction.put(HTML.Tag.H3, paragraphAction);
+      tagToAction.put(HTML.Tag.H4, paragraphAction);
+      tagToAction.put(HTML.Tag.H5, paragraphAction);
+      tagToAction.put(HTML.Tag.H6, paragraphAction);
+      tagToAction.put(HTML.Tag.HEAD, headAction);
+      tagToAction.put(HTML.Tag.HR, specialAction);
+      tagToAction.put(HTML.Tag.HTML, blockAction);
+      tagToAction.put(HTML.Tag.I, characterAction);
+      tagToAction.put(HTML.Tag.IMG, specialAction);
+      tagToAction.put(HTML.Tag.INPUT, formAction);
+      tagToAction.put(HTML.Tag.ISINDEX, isindexAction);
+      tagToAction.put(HTML.Tag.KBD, characterAction);
+      tagToAction.put(HTML.Tag.LI, blockAction);
+      tagToAction.put(HTML.Tag.LINK, linkAction);
+      tagToAction.put(HTML.Tag.MAP, mapAction);
+      tagToAction.put(HTML.Tag.MENU, blockAction);
+      tagToAction.put(HTML.Tag.META, metaAction);
+      tagToAction.put(HTML.Tag.NOFRAMES, blockAction);
+      tagToAction.put(HTML.Tag.OBJECT, specialAction);
+      tagToAction.put(HTML.Tag.OL, blockAction);
+      tagToAction.put(HTML.Tag.OPTION, formAction);
+      tagToAction.put(HTML.Tag.P, paragraphAction);
+      tagToAction.put(HTML.Tag.PARAM, hiddenAction);
+      tagToAction.put(HTML.Tag.PRE, preAction);
+      tagToAction.put(HTML.Tag.SAMP, characterAction);
+      tagToAction.put(HTML.Tag.SCRIPT, hiddenAction);
+      tagToAction.put(HTML.Tag.SELECT, formAction);
+      tagToAction.put(HTML.Tag.SMALL, characterAction);
+      tagToAction.put(HTML.Tag.STRIKE, characterAction);
+      tagToAction.put(HTML.Tag.S, characterAction);      
+      tagToAction.put(HTML.Tag.STRONG, characterAction);
+      tagToAction.put(HTML.Tag.STYLE, styleAction);
+      tagToAction.put(HTML.Tag.SUB, characterAction);
+      tagToAction.put(HTML.Tag.SUP, characterAction);
+      tagToAction.put(HTML.Tag.TABLE, blockAction);
+      tagToAction.put(HTML.Tag.TD, blockAction);
+      tagToAction.put(HTML.Tag.TEXTAREA, formAction);
+      tagToAction.put(HTML.Tag.TH, blockAction);
+      tagToAction.put(HTML.Tag.TITLE, titleAction);
+      tagToAction.put(HTML.Tag.TR, blockAction);
+      tagToAction.put(HTML.Tag.TT, characterAction);
+      tagToAction.put(HTML.Tag.U, characterAction);
+      tagToAction.put(HTML.Tag.UL, blockAction);
+      tagToAction.put(HTML.Tag.VAR, characterAction);
+    }
+    
+    /**
+     * Pushes the current character style onto the stack.
+     *
+     */
+    protected void pushCharacterStyle()
+    {
+      charAttrStack.push(charAttr);
+    }
+    
+    /**
+     * Pops a character style off of the stack and uses it as the 
+     * current character style.
+     *
+     */
+    protected void popCharacterStyle()
+    {
+      if (!charAttrStack.isEmpty())
+        charAttr = (MutableAttributeSet) charAttrStack.pop();
+    }
+    
+    /**
+     * Registers a given tag with a given Action.  All of the well-known tags
+     * are registered by default, but this method can change their behaviour
+     * or add support for custom or currently unsupported tags.
+     * 
+     * @param t the Tag to register
+     * @param a the Action for the Tag
+     */
+    protected void registerTag(HTML.Tag t, HTMLDocument.HTMLReader.TagAction a)
+    {
+      tagToAction.put (t, a);
+    }
+    
+    /**
+     * This is the last method called on the HTMLReader, allowing any pending
+     * changes to be flushed to the HTMLDocument.
+     */
+    public void flush() throws BadLocationException
+    {
+      DefaultStyledDocument.ElementSpec[] elements;
+      elements = new DefaultStyledDocument.ElementSpec[parseBuffer.size()];
+      parseBuffer.copyInto(elements);
+      parseBuffer.removeAllElements();
+      insert(offset, elements);
+      offset += HTMLDocument.this.getLength() - offset;
+    }
+    
+    /**
+     * This method is called by the parser to indicate a block of 
+     * text was encountered.  Should insert the text appropriately.
+     * 
+     * @param data the text that was inserted
+     * @param pos the position at which the text was inserted
+     */
+    public void handleText(char[] data, int pos)
+    {
+      if (data != null && data.length > 0)
+        addContent(data, 0, data.length);
+    }
+    
+    /**
+     * This method is called by the parser and should route the call to 
+     * the proper handler for the tag.
+     * 
+     * @param t the HTML.Tag
+     * @param a the attribute set
+     * @param pos the position at which the tag was encountered
+     */
+    public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)
+    {
+      // Don't call the Action if we've already seen </html>.
+      if (endHTMLEncountered)
+        return;
+        
+      TagAction action = (TagAction) tagToAction.get(t);
+      if (action != null)
+        action.start(t, a);      
+    }
+    
+    /**
+     * This method called by parser to handle a comment block.
+     * 
+     * @param data the comment
+     * @param pos the position at which the comment was encountered
+     */
+    public void handleComment(char[] data, int pos)
+    {
+      // Don't call the Action if we've already seen </html>.
+      if (endHTMLEncountered)
+        return;
+      
+      TagAction action = (TagAction) tagToAction.get(HTML.Tag.COMMENT);
+      if (action != null)
+        {
+          action.start(HTML.Tag.COMMENT, new SimpleAttributeSet());
+          action.end (HTML.Tag.COMMENT);
+        }
+    }
+    
+    /**
+     * This method is called by the parser and should route the call to 
+     * the proper handler for the tag.
+     * 
+     * @param t the HTML.Tag
+     * @param pos the position at which the tag was encountered
+     */
+    public void handleEndTag(HTML.Tag t, int pos)
+    {
+      // Don't call the Action if we've already seen </html>.
+      if (endHTMLEncountered)
+        return;
+      
+      // If this is the </html> tag we need to stop calling the Actions
+      if (t == HTML.Tag.HTML)
+        endHTMLEncountered = true;
+      
+      TagAction action = (TagAction) tagToAction.get(t);
+      if (action != null)
+        action.end(t);
+    }
+    
+    /**
+     * This is a callback from the parser that should be routed to the 
+     * appropriate handler for the tag.
+     * 
+     * @param t the HTML.Tag that was encountered
+     * @param a the attribute set
+     * @param pos the position at which the tag was encountered
+     */
+    public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos)
+    {
+      // Don't call the Action if we've already seen </html>.
+      if (endHTMLEncountered)
+        return;
+      
+      TagAction action = (TagAction) tagToAction.get (t);
+      if (action != null)
+        {
+          action.start(t, a);
+          action.end(t);
+        }
+    }
+    
+    /**
+     * This is invoked after the stream has been parsed but before it has been
+     * flushed.
+     * 
+     * @param eol one of \n, \r, or \r\n, whichever was encountered the most in 
+     * parsing the stream
+     * @since 1.3
+     */
+    public void handleEndOfLineString(String eol)
+    {
+      // FIXME: Implement.
+      print ("HTMLReader.handleEndOfLineString not implemented yet");
+    }
+    
+    /**
+     * Adds the given text to the textarea document.  Called only when we are
+     * within a textarea.  
+     * 
+     * @param data the text to add to the textarea
+     */
+    protected void textAreaContent(char[] data)
+    {
+      // FIXME: Implement.
+      print ("HTMLReader.textAreaContent not implemented yet");
+    }
+    
+    /**
+     * Adds the given text that was encountered in a <PRE> element.
+     * 
+     * @param data the text
+     */
+    protected void preContent(char[] data)
+    {
+      // FIXME: Implement
+      print ("HTMLReader.preContent not implemented yet");
+    }
+    
+    /**
+     * Instructs the parse buffer to create a block element with the given 
+     * attributes.
+     * 
+     * @param t the tag that requires opening a new block
+     * @param attr the attribute set for the new block
+     */
+    protected void blockOpen(HTML.Tag t, MutableAttributeSet attr)
+    {
+      printBuffer();
+      DefaultStyledDocument.ElementSpec element;
+      element = new DefaultStyledDocument.ElementSpec(attr.copyAttributes(),
+                       DefaultStyledDocument.ElementSpec.StartTagType);
+      parseBuffer.addElement(element);
+      printBuffer();
+    }
+    
+    /**
+     * Instructs the parse buffer to close the block element associated with 
+     * the given HTML.Tag
+     * 
+     * @param t the HTML.Tag that is closing its block
+     */
+    protected void blockClose(HTML.Tag t)
+    {
+      printBuffer();
+      DefaultStyledDocument.ElementSpec element;
+      element = new DefaultStyledDocument.ElementSpec(null,
+                               DefaultStyledDocument.ElementSpec.EndTagType);
+      parseBuffer.addElement(element);
+      printBuffer();
     }
+    
+    /**
+     * Adds text to the appropriate context using the current character
+     * attribute set.
+     * 
+     * @param data the text to add
+     * @param offs the offset at which to add it
+     * @param length the length of the text to add
+     */
+    protected void addContent(char[] data, int offs, int length)
+    {
+      addContent(data, offs, length, true);
+    }
+    
+    /**
+     * Adds text to the appropriate context using the current character
+     * attribute set, and possibly generating an IMPLIED Tag if necessary.
+     * 
+     * @param data the text to add
+     * @param offs the offset at which to add it
+     * @param length the length of the text to add
+     * @param generateImpliedPIfNecessary whether or not we should generate
+     * an HTML.Tag.IMPLIED tag if necessary
+     */
+    protected void addContent(char[] data, int offs, int length,
+                              boolean generateImpliedPIfNecessary)
+    {
+      // Copy the attribute set, don't use the same object because 
+      // it may change
+      AttributeSet attributes = null;
+      if (charAttr != null)
+        attributes = charAttr.copyAttributes();
+
+      DefaultStyledDocument.ElementSpec element;
+      element = new DefaultStyledDocument.ElementSpec(attributes,
+                             DefaultStyledDocument.ElementSpec.ContentType,
+                              data, offs, length);
+      
+      printBuffer();
+      // Add the element to the buffer
+      parseBuffer.addElement(element);
+      printBuffer();
+
+      if (parseBuffer.size() > HTMLDocument.this.getTokenThreshold())
+        {
+          try
+            {
+              flush();
+            }
+          catch (BadLocationException ble)
+            {
+              // TODO: what to do here?
+            }
+        }
+    }
+    
+    /**
+     * Adds content that is specified in the attribute set.
+     * 
+     * @param t the HTML.Tag
+     * @param a the attribute set specifying the special content
+     */
+    protected void addSpecialElement(HTML.Tag t, MutableAttributeSet a)
+    {
+      // FIXME: Implement
+      print ("HTMLReader.addSpecialElement not implemented yet");
+    }
+    
+    void printBuffer()
+    {      
+      print ("\n*********BUFFER**********");
+      for (int i = 0; i < parseBuffer.size(); i ++)
+        print ("  "+parseBuffer.get(i));
+      print ("***************************");
+    }
+  }
+  
+  /**
+   * Gets the reader for the parser to use when loading the document with HTML. 
+   * 
+   * @param pos - the starting position
+   * @return - the reader
+   */
+  public HTMLEditorKit.ParserCallback getReader(int pos)
+  {
+    return new HTMLReader(pos);
+  }  
+  
+  /**
+   * Gets the reader for the parser to use when loading the document with HTML. 
+   * 
+   * @param pos - the starting position
+   * @param popDepth - the number of EndTagTypes to generate before inserting
+   * @param pushDepth - the number of StartTagTypes with a direction 
+   * of JoinNextDirection that should be generated before inserting, 
+   * but after the end tags have been generated.
+   * @param insertTag - the first tag to start inserting into document
+   * @return - the reader
+   */
+  public HTMLEditorKit.ParserCallback getReader(int pos,
+                                                int popDepth,
+                                                int pushDepth,
+                                                HTML.Tag insertTag)
+  {
+    return new HTMLReader(pos, popDepth, pushDepth, insertTag);
+  }  
+  
+  /**
+   * Gets the child element that contains the attribute with the value or null.
+   * Not thread-safe.
+   * 
+   * @param e - the element to begin search at
+   * @param attribute - the desired attribute
+   * @param value - the desired value
+   * @return the element found with the attribute and value specified or null
+   * if it is not found.
+   */
+  public Element getElement(Element e, Object attribute, Object value)
+  {
+    if (e != null)
+      {
+        if (e.getAttributes().containsAttribute(attribute, value))
+          return e;
+        
+        int count = e.getElementCount();
+        for (int j = 0; j < count; j++)
+          {
+            Element child = e.getElement(j);
+            if (child.getAttributes().containsAttribute(attribute, value))
+              return child;
+            
+            Element grandChild = getElement(child, attribute, value);
+            if (grandChild != null)
+              return grandChild;
+          }
+      }
+    return null;
+  }
+  
+  /**
+   * Returns the element that has the given id Attribute. If it is not found, 
+   * null is returned. This method works on an Attribute, not a character tag.
+   * This is not thread-safe.
+   * 
+   * @param attrId - the Attribute id to look for
+   * @return the element that has the given id.
+   */
+  public Element getElement(String attrId)
+  {
+    Element root = getDefaultRootElement();
+    return getElement(root, HTML.getAttributeKey(attrId) , attrId);
+  }
+  
+  /**
+   * Replaces the children of the given element with the contents of
+   * the string. The document must have an HTMLEditorKit.Parser set.
+   * This will be seen as at least two events, n inserts followed by a remove.
+   * 
+   * @param elem - the brance element whose children will be replaced
+   * @param htmlText - the string to be parsed and assigned to element.
+   * @throws BadLocationException
+   * @throws IOException
+   * @throws IllegalArgumentException - if elem is a leaf 
+   * @throws IllegalStateException - if an HTMLEditorKit.Parser has not been set
+   */
+  public void setInnerHTML(Element elem, String htmlText) 
+    throws BadLocationException, IOException
+  {
+    if (elem.isLeaf())
+      throw new IllegalArgumentException("Element is a leaf");
+    if (parser == null)
+      throw new IllegalStateException("Parser has not been set");
+    // FIXME: Not implemented fully, use InsertHTML* in HTMLEditorKit?
+    System.out.println("setInnerHTML not implemented");
+  }
+  
+  /**
+   * Replaces the given element in the parent with the string. When replacing
+   * a leaf, this will attempt to make sure there is a newline present if one is
+   * needed. This may result in an additional element being inserted.
+   * This will be seen as at least two events, n inserts followed by a remove.
+   * The HTMLEditorKit.Parser must be set.
+   * 
+   * @param elem - the branch element whose parent will be replaced
+   * @param htmlText - the string to be parsed and assigned to elem
+   * @throws BadLocationException
+   * @throws IOException
+   * @throws IllegalStateException - if parser is not set
+   */
+  public void setOuterHTML(Element elem, String htmlText) 
+    throws BadLocationException, IOException
+    {
+      if (parser == null)
+        throw new IllegalStateException("Parser has not been set");
+      // FIXME: Not implemented fully, use InsertHTML* in HTMLEditorKit?
+      System.out.println("setOuterHTML not implemented");
+    }
+  
+  /**
+   * Inserts the string before the start of the given element.
+   * The parser must be set.
+   * 
+   * @param elem - the element to be the root for the new text.
+   * @param htmlText - the string to be parsed and assigned to elem
+   * @throws BadLocationException
+   * @throws IOException
+   * @throws IllegalStateException - if parser has not been set
+   */
+  public void insertBeforeStart(Element elem, String htmlText)
+      throws BadLocationException, IOException
+  {
+    if (parser == null)
+      throw new IllegalStateException("Parser has not been set");
+    //  FIXME: Not implemented fully, use InsertHTML* in HTMLEditorKit?
+    System.out.println("insertBeforeStart not implemented");
+  }
+  
+  /**
+   * Inserts the string at the end of the element. If elem's children
+   * are leaves, and the character at elem.getEndOffset() - 1 is a newline, 
+   * then it will be inserted before the newline. The parser must be set.
+   * 
+   * @param elem - the element to be the root for the new text
+   * @param htmlText - the text to insert
+   * @throws BadLocationException
+   * @throws IOException
+   * @throws IllegalStateException - if parser is not set
+   */
+  public void insertBeforeEnd(Element elem, String htmlText)
+      throws BadLocationException, IOException
+  {
+    if (parser == null)
+      throw new IllegalStateException("Parser has not been set");
+    //  FIXME: Not implemented fully, use InsertHTML* in HTMLEditorKit?
+    System.out.println("insertBeforeEnd not implemented");
+  }
+  
+  /**
+   * Inserts the string after the end of the given element.
+   * The parser must be set.
+   * 
+   * @param elem - the element to be the root for the new text
+   * @param htmlText - the text to insert
+   * @throws BadLocationException
+   * @throws IOException
+   * @throws IllegalStateException - if parser is not set
+   */
+  public void insertAfterEnd(Element elem, String htmlText)
+      throws BadLocationException, IOException
+  {
+    if (parser == null)
+      throw new IllegalStateException("Parser has not been set");
+    //  FIXME: Not implemented fully, use InsertHTML* in HTMLEditorKit?
+    System.out.println("insertAfterEnd not implemented");
+  }
+  
+  /**
+   * Inserts the string at the start of the element.
+   * The parser must be set.
+   * 
+   * @param elem - the element to be the root for the new text
+   * @param htmlText - the text to insert
+   * @throws BadLocationException
+   * @throws IOException
+   * @throws IllegalStateException - if parser is not set
+   */
+  public void insertAfterStart(Element elem, String htmlText)
+      throws BadLocationException, IOException
+  {
+    if (parser == null)
+      throw new IllegalStateException("Parser has not been set");
+    //  FIXME: Not implemented fully, use InsertHTML* in HTMLEditorKit?
+    System.out.println("insertAfterStart not implemented");
+  }
+  
+  /**
+   * This method sets the attributes associated with the paragraph containing
+   * offset. If replace is false, s is merged with existing attributes. The
+   * length argument determines how many characters are affected by the new
+   * attributes. This is often the entire paragraph.
+   * 
+   * @param offset -
+   *          the offset into the paragraph (must be at least 0)
+   * @param length -
+   *          the number of characters affected (must be at least 0)
+   * @param s -
+   *          the attributes
+   * @param replace -
+   *          whether to replace existing attributes, or merge them
+   */
+  public void setParagraphAttributes(int offset, int length, AttributeSet s,
+                                     boolean replace)
+  {
+    //  FIXME: Not implemented.
+    System.out.println("setParagraphAttributes not implemented");
+    super.setParagraphAttributes(offset, length, s, replace);
+  }
+  
+  /**
+   * This method flags a change in the document.
+   * 
+   *  @param e - the Document event
+   */
+  protected void fireChangedUpdate(DocumentEvent e)
+  {
+    //  FIXME: Not implemented.
+    System.out.println("fireChangedUpdate not implemented");
+    super.fireChangedUpdate(e);    
+  }
+
+  /**
+   * This method fires an event intended to be caught by Undo listeners. It
+   * simply calls the super version inherited from DefaultStyledDocument. With
+   * this method, an HTML editor could easily provide undo support.
+   * 
+   * @param e - the UndoableEditEvent
+   */
+  protected void fireUndoableEditUpdate(UndoableEditEvent e)
+  {
+    super.fireUndoableEditUpdate(e);
   }
 }
index 5189c777539ffafb47c2a29ff8d00e6d05126e7f..1ef9768c923fee2e0dbabf644f900952927b6b27 100644 (file)
@@ -38,28 +38,563 @@ exception statement from your version. */
 
 package javax.swing.text.html;
 
+
+import java.awt.event.ActionEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseMotionListener;
+import java.awt.Cursor;
+
 import java.io.IOException;
 import java.io.Reader;
 import java.io.Serializable;
+import java.io.StringReader;
+import java.io.Writer;
 
+import javax.accessibility.Accessible;
+import javax.accessibility.AccessibleContext;
+
+import javax.swing.Action;
+import javax.swing.JEditorPane;
+import javax.swing.text.AbstractDocument;
 import javax.swing.text.BadLocationException;
+import javax.swing.text.BoxView;
+import javax.swing.text.ComponentView;
 import javax.swing.text.Document;
+import javax.swing.text.EditorKit;
+import javax.swing.text.Element;
+import javax.swing.text.IconView;
+import javax.swing.text.LabelView;
 import javax.swing.text.MutableAttributeSet;
+import javax.swing.text.ParagraphView;
+import javax.swing.text.StyleConstants;
+import javax.swing.text.StyleContext;
 import javax.swing.text.StyledEditorKit;
+import javax.swing.text.TextAction;
+import javax.swing.text.View;
+import javax.swing.text.ViewFactory;
 import javax.swing.text.html.parser.ParserDelegator;
 
 /**
- * This class is NOT implemented. This file currently holds only
- * declarations of the two enclosing classes, necessary for testing
- * the implemented javax.swing.text.html.parser package.
- *
- * @author No authorship is taken, implement the class and be!
- * TODO: replace this header after implementing the class.
+ * @author Lillian Angel (langel at redhat dot com)
  */
 public class HTMLEditorKit
   extends StyledEditorKit
-  implements Serializable, Cloneable
+  implements Serializable, Cloneable, Accessible
 {
+  
+  /**
+   * Fires the hyperlink events on the associated component
+   * when needed.
+   */
+  public static class LinkController
+    extends MouseAdapter
+    implements MouseMotionListener, Serializable
+    {
+      
+      /**
+       * Constructor
+       */
+      public LinkController() 
+      {
+        super();
+      }
+      
+      /**
+       * Dispatched when the mouse is clicked. If the component
+       * is read-only, then the clicked event is used to drive an
+       * attempt to follow the reference specified by a link
+       * 
+       * @param e - the mouse event
+       */
+      public void mouseClicked(MouseEvent e)
+      {
+        /*
+         These MouseInputAdapter methods generate mouse appropriate events around
+         hyperlinks (entering, exiting, and activating).
+         */
+        // FIXME: Not implemented.
+      }
+      
+      /**
+       * Dispatched when the mouse is dragged on a component.
+       * 
+       * @param e - the mouse event.
+       */
+      public void mouseDragged(MouseEvent e)
+      {
+        /*
+        These MouseInputAdapter methods generate mouse appropriate events around
+        hyperlinks (entering, exiting, and activating).
+        */
+        // FIXME: Not implemented.     
+      }
+      
+      /**
+       * Dispatched when the mouse cursor has moved into the component.
+       * 
+       * @param e - the mouse event.
+       */
+      public void mouseMoved(MouseEvent e)
+      {
+        /*
+        These MouseInputAdapter methods generate mouse appropriate events around
+        hyperlinks (entering, exiting, and activating).
+        */
+        // FIXME: Not implemented.
+      }
+      
+      /**
+       * If the given position represents a link, then linkActivated is called
+       * on the JEditorPane. Implemented to forward to the method with the same
+       * name, but pos == editor == -1.
+       * 
+       * @param pos - the position
+       * @param editor - the editor pane
+       */
+      protected void activateLink(int pos,
+                                  JEditorPane editor)
+      {
+        /*
+          This method creates and fires a HyperlinkEvent if the document is an
+          instance of HTMLDocument and the href tag of the link is not null.
+         */
+        // FIXME: Not implemented.
+      }
+    }
+  
+  /**
+   * This class is used to insert a string of HTML into an existing
+   * document. At least 2 HTML.Tags need to be supplied. The first Tag (parentTag)
+   * identifies the parent in the document to add the elements to. The second, (addTag), 
+   * identifies that the first tag should be added to the document as seen in the string.
+   * The parser will generate all appropriate (opening/closing tags_ even if they are not
+   * in the HTML string passed in.
+   */
+  public static class InsertHTMLTextAction
+    extends HTMLTextAction
+    {
+      
+      /**
+       * Tag in HTML to start adding tags from.
+       */
+      protected HTML.Tag addTag;
+      
+      /**
+       * Alternate tag in HTML to start adding tags from if parentTag is
+       * not found and alternateParentTag is not found.
+       */      
+      protected HTML.Tag alternateAddTag;
+      
+      /**
+       * Alternate tag to check if parentTag is not found.
+       */
+      protected HTML.Tag alternateParentTag;
+      
+      /**
+       * HTML to insert.
+       */
+      protected String html;
+      
+      /**
+       * Tag to check for in the document.
+       */
+      protected HTML.Tag parentTag;
+      
+      /**
+       * Initializes all fields.
+       * 
+       * @param name - the name of the document.
+       * @param html - the html to insert
+       * @param parentTag - the parent tag to check for
+       * @param addTag - the tag to start adding from
+       */
+      public InsertHTMLTextAction(String name, String html, 
+                                  HTML.Tag parentTag, HTML.Tag addTag)
+      {
+        this(name, html, parentTag, addTag, null, null);
+      }
+      
+      /**
+       * Initializes all fields and calls super
+       * 
+       * @param name - the name of the document.
+       * @param html - the html to insert
+       * @param parentTag - the parent tag to check for
+       * @param addTag - the tag to start adding from
+       * @param alternateParentTag - the alternate parent tag
+       * @param alternateAddTag - the alternate add tag
+       */
+      public InsertHTMLTextAction(String name, String html, HTML.Tag parentTag, 
+                                  HTML.Tag addTag, HTML.Tag alternateParentTag, 
+                                  HTML.Tag alternateAddTag) 
+      {
+        super(name);
+        // Fields are for easy access when the action is applied to an actual
+        // document.
+        this.html = html;
+        this.parentTag = parentTag;
+        this.addTag = addTag;
+        this.alternateParentTag = alternateParentTag;
+        this.alternateAddTag = alternateAddTag;
+      }
+      
+      /**
+       * HTMLEditorKit.insertHTML is called. If an exception is
+       * thrown, it is wrapped in a RuntimeException and thrown.
+       * 
+       * @param editor - the editor to use to get the editorkit
+       * @param doc -
+       *          the Document to insert the HTML into.
+       * @param offset -
+       *          where to begin inserting the HTML.
+       * @param html -
+       *          the String to insert
+       * @param popDepth -
+       *          the number of ElementSpec.EndTagTypes to generate before
+       *          inserting
+       * @param pushDepth -
+       *          the number of ElementSpec.StartTagTypes with a direction of
+       *          ElementSpec.JoinNextDirection that should be generated before
+       * @param addTag -
+       *          the first tag to start inserting into document
+       */
+      protected void insertHTML(JEditorPane editor, HTMLDocument doc, int offset,
+                              String html, int popDepth, int pushDepth,
+                              HTML.Tag addTag)
+      {
+        try
+          {
+            super.getHTMLEditorKit(editor).insertHTML(doc, offset, html,
+                                                      popDepth, pushDepth, addTag);
+          }
+        catch (IOException e)
+          {
+            throw (RuntimeException) new RuntimeException("Parser is null.").initCause(e);
+          }
+        catch (BadLocationException ex)
+          {
+            throw (RuntimeException) new RuntimeException("BadLocationException: "
+                                              + offset).initCause(ex);
+          }
+      }
+      
+      /**
+       * Invoked when inserting at a boundary. Determines the number of pops,
+       * and then the number of pushes that need to be performed. The it calls
+       * insertHTML.
+       * 
+       * @param editor -
+       *          the editor to use to get the editorkit
+       * @param doc -
+       *          the Document to insert the HTML into.
+       * @param offset -
+       *          where to begin inserting the HTML.
+       * @param insertElement -
+       *          the element to insert
+       * @param html -
+       *          the html to insert
+       * @param parentTag -
+       *          the parent tag
+       * @param addTag -
+       *          the first tag
+       */
+      protected void insertAtBoundary(JEditorPane editor,
+                                      HTMLDocument doc, int offset,
+                                      Element insertElement,
+                                      String html, HTML.Tag parentTag,
+                                      HTML.Tag addTag)
+      {
+        /*
+        As its name implies, this protected method is used when HTML is inserted at a
+        boundary. (A boundary in this case is an offset in doc that exactly matches the
+        beginning offset of the parentTag.) It performs the extra work required to keep
+        the tag stack in shape and then calls insertHTML(). The editor and doc argu-
+        ments are the editor pane and document where the HTML should go. The offset
+        argument represents the cursor location or selection start in doc. The insert-
+        Element and parentTag arguments are used to calculate the proper number of
+        tag pops and pushes before inserting the HTML (via html and addTag, which are
+        passed directly to insertHTML()).
+        */
+        // FIXME: not implemented
+      }
+      
+      /**
+       * Invoked when inserting at a boundary. Determines the number of pops, 
+       * and then the number of pushes that need to be performed. The it calls
+       * insertHTML.
+       * 
+       * @param editor - the editor to use to get the editorkit
+       * @param doc -
+       *          the Document to insert the HTML into.
+       * @param offset -
+       *          where to begin inserting the HTML.
+       * @param insertElement - the element to insert
+       * @param html - the html to insert
+       * @param parentTag - the parent tag
+       * @param addTag - the first tag
+       * 
+       * @deprecated as of v1.3, use insertAtBoundary
+       */
+      protected void insertAtBoundry(JEditorPane editor,
+                                     HTMLDocument doc,
+                                     int offset, Element insertElement,
+                                     String html, HTML.Tag parentTag,
+                                     HTML.Tag addTag)
+      {
+        insertAtBoundary(editor, doc, offset, insertElement,
+                         html, parentTag, addTag);
+      }
+      
+      /**
+       * Inserts the HTML.
+       * 
+       * @param ae - the action performed
+       */
+      public void actionPerformed(ActionEvent ae)
+      {
+        Object source = ae.getSource();
+        if (source instanceof JEditorPane)
+          {
+            JEditorPane pane = ((JEditorPane) source);
+            Document d = pane.getDocument();
+            if (d instanceof HTMLDocument)
+              insertHTML(pane, (HTMLDocument) d, 0, html, 0, 0, addTag);
+            // FIXME: is this correct parameters?
+          }
+        // FIXME: else not implemented
+      }
+  }
+  
+  /**
+   * Abstract Action class that helps inserting HTML into an existing document.
+   */
+  public abstract static class HTMLTextAction
+    extends StyledEditorKit.StyledTextAction
+    {
+      
+      /**
+       * Constructor
+       */
+      public HTMLTextAction(String name) 
+      {
+        super(name);
+      }
+      
+      /**
+       * Gets the HTMLDocument from the JEditorPane.
+       * 
+       * @param e - the editor pane
+       * @return the html document.
+       */
+      protected HTMLDocument getHTMLDocument(JEditorPane e)
+      {
+        Document d = e.getDocument();
+        if (d instanceof HTMLDocument)
+          return (HTMLDocument) d;
+        throw new IllegalArgumentException("Document is not a HTMLDocument.");
+      }
+      
+      /**
+       * Gets the HTMLEditorKit
+       *  
+       * @param e - the JEditorPane to get the HTMLEditorKit from.
+       * @return the HTMLEditorKit
+       */
+      protected HTMLEditorKit getHTMLEditorKit(JEditorPane e) 
+      {
+        EditorKit d = e.getEditorKit();
+        if (d instanceof HTMLEditorKit)
+          return (HTMLEditorKit) d;
+        throw new IllegalArgumentException("EditorKit is not a HTMLEditorKit.");
+      }
+      
+      /**
+       * Returns an array of Elements that contain the offset.
+       * The first elements corresponds to the roots of the doc.
+       * 
+       * @param doc - the document to get the Elements from.
+       * @param offset - the offset the Elements must contain
+       * @return an array of all the elements containing the offset.
+       */
+      protected Element[] getElementsAt(HTMLDocument doc,
+                                        int offset)
+      {
+        return getElementsAt(doc.getDefaultRootElement(), offset, 0);
+      }
+      
+      /**
+       * Helper function to get all elements using recursion.
+       */
+      private Element[] getElementsAt(Element root, int offset, int depth)
+      {
+        Element[] elements = null;
+        if (root != null)
+          {
+            if (root.isLeaf())
+              {
+                elements = new Element[depth + 1];
+                elements[depth] = root;
+                return elements;
+              }
+            elements = getElementsAt(root.getElement(root.getElementIndex(offset)),
+                                     offset, depth + 1);
+            elements[depth] = root;
+          }
+        return elements;
+      }
+      
+      /**
+       * Returns the number of elements, starting at the deepest point, needed
+       * to get an element representing tag. -1 if no elements are found, 0 if
+       * the parent of the leaf at offset represents the tag.
+       * 
+       * @param doc -
+       *          the document to search
+       * @param offset -
+       *          the offset to check
+       * @param tag -
+       *          the tag to look for
+       * @return - the number of elements needed to get an element representing
+       *         tag.
+       */
+      protected int elementCountToTag(HTMLDocument doc,
+                                      int offset, HTML.Tag tag)
+      {
+        Element root = doc.getDefaultRootElement();
+        int num = -1;
+        Element next = root.getElement(root.getElementIndex(offset));
+        
+        while (!next.isLeaf())
+          {
+            num++;
+            if (next.getAttributes().
+                getAttribute(StyleConstants.NameAttribute).equals(tag))
+              return num;
+            next = next.getElement(next.getElementIndex(offset));
+          }
+        return num;
+      }
+      
+      /**
+       * Gets the deepest element at offset with the
+       * matching tag.
+       * 
+       * @param doc - the document to search
+       * @param offset - the offset to check for
+       * @param tag - the tag to match
+       * @return - the element that is found, null if not found.
+       */
+      protected Element findElementMatchingTag(HTMLDocument doc,
+                                               int offset, HTML.Tag tag)
+      {
+        Element element = doc.getDefaultRootElement();
+        Element tagElement = null;
+        
+        while (element != null)
+          {
+            Object otag = element.getAttributes().getAttribute(
+                                     StyleConstants.NameAttribute);
+            if (otag instanceof HTML.Tag && otag.equals(tag))
+              tagElement = element;
+            element = element.getElement(element.getElementIndex(offset));
+          }
+        
+        return tagElement;
+      }
+    }
+  
+  /**
+   * A {@link ViewFactory} that is able to create {@link View}s for
+   * the <code>Element</code>s that are supported.
+   */
+  public static class HTMLFactory
+    implements ViewFactory
+  {
+    
+    /**
+     * Constructor
+     */
+    public HTMLFactory()
+    {
+      // Do Nothing here.
+    }
+    
+    /**
+     * Creates a {@link View} for the specified <code>Element</code>.
+     *
+     * @param element the <code>Element</code> to create a <code>View</code>
+     *        for
+     * @return the <code>View</code> for the specified <code>Element</code>
+     *         or <code>null</code> if the type of <code>element</code> is
+     *         not supported
+     */
+    public View create(Element element)
+    {
+      View view = null;
+      Object attr = element.getAttributes().getAttribute(
+                                StyleConstants.NameAttribute);
+      if (attr instanceof HTML.Tag)
+        {
+          HTML.Tag tag = (HTML.Tag) attr;
+
+          if (tag.equals(HTML.Tag.IMPLIED) || tag.equals(HTML.Tag.P)
+              || tag.equals(HTML.Tag.H1) || tag.equals(HTML.Tag.H2)
+              || tag.equals(HTML.Tag.H3) || tag.equals(HTML.Tag.H4)
+              || tag.equals(HTML.Tag.H5) || tag.equals(HTML.Tag.H6)
+              || tag.equals(HTML.Tag.DT))
+            view = new ParagraphView(element);
+          else if (tag.equals(HTML.Tag.LI) || tag.equals(HTML.Tag.DL)
+                   || tag.equals(HTML.Tag.DD) || tag.equals(HTML.Tag.BODY)
+                   || tag.equals(HTML.Tag.HTML) || tag.equals(HTML.Tag.CENTER)
+                   || tag.equals(HTML.Tag.DIV)
+                   || tag.equals(HTML.Tag.BLOCKQUOTE)
+                   || tag.equals(HTML.Tag.PRE))
+            view = new BlockView(element, View.Y_AXIS);
+          
+          // FIXME: Uncomment when the views have been implemented
+         /* else if (tag.equals(HTML.Tag.CONTENT))
+            view = new InlineView(element); 
+          else if (tag.equals(HTML.Tag.MENU) || tag.equals(HTML.Tag.DIR)
+                   || tag.equals(HTML.Tag.UL) || tag.equals(HTML.Tag.OL))
+            view = new ListView(element);
+          else if (tag.equals(HTML.Tag.IMG))
+            view = new ImageView(element);
+          else if (tag.equals(HTML.Tag.HR))
+            view = new HRuleView(element);
+          else if (tag.equals(HTML.Tag.BR))
+            view = new BRView(element);
+          else if (tag.equals(HTML.Tag.TABLE))
+            view = new TableView(element);
+          else if (tag.equals(HTML.Tag.INPUT) || tag.equals(HTML.Tag.SELECT)
+                   || tag.equals(HTML.Tag.TEXTAREA))
+            view = new FormView(element);
+          else if (tag.equals(HTML.Tag.OBJECT))
+            view = new ObjectView(element);
+          else if (tag.equals(HTML.Tag.FRAMESET))
+            view = new FrameSetView(element);
+          else if (tag.equals(HTML.Tag.FRAME))
+            view = new FrameView(element); */
+        }      
+      
+      if (view == null)
+        {
+          String name = element.getName();
+          if (name.equals(AbstractDocument.ContentElementName))
+            view = new LabelView(element);
+          else if (name.equals(AbstractDocument.ParagraphElementName))
+            view = new ParagraphView(element);
+          else if (name.equals(AbstractDocument.SectionElementName))
+            view = new BoxView(element, View.Y_AXIS);
+          else if (name.equals(StyleConstants.ComponentElementName))
+            view = new ComponentView(element);
+          else if (name.equals(StyleConstants.IconElementName))
+            view = new IconView(element);
+        }
+      return view;
+    }
+  }
+  
   /**
    * The abstract HTML parser declaration.
    */
@@ -76,9 +611,7 @@ public class HTMLEditorKit
      * @throws IOException, normally if the reader throws one.
      */
     public abstract void parse(Reader reader, ParserCallback callback,
-                               boolean ignoreCharSet
-                              )
-                        throws IOException;
+                               boolean ignoreCharSet) throws IOException;
   }
 
   /**
@@ -95,12 +628,20 @@ public class HTMLEditorKit
      */
     public static final Object IMPLIED = "_implied_";
 
+    /**
+     * Constructor
+     */
+    public ParserCallback()
+    {
+      // Nothing to do here.
+    }
+    
     /**
      * The parser calls this method after it finishes parsing the document.
      */
     public void flush() throws BadLocationException
     {
-      // TODO: What to do here, if anything?
+      // Nothing to do here.
     }
 
     /**
@@ -110,7 +651,7 @@ public class HTMLEditorKit
      */
     public void handleComment(char[] comment, int position)
     {
-      // TODO: What to do here, if anything?
+      // Nothing to do here.
     }
 
     /**
@@ -121,7 +662,7 @@ public class HTMLEditorKit
      */
     public void handleEndOfLineString(String end_of_line)
     {
-      // TODO: What to do here, if anything?
+      // Nothing to do here.
     }
 
     /**
@@ -133,7 +674,7 @@ public class HTMLEditorKit
      */
     public void handleEndTag(HTML.Tag tag, int position)
     {
-      // TODO: What to do here, if anything?
+      // Nothing to do here.
     }
 
     /**
@@ -144,7 +685,7 @@ public class HTMLEditorKit
      */
     public void handleError(String message, int position)
     {
-      // TODO: What to do here, if anything?
+      // Nothing to do here.
     }
 
     /**
@@ -157,7 +698,7 @@ public class HTMLEditorKit
     public void handleSimpleTag(HTML.Tag tag, MutableAttributeSet attributes,
                                 int position)
     {
-      // TODO: What to do here, if anything?
+      // Nothing to do here.
     }
 
     /**
@@ -168,10 +709,9 @@ public class HTMLEditorKit
      * @param position The tag position in the text being parsed
      */
     public void handleStartTag(HTML.Tag tag, MutableAttributeSet attributes,
-                               int position
-                              )
+                               int position)
     {
-      // TODO: What to do here, if anything?
+      // Nothing to do here.
     }
 
     /**
@@ -181,7 +721,7 @@ public class HTMLEditorKit
      */
     public void handleText(char[] text, int position)
     {
-      // TODO: What to do here, if anything?
+      // Nothing to do here.
     }
   }
 
@@ -255,7 +795,83 @@ public class HTMLEditorKit
    * The "ident paragraph right" action.
    */
   public static final String PARA_INDENT_RIGHT = "html-para-indent-right";
-
+  
+  /**
+   * Actions for HTML 
+   */
+  private static final Action[] defaultActions = {
+    // FIXME: Add default actions for html
+  };
+  
+  /**
+   * The current style sheet.
+   */
+  StyleSheet styleSheet;
+  
+  /**
+   * The ViewFactory for HTMLFactory.
+   */
+  HTMLFactory viewFactory;
+  
+  /**
+   * The Cursor for links.
+   */
+  Cursor linkCursor;
+  
+  /**
+   * The default cursor.
+   */
+  Cursor defaultCursor;
+  
+  /**
+   * The parser.
+   */
+  Parser parser;
+  
+  /**
+   * The mouse listener used for links.
+   */
+  LinkController mouseListener;
+  
+  /**
+   * Style context for this editor.
+   */
+  StyleContext styleContext;
+  
+  /** The content type */
+  String contentType = "text/html";
+  
+  /** The input attributes defined by default.css */
+  MutableAttributeSet inputAttributes;
+  
+  /** The editor pane used. */
+  JEditorPane editorPane;
+    
+  /**
+   * Constructs an HTMLEditorKit, creates a StyleContext, and loads the style sheet.
+   */
+  public HTMLEditorKit()
+  {
+    super();    
+    styleContext = new StyleContext();
+    styleSheet = new StyleSheet();
+    styleSheet.importStyleSheet(getClass().getResource(DEFAULT_CSS));
+    // FIXME: Set inputAttributes with default.css    
+  }
+  
+  /**
+   * Gets a factory suitable for producing views of any 
+   * models that are produced by this kit.
+   * 
+   * @return the view factory suitable for producing views.
+   */
+  public ViewFactory getViewFactory()
+  {
+    if (viewFactory == null)
+      viewFactory = new HTMLFactory();
+    return viewFactory;
+  }
+  
   /**
    * Create a text storage model for this type of editor.
    *
@@ -263,18 +879,297 @@ public class HTMLEditorKit
    */
   public Document createDefaultDocument()
   {
-    HTMLDocument document = new HTMLDocument();
+    HTMLDocument document = new HTMLDocument(getStyleSheet());
+    document.setParser(getParser());
     return document;
   }
 
   /**
    * Get the parser that this editor kit uses for reading HTML streams. This
    * method can be overridden to use the alternative parser.
-   *
+   * 
    * @return the HTML parser (by default, {@link ParserDelegator}).
    */
   protected Parser getParser()
   {
-    return new ParserDelegator();
+    if (parser == null)
+      parser = new ParserDelegator();
+    return parser;
+  }
+  
+  /**
+   * Inserts HTML into an existing document.
+   * 
+   * @param doc - the Document to insert the HTML into.
+   * @param offset - where to begin inserting the HTML.
+   * @param html - the String to insert
+   * @param popDepth - the number of ElementSpec.EndTagTypes 
+   * to generate before inserting
+   * @param pushDepth - the number of ElementSpec.StartTagTypes 
+   * with a direction of ElementSpec.JoinNextDirection that 
+   * should be generated before
+   * @param insertTag - the first tag to start inserting into document
+   * @throws IOException - on any I/O error
+   * @throws BadLocationException - if pos represents an invalid location
+   * within the document
+   */
+  public void insertHTML(HTMLDocument doc, int offset, String html,
+                         int popDepth, int pushDepth, HTML.Tag insertTag)
+      throws BadLocationException, IOException
+  {
+    Parser parser = getParser();
+    if (offset < 0 || offset > doc.getLength())
+      throw new BadLocationException("Bad location", offset);
+    if (parser == null)
+      throw new IOException("Parser is null.");
+
+    ParserCallback pc = ((HTMLDocument) doc).getReader
+                          (offset, popDepth, pushDepth, insertTag);
+
+    // FIXME: What should ignoreCharSet be set to?
+    
+    // parser.parse inserts html into the buffer
+    parser.parse(new StringReader(html), pc, false);
+    pc.flush();
+  }
+  
+  /**
+   * Inserts content from the given stream. Inserting HTML into a non-empty 
+   * document must be inside the body Element, if you do not insert into 
+   * the body an exception will be thrown. When inserting into a non-empty 
+   * document all tags outside of the body (head, title) will be dropped.
+   * 
+   * @param in - the stream to read from
+   * @param doc - the destination for the insertion
+   * @param pos - the location in the document to place the content
+   * @throws IOException - on any I/O error
+   * @throws BadLocationException - if pos represents an invalid location
+   * within the document
+   */
+  public void read(Reader in, Document doc, int pos) throws IOException,
+      BadLocationException
+  {
+    if (doc instanceof HTMLDocument)
+      {
+        Parser parser = getParser();
+        if (pos < 0 || pos > doc.getLength())
+          throw new BadLocationException("Bad location", pos);
+        if (parser == null)
+          throw new IOException("Parser is null.");
+        
+        HTMLDocument hd = ((HTMLDocument) doc);
+        hd.setBase(editorPane.getPage());
+        ParserCallback pc = hd.getReader(pos);
+        
+        // FIXME: What should ignoreCharSet be set to?
+        
+        // parser.parse inserts html into the buffer
+        parser.parse(in, pc, false);
+        pc.flush();
+      }
+    else
+      // read in DefaultEditorKit is called.
+      // the string is inserted in the document as usual.
+      super.read(in, doc, pos);
+  }
+  
+  /**
+   * Writes content from a document to the given stream in 
+   * an appropriate format.
+   * 
+   * @param out - the stream to write to
+   * @param doc - the source for the write
+   * @param pos - the location in the document to get the content.
+   * @param len - the amount to write out
+   * @throws IOException - on any I/O error
+   * @throws BadLocationException - if pos represents an invalid location
+   * within the document
+   */
+  public void write(Writer out, Document doc, int pos, int len)
+      throws IOException, BadLocationException
+  {
+    if (doc instanceof HTMLDocument)
+      {
+        // FIXME: Not implemented. Use HTMLWriter.
+        out.write(doc.getText(pos, len));
+      }
+    else
+      super.write(out, doc, pos, len);
+  }
+  
+  /**
+   * Gets the content type that the kit supports.
+   * This kit supports the type text/html.
+   * 
+   * @returns the content type supported.
+   */
+  public String getContentType()
+  {
+    return contentType;
+  } 
+  
+  /**
+   * Creates a copy of the editor kit.
+   * 
+   * @return a copy of this.
+   */
+  public Object clone()
+  {
+    // FIXME: Need to clone all fields
+    return (HTMLEditorKit) super.clone();
+  }
+  
+  /**
+   * Copies the key/values in elements AttributeSet into set. 
+   * This does not copy component, icon, or element names attributes.
+   * This is called anytime the caret moves over a different location. 
+   * 
+   * @param element - the element to create the input attributes for.
+   * @param set - the set to copy the values into.
+   */
+  protected void createInputAttributes(Element element,
+                                       MutableAttributeSet set)
+  {
+    set.removeAttributes(set);
+    set.addAttributes(element.getAttributes());
+    // FIXME: Not fully implemented.
+  }
+  
+  /**
+   * Called when this is installed into the JEditorPane.
+   * 
+   * @param c - the JEditorPane installed into.
+   */
+  public void install(JEditorPane c)
+  {
+    super.install(c);
+    mouseListener = new LinkController();
+    c.addMouseListener(mouseListener);
+    editorPane = c;
+    // FIXME: need to set up hyperlinklistener object
+  }
+  
+  /**
+   * Called when the this is removed from the JEditorPane.
+   * It unregisters any listeners.
+   * 
+   * @param c - the JEditorPane being removed from.
+   */
+  public void deinstall(JEditorPane c)
+  {
+    super.deinstall(c);
+    c.removeMouseListener(mouseListener);
+    mouseListener = null;
+    editorPane = null;
+  }
+  
+  /**
+   * Gets the AccessibleContext associated with this.
+   * 
+   * @return the AccessibleContext for this.
+   */
+  public AccessibleContext getAccessibleContext()
+  {
+    // FIXME: Should return an instance of 
+    // javax.swing.text.html.AccessibleHTML$RootHTMLAccessibleContext
+    // Not implemented yet.
+    return null;
+  }
+  
+  /**
+   * Gets the action list. This list is supported by the superclass
+   * augmented by the collection of actions defined locally for style
+   * operations.
+   * 
+   * @return an array of all the actions
+   */
+  public Action[] getActions()
+  {
+    return TextAction.augmentList(super.getActions(), defaultActions);
+  }
+  
+  /**
+   * Returns the default cursor.
+   * 
+   * @return the default cursor
+   */
+  public Cursor getDefaultCursor()
+  {
+    if (defaultCursor == null)
+      defaultCursor = Cursor.getDefaultCursor();
+    return defaultCursor;
+  }
+  
+  /**
+   * Returns the cursor for links.
+   * 
+   * @return the cursor for links.
+   */
+  public Cursor getLinkCursor()
+  {
+    if (linkCursor == null)
+      linkCursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);
+    return linkCursor;
+  }
+  
+  /**
+   * Sets the Cursor for links.
+   * 
+   * @param cursor - the new cursor for links.
+   */
+  public void setLinkCursor(Cursor cursor)
+  {
+    linkCursor = cursor;
+  }
+  
+  /**
+   * Sets the default cursor.
+   * 
+   * @param cursor - the new default cursor.
+   */
+  public void setDefaultCursor(Cursor cursor)
+  {
+    defaultCursor = cursor;
+  }
+  
+  /**
+   * Gets the input attributes used for the styled editing actions.
+   * 
+   * @return the attribute set
+   */
+  public MutableAttributeSet getInputAttributes()
+  {
+    return inputAttributes;
+  }
+  
+  /**
+   * Get the set of styles currently being used to render the HTML elements. 
+   * By default the resource specified by DEFAULT_CSS gets loaded, and is 
+   * shared by all HTMLEditorKit instances.
+   * 
+   * @return the style sheet.
+   */
+  public StyleSheet getStyleSheet()
+  {
+    if (styleSheet == null)
+      {
+        styleSheet = new StyleSheet();
+        styleSheet.importStyleSheet(getClass().getResource(DEFAULT_CSS));
+      }
+    return styleSheet;
+  }
+  
+  /**
+   * Set the set of styles to be used to render the various HTML elements. 
+   * These styles are specified in terms of CSS specifications. Each document 
+   * produced by the kit will have a copy of the sheet which it can add the 
+   * document specific styles to. By default, the StyleSheet specified is shared 
+   * by all HTMLEditorKit instances. 
+   * 
+   * @param s - the new style sheet
+   */
+  public void setStyleSheet(StyleSheet s)
+  {
+    styleSheet = s;
   }
-}
\ No newline at end of file
+}
diff --git a/libjava/classpath/javax/swing/text/html/StyleSheet.java b/libjava/classpath/javax/swing/text/html/StyleSheet.java
new file mode 100644 (file)
index 0000000..2466a28
--- /dev/null
@@ -0,0 +1,937 @@
+/* StyleSheet.java -- 
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.swing.text.html;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.io.Serializable;
+import java.io.StringReader;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import java.util.Enumeration;
+import java.util.Vector;
+
+import javax.swing.text.AttributeSet;
+import javax.swing.text.Element;
+import javax.swing.text.MutableAttributeSet;
+import javax.swing.text.SimpleAttributeSet;
+import javax.swing.text.Style;
+import javax.swing.text.StyleContext;
+import javax.swing.text.View;
+
+
+/**
+ * This class adds support for defining the visual characteristics of HTML views
+ * being rendered. This enables views to be customized by a look-and-feel, mulitple
+ * views over the same model can be rendered differently. Each EditorPane has its 
+ * own StyleSheet, but by default one sheet will be shared by all of the HTMLEditorKit
+ * instances. An HTMLDocument can also have a StyleSheet, which holds specific CSS
+ * specs. 
+ * 
+ *  In order for Views to store less state and therefore be more lightweight, 
+ *  the StyleSheet can act as a factory for painters that handle some of the 
+ *  rendering tasks. Since the StyleSheet may be used by views over multiple
+ *  documents the HTML attributes don't effect the selector being used.
+ *  
+ *  The rules are stored as named styles, and other information is stored to 
+ *  translate the context of an element to a rule.
+ * 
+ * @author Lillian Angel (langel@redhat.com)
+ */
+public class StyleSheet extends StyleContext
+{
+
+  /** The base URL */
+  URL base;
+  
+  /** Base font size (int) */
+  int baseFontSize;
+  
+  /** The style sheets stored. */
+  StyleSheet[] styleSheet;
+  
+  /**
+   * Constructs a StyleSheet.
+   */
+  public StyleSheet()
+  {
+    super();
+    baseFontSize = 4; // Default font size from CSS
+  }
+
+  /**
+   * Gets the style used to render the given tag. The element represents the tag
+   * and can be used to determine the nesting, where the attributes will differ
+   * if there is nesting inside of elements.
+   * 
+   * @param t - the tag to translate to visual attributes
+   * @param e - the element representing the tag
+   * @return the set of CSS attributes to use to render the tag.
+   */
+  public Style getRule(HTML.Tag t, Element e)
+  {
+    // FIXME: Not implemented.
+    return null;
+  }
+  
+  /**
+   * Gets the rule that best matches the selector. selector is a space
+   * separated String of element names. The attributes of the returned 
+   * Style will change as rules are added and removed.
+   * 
+   * @param selector - the element names separated by spaces
+   * @return the set of CSS attributes to use to render
+   */
+  public Style getRule(String selector)
+  {
+    // FIXME: Not implemented.
+    return null; 
+  }
+  
+  /**
+   * Adds a set if rules to the sheet. The rules are expected to be in valid
+   * CSS format. This is called as a result of parsing a <style> tag
+   * 
+   * @param rule - the rule to add to the sheet
+   */
+  public void addRule(String rule)
+  {
+    CssParser cp = new CssParser();
+    try
+    {
+      cp.parse(base, new StringReader(rule), false, false);
+    }
+    catch (IOException io)
+    {
+      // Do nothing here.
+    }
+  }
+  
+  /**
+   * Translates a CSS declaration into an AttributeSet. This is called
+   * as a result of encountering an HTML style attribute.
+   * 
+   * @param decl - the declaration to get
+   * @return the AttributeSet representing the declaration
+   */
+  public AttributeSet getDeclaration(String decl)
+  {
+    if (decl == null)
+      return SimpleAttributeSet.EMPTY;
+    // FIXME: Not implemented.
+    return null;     
+  }
+  
+  /**
+   * Loads a set of rules that have been specified in terms of CSS grammar.
+   * If there are any conflicts with existing rules, the new rule is added.
+   * 
+   * @param in - the stream to read the CSS grammar from.
+   * @param ref - the reference URL. It is the location of the stream, it may
+   * be null. All relative URLs specified in the stream will be based upon this
+   * parameter.
+   * @throws IOException - For any IO error while reading
+   */
+  public void loadRules(Reader in, URL ref) throws IOException
+  {
+    CssParser cp = new CssParser();
+    cp.parse(ref, in, false, false);
+  }
+  
+  /**
+   * Gets a set of attributes to use in the view. This is a set of
+   * attributes that can be used for View.getAttributes
+   * 
+   * @param v - the view to get the set for
+   * @return the AttributeSet to use in the view.
+   */
+  public AttributeSet getViewAttributes(View v)
+  {
+    // FIXME: Not implemented.
+    return null;
+  }
+  
+  /**
+   * Removes a style previously added.
+   * 
+   * @param nm - the name of the style to remove
+   */
+  public void removeStyle(String nm)
+  {
+    // FIXME: Not implemented.
+    super.removeStyle(nm);
+  }
+  
+  /**
+   * Adds the rules from ss to those of the receiver. ss's rules will
+   * override the old rules. An added StyleSheet will never override the rules
+   * of the receiving style sheet.
+   * 
+   * @param ss - the new StyleSheet.
+   */
+  public void addStyleSheet(StyleSheet ss)
+  {
+    if (styleSheet == null)
+      styleSheet = new StyleSheet[] {ss};
+    else
+      System.arraycopy(new StyleSheet[] {ss}, 0, styleSheet, 
+                       styleSheet.length, 1);
+  }
+  
+  /**
+   * Removes ss from those of the receiver
+   * 
+   * @param ss - the StyleSheet to remove.
+   */
+  public void removeStyleSheet(StyleSheet ss)
+  {
+    if (styleSheet.length == 1 && styleSheet[0].equals(ss))
+      styleSheet = null;
+    else
+      {
+        for (int i = 0; i < styleSheet.length; i++)
+          {
+            StyleSheet curr = styleSheet[i];
+            if (curr.equals(ss))
+              {
+                StyleSheet[] tmp = new StyleSheet[styleSheet.length - 1];
+                if (i != 0 && i != (styleSheet.length - 1))
+                  {
+                    System.arraycopy(styleSheet, 0, tmp, 0, i);
+                    System.arraycopy(styleSheet, i + 1, tmp, i,
+                                     styleSheet.length - i - 1);
+                  }
+                else if (i == 0)
+                  System.arraycopy(styleSheet, 1, tmp, 0, styleSheet.length - 1);
+                else
+                  System.arraycopy(styleSheet, 0, tmp, 0, styleSheet.length - 1);
+                
+                styleSheet = tmp;
+                break;
+              }
+          }
+      }
+  }
+  
+  /**
+   * Returns an array of the linked StyleSheets. May return null.
+   * 
+   * @return - An array of the linked StyleSheets.
+   */
+  public StyleSheet[] getStyleSheets()
+  {
+    return styleSheet;
+  }
+  
+  /**
+   * Imports a style sheet from the url. The rules are directly added to the
+   * receiver.
+   * 
+   * @param url - the URL to import the StyleSheet from.
+   */
+  public void importStyleSheet(URL url)
+  {
+    // FIXME: Not implemented
+  }
+  
+  /**
+   * Sets the base url. All import statements that are relative, will be
+   * relative to base.
+   * 
+   * @param base -
+   *          the base URL.
+   */
+  public void setBase(URL base)
+  {
+    this.base = base;
+  }
+  
+  /**
+   * Gets the base url.
+   * 
+   * @return - the base
+   */
+  public URL getBase()
+  {
+    return base;
+  }
+  
+  /**
+   * Adds a CSS attribute to the given set.
+   * 
+   * @param attr - the attribute set
+   * @param key - the attribute to add
+   * @param value - the value of the key
+   */
+  public void addCSSAttribute(MutableAttributeSet attr, CSS.Attribute key,
+                              String value)
+  {
+    attr.addAttribute(key, value);
+  }
+  
+  /**
+   * Adds a CSS attribute to the given set.
+   * This method parses the value argument from HTML based on key. 
+   * Returns true if it finds a valid value for the given key, 
+   * and false otherwise.
+   * 
+   * @param attr - the attribute set
+   * @param key - the attribute to add
+   * @param value - the value of the key
+   * @return true if a valid value was found.
+   */
+  public boolean addCSSAttributeFromHTML(MutableAttributeSet attr, CSS.Attribute key,
+                                         String value)
+  {
+    // FIXME: Need to parse value from HTML based on key.
+    attr.addAttribute(key, value);
+    return attr.containsAttribute(key, value);
+  }
+  
+  /**
+   * Converts a set of HTML attributes to an equivalent set of CSS attributes.
+   * 
+   * @param htmlAttrSet - the set containing the HTML attributes.
+   * @return the set of CSS attributes
+   */
+  public AttributeSet translateHTMLToCSS(AttributeSet htmlAttrSet)
+  {
+    // FIXME: Not implemented.
+    return null;    
+  }
+
+  /**
+   * Adds an attribute to the given set and returns a new set. This is implemented
+   * to convert StyleConstants attributes to CSS before forwarding them to the superclass.
+   * The StyleConstants attribute do not have corresponding CSS entry, the attribute
+   * is stored (but will likely not be used).
+   * 
+   * @param old - the old set
+   * @param key - the non-null attribute key
+   * @param value - the attribute value
+   * @return the updated set 
+   */
+  public AttributeSet addAttribute(AttributeSet old, Object key,
+                                   Object value)
+  {
+    // FIXME: Not implemented.
+    return super.addAttribute(old, key, value);       
+  }
+  
+  /**
+   * Adds a set of attributes to the element. If any of these attributes are
+   * StyleConstants, they will be converted to CSS before forwarding to the 
+   * superclass.
+   * 
+   * @param old - the old set
+   * @param attr - the attributes to add
+   * @return the updated attribute set
+   */
+  public AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
+  {
+    // FIXME: Not implemented.
+    return super.addAttributes(old, attr);           
+  }
+  
+  /**
+   * Removes an attribute from the set. If the attribute is a
+   * StyleConstants, it will be converted to CSS before forwarding to the 
+   * superclass.
+   * 
+   * @param old - the old set
+   * @param key - the non-null attribute key
+   * @return the updated set 
+   */
+  public AttributeSet removeAttribute(AttributeSet old, Object key)
+  {
+    // FIXME: Not implemented.
+    return super.removeAttribute(old, key);    
+  }
+  
+  /**
+   * Removes an attribute from the set. If any of the attributes are
+   * StyleConstants, they will be converted to CSS before forwarding to the 
+   * superclass.
+   * 
+   * @param old - the old set
+   * @param attrs - the attributes to remove
+   * @return the updated set 
+   */
+  public AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
+  {
+    // FIXME: Not implemented.
+    return super.removeAttributes(old, attrs);    
+  }
+  
+  /**
+   * Removes a set of attributes for the element. If any of the attributes is a
+   * StyleConstants, they will be converted to CSS before forwarding to the 
+   * superclass.
+   * 
+   * @param old - the old attribute set
+   * @param names - the attribute names
+   * @return the update attribute set
+   */
+  public AttributeSet removeAttributes(AttributeSet old, Enumeration names)
+  {
+    // FIXME: Not implemented.
+    return super.removeAttributes(old, names);        
+  }
+  
+  /**
+   * Creates a compact set of attributes that might be shared. This is a hook
+   * for subclasses that want to change the behaviour of SmallAttributeSet.
+   * 
+   * @param a - the set of attributes to be represented in the compact form.
+   * @return the set of attributes created
+   */
+  protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
+  {
+    return super.createSmallAttributeSet(a);     
+  }
+  
+  /**
+   * Creates a large set of attributes. This set is not shared. This is a hook
+   * for subclasses that want to change the behaviour of the larger attribute
+   * storage format.
+   * 
+   * @param a - the set of attributes to be represented in the larger form.
+   * @return the large set of attributes.
+   */
+  protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
+  {
+    return super.createLargeAttributeSet(a);     
+  }
+  
+  /**
+   * Gets the font to use for the given set.
+   * 
+   * @param a - the set to get the font for.
+   * @return the font for the set
+   */
+  public Font getFont(AttributeSet a)
+  {
+    return super.getFont(a);    
+  }
+  
+  /**
+   * Takes a set of attributes and turns it into a foreground
+   * color specification. This is used to specify things like, brigher, more hue
+   * etc.
+   * 
+   * @param a - the set to get the foreground color for
+   * @return the foreground color for the set
+   */
+  public Color getForeground(AttributeSet a)
+  {
+    return super.getForeground(a);     
+  }
+  
+  /**
+   * Takes a set of attributes and turns it into a background
+   * color specification. This is used to specify things like, brigher, more hue
+   * etc.
+   * 
+   * @param a - the set to get the background color for
+   * @return the background color for the set
+   */
+  public Color getBackground(AttributeSet a)
+  {
+    return super.getBackground(a);     
+  }
+  
+  /**
+   * Gets the box formatter to use for the given set of CSS attributes.
+   * 
+   * @param a - the given set
+   * @return the box formatter
+   */
+  public BoxPainter getBoxPainter(AttributeSet a)
+  {
+    return new BoxPainter(a);     
+  }
+  
+  /**
+   * Gets the list formatter to use for the given set of CSS attributes.
+   * 
+   * @param a - the given set
+   * @return the list formatter
+   */
+  public ListPainter getListPainter(AttributeSet a)
+  {
+    return new ListPainter(a);         
+  }
+  
+  /**
+   * Sets the base font size between 1 and 7.
+   * 
+   * @param sz - the new font size for the base.
+   */
+  public void setBaseFontSize(int sz)
+  {
+    if (sz <= 7 && sz >= 1)
+      baseFontSize = sz;
+  }
+  
+  /**
+   * Sets the base font size from the String. It can either identify
+   * a specific font size (between 1 and 7) or identify a relative
+   * font size such as +1 or -2.
+   * 
+   * @param size - the new font size as a String.
+   */
+  public void setBaseFontSize(String size)
+  {
+    size.trim();
+    int temp = 0;
+    try
+      {
+        if (size.length() == 2)
+          {
+            int i = new Integer(size.substring(1)).intValue();
+            if (size.startsWith("+"))
+              temp = baseFontSize + i;
+            else if (size.startsWith("-"))
+              temp = baseFontSize - i;
+          }
+        else if (size.length() == 1)
+          temp = new Integer(size.substring(0)).intValue();
+
+        if (temp <= 7 && temp >= 1)
+          baseFontSize = temp;
+      }
+    catch (NumberFormatException nfe)
+      {
+        // Do nothing here
+      }
+  }
+  
+  /**
+   * TODO
+   * 
+   * @param pt - TODO
+   * @return TODO
+   */
+  public static int getIndexOfSize(float pt)
+  {
+    // FIXME: Not implemented.
+    return 0;
+  }
+  
+  /**
+   * Gets the point size, given a size index.
+   * 
+   * @param index - the size index
+   * @return the point size.
+   */
+  public float getPointSize(int index)
+  {
+    // FIXME: Not implemented.
+    return 0;    
+  }
+  
+  /**
+   * Given the string of the size, returns the point size value.
+   * 
+   * @param size - the string representation of the size.
+   * @return - the point size value.
+   */
+  public float getPointSize(String size)
+  {
+    // FIXME: Not implemented.
+    return 0;    
+  }
+  
+  /**
+   * Converst a color string to a color. If it is not found, null is returned.
+   * 
+   * @param color - the color string such as "RED" or "#NNNNNN"
+   * @return the Color, or null if not found.
+   */
+  public Color stringToColor(String color)
+  {
+    color = color.toLowerCase();
+    if (color.equals("black") || color.equals("#000000"))
+      return Color.BLACK;
+    else if (color.equals("aqua") || color.equals("#00FFFF"))
+      return new Color(127, 255, 212);
+    else if (color.equals("gray") || color.equals("#808080"))
+      return Color.GRAY;
+    else if (color.equals("navy") || color.equals("#000080"))
+      return new Color(0, 0, 128);
+    else if (color.equals("silver") || color.equals("#C0C0C0"))
+      return Color.LIGHT_GRAY;
+    else if (color.equals("green") || color.equals("#008000"))
+      return Color.GREEN;
+    else if (color.equals("olive") || color.equals("#808000"))
+      return new Color(128, 128, 0);
+    else if (color.equals("teal") || color.equals("#008080"))
+      return new Color(0, 128, 128);
+    else if (color.equals("blue") || color.equals("#0000FF"))
+      return Color.BLUE;
+    else if (color.equals("lime") || color.equals("#00FF00"))
+      return new Color(0, 255, 0);
+    else if (color.equals("purple") || color.equals("#800080"))
+      return new Color(128, 0, 128);
+    else if (color.equals("white") || color.equals("#FFFFFF"))
+      return Color.WHITE;
+    else if (color.equals("fuchsia") || color.equals("#FF00FF"))
+      return Color.MAGENTA;
+    else if (color.equals("maroon") || color.equals("#800000"))
+      return new Color(128, 0, 0);
+    else if (color.equals("Red") || color.equals("#FF0000"))
+      return Color.RED;
+    else if (color.equals("Yellow") || color.equals("#FFFF00"))
+      return Color.YELLOW;
+    return null; 
+  }
+  
+  /**
+   * This class carries out some of the duties of CSS formatting. This enables views
+   * to present the CSS formatting while not knowing how the CSS values are cached.
+   * 
+   * This object is reponsible for the insets of a View and making sure
+   * the background is maintained according to the CSS attributes.
+   * 
+   * @author Lillian Angel (langel@redhat.com)
+   */
+  public static class BoxPainter extends Object implements Serializable
+  {
+    
+    /**
+     * Attribute set for painter
+     */
+    AttributeSet as;
+    
+    /**
+     * Package-private constructor.
+     * 
+     * @param as - AttributeSet for painter
+     */
+    BoxPainter(AttributeSet as)
+    {
+      this.as = as;
+    }
+    
+    /**
+     * Gets the inset needed on a given side to account for the margin, border
+     * and padding.
+     * 
+     * @param size - the size of the box to get the inset for. View.TOP, View.LEFT,
+     * View.BOTTOM or View.RIGHT.
+     * @param v - the view making the request. This is used to get the AttributeSet,
+     * amd may be used to resolve percentage arguments.
+     * @return the inset
+     * @throws IllegalArgumentException - for an invalid direction.
+     */
+    public float getInset(int size, View v)
+    {
+      // FIXME: Not implemented.
+      return 0;       
+    }
+    
+    /**
+     * Paints the CSS box according to the attributes given. This should
+     * paint the border, padding and background.
+     * 
+     * @param g - the graphics configuration
+     * @param x - the x coordinate
+     * @param y - the y coordinate
+     * @param w - the width of the allocated area
+     * @param h - the height of the allocated area
+     * @param v - the view making the request
+     */
+    public void paint(Graphics g, float x, float y, float w, float h, View v)
+    {
+      // FIXME: Not implemented.
+    }
+  }
+  
+  /**
+   * This class carries out some of the CSS list formatting duties. Implementations
+   * of this class enable views to present the CSS formatting while not knowing anything
+   * about how the CSS values are being cached.
+   * 
+   * @author Lillian Angel (langel@redhat.com)
+   */
+  public static class ListPainter extends Object implements Serializable
+  {
+    
+    /**
+     * Attribute set for painter
+     */
+    AttributeSet as;
+    
+    /**
+     * Package-private constructor.
+     * 
+     * @param as - AttributeSet for painter
+     */
+    ListPainter(AttributeSet as)
+    {
+      this.as = as;
+    }
+    
+    /**
+     * Paints the CSS list decoration according to the attributes given.
+     * 
+     * @param g - the graphics configuration
+     * @param x - the x coordinate
+     * @param y - the y coordinate
+     * @param w - the width of the allocated area
+     * @param h - the height of the allocated area
+     * @param v - the view making the request
+     * @param item - the list item to be painted >=0.
+     */
+    public void paint(Graphics g, float x, float y, float w, float h, View v,
+                      int item)
+    {
+      // FIXME: Not implemented.
+    }
+  }
+  
+  /**
+   * The parser callback for the CSSParser.
+   */
+  class CssParser implements CSSParser.CSSParserCallback
+  {
+    /** 
+     * A vector of all the selectors. 
+     * Each element is an array of all the selector tokens 
+     * in a single rule. 
+     */
+    Vector selectors;
+
+    /** A vector of all the selector tokens in a rule. */
+    Vector selectorTokens;
+
+    /**  Name of the current property. */
+    String propertyName;
+
+    /** The set of CSS declarations */
+    MutableAttributeSet declaration;
+
+    /** 
+     * True if parsing a declaration, that is the Reader will not 
+     * contain a selector. 
+     */
+    boolean parsingDeclaration;
+
+    /** True if the attributes are coming from a linked/imported style. */
+    boolean isLink;
+
+    /** The base URL */
+    URL base;
+
+    /** The parser */
+    CSSParser parser;
+
+    /**
+     * Constructor
+     */
+    CssParser()
+    {
+      selectors = new Vector();
+      selectorTokens = new Vector();
+      parser = new CSSParser();
+      base = StyleSheet.this.base;
+      declaration = new SimpleAttributeSet();
+    }
+
+    /**
+     * Parses the passed in CSS declaration into an AttributeSet.
+     * 
+     * @param s - the declaration
+     * @return the set of attributes containing the property and value.
+     */
+    public AttributeSet parseDeclaration(String s)
+    {
+      try
+      {
+        return parseDeclaration(new StringReader(s));
+      }
+      catch (IOException e)
+      {
+         // Do nothing here.
+      }
+      return null;
+    }
+
+    /**
+     * Parses the passed in CSS declaration into an AttributeSet.
+     * 
+     * @param r - the reader
+     * @return the attribute set
+     * @throws IOException from the reader
+     */
+    public AttributeSet parseDeclaration(Reader r) throws IOException
+    {
+      parse(base, r, true, false);
+      return declaration;
+    }
+
+    /**
+     * Parse the given CSS stream
+     * 
+     * @param base - the url
+     * @param r - the reader
+     * @param parseDec - True if parsing a declaration
+     * @param isLink - True if parsing a link
+     */
+   public void parse(URL base, Reader r, boolean parseDec, boolean isLink) throws IOException
+   {
+     parsingDeclaration = parseDec;
+     this.isLink = isLink;
+     this.base = base;
+     
+     // flush out all storage
+     propertyName = null;
+     selectors.clear();
+     selectorTokens.clear();
+     declaration.removeAttributes(declaration);
+     
+     parser.parse(r, this, parseDec);
+   }
+
+   /**
+    * Invoked when a valid @import is encountered, 
+    * will call importStyleSheet if a MalformedURLException 
+    * is not thrown in creating the URL.
+    *
+    * @param s - the string after @import
+    */ 
+   public void handleImport(String s)
+    {
+      if (s != null)
+        {
+          try
+            {
+              if (s.startsWith("url(") && s.endsWith(")"))
+                s = s.substring(4, s.length() - 1);
+              if (s.indexOf("\"") >= 0)
+                s = s.replaceAll("\"","");
+
+              URL url = new URL(s);
+              if (url == null && base != null)
+                url = new URL(base, s);
+              
+              importStyleSheet(url);
+            }
+          catch (MalformedURLException e)
+            {
+              // Do nothing here.
+            }
+        }
+    }
+
+   /**
+     * A selector has been encountered.
+     * 
+     * @param s - a selector (e.g. P or UL or even P,)
+     */
+   public void handleSelector(String s)
+   {
+     if (s.endsWith(","))
+       s = s.substring(0, s.length() - 1);
+     
+     selectorTokens.addElement(s);
+     addSelector();
+   }
+
+   /**
+    * Invoked when the start of a rule is encountered.
+    */
+   public void startRule()
+   {
+     addSelector();
+   }
+
+   /**
+    * Invoked when a property name is encountered.
+    *
+    * @param s - the property
+    */
+   public void handleProperty(String s)
+   {
+     propertyName = s;
+   }
+
+  /**
+   * Invoked when a property value is encountered.
+   *
+   * @param s - the value
+   */
+   public void handleValue(String s)
+   {
+     // call addCSSAttribute
+     // FIXME: Not implemented
+   }
+   
+   /**
+    * Invoked when the end of a rule is encountered.
+    */
+   public void endRule()
+   {
+     // FIXME: Not implemented
+     // add rules
+     propertyName = null;
+   }
+
+   /**
+    * Adds the selector to the vector.
+    */
+   private void addSelector()
+   {
+     int length = selectorTokens.size();
+     if (length > 0)
+       {
+         Object[] sel = new Object[length];
+         System.arraycopy(selectorTokens.toArray(), 0, sel, 0, length);
+         selectors.add(sel);
+         selectorTokens.clear();
+       }
+   }
+  }
+}
diff --git a/libjava/classpath/javax/swing/text/html/default.css b/libjava/classpath/javax/swing/text/html/default.css
new file mode 100644 (file)
index 0000000..f2a44f8
--- /dev/null
@@ -0,0 +1,378 @@
+/* default.css --
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+nobr {
+  white-space: nowrap;
+}
+
+ol {
+  margin-right: 50px;
+  margin-top: 10px;
+  margin-left: 50px;
+  margin-bottom: 10px;
+  list-style-type: decimal;
+}
+
+u {
+  text-decoration: underline;
+}
+
+s {
+  text-decoration: line-through;
+}
+
+p {
+  margin-top: 15px;
+}
+
+dd p {
+  margin-left: 0px;
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+ol li p {
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+
+address {
+  font-style: italic;
+  color: blue;
+}
+
+i {
+  font-style: italic;
+}
+
+h6 {
+  margin-top: 10px;
+  font-size: xx-small;
+  font-weight: bold;
+  margin-bottom: 10px;
+}
+
+h5 {  
+  margin-top: 10px;
+  font-size: x-small;
+  font-weight: bold;
+  margin-bottom: 10px;
+}
+
+h4 {  
+  margin-top: 10px;
+  font-size: small;
+  font-weight: bold;
+  margin-bottom: 10px;
+}
+
+h3 {  
+  margin-top: 10px;
+  font-size: medium;
+  font-weight: bold;
+  margin-bottom: 10px;
+}
+
+dir li p {  
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+h2 {  
+  margin-top: 10px;
+  font-size: large;
+  font-weight: bold;
+  margin-bottom: 10px;
+}
+
+b { 
+  font-weight: bold;
+}
+
+h1 {  
+  margin-top: 10px;
+  font-size: x-large;
+  font-weight: bold;
+  margin-bottom: 10px;
+}
+
+caption {  
+  text-align: center;
+  caption-side: top;
+}
+
+a {  
+  text-decoration: underline;
+  color: blue;
+}
+
+ul li ul li ul li {  
+  margin-left: 0px;
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+menu {  
+  margin-right: 40px;
+  margin-top: 10px;
+  margin-left: 40px;
+  margin-bottom: 10px;
+}
+
+menu li p {  
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+sup {  
+  vertical-align: super;
+}
+
+body {
+  margin-right: 0px;  
+  margin-left: 0px;
+  font-family: Serif;
+  font-size: 14pt;
+  font-weight: normal;
+  color: black;
+}
+
+ul li ul li ul {  
+  margin-right: 25px;
+  margin-left: 25px;
+  list-style-type: square;
+}
+
+blockquote {
+  margin-right: 35px;
+  margin-left: 35px; 
+  margin-top: 5px;
+  margin-bottom: 5px;
+}
+
+samp {  
+  font-family: Monospaced;
+  font-size: small;
+}
+
+cite {  
+  font-style: italic;
+}
+
+sub {  
+  vertical-align: sub;
+}
+
+em {  
+  font-style: italic;
+}
+
+ul li p { 
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+ul li ul li {
+  margin-right: 0px;
+  margin-left: 0px;  
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+var {
+  font-style: italic;
+  font-weight: bold;
+}
+
+table {  
+  border-color: Gray;
+  border-style: outset;
+}
+
+dfn {  
+  font-style: italic;
+}
+
+menu li {
+  margin-right: 0px;
+  margin-left: 0px;
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+strong { 
+  font-weight: bold;
+}
+
+ul {
+  margin-right: 50px;
+  margin-top: 10px;
+  margin-left: 50px;
+  margin-bottom: 10px;
+  list-style-type: disc;
+}
+
+center { 
+  text-align: center;
+}
+
+ul li ul {  
+  margin-right: 25px;
+  margin-left: 25px;
+  list-style-type: circle;
+}
+
+kbd {
+  font-family: Monospaced;
+  font-size: small;
+}
+
+dir li {
+  margin-right: 0px;
+  margin-left: 0px;
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+ul li menu {
+  margin-right: 25px;
+  margin-left: 25px;
+  list-style-type: circle;
+}
+
+dt {
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+ol li {
+  margin-right: 0px;
+  margin-left: 0px;
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+li p {  
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+default {  
+}
+
+strike {  
+  text-decoration: line-through;
+}
+
+dl {
+  margin-left: 0px;
+  margin-top: 10px;
+  margin-bottom: 10px;
+}
+
+tt {
+  font-family: Monospaced;
+}
+
+ul li {
+  margin-right: 0px;
+  margin-left: 0px;
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+dir { 
+  margin-right: 40px;
+  margin-top: 10px;
+  margin-left: 40px;
+  margin-bottom: 10px;
+}
+
+tr {  
+  text-align: left;
+}
+
+pre p { 
+  margin-top: 0px;
+}
+
+dd {  
+  margin-right: 40px;
+  margin-top: 0px;
+  margin-left: 40px;
+  margin-bottom: 0px;
+}
+
+th {
+  padding-bottom: 3px;
+  text-align: center;
+  padding-top: 3px;
+  padding-right: 3px;
+  padding-left: 3px;
+  font-weight: bold;
+  border-color: Gray;
+  border-style: inset;
+}
+
+pre {  
+  margin-top: 5px;
+  font-family: Monospaced;
+  margin-bottom: 5px;
+}
+
+td {
+  padding-bottom: 3px;
+  padding-top: 3px;
+  padding-right: 3px;
+  padding-left: 3px;
+  border-color: Gray;
+  border-style: inset;
+}
+
+code {
+  font-family: Monospaced;
+  font-size: small;
+}
+
+small {  
+  font-size: x-small;
+}
+
+big { 
+  font-size: x-large;
+}
index 5cf809860611acec7822c8168993055a9c0b8ac3..818f548a78d591079f266eb351347c9b3db616df 100644 (file)
@@ -148,12 +148,6 @@ public class DefaultTreeModel
    */
   public void setRoot(TreeNode root)
   {
-    // Sanity Check
-    if (root == null)
-      {
-        throw new IllegalArgumentException("null root");
-      }
-    // Set new root
     this.root = root;
   }
 
index 75b76a9e8c6734304d363f2c769f7e904d9b1118..de27dad04f9978985617894ef31e3e896a0c648f 100644 (file)
@@ -116,7 +116,7 @@ public class DefaultTreeSelectionModel
         */
        public DefaultTreeSelectionModel()
        {
-               setSelectionMode(SINGLE_TREE_SELECTION);
+               setSelectionMode(DISCONTIGUOUS_TREE_SELECTION);
                listenerList = new EventListenerList();
        }
 
index 19700b32e41b2648426d9ffdb02a57bccd3f0e2f..edc6678e3500eb7b36e5b31196b59a2af7ef1fdb 100644 (file)
@@ -1,5 +1,5 @@
 /* QName.java - An XML qualified name.
-   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2004,2005,2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -67,16 +67,17 @@ public class QName implements Serializable
   public QName(String namespaceURI, String localPart, String prefix)
   {
     if (namespaceURI == null)
-      {
-        namespaceURI = XMLConstants.NULL_NS_URI;
-      }
+      namespaceURI = XMLConstants.NULL_NS_URI;
     if (localPart == null)
-      {
-        throw new IllegalArgumentException();
-      }
+      throw new IllegalArgumentException();
     if (prefix == null)
+      prefix = XMLConstants.DEFAULT_NS_PREFIX;
+    else
       {
-        prefix = XMLConstants.DEFAULT_NS_PREFIX;
+        if (XMLConstants.XML_NS_PREFIX.equals(prefix))
+          namespaceURI = XMLConstants.XML_NS_URI;
+        else if (XMLConstants.XMLNS_ATTRIBUTE.equals(prefix))
+          namespaceURI = XMLConstants.XMLNS_ATTRIBUTE_NS_URI;
       }
     this.namespaceURI = namespaceURI;
     this.localPart = localPart;
@@ -151,9 +152,7 @@ public class QName implements Serializable
     if (start != -1)
       {
         if (end < start)
-          {
-            throw new IllegalArgumentException(qNameAsString);
-          }
+          throw new IllegalArgumentException(qNameAsString);
         namespaceUri = qNameAsString.substring(start + 1, end);
         qNameAsString = qNameAsString.substring(end + 1);
       }
index 8a89fdd92b57eb7076d3b79db251044b9b253989..549fe4b5409f6837af4bab6b0e7f7133e48897a7 100644 (file)
@@ -115,7 +115,7 @@ public abstract class SAXParserFactory
           }
       }
     while (className == null && count < 3);
-    return new gnu.xml.aelfred2.JAXPFactory();
+    return new gnu.xml.stream.SAXParserFactory();
   }
 
   private static String getFactoryClassName(ClassLoader loader, int attempt)
index 1c215d187f21f6ddad957069ee277ad85654ea05..56860d2fd791e5cec37ff19f548338276a0da971 100644 (file)
@@ -19,17 +19,17 @@ if FOUND_GCJ
 JAVAC = exit 1
 else
 if FOUND_JIKES
-JAVAC = $(JIKES) +Pno-shadow +Pno-switchcheck +F $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(compile_classpath) -d . @classes
+JAVAC = $(JIKES) $(JIKESWARNINGS) +F $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(compile_classpath) -d . @classes
 else
 if FOUND_KJC
 ## FIXME: from what I can tell, kjc does not support a -encoding option.
 JAVAC = $(KJC) -classpath .:$(USER_CLASSLIB) -d . @classes
 else
 if FOUND_GCJX
-JAVAC = $(GCJX) -encoding UTF-8 -classpath .:$(USER_CLASSLIB) -d . @classes
+JAVAC = $(GCJX) -g -encoding UTF-8 -classpath .:$(USER_CLASSLIB) -d . @classes
 else
 if FOUND_ECJ
-JAVAC = $(ECJ) -source 1.4 -encoding UTF-8 -warn:-deprecation,serial,typeHiding,unchecked,unused,varargsCast -proceedOnError -bootclasspath '' -classpath $(compile_classpath) -d . @classes
+JAVAC = $(ECJ) -source 1.4 -encoding UTF-8 -warn:-deprecation,serial,unused -proceedOnError -bootclasspath '' -classpath $(compile_classpath) -d . @classes
 endif # FOUND_ECJ
 endif # FOUND_GCJX
 endif # FOUND_KJC
@@ -155,10 +155,10 @@ clean-local:
 
 dist-hook:
        mkdir -p $(distdir)
-       cp -dfR $(top_srcdir)/gnu $(top_srcdir)/java $(top_srcdir)/javax $(top_srcdir)/org $(top_srcdir)/vm $(top_srcdir)/resource $(top_distdir)
+       cp -pdfR $(top_srcdir)/gnu $(top_srcdir)/java $(top_srcdir)/javax $(top_srcdir)/org $(top_srcdir)/vm $(top_srcdir)/resource $(distdir)/..
 # Delete not wanted files.
-       $(FIND) $(top_distdir)/gnu $(top_distdir)/java $(top_distdir)/javax $(top_distdir)/org $(top_distdir)/vm $(top_distdir)/resource -name CVS -print | xargs rm -fr
-       $(FIND) $(top_distdir)/gnu $(top_distdir)/java $(top_distdir)/javax $(top_distdir)/org $(top_distdir)/vm $(top_distdir)/resource -name .cvsignore -print | xargs rm -f
-       $(FIND) $(top_distdir)/gnu $(top_distdir)/java $(top_distdir)/javax $(top_distdir)/org $(top_distdir)/vm -name class-dependencies.conf -print | xargs rm -f
-       rm -f $(top_distdir)/gnu/classpath/Configuration.java
-       rm -f $(top_distdir)/java/util/LocaleData.java
+       $(FIND) $(distdir)/../gnu $(distdir)/../java $(distdir)/../javax $(distdir)/../org $(distdir)/../vm $(distdir)/../resource -name CVS -print | xargs rm -fr
+       $(FIND) $(distdir)/../gnu $(distdir)/../java $(distdir)/../javax $(distdir)/../org $(distdir)/../vm $(distdir)/../resource -name .cvsignore -print | xargs rm -f
+       $(FIND) $(distdir)/../gnu $(distdir)/../java $(distdir)/../javax $(distdir)/../org $(distdir)/../vm -name class-dependencies.conf -print | xargs rm -f
+       rm -f $(distdir)/../gnu/classpath/Configuration.java
+       rm -f $(distdir)/../java/util/LocaleData.java
index 8817563b5eb99fc3993eee7812d7ed357985ca63..94709eb3e0fef387718602708758f217f2ad7ddb 100644 (file)
@@ -43,10 +43,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -143,6 +144,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -253,10 +255,10 @@ propertyfiles := $(shell cd $(top_srcdir)/resource && $(FIND) gnu java org -name
 metafiles := $(shell cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -type f -print)
 iconfiles := $(shell cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print)
 compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:.:$(USER_CLASSLIB)
-@FOUND_ECJ_TRUE@@FOUND_GCJX_FALSE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@@FOUND_KJC_FALSE@JAVAC = $(ECJ) -source 1.4 -encoding UTF-8 -warn:-deprecation,serial,typeHiding,unchecked,unused,varargsCast -proceedOnError -bootclasspath '' -classpath $(compile_classpath) -d . @classes
-@FOUND_GCJX_TRUE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@@FOUND_KJC_FALSE@JAVAC = $(GCJX) -encoding UTF-8 -classpath .:$(USER_CLASSLIB) -d . @classes
+@FOUND_ECJ_TRUE@@FOUND_GCJX_FALSE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@@FOUND_KJC_FALSE@JAVAC = $(ECJ) -source 1.4 -encoding UTF-8 -warn:-deprecation,serial,unused -proceedOnError -bootclasspath '' -classpath $(compile_classpath) -d . @classes
+@FOUND_GCJX_TRUE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@@FOUND_KJC_FALSE@JAVAC = $(GCJX) -g -encoding UTF-8 -classpath .:$(USER_CLASSLIB) -d . @classes
 @FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@@FOUND_KJC_TRUE@JAVAC = $(KJC) -classpath .:$(USER_CLASSLIB) -d . @classes
-@FOUND_GCJ_FALSE@@FOUND_JIKES_TRUE@JAVAC = $(JIKES) +Pno-shadow +Pno-switchcheck +F $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(compile_classpath) -d . @classes
+@FOUND_GCJ_FALSE@@FOUND_JIKES_TRUE@JAVAC = $(JIKES) $(JIKESWARNINGS) +F $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(compile_classpath) -d . @classes
 
 # handling source to bytecode compiler programs like gcj, jikes  and kjc
 @FOUND_GCJ_TRUE@JAVAC = exit 1
@@ -526,13 +528,13 @@ clean-local:
 
 dist-hook:
        mkdir -p $(distdir)
-       cp -dfR $(top_srcdir)/gnu $(top_srcdir)/java $(top_srcdir)/javax $(top_srcdir)/org $(top_srcdir)/vm $(top_srcdir)/resource $(top_distdir)
+       cp -pdfR $(top_srcdir)/gnu $(top_srcdir)/java $(top_srcdir)/javax $(top_srcdir)/org $(top_srcdir)/vm $(top_srcdir)/resource $(distdir)/..
 # Delete not wanted files.
-       $(FIND) $(top_distdir)/gnu $(top_distdir)/java $(top_distdir)/javax $(top_distdir)/org $(top_distdir)/vm $(top_distdir)/resource -name CVS -print | xargs rm -fr
-       $(FIND) $(top_distdir)/gnu $(top_distdir)/java $(top_distdir)/javax $(top_distdir)/org $(top_distdir)/vm $(top_distdir)/resource -name .cvsignore -print | xargs rm -f
-       $(FIND) $(top_distdir)/gnu $(top_distdir)/java $(top_distdir)/javax $(top_distdir)/org $(top_distdir)/vm -name class-dependencies.conf -print | xargs rm -f
-       rm -f $(top_distdir)/gnu/classpath/Configuration.java
-       rm -f $(top_distdir)/java/util/LocaleData.java
+       $(FIND) $(distdir)/../gnu $(distdir)/../java $(distdir)/../javax $(distdir)/../org $(distdir)/../vm $(distdir)/../resource -name CVS -print | xargs rm -fr
+       $(FIND) $(distdir)/../gnu $(distdir)/../java $(distdir)/../javax $(distdir)/../org $(distdir)/../vm $(distdir)/../resource -name .cvsignore -print | xargs rm -f
+       $(FIND) $(distdir)/../gnu $(distdir)/../java $(distdir)/../javax $(distdir)/../org $(distdir)/../vm -name class-dependencies.conf -print | xargs rm -f
+       rm -f $(distdir)/../gnu/classpath/Configuration.java
+       rm -f $(distdir)/../java/util/LocaleData.java
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
index 9c3e882b250484aaeca5f937e4a0eb58c9ea6c85..39b3292e7403a3f64f100924552f9df8f9c88ccd 100644 (file)
@@ -9,11 +9,11 @@ destResDir=`pwd`
 for p in ${vmdirs}; do
        if test -d $p/META-INF; then
                (cd $p/META-INF; 
-                dirs=`find -name "CVS" -prune -o -type d -print`;
+                dirs=`find -name "CVS" -prune -o -type d -print`;
                 for u in ${dirs}; do
                         mkdir -p ${destMetaDir}/${u};
                 done;
-                files=`find -name "CVS" -prune -o -type f -print`;
+                files=`find -name "CVS" -prune -o -type f -print`;
                 for u in ${files}; do
                         cp ${u} ${destMetaDir}/${u};
                 done
@@ -21,7 +21,7 @@ for p in ${vmdirs}; do
        fi;
 
        (cd ${p};
-         resfiles=`find ${p} -name "*.properties"`
+         resfiles=`find . -name "*.properties"`
          resdirs=
          for i in ${resfiles}; do 
                  a=`basename ${i}`; 
index d4d8b63a0bee96fb7cf90fe9270c63a1b1071ee6..5eb05db43f5a34b18650e2c9840ba26b99e1f294 100644 (file)
@@ -419,7 +419,7 @@ else
     hardcode_direct=no
     hardcode_automatic=yes
     hardcode_shlibpath_var=unsupported
-    whole_archive_flag_spec='-all_load $convenience'
+    whole_archive_flag_spec=''
     link_all_deplibs=yes
     ;;
 
index e41321f89f316872bf9c99df6894bb6b01feb57d..96af881d5e7613abb9731e2429b1a5f0c00cb92a 100644 (file)
@@ -135,9 +135,18 @@ AC_DEFUN([CLASSPATH_CHECK_JIKES],
 
     JIKESENCODING=
     if test -n "`$JIKES --help 2>&1 | grep encoding`"; then
-       JIKESENCODING='-encoding UTF-8'
+      JIKESENCODING='-encoding UTF-8'
     fi
     AC_SUBST(JIKESENCODING)
+
+    JIKESWARNINGS="+Pno-switchcheck"
+    if test "x$JIKES_VERSION_MAJOR" = x"1" ; then
+      if ! test "x$JIKES_VERSION_MINOR" = x"19"; then
+        JIKESWARNINGS="$JIKESWARNINGS +Pno-shadow"
+      fi
+    fi
+    AC_SUBST(JIKESWARNINGS)
+
   fi
 ])
 
diff --git a/libjava/classpath/m4/ax_create_stdint_h.m4 b/libjava/classpath/m4/ax_create_stdint_h.m4
new file mode 100644 (file)
index 0000000..acffeb4
--- /dev/null
@@ -0,0 +1,690 @@
+dnl Taken from ac-archive ac-archive-5 module's CVS HEAD 
+dnl ac-archive is available at http://ac-archive.sf.net
+dnl URL of WebCVS of this m4 macros is:
+dnl http://cvs.sourceforge.net/viewcvs.py/ac-archive/ac-archive-5/guidod/
+dnl 
+dnl @synopsis AX_CREATE_STDINT_H [( HEADER-TO-GENERATE [, HEDERS-TO-CHECK])]
+dnl
+dnl the "ISO C9X: 7.18 Integer types <stdint.h>" section requires the
+dnl existence of an include file <stdint.h> that defines a set of
+dnl typedefs, especially uint8_t,int32_t,uintptr_t. Many older
+dnl installations will not provide this file, but some will have the
+dnl very same definitions in <inttypes.h>. In other enviroments we can
+dnl use the inet-types in <sys/types.h> which would define the typedefs
+dnl int8_t and u_int8_t respectivly.
+dnl
+dnl This macros will create a local "_stdint.h" or the headerfile given
+dnl as an argument. In many cases that file will just "#include
+dnl <stdint.h>" or "#include <inttypes.h>", while in other environments
+dnl it will provide the set of basic 'stdint's definitions/typedefs:
+dnl
+dnl   int8_t,uint8_t,int16_t,uint16_t,int32_t,uint32_t,intptr_t,uintptr_t
+dnl   int_least32_t.. int_fast32_t.. intmax_t
+dnl
+dnl which may or may not rely on the definitions of other files, or
+dnl using the AC_CHECK_SIZEOF macro to determine the actual sizeof each
+dnl type.
+dnl
+dnl if your header files require the stdint-types you will want to
+dnl create an installable file mylib-int.h that all your other
+dnl installable header may include. So if you have a library package
+dnl named "mylib", just use
+dnl
+dnl      AX_CREATE_STDINT_H(mylib-int.h)
+dnl
+dnl in configure.ac and go to install that very header file in
+dnl Makefile.am along with the other headers (mylib.h) - and the
+dnl mylib-specific headers can simply use "#include <mylib-int.h>" to
+dnl obtain the stdint-types.
+dnl
+dnl Remember, if the system already had a valid <stdint.h>, the
+dnl generated file will include it directly. No need for fuzzy
+dnl HAVE_STDINT_H things...
+dnl
+dnl @category C
+dnl @author Guido Draheim <guidod@gmx.de>
+dnl @version 2003-12-07
+dnl @license GPLWithACException
+
+AC_DEFUN([AX_CHECK_DATA_MODEL],[
+   AC_CHECK_SIZEOF(char)
+   AC_CHECK_SIZEOF(short)
+   AC_CHECK_SIZEOF(int)
+   AC_CHECK_SIZEOF(long)
+   AC_CHECK_SIZEOF(void*)
+   ac_cv_char_data_model=""
+   ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_char"
+   ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_short"
+   ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_int"
+   ac_cv_long_data_model=""
+   ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_int"
+   ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_long"
+   ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_voidp"
+   AC_MSG_CHECKING([data model])
+   case "$ac_cv_char_data_model/$ac_cv_long_data_model" in
+    122/242)     ac_cv_data_model="IP16"  ; n="standard 16bit machine" ;;
+    122/244)     ac_cv_data_model="LP32"  ; n="standard 32bit machine" ;;
+    122/*)       ac_cv_data_model="i16"   ; n="unusual int16 model" ;;
+    124/444)     ac_cv_data_model="ILP32" ; n="standard 32bit unixish" ;;
+    124/488)     ac_cv_data_model="LP64"  ; n="standard 64bit unixish" ;;
+    124/448)     ac_cv_data_model="LLP64" ; n="unusual 64bit unixish" ;;
+    124/*)       ac_cv_data_model="i32"   ; n="unusual int32 model" ;;
+    128/888)     ac_cv_data_model="ILP64" ; n="unusual 64bit numeric" ;;
+    128/*)       ac_cv_data_model="i64"   ; n="unusual int64 model" ;;
+    222/*2)      ac_cv_data_model="DSP16" ; n="strict 16bit dsptype" ;;
+    333/*3)      ac_cv_data_model="DSP24" ; n="strict 24bit dsptype" ;;
+    444/*4)      ac_cv_data_model="DSP32" ; n="strict 32bit dsptype" ;;
+    666/*6)      ac_cv_data_model="DSP48" ; n="strict 48bit dsptype" ;;
+    888/*8)      ac_cv_data_model="DSP64" ; n="strict 64bit dsptype" ;;
+    222/*|333/*|444/*|666/*|888/*) :
+                 ac_cv_data_model="iDSP"  ; n="unusual dsptype" ;;
+     *)          ac_cv_data_model="none"  ; n="very unusual model" ;;
+   esac
+   AC_MSG_RESULT([$ac_cv_data_model ($ac_cv_long_data_model, $n)])
+])
+
+dnl AX_CHECK_HEADER_STDINT_X([HEADERLIST][,ACTION-IF])
+AC_DEFUN([AX_CHECK_HEADER_STDINT_X],[
+AC_CACHE_CHECK([for stdint uintptr_t], [ac_cv_header_stdint_x],[
+ ac_cv_header_stdint_x="" # the 1997 typedefs (inttypes.h)
+  AC_MSG_RESULT([(..)])
+  for i in m4_ifval([$1],[$1],[stdint.h inttypes.h sys/inttypes.h]) ; do
+   unset ac_cv_type_uintptr_t
+   unset ac_cv_type_uint64_t
+   AC_CHECK_TYPE(uintptr_t,[ac_cv_header_stdint_x=$i],continue,[#include <$i>])
+   AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>])
+   m4_ifvaln([$1],[$1]) break
+  done
+  AC_MSG_CHECKING([for stdint uintptr_t])
+ ])
+])
+
+AC_DEFUN([AX_CHECK_HEADER_STDINT_O],[
+AC_CACHE_CHECK([for stdint uint32_t], [ac_cv_header_stdint_o],[
+ ac_cv_header_stdint_o="" # the 1995 typedefs (sys/inttypes.h)
+  AC_MSG_RESULT([(..)])
+  for i in m4_ifval([$1],[$1],[inttypes.h sys/inttypes.h stdint.h]) ; do
+   unset ac_cv_type_uint32_t
+   unset ac_cv_type_uint64_t
+   AC_CHECK_TYPE(uint32_t,[ac_cv_header_stdint_o=$i],continue,[#include <$i>])
+   AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>])
+   m4_ifvaln([$1],[$1]) break
+   break;
+  done
+  AC_MSG_CHECKING([for stdint uint32_t])
+ ])
+])
+
+AC_DEFUN([AX_CHECK_HEADER_STDINT_U],[
+AC_CACHE_CHECK([for stdint u_int32_t], [ac_cv_header_stdint_u],[
+ ac_cv_header_stdint_u="" # the BSD typedefs (sys/types.h)
+  AC_MSG_RESULT([(..)])
+  for i in m4_ifval([$1],[$1],[sys/types.h inttypes.h sys/inttypes.h]) ; do
+   unset ac_cv_type_u_int32_t
+   unset ac_cv_type_u_int64_t
+   AC_CHECK_TYPE(u_int32_t,[ac_cv_header_stdint_u=$i],continue,[#include <$i>])
+   AC_CHECK_TYPE(u_int64_t,[and64="/u_int64_t"],[and64=""],[#include<$i>])
+   m4_ifvaln([$1],[$1]) break
+   break;
+  done
+  AC_MSG_CHECKING([for stdint u_int32_t])
+ ])
+])
+
+AC_DEFUN([AX_CREATE_STDINT_H],
+[# ------ AX CREATE STDINT H -------------------------------------
+AC_MSG_CHECKING([for stdint types])
+ac_stdint_h=`echo ifelse($1, , _stdint.h, $1)`
+# try to shortcircuit - if the default include path of the compiler
+# can find a "stdint.h" header then we assume that all compilers can.
+AC_CACHE_VAL([ac_cv_header_stdint_t],[
+old_CXXFLAGS="$CXXFLAGS" ; CXXFLAGS=""
+old_CPPFLAGS="$CPPFLAGS" ; CPPFLAGS=""
+old_CFLAGS="$CFLAGS"     ; CFLAGS=""
+AC_TRY_COMPILE([#include <stdint.h>],[int_least32_t v = 0;],
+[ac_cv_stdint_result="(assuming C99 compatible system)"
+ ac_cv_header_stdint_t="stdint.h"; ],
+[ac_cv_header_stdint_t=""])
+CXXFLAGS="$old_CXXFLAGS"
+CPPFLAGS="$old_CPPFLAGS"
+CFLAGS="$old_CFLAGS" ])
+
+v="... $ac_cv_header_stdint_h"
+if test "$ac_stdint_h" = "stdint.h" ; then
+ AC_MSG_RESULT([(are you sure you want them in ./stdint.h?)])
+elif test "$ac_stdint_h" = "inttypes.h" ; then
+ AC_MSG_RESULT([(are you sure you want them in ./inttypes.h?)])
+elif test "_$ac_cv_header_stdint_t" = "_" ; then
+ AC_MSG_RESULT([(putting them into $ac_stdint_h)$v])
+else
+ ac_cv_header_stdint="$ac_cv_header_stdint_t"
+ AC_MSG_RESULT([$ac_cv_header_stdint (shortcircuit)])
+fi
+
+if test "_$ac_cv_header_stdint_t" = "_" ; then # can not shortcircuit..
+
+dnl .....intro message done, now do a few system checks.....
+dnl btw, all old CHECK_TYPE macros do automatically "DEFINE" a type,
+dnl therefore we use the autoconf implementation detail CHECK_TYPE_NEW
+dnl instead that is triggered with 3 or more arguments (see types.m4)
+
+inttype_headers=`echo $2 | sed -e 's/,/ /g'`
+
+ac_cv_stdint_result="(no helpful system typedefs seen)"
+AX_CHECK_HEADER_STDINT_X(dnl
+   stdint.h inttypes.h sys/inttypes.h $inttype_headers,
+   ac_cv_stdint_result="(seen uintptr_t$and64 in $i)")
+
+if test "_$ac_cv_header_stdint_x" = "_" ; then
+AX_CHECK_HEADER_STDINT_O(dnl,
+   inttypes.h sys/inttypes.h stdint.h $inttype_headers,
+   ac_cv_stdint_result="(seen uint32_t$and64 in $i)")
+fi
+
+if test "_$ac_cv_header_stdint_x" = "_" ; then
+if test "_$ac_cv_header_stdint_o" = "_" ; then
+AX_CHECK_HEADER_STDINT_U(dnl,
+   sys/types.h inttypes.h sys/inttypes.h $inttype_headers,
+   ac_cv_stdint_result="(seen u_int32_t$and64 in $i)")
+fi fi
+
+dnl if there was no good C99 header file, do some typedef checks...
+if test "_$ac_cv_header_stdint_x" = "_" ; then
+   AC_MSG_CHECKING([for stdint datatype model])
+   AC_MSG_RESULT([(..)])
+   AX_CHECK_DATA_MODEL
+fi
+
+if test "_$ac_cv_header_stdint_x" != "_" ; then
+   ac_cv_header_stdint="$ac_cv_header_stdint_x"
+elif  test "_$ac_cv_header_stdint_o" != "_" ; then
+   ac_cv_header_stdint="$ac_cv_header_stdint_o"
+elif  test "_$ac_cv_header_stdint_u" != "_" ; then
+   ac_cv_header_stdint="$ac_cv_header_stdint_u"
+else
+   ac_cv_header_stdint="stddef.h"
+fi
+
+AC_MSG_CHECKING([for extra inttypes in chosen header])
+AC_MSG_RESULT([($ac_cv_header_stdint)])
+dnl see if int_least and int_fast types are present in _this_ header.
+unset ac_cv_type_int_least32_t
+unset ac_cv_type_int_fast32_t
+AC_CHECK_TYPE(int_least32_t,,,[#include <$ac_cv_header_stdint>])
+AC_CHECK_TYPE(int_fast32_t,,,[#include<$ac_cv_header_stdint>])
+AC_CHECK_TYPE(intmax_t,,,[#include <$ac_cv_header_stdint>])
+
+fi # shortcircut to system "stdint.h"
+# ------------------ PREPARE VARIABLES ------------------------------
+if test "$GCC" = "yes" ; then
+ac_cv_stdint_message="using gnu compiler "`$CC --version | head -1`
+else
+ac_cv_stdint_message="using $CC"
+fi
+
+AC_MSG_RESULT([make use of $ac_cv_header_stdint in $ac_stdint_h dnl
+$ac_cv_stdint_result])
+
+dnl -----------------------------------------------------------------
+# ----------------- DONE inttypes.h checks START header -------------
+AC_CONFIG_COMMANDS([$ac_stdint_h],[
+AC_MSG_NOTICE(creating $ac_stdint_h : $_ac_stdint_h)
+ac_stdint=$tmp/_stdint.h
+
+echo "#ifndef" $_ac_stdint_h >$ac_stdint
+echo "#define" $_ac_stdint_h "1" >>$ac_stdint
+echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint
+echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint
+echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint
+if test "_$ac_cv_header_stdint_t" != "_" ; then
+echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint
+echo "#include <stdint.h>" >>$ac_stdint
+echo "#endif" >>$ac_stdint
+echo "#endif" >>$ac_stdint
+else
+
+cat >>$ac_stdint <<STDINT_EOF
+
+/* ................... shortcircuit part ........................... */
+
+#if defined HAVE_STDINT_H || defined _STDINT_HAVE_STDINT_H
+#include <stdint.h>
+#else
+#include <stddef.h>
+
+/* .................... configured part ............................ */
+
+STDINT_EOF
+
+echo "/* whether we have a C99 compatible stdint header file */" >>$ac_stdint
+if test "_$ac_cv_header_stdint_x" != "_" ; then
+  ac_header="$ac_cv_header_stdint_x"
+  echo "#define _STDINT_HEADER_INTPTR" '"'"$ac_header"'"' >>$ac_stdint
+else
+  echo "/* #undef _STDINT_HEADER_INTPTR */" >>$ac_stdint
+fi
+
+echo "/* whether we have a C96 compatible inttypes header file */" >>$ac_stdint
+if  test "_$ac_cv_header_stdint_o" != "_" ; then
+  ac_header="$ac_cv_header_stdint_o"
+  echo "#define _STDINT_HEADER_UINT32" '"'"$ac_header"'"' >>$ac_stdint
+else
+  echo "/* #undef _STDINT_HEADER_UINT32 */" >>$ac_stdint
+fi
+
+echo "/* whether we have a BSD compatible inet types header */" >>$ac_stdint
+if  test "_$ac_cv_header_stdint_u" != "_" ; then
+  ac_header="$ac_cv_header_stdint_u"
+  echo "#define _STDINT_HEADER_U_INT32" '"'"$ac_header"'"' >>$ac_stdint
+else
+  echo "/* #undef _STDINT_HEADER_U_INT32 */" >>$ac_stdint
+fi
+
+echo "" >>$ac_stdint
+
+if test "_$ac_header" != "_" ; then if test "$ac_header" != "stddef.h" ; then
+  echo "#include <$ac_header>" >>$ac_stdint
+  echo "" >>$ac_stdint
+fi fi
+
+echo "/* which 64bit typedef has been found */" >>$ac_stdint
+if test "$ac_cv_type_uint64_t" = "yes" ; then
+echo "#define   _STDINT_HAVE_UINT64_T" "1"  >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_UINT64_T */" >>$ac_stdint
+fi
+if test "$ac_cv_type_u_int64_t" = "yes" ; then
+echo "#define   _STDINT_HAVE_U_INT64_T" "1"  >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_U_INT64_T */" >>$ac_stdint
+fi
+echo "" >>$ac_stdint
+
+echo "/* which type model has been detected */" >>$ac_stdint
+if test "_$ac_cv_char_data_model" != "_" ; then
+echo "#define   _STDINT_CHAR_MODEL" "$ac_cv_char_data_model" >>$ac_stdint
+echo "#define   _STDINT_LONG_MODEL" "$ac_cv_long_data_model" >>$ac_stdint
+else
+echo "/* #undef _STDINT_CHAR_MODEL // skipped */" >>$ac_stdint
+echo "/* #undef _STDINT_LONG_MODEL // skipped */" >>$ac_stdint
+fi
+echo "" >>$ac_stdint
+
+echo "/* whether int_least types were detected */" >>$ac_stdint
+if test "$ac_cv_type_int_least32_t" = "yes"; then
+echo "#define   _STDINT_HAVE_INT_LEAST32_T" "1"  >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_INT_LEAST32_T */" >>$ac_stdint
+fi
+echo "/* whether int_fast types were detected */" >>$ac_stdint
+if test "$ac_cv_type_int_fast32_t" = "yes"; then
+echo "#define   _STDINT_HAVE_INT_FAST32_T" "1" >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_INT_FAST32_T */" >>$ac_stdint
+fi
+echo "/* whether intmax_t type was detected */" >>$ac_stdint
+if test "$ac_cv_type_intmax_t" = "yes"; then
+echo "#define   _STDINT_HAVE_INTMAX_T" "1" >>$ac_stdint
+else
+echo "/* #undef _STDINT_HAVE_INTMAX_T */" >>$ac_stdint
+fi
+echo "" >>$ac_stdint
+
+  cat >>$ac_stdint <<STDINT_EOF
+/* .................... detections part ............................ */
+
+/* whether we need to define bitspecific types from compiler base types */
+#ifndef _STDINT_HEADER_INTPTR
+#ifndef _STDINT_HEADER_UINT32
+#ifndef _STDINT_HEADER_U_INT32
+#define _STDINT_NEED_INT_MODEL_T
+#else
+#define _STDINT_HAVE_U_INT_TYPES
+#endif
+#endif
+#endif
+
+#ifdef _STDINT_HAVE_U_INT_TYPES
+#undef _STDINT_NEED_INT_MODEL_T
+#endif
+
+#ifdef  _STDINT_CHAR_MODEL
+#if     _STDINT_CHAR_MODEL+0 == 122 || _STDINT_CHAR_MODEL+0 == 124
+#ifndef _STDINT_BYTE_MODEL
+#define _STDINT_BYTE_MODEL 12
+#endif
+#endif
+#endif
+
+#ifndef _STDINT_HAVE_INT_LEAST32_T
+#define _STDINT_NEED_INT_LEAST_T
+#endif
+
+#ifndef _STDINT_HAVE_INT_FAST32_T
+#define _STDINT_NEED_INT_FAST_T
+#endif
+
+#ifndef _STDINT_HEADER_INTPTR
+#define _STDINT_NEED_INTPTR_T
+#ifndef _STDINT_HAVE_INTMAX_T
+#define _STDINT_NEED_INTMAX_T
+#endif
+#endif
+
+
+/* .................... definition part ............................ */
+
+/* some system headers have good uint64_t */
+#ifndef _HAVE_UINT64_T
+#if     defined _STDINT_HAVE_UINT64_T  || defined HAVE_UINT64_T
+#define _HAVE_UINT64_T
+#elif   defined _STDINT_HAVE_U_INT64_T || defined HAVE_U_INT64_T
+#define _HAVE_UINT64_T
+typedef u_int64_t uint64_t;
+#endif
+#endif
+
+#ifndef _HAVE_UINT64_T
+/* .. here are some common heuristics using compiler runtime specifics */
+#if defined __STDC_VERSION__ && defined __STDC_VERSION__ >= 199901L
+#define _HAVE_UINT64_T
+#define _HAVE_LONGLONG_UINT64_T
+typedef long long int64_t;
+typedef unsigned long long uint64_t;
+
+#elif !defined __STRICT_ANSI__
+#if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__
+#define _HAVE_UINT64_T
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+
+#elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__
+/* note: all ELF-systems seem to have loff-support which needs 64-bit */
+#if !defined _NO_LONGLONG
+#define _HAVE_UINT64_T
+#define _HAVE_LONGLONG_UINT64_T
+typedef long long int64_t;
+typedef unsigned long long uint64_t;
+#endif
+
+#elif defined __alpha || (defined __mips && defined _ABIN32)
+#if !defined _NO_LONGLONG
+typedef long int64_t;
+typedef unsigned long uint64_t;
+#endif
+  /* compiler/cpu type to define int64_t */
+#endif
+#endif
+#endif
+
+#if defined _STDINT_HAVE_U_INT_TYPES
+/* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */
+typedef u_int8_t uint8_t;
+typedef u_int16_t uint16_t;
+typedef u_int32_t uint32_t;
+
+/* glibc compatibility */
+#ifndef __int8_t_defined
+#define __int8_t_defined
+#endif
+#endif
+
+#ifdef _STDINT_NEED_INT_MODEL_T
+/* we must guess all the basic types. Apart from byte-adressable system, */
+/* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */
+/* (btw, those nibble-addressable systems are way off, or so we assume) */
+
+dnl   /* have a look at "64bit and data size neutrality" at */
+dnl   /* http://unix.org/version2/whatsnew/login_64bit.html */
+dnl   /* (the shorthand "ILP" types always have a "P" part) */
+
+#if defined _STDINT_BYTE_MODEL
+#if _STDINT_LONG_MODEL+0 == 242
+/* 2:4:2 =  IP16 = a normal 16-bit system                */
+typedef unsigned char   uint8_t;
+typedef unsigned short  uint16_t;
+typedef unsigned long   uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef          char    int8_t;
+typedef          short   int16_t;
+typedef          long    int32_t;
+#endif
+#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444
+/* 2:4:4 =  LP32 = a 32-bit system derived from a 16-bit */
+/* 4:4:4 = ILP32 = a normal 32-bit system                */
+typedef unsigned char   uint8_t;
+typedef unsigned short  uint16_t;
+typedef unsigned int    uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef          char    int8_t;
+typedef          short   int16_t;
+typedef          int     int32_t;
+#endif
+#elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488
+/* 4:8:4 =  IP32 = a 32-bit system prepared for 64-bit    */
+/* 4:8:8 =  LP64 = a normal 64-bit system                 */
+typedef unsigned char   uint8_t;
+typedef unsigned short  uint16_t;
+typedef unsigned int    uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef          char    int8_t;
+typedef          short   int16_t;
+typedef          int     int32_t;
+#endif
+/* this system has a "long" of 64bit */
+#ifndef _HAVE_UINT64_T
+#define _HAVE_UINT64_T
+typedef unsigned long   uint64_t;
+typedef          long    int64_t;
+#endif
+#elif _STDINT_LONG_MODEL+0 == 448
+/*      LLP64   a 64-bit system derived from a 32-bit system */
+typedef unsigned char   uint8_t;
+typedef unsigned short  uint16_t;
+typedef unsigned int    uint32_t;
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef          char    int8_t;
+typedef          short   int16_t;
+typedef          int     int32_t;
+#endif
+/* assuming the system has a "long long" */
+#ifndef _HAVE_UINT64_T
+#define _HAVE_UINT64_T
+#define _HAVE_LONGLONG_UINT64_T
+typedef unsigned long long uint64_t;
+typedef          long long  int64_t;
+#endif
+#else
+#define _STDINT_NO_INT32_T
+#endif
+#else
+#define _STDINT_NO_INT8_T
+#define _STDINT_NO_INT32_T
+#endif
+#endif
+
+/*
+ * quote from SunOS-5.8 sys/inttypes.h:
+ * Use at your own risk.  As of February 1996, the committee is squarely
+ * behind the fixed sized types; the "least" and "fast" types are still being
+ * discussed.  The probability that the "fast" types may be removed before
+ * the standard is finalized is high enough that they are not currently
+ * implemented.
+ */
+
+#if defined _STDINT_NEED_INT_LEAST_T
+typedef  int8_t    int_least8_t;
+typedef  int16_t   int_least16_t;
+typedef  int32_t   int_least32_t;
+#ifdef _HAVE_UINT64_T
+typedef  int64_t   int_least64_t;
+#endif
+
+typedef uint8_t   uint_least8_t;
+typedef uint16_t  uint_least16_t;
+typedef uint32_t  uint_least32_t;
+#ifdef _HAVE_UINT64_T
+typedef uint64_t  uint_least64_t;
+#endif
+  /* least types */
+#endif
+
+#if defined _STDINT_NEED_INT_FAST_T
+typedef  int8_t    int_fast8_t;
+typedef  int       int_fast16_t;
+typedef  int32_t   int_fast32_t;
+#ifdef _HAVE_UINT64_T
+typedef  int64_t   int_fast64_t;
+#endif
+
+typedef uint8_t   uint_fast8_t;
+typedef unsigned  uint_fast16_t;
+typedef uint32_t  uint_fast32_t;
+#ifdef _HAVE_UINT64_T
+typedef uint64_t  uint_fast64_t;
+#endif
+  /* fast types */
+#endif
+
+#ifdef _STDINT_NEED_INTMAX_T
+#ifdef _HAVE_UINT64_T
+typedef  int64_t       intmax_t;
+typedef uint64_t      uintmax_t;
+#else
+typedef          long  intmax_t;
+typedef unsigned long uintmax_t;
+#endif
+#endif
+
+#ifdef _STDINT_NEED_INTPTR_T
+#ifndef __intptr_t_defined
+#define __intptr_t_defined
+/* we encourage using "long" to store pointer values, never use "int" ! */
+#if   _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484
+typedef  unsigned int   uintptr_t;
+typedef           int    intptr_t;
+#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444
+typedef  unsigned long  uintptr_t;
+typedef           long   intptr_t;
+#elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T
+typedef        uint64_t uintptr_t;
+typedef         int64_t  intptr_t;
+#else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */
+typedef  unsigned long  uintptr_t;
+typedef           long   intptr_t;
+#endif
+#endif
+#endif
+
+/* The ISO C99 standard specifies that in C++ implementations these
+   should only be defined if explicitly requested.  */
+#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
+#ifndef UINT32_C
+
+/* Signed.  */
+# define INT8_C(c)      c
+# define INT16_C(c)     c
+# define INT32_C(c)     c
+# ifdef _HAVE_LONGLONG_UINT64_T
+#  define INT64_C(c)    c ## L
+# else
+#  define INT64_C(c)    c ## LL
+# endif
+
+/* Unsigned.  */
+# define UINT8_C(c)     c ## U
+# define UINT16_C(c)    c ## U
+# define UINT32_C(c)    c ## U
+# ifdef _HAVE_LONGLONG_UINT64_T
+#  define UINT64_C(c)   c ## UL
+# else
+#  define UINT64_C(c)   c ## ULL
+# endif
+
+/* Maximal type.  */
+# ifdef _HAVE_LONGLONG_UINT64_T
+#  define INTMAX_C(c)   c ## L
+#  define UINTMAX_C(c)  c ## UL
+# else
+#  define INTMAX_C(c)   c ## LL
+#  define UINTMAX_C(c)  c ## ULL
+# endif
+
+  /* literalnumbers */
+#endif
+#endif
+
+/* These limits are merily those of a two complement byte-oriented system */
+
+/* Minimum of signed integral types.  */
+# define INT8_MIN               (-128)
+# define INT16_MIN              (-32767-1)
+# define INT32_MIN              (-2147483647-1)
+# define INT64_MIN              (-__INT64_C(9223372036854775807)-1)
+/* Maximum of signed integral types.  */
+# define INT8_MAX               (127)
+# define INT16_MAX              (32767)
+# define INT32_MAX              (2147483647)
+# define INT64_MAX              (__INT64_C(9223372036854775807))
+
+/* Maximum of unsigned integral types.  */
+# define UINT8_MAX              (255)
+# define UINT16_MAX             (65535)
+# define UINT32_MAX             (4294967295U)
+# define UINT64_MAX             (__UINT64_C(18446744073709551615))
+
+/* Minimum of signed integral types having a minimum size.  */
+# define INT_LEAST8_MIN         INT8_MIN
+# define INT_LEAST16_MIN        INT16_MIN
+# define INT_LEAST32_MIN        INT32_MIN
+# define INT_LEAST64_MIN        INT64_MIN
+/* Maximum of signed integral types having a minimum size.  */
+# define INT_LEAST8_MAX         INT8_MAX
+# define INT_LEAST16_MAX        INT16_MAX
+# define INT_LEAST32_MAX        INT32_MAX
+# define INT_LEAST64_MAX        INT64_MAX
+
+/* Maximum of unsigned integral types having a minimum size.  */
+# define UINT_LEAST8_MAX        UINT8_MAX
+# define UINT_LEAST16_MAX       UINT16_MAX
+# define UINT_LEAST32_MAX       UINT32_MAX
+# define UINT_LEAST64_MAX       UINT64_MAX
+
+  /* shortcircuit*/
+#endif
+  /* once */
+#endif
+#endif
+STDINT_EOF
+fi
+    if cmp -s $ac_stdint_h $ac_stdint 2>/dev/null; then
+      AC_MSG_NOTICE([$ac_stdint_h is unchanged])
+    else
+      ac_dir=`AS_DIRNAME(["$ac_stdint_h"])`
+      AS_MKDIR_P(["$ac_dir"])
+      rm -f $ac_stdint_h
+      mv $ac_stdint $ac_stdint_h
+    fi
+],[# variables for create stdint.h replacement
+PACKAGE="$PACKAGE"
+VERSION="$VERSION"
+ac_stdint_h="$ac_stdint_h"
+_ac_stdint_h=AS_TR_CPP(_$PACKAGE-$ac_stdint_h)
+ac_cv_stdint_message="$ac_cv_stdint_message"
+ac_cv_header_stdint_t="$ac_cv_header_stdint_t"
+ac_cv_header_stdint_x="$ac_cv_header_stdint_x"
+ac_cv_header_stdint_o="$ac_cv_header_stdint_o"
+ac_cv_header_stdint_u="$ac_cv_header_stdint_u"
+ac_cv_type_uint64_t="$ac_cv_type_uint64_t"
+ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t"
+ac_cv_char_data_model="$ac_cv_char_data_model"
+ac_cv_long_data_model="$ac_cv_long_data_model"
+ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t"
+ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t"
+ac_cv_type_intmax_t="$ac_cv_type_intmax_t"
+])
+])
index bfa05c800d202009992b7ba142399db649bb2559..507a9664293ac2421538347f7325aa53e6aabdf4 100644 (file)
@@ -41,10 +41,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -148,6 +149,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index e3e3eecd2b7534ec2a8d8f6fd81bbfdc616bfdf0..545b0f86d5998f2a254c5ed728a754885cb3e87f 100644 (file)
@@ -15,7 +15,6 @@ libfdlibm_la_SOURCES =  \
                        e_sqrt.c \
                        fdlibm.h \
                        ieeefp.h \
-                       java-assert.h \
                        k_cos.c \
                        k_rem_pio2.c \
                        k_sin.c \
@@ -44,7 +43,8 @@ libfdlibm_la_SOURCES =  \
                        w_log.c \
                        w_pow.c \
                        w_remainder.c \
-                       w_sqrt.c 
+                       w_sqrt.c \
+                       namespace.h
 
 AM_LDFLAGS = @CLASSPATH_MODULE@ 
 
index 5d53fa66bc47d9e1e04096783e689c63b2a9ea62..b58bb6326d3f5d25e0555f360dbd15a03885aebc 100644 (file)
@@ -44,10 +44,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -167,6 +168,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -287,7 +289,6 @@ libfdlibm_la_SOURCES = \
                        e_sqrt.c \
                        fdlibm.h \
                        ieeefp.h \
-                       java-assert.h \
                        k_cos.c \
                        k_rem_pio2.c \
                        k_sin.c \
@@ -316,7 +317,8 @@ libfdlibm_la_SOURCES = \
                        w_log.c \
                        w_pow.c \
                        w_remainder.c \
-                       w_sqrt.c 
+                       w_sqrt.c \
+                       namespace.h
 
 AM_LDFLAGS = @CLASSPATH_MODULE@ 
 all: all-am
index 156a03c1e45b34d822eb83da30e10866f513e8cd..13ee449d78e34c05e1b760243122add4fbfefaa3 100644 (file)
@@ -24,6 +24,8 @@
 
 /* GCJ LOCAL: Include files.  */
 #include "ieeefp.h"
+/* CLASSPATH LOCAL: */
+#include "namespace.h"
 
 #include "mprec.h"
 
@@ -93,7 +95,11 @@ extern double erf __P((double));
 extern double erfc __P((double));
 extern double gamma __P((double));
 extern double hypot __P((double, double));
-extern int isnan __P((double));
+
+#if !defined(isnan) && !defined(HAVE_ISNAN)
+#define isnan(x) ((x) != (x))
+#endif
+
 extern int finite __P((double));
 extern double j0 __P((double));
 extern double j1 __P((double));
index 405baab5840ca51de9bda3d655d40af3def01a8a..1dda99b3280807126a6b3c73b1493c1af722b8b0 100644 (file)
 #define __IEEE_LITTLE_ENDIAN
 #endif
 
-#if defined (__PPC__) || defined (__ppc__) || defined (__ppc64__)
-#if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX) \
-    || defined (__APPLE__)
+#if defined (__PPC__) || defined (__ppc__) || defined (__powerpc__) || defined (__ppc64__)
+#if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX) || defined (__BIG_ENDIAN__)|| defined (__APPLE__)
 #define __IEEE_BIG_ENDIAN
 #else
 #if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(__WIN32__) && __WIN32__)
diff --git a/libjava/classpath/native/fdlibm/java-assert.h b/libjava/classpath/native/fdlibm/java-assert.h
deleted file mode 100644 (file)
index ad512ad..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* java-assert.h - Header file holding assertion definitions.  -*- c++ -*- */
-
-/* Copyright (C) 1998, 1999  Free Software Foundation
-
-   This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
-details.  */
-
-#ifndef __JAVA_ASSERT_H__
-#define __JAVA_ASSERT_H__
-
-#include <config.h>
-
-/* This is a libgcj implementation header. */
-
-void _Jv_Abort (const char *, const char *, int, const char *)
-  __attribute__ ((__noreturn__));
-
-#ifdef DEBUG
-#define _Jv_AssertDoCall(Message) _Jv_Abort (__FUNCTION__, __FILE__, __LINE__, Message)
-
-#define JvAssertMessage(Expr, Message) \
-   do { if (! (Expr)) _Jv_AssertDoCall (Message); } while (0)
-#define JvAssert(Expr) \
-   do { if (! (Expr)) _Jv_AssertDoCall (# Expr); } while (0)
-
-#define JvFail(Message) _Jv_AssertDoCall (Message)
-
-#else /* DEBUG */
-
-#define _Jv_AssertDoCall(Message)
-#define JvAssertMessage(Expr, Message)
-#define JvAssert(Expr)
-#define JvFail(Message) _Jv_Abort (0, 0, 0, Message)
-
-#endif /* not DEBUG */
-
-#endif /* __JAVA_ASSERT_H__ */
index 00679ed391833932d0b9affbb60b75cb8689a8bf..0badf60c438c955e2fd22d381677106446ed37a2 100644 (file)
@@ -80,9 +80,9 @@
  *     down depends on the machine and the number being converted.
  */
 
+#include <assert.h>
 #include <stdlib.h>
 #include <string.h>
-#include <java-assert.h>
 #include "mprec.h"
 
 /* reent.c knows this value */
@@ -97,12 +97,14 @@ _DEFUN (Balloc, (ptr, k), struct _Jv_reent *ptr _AND int k)
   int i = 0;
   int j = 1;
 
-  JvAssert ((1 << k) < MAX_BIGNUM_WDS);
+  /* FIXME - assert disabled because of PR classpath/23863
+   * assert ((1 << k) < MAX_BIGNUM_WDS);
+   */
 
   while ((ptr->_allocation_map & j) && i < MAX_BIGNUMS)
     i++, j <<= 1;
 
-  JvAssert (i < MAX_BIGNUMS);
+  assert (i < MAX_BIGNUMS);
 
   if (i >= MAX_BIGNUMS) 
     return NULL;
@@ -124,7 +126,7 @@ _DEFUN (Bfree, (ptr, v), struct _Jv_reent *ptr _AND _Jv_Bigint * v)
 
   i = v - ptr->_freelist;
 
-  JvAssert (i >= 0 && i < MAX_BIGNUMS);
+  assert (i >= 0 && i < MAX_BIGNUMS);
 
   if (i >= 0 && i < MAX_BIGNUMS)
     ptr->_allocation_map &= ~ (1 << i);
index f250619b0221af8a15e5e025ded47406db81f9e7..cd8f928a83898f50e0d8006d9281d64b62f7f85e 100644 (file)
 #define __CLASSPATH_MPREC_H__
 
 #include <config.h>
+#include "config-int.h"
 #include "ieeefp.h"
-
-#if defined HAVE_STDINT_H
-#include <stdint.h>
-#elif defined HAVE_INTTYPES_H
-#include <inttypes.h>
-#endif
+/* CLASSPATH LOCAL */
+#include "namespace.h"
 
 #if defined HAVE_SYS_TYPES_H
 #include <sys/types.h>
 
 #ifdef __cplusplus
 extern "C" {
-#endif
-
-/* ISO C99 int type declarations */
-
-#if !defined HAVE_INT32_DEFINED && defined HAVE_BSD_INT32_DEFINED
-typedef u_int32_t uint32_t;
-#endif
-
-#if !defined HAVE_BSD_INT32_DEFINED && !defined HAVE_INT32_DEFINED
-/* FIXME this could have problems with systems that don't define SI to be 4 */
-typedef int int32_t __attribute__((mode(SI)));
-
-/* This is a blatant hack: on Solaris 2.5, pthread.h defines uint32_t
-   in pthread.h, which we sometimes include.  We protect our
-   definition the same way Solaris 2.5 does, to avoid redefining it.  */
-#  ifndef _UINT32_T
-typedef unsigned int uint32_t __attribute__((mode(SI)));
-#  endif
 #endif
 
   /* These typedefs are true for the targets running Java. */
@@ -84,6 +63,7 @@ typedef unsigned int uint32_t __attribute__((mode(SI)));
 
 #ifdef DEBUG
 #include "stdio.h"
+#include <stdlib.h>
 #define Bug(x) {fprintf(stderr, "%s\n", x); exit(1);}
 #endif
 
diff --git a/libjava/classpath/native/fdlibm/namespace.h b/libjava/classpath/native/fdlibm/namespace.h
new file mode 100644 (file)
index 0000000..02da970
--- /dev/null
@@ -0,0 +1,3 @@
+/* GCJ LOCAL We don't use the renaming here, so this file is empty for us.
+ * Warning ! This is a generated file. Use build_mathnamespace to regenerate it
+ */
index 1fa178b10d94371b7468097d342e01b04430ced8..2c8ffe855d9f65c2c3ec4bf849b28643d0c6abbc 100644 (file)
@@ -44,10 +44,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -161,6 +162,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index 79d9fa7ab50638c7e5c7dc672c0c28cc04f935f1..d7cccedba92a8eac44677599090d9e59ac52728d 100644 (file)
@@ -41,10 +41,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -148,6 +149,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index 9531df7673cdadc3409b5240589ee50340c098ca..5e15f78dd86241ad454132885ae65abbc06137a9 100644 (file)
@@ -44,10 +44,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -160,6 +161,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index aacbe8900a2e2d366c12ab2717bf53c236bb9978..dd6ca06a70e4330d893e3f153fd4c39ddbb5f6ec 100644 (file)
@@ -43,7 +43,9 @@ exception statement from your version. */
 #include <jcl.h>
 
 #ifndef __GNUC__
-#define __attribute__(x)       /* nothing */
+  #ifndef __attribute__
+    #define __attribute__(x)   /* nothing */
+  #endif
 #endif
 
 JNIEXPORT void JNICALL
index 77ce68f045870d24e0c75287db055d25a458c5d2..0296ce81fd1f5d8ef1613a71f7813d127644ac8b 100644 (file)
@@ -44,10 +44,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -238,6 +239,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index cd7eee614b0524d942c8819fab32d2190df46f36..30f2d5e24cd8233b7696815ee44783f9ff42704d 100644 (file)
@@ -291,6 +291,10 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics
   const char *cstr = NULL;
   jdouble *native_metrics = NULL;  
   PangoRectangle log;
+  PangoRectangle log2;
+  int line_count = 0;
+  int i = 0;
+  int width = 0;
 
   gdk_threads_enter();
 
@@ -299,9 +303,17 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics
 
   cstr = (*env)->GetStringUTFChars (env, str, NULL);
   g_assert(cstr != NULL);
-
+  
   pango_layout_set_text (pfont->layout, cstr, -1);
   pango_layout_get_extents (pfont->layout, NULL, &log);
+  
+  line_count = pango_layout_get_line_count (pfont->layout);
+  for (i = 0; i < line_count; i++)
+   {
+     pango_layout_line_get_extents (pango_layout_get_line (pfont->layout, i), 
+       NULL, &log2);
+     width += log2.width;
+   }
 
   (*env)->ReleaseStringUTFChars (env, str, cstr);  
   pango_layout_set_text (pfont->layout, "", -1);
@@ -315,12 +327,12 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics
   native_metrics[TEXT_METRICS_Y_BEARING] 
     = PANGO_PIXELS( ((double)log.y) );
 
-  native_metrics[TEXT_METRICS_WIDTH] 
-    = PANGO_PIXELS( ((double)log.width) );
-
   native_metrics[TEXT_METRICS_HEIGHT] 
     = PANGO_PIXELS( ((double)log.height) );
 
+  native_metrics[TEXT_METRICS_WIDTH]
+    = PANGO_PIXELS( ((double)width) );
+
   native_metrics[TEXT_METRICS_X_ADVANCE] 
     = PANGO_PIXELS( ((double) (log.x + log.width)) );
 
index 4aca1cf57b96d8c6a1e7f5a3b5dbfc94ea0aa444..f6e0e6bda15b43ca416179ad988173a3916a3ee6 100644 (file)
@@ -99,7 +99,7 @@ static GdkPoint *translate_points (JNIEnv *env, jintArray xpoints,
 static void realize_cb (GtkWidget *widget, jobject jgraphics);
 
 JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphics_copyState
+Java_gnu_java_awt_peer_gtk_GdkGraphics_nativeCopyState
   (JNIEnv *env, jobject obj, jobject old)
 {
   struct graphics *g = NULL;
@@ -236,7 +236,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_connectSignals
 }
 
 JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphics_dispose
+Java_gnu_java_awt_peer_gtk_GdkGraphics_nativeDispose
   (JNIEnv *env, jobject obj)
 {
   struct graphics *g = NULL;
@@ -291,6 +291,11 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString
   struct peerfont *pfont = NULL;
   struct graphics *g = NULL;
   const char *cstr = NULL;
+  const char *sTmp = NULL;
+  char *tmp = NULL;
+  char *p = NULL;
+  int count = 0;
+  int charSize = 0;
   int baseline_y = 0;
   PangoLayoutIter *iter = NULL;
 
@@ -303,9 +308,29 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString
   g_assert (pfont != NULL);
 
   cstr = (*env)->GetStringUTFChars (env, str, NULL);
+  g_assert (cstr != NULL);  
+  
+  charSize = sizeof(char);
+  p = malloc((strlen(cstr) + 1) * charSize);
+  g_assert (p != NULL);  
+
+  tmp = p;
+  sTmp = cstr;
+  for (; *sTmp != '\0'; sTmp++)
+    if (((unsigned char) *sTmp) >= ' ')
+      {
+        *p = *sTmp;
+        count++;
+        p++;
+      }
+  *p = '\0';
+
+  p = realloc(tmp, (count + 1) * charSize);
+  g_assert (p != NULL);
+  pango_layout_set_text (pfont->layout, p, -1);
+  free(p);
 
   pango_layout_set_font_description (pfont->layout, pfont->desc);
-  pango_layout_set_text (pfont->layout, cstr, -1);
   iter = pango_layout_get_iter (pfont->layout);
 
   baseline_y = pango_layout_iter_get_baseline (iter);
@@ -317,7 +342,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString
 
   pango_layout_iter_free (iter);
   pango_layout_set_text (pfont->layout, "", -1);
-
+  
   gdk_flush ();
 
   (*env)->ReleaseStringUTFChars (env, str, cstr);
index 0467c3c7acd9252b7df2d40f7f8d0b4943d4a8e9..7662800f000c4461329bb877e926e092b076097a 100644 (file)
@@ -71,6 +71,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetFontFamilies
       const char *name_tmp =  pango_font_family_get_name (families[idx]);
       jstring name = (*env)->NewStringUTF (env, name_tmp);
       (*env)->SetObjectArrayElement (env, family_name, idx, name);
+      (*env)->DeleteLocalRef(env, name);
     }
   g_free (families);
 
index 74103b5daabd6fdace01eec4b2c5c2fba65f8c1a..4d6169b85e5dcbfdf814b73fe74cf5e87e5e3128 100644 (file)
@@ -270,6 +270,8 @@ query_formats (JNIEnv *env, jclass clazz)
          (*env)->DeleteLocalRef(env, string);
          ++ch;
        }
+
+      (*env)->DeleteLocalRef(env, jformat);
     }
   
   g_slist_free(formats);  
@@ -376,6 +378,7 @@ save_to_stream(const gchar *buf,
   (*(ssr->env))->ReleaseByteArrayElements ((ssr->env), jbuf, cbuf, 0);
   (*(ssr->env))->CallVoidMethod ((ssr->env), *(ssr->stream), 
                                 dataOutputWriteID, jbuf);  
+  (*(ssr->env))->DeleteLocalRef((ssr->env), jbuf);
 
   gdk_threads_enter ();
 
index c5bf5a353ff8f17606f9c9e2e47b188a99938bc4..e9a0f693e1a6f8d916e575927631e2990e76bd7e 100644 (file)
@@ -121,6 +121,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_append
       gtk_combo_box_append_text (GTK_COMBO_BOX (ptr), label);
 
       (*env)->ReleaseStringUTFChars (env, item, label);
+      (*env)->DeleteLocalRef(env, item);
     }
 
   gdk_threads_leave ();
index 779be57235d44af454dc2dabb45c8cd201434447..3b62dc3357f936b784eaf704a62dead921dfce50 100644 (file)
@@ -53,11 +53,7 @@ jstring cp_gtk_imageTarget;
 jstring cp_gtk_filesTarget;
 
 /* Simple id to keep track of the selection we are currently managing. */
-#if SIZEOF_VOID_P == 8
-static long current_selection = 0;
-#else
-static int current_selection = 0;
-#endif
+static gint current_selection = 0;
 
 /* Whether we "own" the clipboard. And may clear it. */
 static int owner = 0;
@@ -265,11 +261,7 @@ static void
 clipboard_clear_func (GtkClipboard *clipboard __attribute__((unused)),
                      gpointer user_data)
 {
-#if SIZEOF_VOID_P == 8
-  if (owner && (long) user_data == current_selection)
-#else
-  if (owner && (int) user_data == current_selection)
-#endif
+  if (owner && GPOINTER_TO_INT(user_data) == current_selection)
     {
       JNIEnv *env = cp_gtk_gdk_env();
       owner = 0;
@@ -359,7 +351,7 @@ Java_gnu_java_awt_peer_gtk_GtkClipboard_advertiseContent
       if (gtk_clipboard_set_with_data (cp_gtk_clipboard, targets, n,
                                       clipboard_get_func,
                                       clipboard_clear_func,
-                                      (gpointer) current_selection))
+                                      GINT_TO_POINTER(current_selection)))
        {
          owner = 1;
          if (gtk_clipboard_instance == NULL)
index fc89ab71ced08418d090fff13dc398a5ef42ed9a..6da42cec6c3e880810b67f944609d664f65b80db 100644 (file)
@@ -239,6 +239,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_append
                           COLUMN_STRING, text,
                           -1);
       (*env)->ReleaseStringUTFChars (env, item, text);
+      (*env)->DeleteLocalRef(env, item);
     }
 
   gdk_threads_leave ();
index f744e90adffd33eee00ff3e474805e76caff023a..3244d236422fcd51d9f451cdec244600f7c91bbb 100644 (file)
@@ -130,6 +130,7 @@ clipboard_targets_received (GtkClipboard *clipboard
                        break;
                      (*env)->SetObjectArrayElement (env, strings, i++,
                                                     string);
+                     (*env)->DeleteLocalRef (env, string);
                    }
                }
            }
@@ -201,6 +202,10 @@ clipboard_text_received (GtkClipboard *clipboard
                           textAvailableID,
                           string);
   (*env)->DeleteGlobalRef (env, selection_obj);
+
+  if (string != NULL)
+    (*env)->DeleteLocalRef (env, string);
+
 }
 
 JNIEXPORT void JNICALL
@@ -324,6 +329,7 @@ clipboard_uris_received (GtkClipboard *clipboard
              if (string == NULL)
                break;
              (*env)->SetObjectArrayElement (env, strings, i, string);
+             (*env)->DeleteLocalRef (env, string);
            }
        }
       g_strfreev (uris);
index efa7d568839fb2b04fbf3e37faa6545ee667d208..35afaae50e89349a8c297e2c81b29640ad4e0027 100644 (file)
@@ -1,8 +1,6 @@
 nativelib_LTLIBRARIES = libjavaio.la 
 
-libjavaio_la_SOURCES =         javaio.h \
-                       javaio.c \
-                       java_io_VMFile.c \
+libjavaio_la_SOURCES =         java_io_VMFile.c \
                        java_io_VMObjectInputStream.c \
                        java_io_VMObjectStreamClass.c
 
index baa6217873cd1fbefb8c6e058d10b8772a2ef109..cb418503058dd166fc545e4205a1314fe667ec82 100644 (file)
@@ -44,10 +44,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -64,7 +65,7 @@ nativelibLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(nativelib_LTLIBRARIES)
 libjavaio_la_DEPENDENCIES =  \
        $(top_builddir)/native/jni/classpath/jcl.lo
-am_libjavaio_la_OBJECTS = javaio.lo java_io_VMFile.lo \
+am_libjavaio_la_OBJECTS = java_io_VMFile.lo \
        java_io_VMObjectInputStream.lo java_io_VMObjectStreamClass.lo
 libjavaio_la_OBJECTS = $(am_libjavaio_la_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
@@ -170,6 +171,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -275,9 +277,7 @@ target_os = @target_os@
 target_vendor = @target_vendor@
 vm_classes = @vm_classes@
 nativelib_LTLIBRARIES = libjavaio.la 
-libjavaio_la_SOURCES = javaio.h \
-                       javaio.c \
-                       java_io_VMFile.c \
+libjavaio_la_SOURCES = java_io_VMFile.c \
                        java_io_VMObjectInputStream.c \
                        java_io_VMObjectStreamClass.c
 
@@ -357,7 +357,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_io_VMFile.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_io_VMObjectInputStream.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_io_VMObjectStreamClass.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/javaio.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
index b32c29477e0870cfa3a15925bca0af47fa2cd8a2..354df04ed35e758337b05f7f76849dc5293d4c62 100644 (file)
@@ -50,8 +50,6 @@ exception statement from your version. */
 #endif
 #include "target_native_math_int.h"
 
-#include "javaio.h"
-
 #include "java_io_VMFile.h"
 
 /*************************************************************************/
diff --git a/libjava/classpath/native/jni/java-io/javaio.c b/libjava/classpath/native/jni/java-io/javaio.c
deleted file mode 100644 (file)
index 6dc3de8..0000000
+++ /dev/null
@@ -1,363 +0,0 @@
-/* javaio.c - Common java.io native functions
-   Copyright (C) 1998, 2002, 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-/* do not move; needed here because of some macro definitions */
-#include <config.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <jni.h>
-#include <jcl.h>
-
-#include "target_native.h"
-#ifndef WITHOUT_FILESYSTEM
-#include "target_native_file.h"
-#endif
-#include "target_native_math_int.h"
-
-#include "javaio.h"
-
-/*
- * Function to open a file
- */
-
-jint
-_javaio_open_read (JNIEnv * env, jstring name)
-{
-#ifndef WITHOUT_FILESYSTEM
-  const char *filename;
-  int fd;
-  int result;
-
-  filename = JCL_jstring_to_cstring (env, name);
-  if (filename == NULL)
-    return (-1);
-
-  TARGET_NATIVE_FILE_OPEN_READ (filename, fd, result);
-  (*env)->ReleaseStringUTFChars (env, name, filename);
-  if (result != TARGET_NATIVE_OK)
-    {
-      if (TARGET_NATIVE_LAST_ERROR () == TARGET_NATIVE_ERROR_NO_SUCH_FILE)
-       JCL_ThrowException (env,
-                           "java/io/FileNotFoundException",
-                           TARGET_NATIVE_LAST_ERROR_STRING ());
-      else
-       JCL_ThrowException (env,
-                           "java/io/IOException",
-                           TARGET_NATIVE_LAST_ERROR_STRING ());
-    }
-
-  JCL_free_cstring (env, name, filename);
-  return (fd);
-#else /* not WITHOUT_FILESYSTEM */
-  return (-1);
-#endif /* not WITHOUT_FILESYSTEM */
-}
-
-/*
- * Function to open a file for reading/writing
- */
-
-jint
-_javaio_open_readwrite (JNIEnv * env, jstring name)
-{
-#ifndef WITHOUT_FILESYSTEM
-  const char *filename;
-  int fd;
-  int result;
-
-  filename = JCL_jstring_to_cstring (env, name);
-  if (filename == NULL)
-    return (-1);
-
-  TARGET_NATIVE_FILE_OPEN_READWRITE (filename, fd, result);
-  (*env)->ReleaseStringUTFChars (env, name, filename);
-  if (result != TARGET_NATIVE_OK)
-    {
-      if (TARGET_NATIVE_LAST_ERROR () == TARGET_NATIVE_ERROR_NO_SUCH_FILE)
-       JCL_ThrowException (env,
-                           "java/io/FileNotFoundException",
-                           TARGET_NATIVE_LAST_ERROR_STRING ());
-      else
-       JCL_ThrowException (env,
-                           "java/io/IOException",
-                           TARGET_NATIVE_LAST_ERROR_STRING ());
-    }
-
-  JCL_free_cstring (env, name, filename);
-  return (fd);
-#else /* not WITHOUT_FILESYSTEM */
-  return (-1);
-#endif /* not WITHOUT_FILESYSTEM */
-}
-
-/*************************************************************************/
-
-/*
- * Function to close a file
- */
-
-void
-_javaio_close (JNIEnv * env, jint fd)
-{
-#ifndef WITHOUT_FILESYSTEM
-  int result;
-
-  if (fd != -1)
-    {
-      TARGET_NATIVE_FILE_CLOSE (fd, result);
-      if (result != TARGET_NATIVE_OK)
-       JCL_ThrowException (env,
-                           "java/io/IOException",
-                           TARGET_NATIVE_LAST_ERROR_STRING ());
-    }
-#else /* not WITHOUT_FILESYSTEM */
-#endif /* not WITHOUT_FILESYSTEM */
-}
-
-/*************************************************************************/
-
-/*
- * Skips bytes in a file
- */
-
-jlong
-_javaio_skip_bytes (JNIEnv * env, jint fd, jlong num_bytes)
-{
-#ifndef WITHOUT_FILESYSTEM
-  jlong current_offset, new_offset;
-  int result;
-
-  TARGET_NATIVE_FILE_SEEK_CURRENT (fd, TARGET_NATIVE_MATH_INT_INT64_CONST_0,
-                                  current_offset, result);
-  if (result != TARGET_NATIVE_OK)
-    JCL_ThrowException (env,
-                       "java/io/IOException",
-                       TARGET_NATIVE_LAST_ERROR_STRING ());
-
-  TARGET_NATIVE_FILE_SEEK_CURRENT (fd, num_bytes, new_offset, result);
-  if (result != TARGET_NATIVE_OK)
-    JCL_ThrowException (env,
-                       "java/io/IOException",
-                       TARGET_NATIVE_LAST_ERROR_STRING ());
-
-  return (TARGET_NATIVE_MATH_INT_INT64_SUB (new_offset, current_offset));
-#else /* not WITHOUT_FILESYSTEM */
-  return (TARGET_NATIVE_MATH_INT_INT64_CONST_0);
-#endif /* not WITHOUT_FILESYSTEM */
-}
-
-/*************************************************************************/
-
-/*
- * Gets the size of the file
- */
-
-jlong
-_javaio_get_file_length (JNIEnv * env, jint fd)
-{
-#ifndef WITHOUT_FILESYSTEM
-  jlong length;
-  int result;
-
-  TARGET_NATIVE_FILE_SIZE (fd, length, result);
-  if (result != TARGET_NATIVE_OK)
-    {
-      JCL_ThrowException (env,
-                         "java/io/IOException",
-                         TARGET_NATIVE_LAST_ERROR_STRING ());
-      return (TARGET_NATIVE_MATH_INT_INT64_CONST_MINUS_1);
-    }
-
-  return (length);
-#else /* not WITHOUT_FILESYSTEM */
-  return (TARGET_NATIVE_MATH_INT_INT64_CONST_0);
-#endif /* not WITHOUT_FILESYSTEM */
-}
-
-/*************************************************************************/
-
-/*
- * Reads data from a file
- */
-
-jint
-_javaio_read (JNIEnv * env, jint fd, jarray buf, jint offset, jint len)
-{
-#ifndef WITHOUT_FILESYSTEM
-  jbyte *bufptr;
-  int bytesRead;
-  int result;
-
-  assert (offset >= 0);
-  assert (len >= 0);
-
-  if (len == 0)
-    return 0;                  /* Nothing todo, and GetByteArrayElements() seems undefined. */
-
-  bufptr = (*env)->GetByteArrayElements (env, buf, JNI_FALSE);
-  if (bufptr == NULL)
-    {
-      JCL_ThrowException (env, "java/io/IOException",
-                         "Internal Error: get byte array fail");
-      return (-1);
-    }
-
-  TARGET_NATIVE_FILE_READ (fd, (bufptr + offset), len, bytesRead, result);
-  (*env)->ReleaseByteArrayElements (env, buf, bufptr, 0);
-  if (result != TARGET_NATIVE_OK)
-    JCL_ThrowException (env,
-                       "java/io/IOException",
-                       TARGET_NATIVE_LAST_ERROR_STRING ());
-
-  if (bytesRead == 0)
-    return (-1);
-
-  return (bytesRead);
-#else /* not WITHOUT_FILESYSTEM */
-  jbyte *bufptr;
-  int bytesRead;
-
-  assert (offset >= 0);
-  assert (len >= 0);
-
-  if ((fd == 0) || (fd == 1) || (fd == 2))
-    {
-      if (len == 0)
-       return 0;               /* Nothing todo, and GetByteArrayElements() seems undefined. */
-
-      bufptr = (*env)->GetByteArrayElements (env, buf, JNI_FALSE);
-      if (bufptr == NULL)
-       {
-         JCL_ThrowException (env, "java/io/IOException",
-                             "Internal Error: get byte array");
-         return (-1);
-       }
-
-      TARGET_NATIVE_FILE_READ (fd, (bufptr + offset), len, bytesRead, result);
-      (*env)->ReleaseByteArrayElements (env, buf, bufptr, 0);
-      if (result != TARGET_NATIVE_OK)
-       JCL_ThrowException (env,
-                           "java/io/IOException",
-                           TARGET_NATIVE_LAST_ERROR_STRING ());
-
-      if (bytesRead == 0)
-       return (-1);
-
-      return (bytesRead);
-    }
-  else
-    {
-      return (-1);
-    }
-#endif /* not WITHOUT_FILESYSTEM */
-}
-
-/*************************************************************************/
-
-/*
- * Writes data to a file
- */
-
-jint
-_javaio_write (JNIEnv * env, jint fd, jarray buf, jint offset, jint len)
-{
-#ifndef WITHOUT_FILESYSTEM
-  jbyte *bufptr;
-  int bytes_written;
-  int result;
-
-  if (len == 0)
-    return 0;                  /* Nothing todo, and GetByteArrayElements() seems undefined. */
-
-  bufptr = (*env)->GetByteArrayElements (env, buf, 0);
-  if (bufptr == NULL)
-    {
-      JCL_ThrowException (env, "java/io/IOException",
-                         "Internal Error: get byte array");
-      return (-1);
-    }
-
-  TARGET_NATIVE_FILE_WRITE (fd, (bufptr + offset), len, bytes_written,
-                           result);
-  (*env)->ReleaseByteArrayElements (env, buf, bufptr, 0);
-  if (result != TARGET_NATIVE_OK)
-    JCL_ThrowException (env,
-                       "java/io/IOException",
-                       TARGET_NATIVE_LAST_ERROR_STRING ());
-
-  if (bytes_written == 0)
-    return (-1);
-
-  return (bytes_written);
-#else /* not WITHOUT_FILESYSTEM */
-  jbyte *bufptr;
-  int bytesWritten;
-
-  if ((fd == 0) || (fd == 1) || (fd == 2))
-    {
-      if (len == 0)
-       return 0;               /* Nothing todo, and GetByteArrayElements() seems undefined. */
-
-      bufptr = (*env)->GetByteArrayElements (env, buf, 0);
-      if (bufptr == NULL)
-       {
-         JCL_ThrowException (env, "java/io/IOException", "Internal Error");
-         return (-1);
-       }
-
-      TARGET_NATIVE_FILE_WRITE (fd, (bufptr + offset), len, bytes_written,
-                               result);
-      (*env)->ReleaseByteArrayElements (env, buf, bufptr, 0);
-
-      if (bytes_written == -1)
-       JCL_ThrowException (env,
-                           "java/io/IOException",
-                           TARGET_NATIVE_LAST_ERROR_STRING ());
-
-      if (bytes_written == 0)
-       return (-1);
-
-      return (bytes_written);
-    }
-  else
-    {
-      return (-1);
-    }
-#endif /* not WITHOUT_FILESYSTEM */
-}
diff --git a/libjava/classpath/native/jni/java-io/javaio.h b/libjava/classpath/native/jni/java-io/javaio.h
deleted file mode 100644 (file)
index 2e4a8d1..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/* javaio.h - Declaration for common java.io native functions
-   Copyright (C) 1998, 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-#ifndef JAVAIO_H_INCLUDED
-#define JAVAIO_H_INCLUDED
-
-#include <stddef.h>
-
-/*
- * Function Prototypes
- */
-
-extern jlong _javaio_get_file_length(JNIEnv *, jint);
-extern jlong _javaio_skip_bytes(JNIEnv *, jint, jlong);
-extern jint _javaio_open(JNIEnv *, jstring, int);
-extern jint _javaio_open_read(JNIEnv *, jstring);
-extern jint _javaio_open_readwrite(JNIEnv *, jstring);
-extern void _javaio_close(JNIEnv *, jint fd);
-extern jint _javaio_read(JNIEnv *, jint, jarray, jint, jint);
-extern jint _javaio_write(JNIEnv *, jint, jarray, jint, jint);
-
-#endif /* JAVAIO_H_INCLUDED */
-
index 4af83039dc082cf8ba0f2d09a2dd2ae1984bb432..aacb56fd64ca8ed188bedb72cfd47fe1556813f8 100644 (file)
@@ -44,10 +44,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -175,6 +176,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index bf7a92bbf00f9912085cc109be25e9804747b72a..4bca9511e07fe5228e4d53f999d18dcae78b35b6 100644 (file)
@@ -4,8 +4,8 @@ libjavanet_la_SOURCES = javanet.c \
                        javanet.h \
                        java_net_VMInetAddress.c \
                        java_net_VMNetworkInterface.c \
-                       gnu_java_net_PlainDatagramSocketImpl.c \
-                        gnu_java_net_PlainSocketImpl.c
+                       gnu_java_net_VMPlainDatagramSocketImpl.c \
+                        gnu_java_net_VMPlainSocketImpl.c
 
 libjavanet_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
 
index d1d678ebded8e821bcb9e1854c356453e0163a2a..bf64c9daba4e5f13ac2f700f92e050188d90acde 100644 (file)
@@ -44,10 +44,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -66,8 +67,8 @@ libjavanet_la_DEPENDENCIES =  \
        $(top_builddir)/native/jni/classpath/jcl.lo
 am_libjavanet_la_OBJECTS = javanet.lo java_net_VMInetAddress.lo \
        java_net_VMNetworkInterface.lo \
-       gnu_java_net_PlainDatagramSocketImpl.lo \
-       gnu_java_net_PlainSocketImpl.lo
+       gnu_java_net_VMPlainDatagramSocketImpl.lo \
+       gnu_java_net_VMPlainSocketImpl.lo
 libjavanet_la_OBJECTS = $(am_libjavanet_la_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/depcomp
@@ -172,6 +173,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -281,8 +283,8 @@ libjavanet_la_SOURCES = javanet.c \
                        javanet.h \
                        java_net_VMInetAddress.c \
                        java_net_VMNetworkInterface.c \
-                       gnu_java_net_PlainDatagramSocketImpl.c \
-                        gnu_java_net_PlainSocketImpl.c
+                       gnu_java_net_VMPlainDatagramSocketImpl.c \
+                        gnu_java_net_VMPlainSocketImpl.c
 
 libjavanet_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
 AM_LDFLAGS = @CLASSPATH_MODULE@
@@ -357,8 +359,8 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_net_PlainDatagramSocketImpl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_net_PlainSocketImpl.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_net_VMPlainDatagramSocketImpl.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_net_VMPlainSocketImpl.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_net_VMInetAddress.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_net_VMNetworkInterface.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/javanet.Plo@am__quote@
diff --git a/libjava/classpath/native/jni/java-net/gnu_java_net_PlainDatagramSocketImpl.c b/libjava/classpath/native/jni/java-net/gnu_java_net_PlainDatagramSocketImpl.c
deleted file mode 100644 (file)
index 5bc284f..0000000
+++ /dev/null
@@ -1,452 +0,0 @@
-/* PlainDatagramSocketImpl.c - Native methods for PlainDatagramSocketImpl class
-   Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-/* do not move; needed here because of some macro definitions */
-#include <config.h>
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-
-#include <jni.h>
-#include <jcl.h>
-
-#include "javanet.h"
-
-#include "target_native.h"
-#ifndef WITHOUT_NETWORK
-#include "target_native_network.h"
-#endif /* WITHOUT_NETWORK */
-
-#include "gnu_java_net_PlainDatagramSocketImpl.h"
-
-/*
- * Note that most of the functions in this module simply redirect to another
- * internal function.  Why?  Because many of these functions are shared
- * with PlainSocketImpl. 
- */
-
-/*************************************************************************/
-
-/*
- * Creates a new datagram socket
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainDatagramSocketImpl_create (JNIEnv * env, jobject obj)
-{
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-#ifndef WITHOUT_NETWORK
-  _javanet_create (env, obj, 0);
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * Close the socket.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainDatagramSocketImpl_close (JNIEnv * env, jobject obj)
-{
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-#ifndef WITHOUT_NETWORK
-  _javanet_close (env, obj, 0);
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * This method binds the specified address to the specified local port.
- * Note that we have to set the local address and local port public instance 
- * variables. 
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainDatagramSocketImpl_bind (JNIEnv * env, jobject obj,
-                                               jint port, jobject addr)
-{
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-#ifndef WITHOUT_NETWORK
-  _javanet_bind (env, obj, addr, port, 0);
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * This method sets the specified option for a socket
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainDatagramSocketImpl_setOption (JNIEnv * env,
-                                                    jobject obj,
-                                                    jint option_id,
-                                                    jobject val)
-{
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-#ifndef WITHOUT_NETWORK
-  _javanet_set_option (env, obj, option_id, val);
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * This method sets the specified option for a socket
- */
-JNIEXPORT jobject JNICALL
-Java_gnu_java_net_PlainDatagramSocketImpl_getOption (JNIEnv * env,
-                                                    jobject obj,
-                                                    jint option_id)
-{
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-#ifndef WITHOUT_NETWORK
-  return (_javanet_get_option (env, obj, option_id));
-#else /* not WITHOUT_NETWORK */
-  return NULL;
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * Reads a buffer from a remote host
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainDatagramSocketImpl_receive0 (JNIEnv * env, jobject obj,
-                                                   jobject packet)
-{
-#ifndef WITHOUT_NETWORK
-  int addr, port, bytes_read;
-  unsigned int maxlen, offset;
-  jclass cls, addr_cls;
-  jfieldID fid;
-  jmethodID mid;
-  jarray arr;
-  unsigned char octets[4];
-  char ip_str[16];
-  jobject ip_str_obj, addr_obj;
-
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  addr = 0;
-  port = 0;
-  maxlen = 0;
-  offset = 0;
-  bytes_read = 0;
-
-  if (packet == NULL)
-    {
-      JCL_ThrowException (env, "java/lang/NullPointerException",
-                         "Null datagram packet");
-      return;
-    }
-
-  /* Get the buffer from the packet */
-  cls = (*env)->GetObjectClass (env, packet);
-  if (cls == NULL)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION, "Internal error");
-      return;
-    }
-
-  mid = (*env)->GetMethodID (env, cls, "getData", "()[B");
-  if (mid == NULL)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION, "Internal error: getData");
-      return;
-    }
-
-  arr = (*env)->CallObjectMethod (env, packet, mid);
-  if ((*env)->ExceptionOccurred (env))
-    return;
-  if (arr == NULL)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION, "Internal error: call getData");
-      return;
-    }
-
-  /* Now get the offset from the packet */
-  mid = (*env)->GetMethodID (env, cls, "getOffset", "()I");
-  if (mid == NULL)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION, "Internal error: getOffset");
-      return;
-    }
-
-  offset = (*env)->CallIntMethod (env, packet, mid);
-  if ((*env)->ExceptionOccurred (env))
-    return;
-
-  DBG ("PlainDatagramSocketImpl.receive(): Got the offset\n");
-
-  /* Now get the maximal available length from the packet */
-  fid = (*env)->GetFieldID (env, cls, "maxlen", "I");
-  if (fid == NULL)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION, "Internal error: maxlen");
-      return;
-    }
-
-  maxlen = (*env)->GetIntField (env, packet, fid);
-  if ((*env)->ExceptionOccurred (env))
-    return;
-
-  /* Receive the packet */
-  /* should we try some sort of validation on the length? */
-  bytes_read =
-    _javanet_recvfrom (env, obj, arr, offset, maxlen, &addr, &port);
-  if ((*env)->ExceptionOccurred (env))
-    return;
-  if (bytes_read == -1)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION, "Internal error: receive");
-      return;
-    }
-
-  DBG ("PlainDatagramSocketImpl.receive(): Received packet\n");
-
-  /* Store the address */
-  TARGET_NATIVE_NETWORK_INT_TO_IPADDRESS_BYTES (addr,
-                                               octets[0],
-                                               octets[1],
-                                               octets[2], octets[3]);
-  sprintf (ip_str, "%d.%d.%d.%d", octets[0], octets[1], octets[2], octets[3]);
-  ip_str_obj = (*env)->NewStringUTF (env, ip_str);
-  if (ip_str_obj == NULL)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION, "Internal error: new string");
-      return;
-    }
-
-  addr_cls = (*env)->FindClass (env, "java/net/InetAddress");
-  if (addr_cls == NULL)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION,
-                         "Internal error: InetAddress class");
-      return;
-    }
-  DBG ("PlainDatagramSocketImpl.receive(): Found InetAddress class\n");
-
-  mid = (*env)->GetStaticMethodID (env, addr_cls, "getByName",
-                                  "(Ljava/lang/String;)Ljava/net/InetAddress;");
-  if (mid == NULL)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION, "Internal Error");
-      return;
-    }
-  DBG
-    ("PlainDatagramSocketImpl.receive(): Found InetAddress.getByName method\n");
-
-  addr_obj = (*env)->CallStaticObjectMethod (env, addr_cls, mid, ip_str_obj);
-  if ((*env)->ExceptionOccurred (env))
-    return;
-
-  mid = (*env)->GetMethodID (env, cls, "setAddress",
-                            "(Ljava/net/InetAddress;)V");
-  if (mid == NULL)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION, "Internal error: setAddress");
-      return;
-    }
-
-  (*env)->CallVoidMethod (env, packet, mid, addr_obj);
-  if ((*env)->ExceptionOccurred (env))
-    return;
-
-  DBG ("PlainDatagramSocketImpl.receive(): Stored the address\n");
-
-  /* Store the port */
-  mid = (*env)->GetMethodID (env, cls, "setPort", "(I)V");
-  if (mid == NULL)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION, "Internal error: setPort");
-      return;
-    }
-
-  (*env)->CallVoidMethod (env, packet, mid, port);
-  if ((*env)->ExceptionOccurred (env))
-    return;
-
-  DBG ("PlainDatagramSocketImpl.receive(): Stored the port\n");
-
-  /* Store back the length */
-  fid = (*env)->GetFieldID (env, cls, "length", "I");
-  if (fid == NULL)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION, "Internal error: length");
-      return;
-    }
-
-  (*env)->SetIntField (env, packet, fid, bytes_read);
-  if ((*env)->ExceptionOccurred (env))
-    return;
-
-  DBG ("PlainDatagramSocketImpl.receive(): Stored the length\n");
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * Writes a buffer to the remote host
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainDatagramSocketImpl_sendto (JNIEnv * env, jobject obj,
-                                                 jobject addr, jint port,
-                                                 jarray buf, jint offset,
-                                                 jint len)
-{
-#ifndef WITHOUT_NETWORK
-  jint netAddress;
-
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  netAddress = _javanet_get_netaddr (env, addr);
-  if ((*env)->ExceptionOccurred (env))
-    return;
-
-  DBG ("PlainDatagramSocketImpl.sendto(): have addr\n");
-
-  _javanet_sendto (env, obj, buf, offset, len, netAddress, port);
-  if ((*env)->ExceptionOccurred (env))
-    return;
-
-  DBG ("PlainDatagramSocketImpl.sendto(): finished\n");
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * Joins a multicast group
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainDatagramSocketImpl_join (JNIEnv * env, jobject obj,
-                                               jobject addr)
-{
-#ifndef WITHOUT_NETWORK
-  jint netAddress;
-  int fd;
-  int result;
-
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  netAddress = _javanet_get_netaddr (env, addr);
-  if ((*env)->ExceptionOccurred (env))
-    return;
-
-  fd = _javanet_get_int_field (env, obj, "native_fd");
-  if ((*env)->ExceptionOccurred (env))
-    return;
-
-  DBG ("PlainDatagramSocketImpl.join(): have native fd\n");
-
-  TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_ADD_MEMBERSHIP (fd, netAddress,
-                                                         result);
-
-  if (result != TARGET_NATIVE_OK)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION,
-                         TARGET_NATIVE_LAST_ERROR_STRING ());
-      return;
-    }
-
-  DBG ("PlainDatagramSocketImpl.join(): finished\n");
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * Leaves a multicast group
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainDatagramSocketImpl_leave (JNIEnv * env, jobject obj,
-                                                jobject addr)
-{
-#ifndef WITHOUT_NETWORK
-  jint netAddress;
-  int fd;
-  int result;
-
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  netAddress = _javanet_get_netaddr (env, addr);
-  if ((*env)->ExceptionOccurred (env))
-    return;
-
-  fd = _javanet_get_int_field (env, obj, "native_fd");
-  if ((*env)->ExceptionOccurred (env))
-    return;
-
-  DBG ("PlainDatagramSocketImpl.leave(): have native fd\n");
-
-  TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_DROP_MEMBERSHIP (fd, netAddress,
-                                                          result);
-  if (result != TARGET_NATIVE_OK)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION,
-                         TARGET_NATIVE_LAST_ERROR_STRING ());
-      return;
-    }
-
-  DBG ("PlainDatagramSocketImpl.leave(): finished\n");
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
diff --git a/libjava/classpath/native/jni/java-net/gnu_java_net_PlainSocketImpl.c b/libjava/classpath/native/jni/java-net/gnu_java_net_PlainSocketImpl.c
deleted file mode 100644 (file)
index f5f22ab..0000000
+++ /dev/null
@@ -1,321 +0,0 @@
-/* PlainSocketImpl.c - Native methods for PlainSocketImpl class
-   Copyright (C) 1998, 2002, 2005  Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-/* do not move; needed here because of some macro definitions */
-#include <config.h>
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-
-#include <jni.h>
-#include <jcl.h>
-
-#include "javanet.h"
-
-#include "target_native.h"
-#ifndef WITHOUT_NETWORK
-#include "target_native_file.h"  /* Get FIONREAD on Solaris.  */
-#include "target_native_network.h"
-#endif /* WITHOUT_NETWORK */
-
-#include "gnu_java_net_PlainSocketImpl.h"
-
-/*
- * Note that the functions in this module simply redirect to another
- * internal function.  Why?  Because many of these functions are shared
- * with PlainDatagramSocketImpl.  The unshared ones were done the same
- * way for consistency.
- */
-
-/*************************************************************************/
-
-/*
- * Creates a new stream or datagram socket
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainSocketImpl_create (JNIEnv * env, jobject this,
-                                         jboolean stream)
-{
-#ifndef WITHOUT_NETWORK
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  _javanet_create (env, this, stream);
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * Close the socket.  Any underlying streams will be closed by this
- * action as well.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainSocketImpl_close (JNIEnv * env, jobject this)
-{
-#ifndef WITHOUT_NETWORK
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  _javanet_close (env, this, 1);
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * Connects to the specified destination.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainSocketImpl_connect (JNIEnv * env, jobject this,
-                                          jobject addr, jint port)
-{
-#ifndef WITHOUT_NETWORK
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  _javanet_connect (env, this, addr, port);
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * This method binds the specified address to the specified local port.
- * Note that we have to set the local address and local port public instance 
- * variables. 
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainSocketImpl_bind (JNIEnv * env, jobject this,
-                                       jobject addr, jint port)
-{
-#ifndef WITHOUT_NETWORK
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  _javanet_bind (env, this, addr, port, 1);
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * Starts listening on a socket with the specified number of pending 
- * connections allowed.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainSocketImpl_listen (JNIEnv * env, jobject this,
-                                         jint queuelen)
-{
-#ifndef WITHOUT_NETWORK
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  _javanet_listen (env, this, queuelen);
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * Accepts a new connection and assigns it to the passed in SocketImpl
- * object. Note that we assume this is a PlainSocketImpl just like us.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainSocketImpl_accept (JNIEnv * env, jobject this,
-                                         jobject impl)
-{
-#ifndef WITHOUT_NETWORK
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  _javanet_accept (env, this, impl);
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_net_PlainSocketImpl_available (JNIEnv * env, jobject this)
-{
-#ifndef WITHOUT_NETWORK
-  jclass cls;
-  jfieldID fid;
-  int fd;
-  int bytesAvailable;
-  int result;
-
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  cls = (*env)->GetObjectClass (env, this);
-  if (cls == 0)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION, "internal error");
-      return 0;
-    }
-
-  fid = (*env)->GetFieldID (env, cls, "native_fd", "I");
-  if (fid == 0)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION, "internal error");
-      return 0;
-    }
-
-  fd = (*env)->GetIntField (env, this, fid);
-
-  TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_AVAILABLE (fd, bytesAvailable, result);
-  if (result != TARGET_NATIVE_OK)
-    {
-      JCL_ThrowException (env, IO_EXCEPTION,
-                         TARGET_NATIVE_LAST_ERROR_STRING ());
-      return 0;
-    }
-
-  return bytesAvailable;
-#else /* not WITHOUT_NETWORK */
-  return 0;
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * This method sets the specified option for a socket
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainSocketImpl_setOption (JNIEnv * env, jobject this,
-                                            jint option_id, jobject val)
-{
-#ifndef WITHOUT_NETWORK
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  _javanet_set_option (env, this, option_id, val);
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * This method sets the specified option for a socket
- */
-JNIEXPORT jobject JNICALL
-Java_gnu_java_net_PlainSocketImpl_getOption (JNIEnv * env, jobject this,
-                                            jint option_id)
-{
-#ifndef WITHOUT_NETWORK
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  return (_javanet_get_option (env, this, option_id));
-#else /* not WITHOUT_NETWORK */
-  return NULL;
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * Reads a buffer from a remote host
- */
-JNIEXPORT jint JNICALL
-Java_gnu_java_net_PlainSocketImpl_read (JNIEnv * env, jobject this,
-                                       jarray buf, jint offset, jint len)
-{
-#ifndef WITHOUT_NETWORK
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  return (_javanet_recvfrom (env, this, buf, offset, len, 0, 0));
-#else /* not WITHOUT_NETWORK */
-  return 0;
-#endif /* not WITHOUT_NETWORK */
-}
-
-/*************************************************************************/
-
-/*
- * Writes a buffer to the remote host
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainSocketImpl_write (JNIEnv * env, jobject this,
-                                        jarray buf, jint offset, jint len)
-{
-#ifndef WITHOUT_NETWORK
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  _javanet_sendto (env, this, buf, offset, len, 0, 0);
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainSocketImpl_shutdownInput (JNIEnv * env, jobject this)
-{
-#ifndef WITHOUT_NETWORK
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  _javanet_shutdownInput (env, this);
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_net_PlainSocketImpl_shutdownOutput (JNIEnv * env, jobject this)
-{
-#ifndef WITHOUT_NETWORK
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
-  _javanet_shutdownOutput (env, this);
-#else /* not WITHOUT_NETWORK */
-#endif /* not WITHOUT_NETWORK */
-}
-
-/* end of file */
diff --git a/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c b/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c
new file mode 100644 (file)
index 0000000..1b3cb97
--- /dev/null
@@ -0,0 +1,399 @@
+/* VMPlainDatagramSocketImpl.c - Native methods for PlainDatagramSocketImpl
+   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+/* do not move; needed here because of some macro definitions */
+#include <config.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <jni.h>
+#include <jcl.h>
+
+#include "javanet.h"
+
+#include "target_native.h"
+#ifndef WITHOUT_NETWORK
+  #include "target_native_network.h"
+#endif /* WITHOUT_NETWORK */
+
+
+#include "gnu_java_net_VMPlainDatagramSocketImpl.h"
+
+/*
+ * Note that most of the functions in this module simply redirect to another
+ * internal function.  Why?  Because many of these functions are shared
+ * with PlainSocketImpl. 
+ */
+
+/*************************************************************************/
+
+/*
+ * Creates a new datagram socket
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainDatagramSocketImpl_create(JNIEnv *env,
+                                                  jclass klass __attribute__ ((__unused__))
+                                                  , jobject obj)
+{
+
+#ifndef WITHOUT_NETWORK
+  _javanet_create(env, obj, 0);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * Close the socket.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainDatagramSocketImpl_close(JNIEnv *env,
+                                                 jclass klass __attribute__ ((__unused__)),
+                                                 jobject obj)
+{
+
+#ifndef WITHOUT_NETWORK
+  _javanet_close(env, obj, 0);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * Connects to the specified destination.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainDatagramSocketImpl_connect(JNIEnv *env,
+                                                   jclass klass __attribute__ ((__unused__)),
+                                                   jobject obj,
+                                                   jobject addr, jint port)
+{
+#ifndef WITHOUT_NETWORK
+
+  _javanet_connect(env, obj, addr, port, 0);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * This method binds the specified address to the specified local port.
+ * Note that we have to set the local address and local port public instance 
+ * variables. 
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainDatagramSocketImpl_bind(JNIEnv *env,
+                                                jclass klass __attribute__ ((__unused__)),
+                                                jobject obj,
+                                                jint port, jobject addr)
+{
+
+#ifndef WITHOUT_NETWORK
+  _javanet_bind(env, obj, addr, port, 0);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * This method sets the specified option for a socket
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainDatagramSocketImpl_setOption(JNIEnv *env,
+                                                     jclass klass __attribute__ ((__unused__)),
+                                                     jobject obj, 
+                                                     jint option_id,
+                                                     jobject val)
+{
+
+#ifndef WITHOUT_NETWORK
+  _javanet_set_option(env, obj, option_id, val);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * This method sets the specified option for a socket
+ */
+JNIEXPORT jobject JNICALL
+Java_gnu_java_net_VMPlainDatagramSocketImpl_getOption(JNIEnv *env,
+                                                     jclass klass __attribute__ ((__unused__)),
+                                                     jobject obj, 
+                                                     jint option_id)
+{
+
+#ifndef WITHOUT_NETWORK
+  return(_javanet_get_option(env, obj, option_id));
+#else /* not WITHOUT_NETWORK */
+  return NULL;
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * Reads a buffer from a remote host
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainDatagramSocketImpl_nativeReceive(JNIEnv     *env,
+                                                          jclass     klass __attribute__ ((__unused__)),
+                                                          jobject    obj,
+                                                          jbyteArray arr,
+                                                          jint       offset,
+                                                          jint       length,
+                                                          jbyteArray receivedFromAddress,
+                                                          jintArray  receivedFromPort,
+                                                          jintArray  receivedLength)
+{
+#ifndef WITHOUT_NETWORK
+  int           addr, *port, *bytes_read;
+  char          *addressBytes;
+
+  addr = 0;
+    
+  port = (int*)(*env)->GetIntArrayElements(env, receivedFromPort, NULL);
+  if (port == NULL)
+    {
+      JCL_ThrowException(env, IO_EXCEPTION, "Internal error: could not access receivedFromPort array");
+      return;
+    }
+  
+  bytes_read = (int*)(*env)->GetIntArrayElements(env, receivedLength, NULL);
+  if (bytes_read == NULL)
+    {
+      (*env)->ReleaseIntArrayElements(env, receivedFromPort, (jint*)port, 0);
+      JCL_ThrowException(env, IO_EXCEPTION, "Internal error: could not access receivedLength array");
+      return;
+    }
+
+  /* Receive the packet */
+  /* should we try some sort of validation on the length? */
+  (*bytes_read) = _javanet_recvfrom(env, obj, arr, offset, length, &addr, port);
+
+  /* Special case the strange situation where the receiver didn't want any
+     bytes. */
+  if (length == 0 && (*bytes_read) == -1)
+    *bytes_read = 0;
+
+  if ((*bytes_read) == -1)
+    {
+      (*env)->ReleaseIntArrayElements(env, receivedFromPort, (jint*)port, 0);
+      (*env)->ReleaseIntArrayElements(env, receivedLength, (jint*)bytes_read, 0);
+      JCL_ThrowException(env, IO_EXCEPTION, "Internal error: receive");
+      return;
+    }
+
+  (*env)->ReleaseIntArrayElements(env, receivedFromPort, (jint*)port, 0);
+  (*env)->ReleaseIntArrayElements(env, receivedLength, (jint*)bytes_read, 0);
+
+  if ((*env)->ExceptionOccurred(env))
+    {
+      return;
+    }
+
+  DBG("PlainDatagramSocketImpl.receive(): Received packet\n");
+  
+  
+  /* Store the address */
+  addressBytes = (char*)(*env)->GetPrimitiveArrayCritical(env, receivedFromAddress, NULL);
+  TARGET_NATIVE_NETWORK_INT_TO_IPADDRESS_BYTES(addr,
+                                               addressBytes[0],
+                                               addressBytes[1],
+                                               addressBytes[2],
+                                               addressBytes[3]
+                                              );
+  (*env)->ReleasePrimitiveArrayCritical(env, receivedFromAddress, addressBytes, 0);
+    
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * Writes a buffer to the remote host
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainDatagramSocketImpl_nativeSendTo(JNIEnv  *env,
+                                                         jclass  klass __attribute__ ((__unused__)),
+                                                         jobject obj, 
+                                                         jobject addr,
+                                                         jint    port,
+                                                         jarray  buf, 
+                                                         jint    offset,
+                                                         jint    len)
+{
+#ifndef WITHOUT_NETWORK
+  jint netAddress;
+
+  /* check if address given, tr 7.3.2005 */
+  if (addr != NULL)
+    {
+      netAddress = _javanet_get_netaddr(env, addr);
+      if ((*env)->ExceptionOccurred(env))
+        {
+          return;
+        }
+    }
+  else
+    {
+      netAddress = 0;
+    }
+
+  DBG("PlainDatagramSocketImpl.sendto(): have addr\n");
+
+  _javanet_sendto(env, obj, buf, offset, len, netAddress, port);
+  if ((*env)->ExceptionOccurred(env))
+    {
+      return;
+    }
+
+  DBG("PlainDatagramSocketImpl.sendto(): finished\n");
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * Joins a multicast group
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainDatagramSocketImpl_join(JNIEnv *env,
+                                                jclass klass __attribute__ ((__unused__)),
+                                                jobject obj, 
+                                                jobject addr)
+{
+#ifndef WITHOUT_NETWORK
+  jint netAddress;
+  int  fd;
+  int  result;
+
+  /* check if address given, tr 7.3.2005 */
+  if (addr != NULL)
+    {
+      netAddress = _javanet_get_netaddr(env, addr);
+      if ((*env)->ExceptionOccurred(env))
+        {
+          JCL_ThrowException(env, IO_EXCEPTION, "Internal error");
+          return;
+        }
+    }
+  else
+    {
+      netAddress = 0;
+    }
+
+  fd = _javanet_get_int_field(env, obj, "native_fd");
+  if ((*env)->ExceptionOccurred(env))
+    {
+      JCL_ThrowException(env, IO_EXCEPTION, "Internal error");
+      return;
+    }
+
+  DBG("PlainDatagramSocketImpl.join(): have native fd\n");
+
+  TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_ADD_MEMBERSHIP(fd,netAddress,result);
+
+  if (result != TARGET_NATIVE_OK)
+    {
+      JCL_ThrowException(env, IO_EXCEPTION, TARGET_NATIVE_LAST_ERROR_STRING());
+      return;
+    }
+
+  DBG("PlainDatagramSocketImpl.join(): finished\n");
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * Leaves a multicast group
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainDatagramSocketImpl_leave(JNIEnv *env,
+                                                 jclass klass __attribute__ ((__unused__)),
+                                                 jobject obj, 
+                                                 jobject addr)
+{
+#ifndef WITHOUT_NETWORK
+  jint netAddress;
+  int  fd;
+  int  result;
+
+  /* check if address given, tr 7.3.2005 */
+  if (addr != NULL)
+    {
+      netAddress = _javanet_get_netaddr(env, addr);
+      if ((*env)->ExceptionOccurred(env))
+        {
+          JCL_ThrowException(env, IO_EXCEPTION, "Internal error");
+          return;
+        }
+    }
+  else
+    {
+      netAddress = 0;
+    }
+
+  fd = _javanet_get_int_field(env, obj, "native_fd");
+  if ((*env)->ExceptionOccurred(env))
+    { JCL_ThrowException(env, IO_EXCEPTION, "Internal error"); return; }
+
+  DBG("PlainDatagramSocketImpl.leave(): have native fd\n");
+
+  TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_DROP_MEMBERSHIP(fd,netAddress,result);
+  if (result!=TARGET_NATIVE_OK)
+    {
+      JCL_ThrowException(env, IO_EXCEPTION, TARGET_NATIVE_LAST_ERROR_STRING());
+      return;
+    }
+
+  DBG("PlainDatagramSocketImpl.leave(): finished\n");
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
diff --git a/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c b/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c
new file mode 100644 (file)
index 0000000..cf10ee4
--- /dev/null
@@ -0,0 +1,302 @@
+/* VMPlainSocketImpl.c - Native methods for PlainSocketImpl class
+   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+/* do not move; needed here because of some macro definitions */
+#include <config.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <jni.h>
+#include <jcl.h>
+
+#include "javanet.h"
+
+#include "target_native.h"
+#ifndef WITHOUT_NETWORK
+  #include "target_native_network.h"
+#endif /* WITHOUT_NETWORK */
+
+#include "gnu_java_net_VMPlainSocketImpl.h"
+
+/*
+ * Note that the functions in this module simply redirect to another
+ * internal function.  Why?  Because many of these functions are shared
+ * with PlainDatagramSocketImpl.  The unshared ones were done the same
+ * way for consistency.
+ */
+
+/*************************************************************************/
+
+/*
+ * Creates a new stream or datagram socket
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainSocketImpl_create(JNIEnv *env,
+                                          jclass klass __attribute__ ((__unused__)),
+                                          jobject obj)
+{
+#ifndef WITHOUT_NETWORK
+  _javanet_create(env, obj, JNI_TRUE);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * Close the socket.  Any underlying streams will be closed by this
+ * action as well.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainSocketImpl_close(JNIEnv *env,
+                                         jclass klass __attribute__ ((__unused__)),
+                                         jobject obj)
+{
+#ifndef WITHOUT_NETWORK
+  _javanet_close(env, obj, 1);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * Connects to the specified destination.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainSocketImpl_connect(JNIEnv *env,
+                                           jclass klass __attribute__ ((__unused__)),
+                                           jobject obj, 
+                                           jobject addr, jint port)
+{
+#ifndef WITHOUT_NETWORK
+  _javanet_connect(env, obj, addr, port, 1);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * This method binds the specified address to the specified local port.
+ * Note that we have to set the local address and local port public instance 
+ * variables. 
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainSocketImpl_bind(JNIEnv *env,
+                                        jclass klass __attribute__ ((__unused__)),
+                                        jobject obj, jobject addr,
+                                        jint port)
+{
+#ifndef WITHOUT_NETWORK
+  _javanet_bind(env, obj, addr, port, 1);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * Starts listening on a socket with the specified number of pending 
+ * connections allowed.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainSocketImpl_listen(JNIEnv *env,
+                                          jclass klass __attribute__ ((__unused__)),
+                                          jobject obj, jint queuelen)
+{
+#ifndef WITHOUT_NETWORK
+  _javanet_listen(env, obj, queuelen);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * Accepts a new connection and assigns it to the passed in SocketImpl
+ * object. Note that we assume this is a PlainSocketImpl just like us.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainSocketImpl_accept(JNIEnv *env,
+                                          jclass klass __attribute__ ((__unused__)),
+                                          jobject obj, jobject impl)
+{
+#ifndef WITHOUT_NETWORK
+  _javanet_accept(env, obj, impl);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+JNIEXPORT jint JNICALL
+Java_gnu_java_net_VMPlainSocketImpl_available(JNIEnv *env,
+                                             jclass klass __attribute__ ((__unused__)),
+                                             jobject obj)
+{
+#ifndef WITHOUT_NETWORK
+  jclass   cls;
+  jfieldID fid;
+  int      fd;
+  int      bytesAvailable;
+  int      result;
+  
+  cls = (*env)->GetObjectClass(env, obj);
+  if (cls == 0)
+    {
+      JCL_ThrowException(env, IO_EXCEPTION, "internal error");
+      return 0;
+    }
+  
+  fid = (*env)->GetFieldID(env, cls, "native_fd", "I"); 
+  if (fid == 0)
+    {
+      JCL_ThrowException(env, IO_EXCEPTION, "internal error");
+      return 0;
+    }
+
+  fd = (*env)->GetIntField(env, obj, fid);
+  
+  TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_AVAILABLE(fd,bytesAvailable,result);
+  if (result != TARGET_NATIVE_OK)
+    {
+      JCL_ThrowException(env, IO_EXCEPTION, TARGET_NATIVE_LAST_ERROR_STRING());
+      return 0;
+    }
+
+  return bytesAvailable;
+#else /* not WITHOUT_NETWORK */
+  return 0;
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * This method sets the specified option for a socket
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainSocketImpl_setOption(JNIEnv *env,
+                                             jclass klass __attribute__ ((__unused__)),
+                                             jobject obj, 
+                                             jint option_id, jobject val)
+{
+#ifndef WITHOUT_NETWORK
+  _javanet_set_option(env, obj, option_id, val);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * This method gets the specified option for a socket
+ */
+JNIEXPORT jobject JNICALL
+Java_gnu_java_net_VMPlainSocketImpl_getOption(JNIEnv *env,
+                                             jclass klass __attribute__ ((__unused__)),
+                                             jobject obj, 
+                                             jint option_id)
+{
+#ifndef WITHOUT_NETWORK
+  return(_javanet_get_option(env, obj, option_id));
+#else /* not WITHOUT_NETWORK */
+  return NULL;
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * Reads a buffer from a remote host
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_net_VMPlainSocketImpl_read(JNIEnv *env,
+                                        jclass klass __attribute__ ((__unused__)),
+                                        jobject obj, jarray buf,
+                                        jint offset, jint len)
+{
+#ifndef WITHOUT_NETWORK
+  return(_javanet_recvfrom(env, obj, buf, offset, len, 0, 0));
+#else /* not WITHOUT_NETWORK */
+  return 0;
+#endif /* not WITHOUT_NETWORK */
+}
+
+/*************************************************************************/
+
+/*
+ * Writes a buffer to the remote host
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainSocketImpl_write(JNIEnv *env,
+                                         jclass klass __attribute__ ((__unused__)),
+                                         jobject obj, jarray buf,
+                                         jint offset, jint len)
+{
+#ifndef WITHOUT_NETWORK
+  _javanet_sendto(env, obj, buf, offset, len, 0, 0);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainSocketImpl_shutdownInput (JNIEnv * env,
+                                                  jclass klass __attribute__ ((__unused__)),
+                                                  jobject this)
+{
+#ifndef WITHOUT_NETWORK
+  _javanet_shutdownInput (env, this);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_net_VMPlainSocketImpl_shutdownOutput (JNIEnv * env,
+                                                   jclass klass __attribute__ ((__unused__)),
+                                                   jobject this)
+{
+#ifndef WITHOUT_NETWORK
+  _javanet_shutdownOutput (env, this);
+#else /* not WITHOUT_NETWORK */
+#endif /* not WITHOUT_NETWORK */
+}
+
+/* end of file */
index 0ba00d1c3c6ee73408f4b437b863032461ededd2..86ac06e6f79d32c3a39bee5c57417aa51e057cd7 100644 (file)
@@ -1,5 +1,5 @@
 /* VMInetAddress.c - Native methods for InetAddress class
-   Copyright (C) 1998, 2002, 2005  Free Software Foundation, Inc.
+   Copyright (C) 1998, 2002, 2005, 2006  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,7 +41,6 @@ exception statement from your version. */
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
-#include <assert.h>
 
 #include <jni.h>
 #include <jcl.h>
@@ -69,9 +68,6 @@ Java_java_net_VMInetAddress_getLocalHostname (JNIEnv * env,
   int result;
   jstring retval;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
 #ifndef WITHOUT_NETWORK
   TARGET_NATIVE_NETWORK_GET_HOSTNAME (hostname, sizeof (hostname), result);
   if (result != TARGET_NATIVE_OK)
@@ -100,9 +96,6 @@ Java_java_net_VMInetAddress_lookupInaddrAny (JNIEnv * env,
   jarray IParray;
   jbyte *octets;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   /* Allocate an array for the IP address */
   IParray = (*env)->NewByteArray (env, 4);
   if (IParray == NULL)
@@ -150,9 +143,6 @@ Java_java_net_VMInetAddress_getHostByAddr (JNIEnv * env,
   int result;
   jstring retval;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   /* Grab the byte[] array with the IP out of the input data */
   len = (*env)->GetArrayLength (env, arr);
   if (len != 4)
@@ -215,9 +205,6 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env,
   jarray ret_octets;
   int max_addresses;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   /* Grab the hostname string */
   hostname = (*env)->GetStringUTFChars (env, host, 0);
   if (!hostname)
index 71f5e8927e58021eeaa4fa02b0b17cbfa90831b3..f05e9fcc5a2523e42ccf7846d5e60a096233f12f 100644 (file)
@@ -1,5 +1,5 @@
 /* VMNetworkInterface.c - Native methods for NetworkInterface class
-   Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005, 2006  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,7 +41,6 @@ exception statement from your version. */
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
-#include <assert.h>
 
 #include <jni.h>
 #include <jcl.h>
index 31afbc869973fd7ca02eb57fbbfdb481065f2b6a..0f296a60479bfff5f74e524e9c2dbfde441fbc13 100644 (file)
@@ -1,5 +1,5 @@
 /* javanet.c - Common internal functions for the java.net package
-   Copyright (C) 1998, 2002, 2004, 2005  Free Software Foundation, Inc.
+   Copyright (C) 1998, 2002, 2004, 2005, 2006  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -41,7 +41,6 @@ exception statement from your version. */
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
-#include <assert.h>
 
 #include <jni.h>
 #include <jcl.h>
@@ -77,9 +76,6 @@ _javanet_set_int_field (JNIEnv * env, jobject obj,
   jclass cls;
   jfieldID fid;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   cls = (*env)->FindClass (env, class);
   if (cls == NULL)
     return;
@@ -106,9 +102,6 @@ _javanet_get_int_field (JNIEnv * env, jobject obj, const char *field)
   jfieldID fid;
   int fd;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   DBG ("_javanet_get_int_field(): Entered _javanet_get_int_field\n");
 
   cls = (*env)->GetObjectClass (env, obj);
@@ -133,20 +126,20 @@ _javanet_get_int_field (JNIEnv * env, jobject obj, const char *field)
  * need to include it.
  */
 static void
-_javanet_create_localfd (JNIEnv * env, jobject this)
+_javanet_create_localfd (JNIEnv * env, jobject this, jboolean stream)
 {
   jclass this_cls, fd_cls;
   jfieldID fid;
   jmethodID mid;
   jobject fd_obj;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   DBG ("_javanet_create_localfd(): Entered _javanet_create_localfd\n");
 
   /* Look up the fd field */
-  this_cls = (*env)->FindClass (env, "java/net/SocketImpl");
+  if (stream)
+    this_cls = (*env)->FindClass(env, "java/net/SocketImpl");
+  else
+    this_cls = (*env)->FindClass(env, "java/net/DatagramSocketImpl");
   if (this_cls == NULL)
     return;
 
@@ -194,9 +187,6 @@ _javanet_create_boolean (JNIEnv * env, jboolean val)
   jmethodID mid;
   jobject obj;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   cls = (*env)->FindClass (env, "java/lang/Boolean");
   if (cls == NULL)
     return NULL;
@@ -224,9 +214,6 @@ _javanet_create_integer (JNIEnv * env, jint val)
   jmethodID mid;
   jobject obj;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   cls = (*env)->FindClass (env, "java/lang/Integer");
   if (cls == NULL)
     return NULL;
@@ -258,9 +245,6 @@ _javanet_create_inetaddress (JNIEnv * env, int netaddr)
   jstring ip_str;
   jobject ia;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   /* Build a string IP address */
   TARGET_NATIVE_NETWORK_INT_TO_IPADDRESS_BYTES (netaddr,
                                                octets[0],
@@ -315,9 +299,6 @@ _javanet_set_remhost_addr (JNIEnv * env, jobject this, jobject ia)
   jclass this_cls;
   jfieldID fid;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   /* Set the variable in the object */
   this_cls = (*env)->FindClass (env, "java/net/SocketImpl");
   if (this_cls == NULL)
@@ -343,9 +324,6 @@ _javanet_set_remhost (JNIEnv * env, jobject this, int netaddr)
 {
   jobject ia;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   DBG ("_javanet_set_remhost(): Entered _javanet_set_remhost\n");
 
   /* Get an InetAddress object */
@@ -372,9 +350,6 @@ _javanet_get_netaddr (JNIEnv * env, jobject addr)
   jbyte *octets;
   int netaddr, len;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   DBG ("_javanet_get_netaddr(): Entered _javanet_get_netaddr\n");
 
   if (addr == NULL)
@@ -441,9 +416,6 @@ _javanet_create (JNIEnv * env, jobject this, jboolean stream)
   int fd;
   int result;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   if (stream)
     {
       /* create a stream socket */
@@ -514,9 +486,6 @@ _javanet_close (JNIEnv * env, jobject this, int stream)
   int result;
   int error = 0;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   fd = _javanet_get_int_field (env, this, "native_fd");
   if (fd == -1)
     return;
@@ -552,7 +521,8 @@ _javanet_close (JNIEnv * env, jobject this, int stream)
  * Connects to the specified destination.
  */
 void
-_javanet_connect (JNIEnv * env, jobject this, jobject addr, jint port)
+_javanet_connect (JNIEnv * env, jobject this, jobject addr, jint port,
+                 jboolean stream)
 {
 #ifndef WITHOUT_NETWORK
   int netaddr, fd;
@@ -560,9 +530,6 @@ _javanet_connect (JNIEnv * env, jobject this, jobject addr, jint port)
   int local_address, local_port;
   int remote_address, remote_port;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   DBG ("_javanet_connect(): Entered _javanet_connect\n");
 
   /* Pre-process input variables */
@@ -613,7 +580,7 @@ _javanet_connect (JNIEnv * env, jobject this, jobject addr, jint port)
       return;
     }
 
-  _javanet_create_localfd (env, this);
+  _javanet_create_localfd (env, this, stream);
   if ((*env)->ExceptionOccurred (env))
     {
       /* We don't care whether this succeeds. close() will cleanup later. */
@@ -622,8 +589,13 @@ _javanet_connect (JNIEnv * env, jobject this, jobject addr, jint port)
     }
   DBG ("_javanet_connect(): Created fd\n");
 
-  _javanet_set_int_field (env, this, "java/net/SocketImpl", "localport",
-                         local_port);
+  if (stream)
+    _javanet_set_int_field (env, this, "java/net/SocketImpl", "localport",
+                           local_port);
+  else
+    _javanet_set_int_field (env, this, "java/net/DatagramSocketImpl",
+                           "localPort", local_port);
+
   if ((*env)->ExceptionOccurred (env))
     {
       /* We don't care whether this succeeds. close() will cleanup later. */
@@ -643,31 +615,36 @@ _javanet_connect (JNIEnv * env, jobject this, jobject addr, jint port)
       return;
     }
 
-  if (remote_address == netaddr)
-    {
-      _javanet_set_remhost_addr (env, this, addr);
-    }
-  else
-    {
-      _javanet_set_remhost (env, this, remote_address);
-    }
-  if ((*env)->ExceptionOccurred (env))
+  if (stream)
     {
-      /* We don't care whether this succeeds. close() will cleanup later. */
-      TARGET_NATIVE_NETWORK_SOCKET_CLOSE (fd, result);
-      return;
-    }
-  DBG ("_javanet_connect(): Set the remote host\n");
+      if (remote_address == netaddr)
+       {
+         _javanet_set_remhost_addr (env, this, addr);
+       }
+      else
+       {
+         _javanet_set_remhost (env, this, remote_address);
+       }
+      if ((*env)->ExceptionOccurred (env))
+       {
+         /* We don't care whether this succeeds. close() will cleanup later.
+          */
+         TARGET_NATIVE_NETWORK_SOCKET_CLOSE (fd, result);
+         return;
+       }
+      DBG ("_javanet_connect(): Set the remote host\n");
 
-  _javanet_set_int_field (env, this, "java/net/SocketImpl", "port",
-                         remote_port);
-  if ((*env)->ExceptionOccurred (env))
-    {
-      /* We don't care whether this succeeds. close() will cleanup later. */
-      TARGET_NATIVE_NETWORK_SOCKET_CLOSE (fd, result);
-      return;
+      _javanet_set_int_field (env, this, "java/net/SocketImpl", "port",
+                             remote_port);
+      if ((*env)->ExceptionOccurred (env))
+       {
+         /* We don't care whether this succeeds. close() will cleanup later.
+          */
+         TARGET_NATIVE_NETWORK_SOCKET_CLOSE (fd, result);
+         return;
+       }
+      DBG ("_javanet_connect(): Set the remote port\n");
     }
-  DBG ("_javanet_connect(): Set the remote port\n");
 #else /* not WITHOUT_NETWORK */
 #endif /* not WITHOUT_NETWORK */
 }
@@ -693,9 +670,6 @@ _javanet_bind (JNIEnv * env, jobject this, jobject addr, jint port,
   int result;
   int local_address, local_port;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   DBG ("_javanet_bind(): Entering native bind()\n");
 
   /* Get the address to connect to */
@@ -797,9 +771,6 @@ _javanet_listen (JNIEnv * env, jobject this, jint queuelen)
   int fd;
   int result;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   /* Get the real file descriptor */
   fd = _javanet_get_int_field (env, this, "native_fd");
   if (fd == -1)
@@ -836,9 +807,6 @@ _javanet_accept (JNIEnv * env, jobject this, jobject impl)
   int local_address, local_port;
   int remote_address, remote_port;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   /* Get the real file descriptor */
   fd = _javanet_get_int_field (env, this, "native_fd");
   if (fd == -1)
@@ -897,7 +865,7 @@ _javanet_accept (JNIEnv * env, jobject this, jobject impl)
       return;
     }
 
-  _javanet_create_localfd (env, impl);
+  _javanet_create_localfd (env, impl, 1);
   if ((*env)->ExceptionOccurred (env))
     {
       /* We don't care whether this succeeds. close() will cleanup later. */
@@ -971,9 +939,6 @@ _javanet_recvfrom (JNIEnv * env, jobject this, jarray buf, int offset,
   int from_address, from_port;
   int received_bytes;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   DBG ("_javanet_recvfrom(): Entered _javanet_recvfrom\n");
 
   /* Get the real file descriptor */
@@ -1040,6 +1005,11 @@ _javanet_recvfrom (JNIEnv * env, jobject this, jarray buf, int offset,
        (*port) = from_port;
     }
 
+  /* zero bytes received means recv() noticed the other side orderly
+     closing the connection. */
+  if (received_bytes == 0)
+    received_bytes = -1;
+
   return (received_bytes);
 #else /* not WITHOUT_NETWORK */
 #endif /* not WITHOUT_NETWORK */
@@ -1065,9 +1035,6 @@ _javanet_sendto (JNIEnv * env, jobject this, jarray buf, int offset, int len,
   jbyte *p;
   int bytes_sent;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   /* Get the real file descriptor */
   fd = _javanet_get_int_field (env, this, "native_fd");
   if (fd == -1)
@@ -1138,9 +1105,6 @@ _javanet_set_option (JNIEnv * env, jobject this, jint option_id, jobject val)
   int address;
   int result;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   /* Get the real file descriptor */
   fd = _javanet_get_int_field (env, this, "native_fd");
   if (fd == -1)
@@ -1355,9 +1319,6 @@ _javanet_get_option (JNIEnv * env, jobject this, jint option_id)
   int address;
   int result;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   /* Get the real file descriptor */
   fd = _javanet_get_int_field (env, this, "native_fd");
   if (fd == -1)
@@ -1531,9 +1492,6 @@ _javanet_shutdownInput (JNIEnv * env, jobject this)
 {
   int fd;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   /* Get the real file descriptor. */
   fd = _javanet_get_int_field (env, this, "native_fd");
   if (fd == -1)
@@ -1546,7 +1504,8 @@ _javanet_shutdownInput (JNIEnv * env, jobject this)
   /* Shutdown input stream of socket. */
   if (shutdown (fd, SHUT_RD) == -1)
     {
-      JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno));
+      JCL_ThrowException (env, SOCKET_EXCEPTION,
+                         TARGET_NATIVE_LAST_ERROR_STRING());
       return;
     }
 }
@@ -1556,9 +1515,6 @@ _javanet_shutdownOutput (JNIEnv * env, jobject this)
 {
   int fd;
 
-  assert (env != NULL);
-  assert ((*env) != NULL);
-
   /* Get the real file descriptor. */
   fd = _javanet_get_int_field (env, this, "native_fd");
   if (fd == -1)
@@ -1571,7 +1527,8 @@ _javanet_shutdownOutput (JNIEnv * env, jobject this)
   /* Shutdown output stream of socket. */
   if (shutdown (fd, SHUT_WR) == -1)
     {
-      JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno));
+      JCL_ThrowException (env, SOCKET_EXCEPTION,
+                         TARGET_NATIVE_LAST_ERROR_STRING());
       return;
     }
 }
index 7c77ea77f845eab3cb3883864196ad2cb773ec2e..c173b1059f6e4234ea8695971964692d92d79fb2 100644 (file)
@@ -92,7 +92,7 @@ extern int _javanet_get_int_field(JNIEnv *, jobject, const char *);
 extern int _javanet_get_netaddr(JNIEnv *, jobject);
 extern void _javanet_create(JNIEnv *, jobject, jboolean);
 extern void _javanet_close(JNIEnv *, jobject, int);
-extern void _javanet_connect(JNIEnv *, jobject, jobject, jint);
+extern void _javanet_connect(JNIEnv *, jobject, jobject, jint, jboolean);
 extern void _javanet_bind(JNIEnv *, jobject, jobject, jint, int);
 extern void _javanet_listen(JNIEnv *, jobject, jint);
 extern void _javanet_accept(JNIEnv *, jobject, jobject);
index a082889c655a207261a987e53dab4f7022f8e74a..ede3c624a9e91fff847bf7e0dbe0a30e27ddc064 100644 (file)
@@ -44,10 +44,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -177,6 +178,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index a9894994bb8829a860afe3a952e086e01ea24c4d..5aed63f355d8067b10b9ff4d220ff9b054eb63f1 100644 (file)
@@ -1,5 +1,5 @@
 /* gnu_java_nio_channels_FileChannelImpl.c -
-   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -538,11 +538,27 @@ Java_gnu_java_nio_channels_FileChannelImpl_mapImpl (JNIEnv *env, jobject obj,
       return NULL;
     }
 
+  fd = get_native_fd (env, obj);
+
   prot = PROT_READ;
-  if (mode == '+')
-    prot |= PROT_WRITE;
+  if (mode == '+' || mode == 'c')
+    {
+      /* When writing we need to make sure the file is big enough,
+         otherwise the result of mmap is undefined. */
+      jlong filesize;
+      filesize = Java_gnu_java_nio_channels_FileChannelImpl_size(env, obj);
+      if (filesize == -1)
+       return NULL;
+      if (position + size > filesize)
+       if (ftruncate(fd, position + size) == -1)
+         {
+           JCL_ThrowException (env, IO_EXCEPTION, strerror (errno));
+           return NULL;
+         }
+      prot |= PROT_WRITE;
+    }
+
   flags = (mode == 'c' ? MAP_PRIVATE : MAP_SHARED);
-  fd = get_native_fd (env, obj);
   p = mmap (NULL, (size_t) ALIGN_UP (size, pagesize), prot, flags,
            fd, ALIGN_DOWN (position, pagesize));
   if (p == MAP_FAILED)
diff --git a/libjava/classpath/native/jni/java-nio/java_nio.c b/libjava/classpath/native/jni/java-nio/java_nio.c
deleted file mode 100644 (file)
index a25f38a..0000000
+++ /dev/null
@@ -1,328 +0,0 @@
-/* java_nio.c - Native methods for gnu.java.nio.FileChannelImpl class
-   Copyright (C) 2002 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-/* do not move; needed here because of some macro definitions */
-#include <config.h>
-
-#ifdef HAVE_MMAP
-#include <sys/mman.h>
-#endif
-
-#include <jni.h>
-#include <jcl.h>
-
-#include "target_native.h"
-#ifndef WITHOUT_NETWORK
-#include "target_native_network.h"
-#endif /* WITHOUT_NETWORK */
-
-#include "java_nio_channels_FileChannelImpl.h"
-
-#include "javaio.h"
-
-#define NIO_DEBUG(X)           /* no debug */
-//#define NIO_DEBUG(X) X
-
-/***************************************
- *
- *  File Channel implementation
- *
- *************/
-
-
-static char *
-compare (int i, int lim, char *buffer)
-{
-  sprintf (buffer, "(%d >= %d)", i, lim);
-  return buffer;
-}
-
-static inline int
-convert_Int (int X)
-{
-  unsigned char *a = (unsigned char *) &X;
-  int res =
-    (((int) a[0]) << 24) +
-    (((int) a[1]) << 16) + (((int) a[2]) << 8) + (((int) a[3]) << 0);
-  return res;
-}
-
-static inline jlong
-convert_Long (jlong X)
-{
-  unsigned char *a = (unsigned char *) &X;
-  int res1 =
-    (((int) a[0]) << 24) +
-    (((int) a[1]) << 16) + (((int) a[2]) << 8) + (((int) a[3]) << 0);
-  int res2;
-  a += 4;
-  res2 =
-    (((int) a[0]) << 24) +
-    (((int) a[1]) << 16) + (((int) a[2]) << 8) + (((int) a[3]) << 0);
-  return ((jlong) res1) | ((jlong) res2) << 32LL;
-}
-
-static inline short
-convert_Short (short X)
-{
-  unsigned char *a = (unsigned char *) &X;
-  int res = (((int) a[2]) << 8) + (((int) a[3]) << 0);
-  return res;
-}
-static inline short
-convert_Char (short X)
-{
-  unsigned char *a = (unsigned char *) &X;
-  int res = (((int) a[2]) << 8) + (((int) a[3]) << 0);
-  return res;
-}
-
-static inline unsigned char
-convert_Byte (unsigned char X)
-{
-  return X;
-}
-
-static inline float
-convert_Float (float X)
-{
-  return X;
-}
-
-static inline double
-convert_Double (double X)
-{
-  return X;
-}
-
-
-// Note: do to many get()'s on a buffer and you should throw a BufferUnderflowException
-// Alas, I only found this out during testing....
-
-#define READ_WRITE_MMAPED_FILE(TYPE,ELT)                                                         \
-                                                                                                 \
-ELT Java_gnu_java_nio_MappedByteFileBuffer_nio_1read_1 ## TYPE ## _1file_1channel(JNIEnv *env,   \
-                                       jclass c, jobject b,                                      \
-                                      int index, int limit, jlong jaddress)    \
-{                                                                                                \
-  char *address = *(void **) &jaddress;        char buffer[128];                                         \
-  if (index >= limit) JCL_ThrowException(env, "java/nio/BufferUnderflowException", compare(index,limit, buffer));        \
- NIO_DEBUG(  fprintf(stderr, "READ:index = %d [0]=%c [1]=%c\n", index, address[0],address[1]);  ) \
-  address += index;                                                                              \
-  return convert_ ## TYPE  (*(ELT *) address);                                                   \
-}                                                                                                \
-                                                                                                 \
-void Java_gnu_java_nio_MappedByteFileBuffer_nio_1write_1 ## TYPE ## _1file_1channel(JNIEnv *env,  \
-                                          jclass c, jobject b,                                   \
-                                          int index, int limit, ELT value, jlong jaddress)               \
-{                                                                                                \
-                                                                                                 \
-  char *address = *(void **) &jaddress;        char buffer[128];                                         \
-  if (index >= limit) JCL_ThrowException(env, "java/nio/BufferUnderflowException", compare(index,limit, buffer));        \
-NIO_DEBUG(  fprintf(stderr, "WRITE:index = %d [0]=%c [1]=%c\n", index, address[0],address[1]);  )  \
-  address += index;                                                                              \
-  *(ELT *) address = value;                                                                      \
-}                                                                                                \
-                                                                                                 \
-ELT Java_gnu_java_nio_MappedByteFileBuffer_nio_1get_1 ## TYPE(JNIEnv *env, jclass c, jobject b,          \
-                       int index, int limit, jlong jaddress)                                             \
-{      \
- fprintf(stderr, "unimplemented\n"); return 0; \
-}                                                                                                \
-                                                                                                 \
-void Java_gnu_java_nio_MappedByteFileBuffer_nio_1put_1 ## TYPE(JNIEnv *env, jclass c, jobject b,  \
-                        int index, int limit,                                            \
-                        ELT value, jlong jaddress)                                               \
-{                      \
- fprintf(stderr, "unimplemented\n");  \
-}
-
-READ_WRITE_MMAPED_FILE (Byte, u_int8_t);
-READ_WRITE_MMAPED_FILE (Char, u_int16_t);
-READ_WRITE_MMAPED_FILE (Short, u_int16_t);
-READ_WRITE_MMAPED_FILE (Int, u_int32_t);
-READ_WRITE_MMAPED_FILE (Long, u_int64_t);
-READ_WRITE_MMAPED_FILE (Float, float);
-READ_WRITE_MMAPED_FILE (Double, double);
-
-u_int64_t
-nio_mmap_file (jint fd, jlong pos, jint size, jint jflags)
-{
-#ifdef HAVE_MMAP
-  u_int64_t ret = 0;
-  void *address;
-
-  int flags = (jflags != 2) ? MAP_SHARED : MAP_PRIVATE;
-  int prot = PROT_READ;
-
-  if (jflags == 1)
-    prot |= PROT_WRITE;
-
-  //  fprintf(stderr, "mapping file: %d\n", fd);
-
-  address = mmap (0, size, prot, flags, fd, pos);
-
-  if (address == (void *) -1)
-    {
-      perror ("mapping file failed");
-      return 0;
-    }
-
-  //  fprintf(stderr, "address = %p, fd = %d, pos=%lld, size=%d\n", address, fd, pos, size);
-
-  *(void **) &ret = address;
-
-  return ret;
-#else /* not HAVE_MMAP */
-  return (TARGET_NATIVE_MATH_INT_INT64_CONST_0);
-#endif /* not HAVE_MMAP */
-}
-
-
-void
-nio_msync (int fd, jlong jaddress, int size)
-{
-#ifdef HAVE_MMAP
-  int res;
-  char *address = *(void **) &jaddress;
-
-  //  fprintf(stderr, "synchronizing with file (%p -> %d bytes (%s))\n", address, size, address);
-
-  res = msync (address, size, MS_SYNC | MS_INVALIDATE);
-
-  if (res == -1)
-    {
-      perror ("synchronize with file failed");
-    }
-#else /* not HAVE_MMAP */
-#endif /* not HAVE_MMAP */
-}
-
-void
-nio_unmmap_file (int fd, jlong jaddress, int size)
-{
-#ifdef HAVE_MMAP
-  int res = 0;
-  char *address = *(void **) &jaddress;
-
-  //  nio_msync(fd, jaddress, size);
-
-  //  fprintf(stderr, "unmapping (%p -> %d bytes)\n", address, size);
-
-  res = munmap (address, size);
-  if (res == -1)
-    {
-      perror ("un-mapping file failed");
-    }
-#else /* not HAVE_MMAP */
-#endif /* not HAVE_MMAP */
-}
-
-
-/***************************************
- *
- * Socket Channel implementation
- *
- *************/
-
-/*************************************************************************/
-
-/*
- * Returns a 32 bit Internet address for the passed in InetAddress object
- * Ronald: This is a verbatim copy from javanet.c.
- * It's a copy to avoid a link error in orp.
- */
-
-static int
-socket_channel_get_net_addr (JNIEnv * env, jobject addr)
-{
-#ifndef WITHOUT_NETWORK
-  jclass cls = 0;
-  jmethodID mid;
-  jarray arr = 0;
-  jbyte *octets;
-  int netaddr, len;
-
-  DBG
-    ("socket_channel_get_net_addr(): Entered socket_channel_get_net_addr\n");
-
-  /* Call the getAddress method on the object to retrieve the IP address */
-  cls = (*env)->GetObjectClass (env, addr);
-  if (cls == NULL)
-    return (0);
-
-  mid = (*env)->GetMethodID (env, cls, "getAddress", "()[B");
-  if (mid == NULL)
-    return (0);
-
-  DBG ("socket_channel_get_net_addr(): Got getAddress method\n");
-
-  arr = (*env)->CallObjectMethod (env, addr, mid);
-  if (arr == NULL)
-    return (0);
-
-  DBG ("socket_channel_get_net_addr(): Got the address\n");
-
-  /* Turn the IP address into a 32 bit Internet address in network byte order */
-  len = (*env)->GetArrayLength (env, arr);
-  if (len != 4)
-    {
-      JCL_ThrowException (env, "java/io/IOException",
-                         "Internal Error: invalid byte array length");
-      return (0);
-    }
-  DBG ("socket_channel_get_net_addr(): Length ok\n");
-
-  octets = (*env)->GetByteArrayElements (env, arr, 0);
-  if (octets == NULL)
-    return (0);
-
-  DBG ("socket_channel_get_net_addr(): Grabbed bytes\n");
-
-  TARGET_NATIVE_NETWORK_IPADDRESS_BYTES_TO_INT (octets[0],
-                                               octets[1],
-                                               octets[2],
-                                               octets[3], netaddr);
-
-  (*env)->ReleaseByteArrayElements (env, arr, octets, 0);
-  DBG ("socket_channel_get_net_addr(): Done getting addr\n");
-
-  return netaddr;
-#else /* not WITHOUT_NETWORK */
-  return (0);
-#endif /* not WITHOUT_NETWORK */
-}
index 06e29906a338fdcff7cc7569377951943c156eef..f725cf2a4a78a92cf4df751fe4066ca6c54d5e66 100644 (file)
@@ -93,8 +93,8 @@ Java_java_nio_VMDirectByteBuffer_get__Lgnu_classpath_Pointer_2I_3BII
    jobject address, jint index, jbyteArray dst, jint dst_offset, jint dst_len)
 {
   jbyte *src = (jbyte *) JCL_GetRawData (env, address) + index;
-  jbyte *_dst = (*env)->GetByteArrayElements (env, dst, NULL) + dst_offset;
-  memcpy (_dst, src, dst_len);
+  jbyte *_dst = (*env)->GetByteArrayElements (env, dst, NULL);
+  memcpy (_dst + dst_offset, src, dst_len);
   (*env)->ReleaseByteArrayElements (env, dst, _dst, 0);
 }
 
@@ -103,10 +103,10 @@ Java_java_nio_VMDirectByteBuffer_put__Lgnu_classpath_Pointer_2I_3BII
   (JNIEnv *env, jclass clazz __attribute__ ((__unused__)),
    jobject address, jint index, jbyteArray src, jint src_offset, jint src_len)
 {
-  jbyte *_src = (*env)->GetByteArrayElements (env, src, NULL) + src_offset;
-  jbyte *dst = (jbyte *)JCL_GetRawData (env, address) + index;
+  jbyte *_src = (*env)->GetByteArrayElements (env, src, NULL);
+  jbyte *dst = (jbyte *)JCL_GetRawData (env, address);
+  memcpy (dst + index, _src + src_offset, src_len);
   (*env)->ReleaseByteArrayElements (env, src, _src, 0);
-  memcpy (dst, _src, src_len);
 }
 
 JNIEXPORT void JNICALL
index bc5b3f634ce9b44d7664fc2ac747aaf605884c16..ac8bc13a26bbd11d3fc12c8bbf8e274aedb090de 100644 (file)
@@ -44,10 +44,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -168,6 +169,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index 5309d729e142d8f2f7723106b2acb19c9d8dc97f..2634dadba81b2322d59bcc68503fdf99fcc8c668 100644 (file)
@@ -44,10 +44,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -171,6 +172,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index c3b4b7ef00773693a714e2dc792530beedf15112..a048071c92dec2bf60da0bb81f5c2cd5a0b3b413 100644 (file)
@@ -44,10 +44,11 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -171,6 +172,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index ab3b23007d4c487b6e8d34a274833045bb389aa7..e582bb6d27ec643368977f383ab59f98f73f7cee 100644 (file)
@@ -47,10 +47,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -186,6 +187,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index 7922dbcf10bdd7adc973c48d3138ab7fb6c64a11..19566c63b2d49e96a954bba9371e6b05f2b00a3e 100644 (file)
@@ -45,9 +45,6 @@ exception statement from your version. */
 MainThreadInterface *mainThread;
 QApplication *qApplication;
 
-#if defined(Q_WS_X11)
-extern void qt_x11_set_global_double_buffer( bool );
-#endif
 
 /**
  * Starts up a QApplication
@@ -92,11 +89,6 @@ JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_qt_MainQtThread_init
   jfieldID nofid = env->GetFieldID( cls, "mainThreadInterface", "J" );
   env->SetLongField( obj, nofid, (jlong)mainThread );
 
-#if defined(Q_WS_X11)
-  // turn off double-buffering.
-  qt_x11_set_global_double_buffer( (doublebuffer == JNI_TRUE) );
-#endif
-
   return (jlong)qtApp;
 }
 
index bf081e98455a8afca5cbfa491c84754db45ca096..1ac17145c2f092b78b7a48b34be5bc35547af53b 100644 (file)
@@ -125,6 +125,7 @@ public:
 
     jclass menuCls = env->GetObjectClass( menuPeer );
     jmethodID mid = env->GetMethodID(menuCls, "add", "(J)V");
+    env->DeleteLocalRef(menuCls);
     env->CallVoidMethod( menuPeer, mid, (jlong)newAction );
 
     env->DeleteGlobalRef( menuPeer );
index d4b9447851a0baf52c577b2daee09c27b73aee2c..0e9249f7f6fbf9d01d806d86ac461ae867888f93 100644 (file)
@@ -17,6 +17,8 @@ xmlj_util.c \
 xmlj_util.h \
 xmlj_xpath.c
 
+libxmlj_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
+
 AM_LDFLAGS = @CLASSPATH_MODULE@ @XML_LIBS@ @XSLT_LIBS@
 AM_CPPFLAGS = @CLASSPATH_INCLUDES@
 
index 2fb6e202a252cadf012b3d1d12027a2fab3e3836..05c3d87c632a6df910174334bda0d37704909ecf 100644 (file)
@@ -44,17 +44,18 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/include/config.h
 CONFIG_CLEAN_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
-libxmlj_la_LIBADD =
+libxmlj_la_DEPENDENCIES = $(top_builddir)/native/jni/classpath/jcl.lo
 am_libxmlj_la_OBJECTS = xmlj_dom.lo xmlj_error.lo xmlj_io.lo \
        xmlj_node.lo xmlj_sax.lo xmlj_transform.lo xmlj_util.lo \
        xmlj_xpath.lo
@@ -162,6 +163,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -283,6 +285,7 @@ xmlj_util.c \
 xmlj_util.h \
 xmlj_xpath.c
 
+libxmlj_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
 AM_LDFLAGS = @CLASSPATH_MODULE@ @XML_LIBS@ @XSLT_LIBS@
 AM_CPPFLAGS = @CLASSPATH_INCLUDES@
 
index 7bbe78b8e1faa3a93349231d95de1b7483ff601e..72601ae9f098dfe4401921169fc871d8acc06e74 100644 (file)
@@ -1,5 +1,5 @@
 /* xmlj_util.h -
-   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -38,10 +38,6 @@ exception statement from your version. */
 #ifndef XMLJ_UTIL_H
 #define XMLJ_UTIL_H
 
-#if defined __64BIT__ || defined __LP64 || defined _LP64 || defined __LP64__ || defined _ADDR64
-#  define XMLJ_64BIT_POINTER 1
-#endif 
-
 #include <jni.h>
 #include <libxml/xmlstring.h>
 
index 50579b9d2069887394761d7758e19bfc5c389820..6ec7df8d2fbb9733f9fa4bf04dc4f6595e997b2d 100644 (file)
@@ -41,10 +41,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -140,6 +141,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index 2dcc1f208302e3c81ee7b28ac7b2441500e2fbae..73566fd95fab0953b24578b0b0a97e5e1d053d2b 100644 (file)
@@ -41,10 +41,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -149,6 +150,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index 13f2026f25904a167a7d20895cc974ce69750d3f..7ca81e23f11a91bb9aeaa73f0257fa5d24e6eecc 100644 (file)
@@ -41,10 +41,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -140,6 +141,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
index a6e60d02ad462109e995570c213e88b52e7d345c..ae1d92dd7b52aa1ec761412ac3596f4cce7632f3 100644 (file)
@@ -43,7 +43,7 @@ import java.io.Serializable;
 /**
  * Raised when the transaction or Activity is resumed in a different context
  * than from which it was suspended. It is also raised when the invocation is
- * not incompatible with the Activity’s current state.
+ * not incompatible with the Activity's current state.
  *
  * @since 1.5
  *
index 97527e1504342d2e31adf7676f8faa6fd99ccfb1..d88b13dd707119b52ed93eccab1d224796902171 100644 (file)
@@ -1 +1 @@
-gnu.xml.aelfred2.XmlReader
+gnu.xml.stream.SAXParser
index aa9ffa1dca31aa22b1a7e8bf827c913c6376412b..4369810226fae854babd84412010b8cc8698837a 100644 (file)
@@ -1,4 +1,7 @@
 ## used by automake to generate Makefile.in
 
+logging_DATA = java/util/logging/logging.properties
+loggingdir = $(prefix)/lib
+
 security_DATA = java/security/classpath.security
-securitydir = $(libdir)/security
+securitydir = $(prefix)/lib/security
index 841b3cab7e36e19cec64f197ac209b162ffc594c..65035bc1cb833c983492a167710b0549e8ee4053 100644 (file)
@@ -42,10 +42,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -59,9 +60,10 @@ am__vpath_adj = case $$p in \
     *) f=$$p;; \
   esac;
 am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(securitydir)"
+am__installdirs = "$(DESTDIR)$(loggingdir)" "$(DESTDIR)$(securitydir)"
+loggingDATA_INSTALL = $(INSTALL_DATA)
 securityDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(security_DATA)
+DATA = $(logging_DATA) $(security_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
@@ -150,6 +152,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -254,8 +257,10 @@ target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
 vm_classes = @vm_classes@
+logging_DATA = java/util/logging/logging.properties
+loggingdir = $(prefix)/lib
 security_DATA = java/security/classpath.security
-securitydir = $(libdir)/security
+securitydir = $(prefix)/lib/security
 all: all-am
 
 .SUFFIXES:
@@ -298,6 +303,23 @@ clean-libtool:
 distclean-libtool:
        -rm -f libtool
 uninstall-info-am:
+install-loggingDATA: $(logging_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(loggingdir)" || $(mkdir_p) "$(DESTDIR)$(loggingdir)"
+       @list='$(logging_DATA)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f=$(am__strip_dir) \
+         echo " $(loggingDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(loggingdir)/$$f'"; \
+         $(loggingDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(loggingdir)/$$f"; \
+       done
+
+uninstall-loggingDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(logging_DATA)'; for p in $$list; do \
+         f=$(am__strip_dir) \
+         echo " rm -f '$(DESTDIR)$(loggingdir)/$$f'"; \
+         rm -f "$(DESTDIR)$(loggingdir)/$$f"; \
+       done
 install-securityDATA: $(security_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(securitydir)" || $(mkdir_p) "$(DESTDIR)$(securitydir)"
@@ -353,7 +375,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(DATA)
 installdirs:
-       for dir in "$(DESTDIR)$(securitydir)"; do \
+       for dir in "$(DESTDIR)$(loggingdir)" "$(DESTDIR)$(securitydir)"; do \
          test -z "$$dir" || $(mkdir_p) "$$dir"; \
        done
 install: install-am
@@ -398,7 +420,7 @@ info: info-am
 
 info-am:
 
-install-data-am: install-securityDATA
+install-data-am: install-loggingDATA install-securityDATA
 
 install-exec-am:
 
@@ -424,18 +446,19 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-info-am uninstall-securityDATA
+uninstall-am: uninstall-info-am uninstall-loggingDATA \
+       uninstall-securityDATA
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
        distclean distclean-generic distclean-libtool distdir dvi \
        dvi-am html html-am info info-am install install-am \
        install-data install-data-am install-exec install-exec-am \
-       install-info install-info-am install-man install-securityDATA \
-       install-strip installcheck installcheck-am installdirs \
-       maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       uninstall uninstall-am uninstall-info-am \
-       uninstall-securityDATA
+       install-info install-info-am install-loggingDATA install-man \
+       install-securityDATA install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+       uninstall-info-am uninstall-loggingDATA uninstall-securityDATA
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index 09ff6ca4d53a6a6dac950750875e02c6dc8f6f1f..40df5421d2df1419f16add2e1cfc4e4360dbb228 100644 (file)
@@ -42,10 +42,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
-       $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
-       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
-       $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+       $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -141,6 +142,7 @@ JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
 JIKES = @JIKES@
 JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
 KJC = @KJC@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
diff --git a/libjava/classpath/scripts/build_mathnamespace b/libjava/classpath/scripts/build_mathnamespace
new file mode 100644 (file)
index 0000000..a2e53a3
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+echo "/* Warning ! This is a generated file. Use build_mathnamespace to regenerate it */"
+while read fun;do
+       echo "#define ${fun} ClasspathMath_${fun}"
+done
diff --git a/libjava/classpath/scripts/math_symbols b/libjava/classpath/scripts/math_symbols
new file mode 100644 (file)
index 0000000..9bc8c26
--- /dev/null
@@ -0,0 +1,65 @@
+acos
+asin
+atan
+atan2
+cos
+sin
+tan
+cosh
+sinh
+exp
+frexp
+ldexp
+log
+modf
+pow
+sqrt
+ceil
+fabs
+floor
+fmod
+erf
+erfc
+gamma
+hypot
+finite
+j0
+j1
+jn
+lgamma
+y0
+y1
+yn
+acosh
+asinh
+cbrt
+logb
+nextafter
+remainder
+logb
+scalb
+significand
+logbf
+scalbf
+significandf
+copysign
+ilogb
+rint
+rintf
+scalbn
+__ieee754_sqrt
+__ieee754_asin
+__ieee754_asin
+__ieee754_atan2
+__ieee754_exp
+__ieee754_fmod
+__ieee754_log
+__ieee754_pow
+__ieee754_rem_pio2
+__ieee754_remainder
+__ieee754_scalb
+__ieee754_acos
+__kernel_cos
+__kernel_sin
+__kernel_tan
+__kernel_rem_pio2
index 30826b7b1a4d6e12c6a91b03d534316bd8d160e7..aa285cb58a68f8114f2c8abddfe65fabafcba70c 100644 (file)
@@ -42,6 +42,7 @@ exception statement from your version. */
 package gnu.classpath.jdwp;
 
 import gnu.classpath.jdwp.event.EventRequest;
+import gnu.classpath.jdwp.exception.JdwpException;
 import gnu.classpath.jdwp.exception.InvalidClassException;
 import gnu.classpath.jdwp.exception.InvalidObjectException;
 import gnu.classpath.jdwp.id.ObjectId;
@@ -68,12 +69,14 @@ public class VMVirtualMachine
    *
    * @param  thread  the thread to suspend
    */
-  public static native void suspendThread (Thread thread);
+  public static native void suspendThread (Thread thread)
+    throws JdwpException;
 
   /**
    * Suspend all threads
    */
   public static void suspendAllThreads ()
+    throws JdwpException
   {
     // Our JDWP thread group -- don't suspend any of those threads
     Thread current = Thread.currentThread ();
@@ -118,7 +121,8 @@ public class VMVirtualMachine
    *
    * @param  thread  the thread to resume
    */
-  public static native void resumeThread (Thread thread);
+  public static native void resumeThread (Thread thread)
+    throws JdwpException;
 
   /**
    * Resume all threads. This simply decrements the thread's
@@ -126,6 +130,7 @@ public class VMVirtualMachine
    * to run.
    */
   public static void resumeAllThreads ()
+    throws JdwpException
   {
     // Our JDWP thread group -- don't resume
     Thread current = Thread.currentThread ();
@@ -167,17 +172,20 @@ public class VMVirtualMachine
    * @param  thread  the thread whose suspend count is desired
    * @return the number of times the thread has been suspended
    */
-  public static native int getSuspendCount (Thread thread);
+  public static native int getSuspendCount (Thread thread)
+    throws JdwpException;
  
   /**
    * Returns a count of the number of loaded classes in the VM
    */
-  public static native int getAllLoadedClassesCount ();
+  public static native int getAllLoadedClassesCount ()
+    throws JdwpException;
 
   /**
    * Returns an iterator over all the loaded classes in the VM
    */
-  public static native Iterator getAllLoadedClasses ();
+  public static native Iterator getAllLoadedClasses ()
+    throws JdwpException;
 
   /**
    * Returns the status of the given class
@@ -186,7 +194,8 @@ public class VMVirtualMachine
    * @return a flag containing the class's status
    * @see JdwpConstants.ClassStatus
    */
-  public static native int getClassStatus (Class clazz);
+  public static native int getClassStatus (Class clazz)
+    throws JdwpException;
 
 
   /**
@@ -198,7 +207,8 @@ public class VMVirtualMachine
    * @return a list of frames
    */
   public static native ArrayList getFrames (Thread thread, int strart,
-                                           int length);
+                                           int length)
+    throws JdwpException;
 
   /**
    * Returns the frame for a given thread with the frame ID in
@@ -210,7 +220,8 @@ public class VMVirtualMachine
    * @param  bb      buffer containing the frame's ID
    * @return the desired frame
    */
-  public static native VMFrame getFrame (Thread thread, ByteBuffer bb);
+  public static native VMFrame getFrame (Thread thread, ByteBuffer bb)
+    throws JdwpException;
 
   /**
    * Returns the number of frames in the thread's stack
@@ -218,7 +229,8 @@ public class VMVirtualMachine
    * @param  thread  the thread for which to get a frame count
    * @return the number of frames in the thread's stack
    */
-  public static native int getFrameCount (Thread thread);
+  public static native int getFrameCount (Thread thread)
+    throws JdwpException;
 
 
   /**
@@ -228,7 +240,8 @@ public class VMVirtualMachine
    * @return integer status of the thread
    * @see JdwpConstants.ThreadStatus
    */
-  public static native int getThreadStatus (Thread thread);
+  public static native int getThreadStatus (Thread thread)
+    throws JdwpException;
 
   /**
    * Returns a list of all classes which this class loader has been
@@ -237,7 +250,8 @@ public class VMVirtualMachine
    * @param  cl  the class loader
    * @return a list of all visible classes
    */
-  public static native ArrayList getLoadRequests (ClassLoader cl);
+  public static native ArrayList getLoadRequests (ClassLoader cl)
+    throws JdwpException;
 
   /**
    * Executes a method in the virtual machine
@@ -254,7 +268,8 @@ public class VMVirtualMachine
   public static native MethodResult executeMethod (Object obj, Thread thread,
                                            Class clazz, Method method,
                                            Object[] values,
-                                           boolean nonVirtual);
+                                           boolean nonVirtual)
+    throws JdwpException;
 
   /**
    * "Returns variable information for the method. The variable table
@@ -266,7 +281,8 @@ public class VMVirtualMachine
    * @param  method  the method for which variable information is desired
    * @return a result object containing the information
    */
-  public static native VariableTable getVarTable (Class clazz, Method method);
+  public static native VariableTable getVarTable (Class clazz, Method method)
+    throws JdwpException;
 
   /**
    * "Returns line number information for the method, if present. The line
@@ -279,7 +295,8 @@ public class VMVirtualMachine
    * @param  method  the method whose line table is desired
    * @return a result object containing the line table
    */
-  public static native LineTable getLineTable (Class clazz, Method method);
+  public static native LineTable getLineTable (Class clazz, Method method)
+    throws JdwpException;
 
   /**
    * "Returns the name of source file in which a reference type was declared"
@@ -288,7 +305,8 @@ public class VMVirtualMachine
    * @return a string containing the source file name; "no path information
    *         for the file is included"
    */
-  public static native String getSourceFile (Class clazz);
+  public static native String getSourceFile (Class clazz)
+    throws JdwpException;
 
   /**
    * Register a request from the debugger
@@ -299,14 +317,16 @@ public class VMVirtualMachine
    * or do some internal work to set up the event notification (useful for
    * execution-related events like breakpoints, single-stepping, etc.).
    */
-  public static native void registerEvent (EventRequest request);
+  public static native void registerEvent (EventRequest request)
+    throws JdwpException;
 
   /**
    * Unregisters the given request
    *
    * @param  request  the request to unregister
    */
-  public static native void unregisterEvent (EventRequest request);
+  public static native void unregisterEvent (EventRequest request)
+    throws JdwpException;
 
 
   /**
@@ -314,5 +334,6 @@ public class VMVirtualMachine
    *
    * @param  kind  the type of events to clear
    */
-  public static native void clearEvents (byte kind);
+  public static native void clearEvents (byte kind)
+    throws JdwpException;
 }
diff --git a/libjava/classpath/vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java b/libjava/classpath/vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java
new file mode 100644 (file)
index 0000000..958c218
--- /dev/null
@@ -0,0 +1,260 @@
+/* PlainDatagramSocketImpl.java -- VM interface for DatagramSocket impl
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.net;
+
+import gnu.classpath.Configuration;
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.net.SocketAddress;
+import java.net.SocketException;
+
+/**
+ * The VM interface for {@link gnu.java.net.PlainDatagramSocketImpl}.
+ *
+ * @author Ingo Proetel (proetel@aicas.com)
+ * @author Roman Kennke (kennke@aicas.com)
+ */
+public final class VMPlainDatagramSocketImpl
+{
+  /**
+   * Option id for the IP_TTL (time to live) value.
+   */
+  static final int IP_TTL = 0x1E61; // 7777
+
+
+  // Static initializer to load native library
+  static
+  {
+    if (Configuration.INIT_LOAD_LIBRARY)
+      {
+        System.loadLibrary("javanet");
+      }
+  }
+  
+  /**
+   * Binds this socket to a particular port and interface
+   *
+   * @param socket the socket object
+   * @param port the port to bind to
+   * @param addr the address to bind to
+   *
+   * @throws SocketException If an error occurs
+   */  
+  static native void bind(PlainDatagramSocketImpl socket, int port,
+                          InetAddress addr) 
+    throws SocketException;
+
+  /**
+   * Creates a new datagram socket.
+   *
+   * @param socket the socket object
+   *
+   * @throws SocketException If an error occurs
+   */
+  static native void create(PlainDatagramSocketImpl socket)
+    throws SocketException;
+
+  /**
+   * Connects to the remote address and port specified as arguments.
+   *
+   * @param socket the socket object
+   * @param addr the remote address to connect to
+   * @param port the remote port to connect to
+   *
+   * @throws SocketException If an error occurs
+   */
+  static native void connect(PlainDatagramSocketImpl socket, InetAddress addr,
+                             int port)
+    throws SocketException;
+
+  /**
+   * Sends a packet of data to a remote host.
+   *
+   * @param socket the socket object
+   * @param packet the packet to send
+   *
+   * @throws IOException If an error occurs
+   */
+  static void send(PlainDatagramSocketImpl socket, DatagramPacket packet)
+    throws IOException
+  {
+    nativeSendTo(socket, packet.getAddress(), packet.getPort(),
+                 packet.getData(), packet.getOffset(), packet.getLength());
+  }
+
+
+  /**
+   * Sends a packet of data to a remote host.
+   *
+   * @param socket the socket object
+   * @param addr the address to send to
+   * @param port the port to send to 
+   * @param buf the buffer to send
+   * @param offset the offset of the data in the buffer to send
+   * @param len the length of the data to send
+   *
+   * @throws IOException If an error occurs
+   */
+  private static native void nativeSendTo(PlainDatagramSocketImpl socket,
+                                          InetAddress addr, int port,
+                                          byte[] buf, int offset, int len)
+    throws IOException;
+
+  /**
+   * Receives a UDP packet from the network
+   *
+   * @param socket the socket object
+   * @param packet the packet to fill in with the data received
+   *
+   * @throws IOException IOException If an error occurs
+   */
+  static void receive(PlainDatagramSocketImpl socket, DatagramPacket packet)
+    throws IOException
+  {
+    byte[] receiveFromAddress = new byte[4];
+    int[] receiveFromPort = new int[1];
+    int[] receivedLength = new int[1];
+
+    nativeReceive(socket, packet.getData(), packet.getOffset(),
+                  packet.getLength(),
+                  receiveFromAddress, receiveFromPort, receivedLength);
+
+    packet.setAddress(InetAddress.getByAddress(receiveFromAddress));
+    packet.setPort(receiveFromPort[0]);
+    packet.setLength(receivedLength[0]);
+  }
+
+  private static native void nativeReceive(PlainDatagramSocketImpl socket,
+                                           byte[] buf, int offset, int len,
+                                           byte[] receiveFromAddress,
+                                           int[] receiveFromPort,
+                                           int[] receivedLength)
+    throws IOException;
+
+  /**
+   * Sets the value of an option on the socket
+   *
+   * @param socket the socket object
+   * @param optionId the identifier of the option to set
+   * @param value the value of the option to set
+   *
+   * @exception SocketException If an error occurs
+   */
+  static native void setOption(PlainDatagramSocketImpl socket, int optionId,
+                               Object value)
+    throws SocketException;
+
+  /**
+   * Retrieves the value of an option on the socket.
+   *
+   * @param socket the socket object
+   * @param optionId the identifier of the option to retrieve
+   *
+   * @return the value of the option
+   *
+   * @throws SocketException if an error occurs
+   */
+  static native Object getOption(PlainDatagramSocketImpl socket, int optionId)
+    throws SocketException;
+
+  /**
+   * Closes the socket.
+   *
+   * @param socket the socket object
+   */
+  static native void close(PlainDatagramSocketImpl socket);
+
+  /**
+   * Joins a multicast group
+   *
+   * @param addr The group to join
+   *
+   * @exception IOException If an error occurs
+   */
+  static native void join(PlainDatagramSocketImpl socket, InetAddress addr)
+    throws IOException;
+
+  /**
+   * Leaves a multicast group
+   *
+   * @param addr The group to leave
+   *
+   * @exception IOException If an error occurs
+   */
+  static native void leave(PlainDatagramSocketImpl socket, InetAddress addr)
+    throws IOException;
+
+  /**
+   * Joins a multicast group.
+   *
+   * @param socket the socket object
+   * @param address the socket address
+   * @param netIf the network interface
+   *
+   * @throws IOException if I/O errors occur
+   */
+  static void joinGroup(PlainDatagramSocketImpl socket, SocketAddress address,
+                        NetworkInterface netIf)
+    throws IOException
+  {
+    throw new InternalError
+      ("PlainDatagramSocketImpl::joinGroup is not implemented");
+  }
+
+  /**
+   * Leaves a multicast group.
+   *
+   * @param socket the socket object
+   * @param address the socket address
+   * @param netIf the network interface
+   *
+   * @throws IOException if I/O errors occur
+   */
+  static void leaveGroup(PlainDatagramSocketImpl socket, SocketAddress address,
+                         NetworkInterface netIf)
+    throws IOException
+  {
+    throw new InternalError
+      ("PlainDatagramSocketImpl::leaveGroup is not implemented");
+  }
+
+}
diff --git a/libjava/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java b/libjava/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java
new file mode 100644 (file)
index 0000000..76be558
--- /dev/null
@@ -0,0 +1,314 @@
+/* VMPlainSocketImpl.java -- VM interface for default socket implementation
+   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.net;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.net.SocketException;
+import java.net.SocketImpl;
+import java.net.SocketOptions;
+import java.net.UnknownHostException;
+
+import gnu.classpath.Configuration;
+
+/**
+ * The VM interface for {@link gnu.java.net.PlainSocketImpl}.
+ *
+ * @author Ingo Proetel (proetel@aicas.com)
+ * @author Roman Kennke (kennke@aicas.com)
+ */
+public final class VMPlainSocketImpl
+{
+  /**
+   * Static initializer to load native library.
+   */
+  static
+  {
+    if (Configuration.INIT_LOAD_LIBRARY)
+      {
+        System.loadLibrary("javanet");
+      }
+  }
+
+  /**
+   * Sets the specified option on a socket to the passed in object.
+   * The optionId parameter is one of the defined constants in
+   * the SocketImpl interface.
+   *
+   * @param socket the socket object
+   * @param optionId the identifier of the option
+   * @param value the value to set the option to
+   *
+   * @throws SocketException if an error occurs
+   */
+  static native void setOption(PlainSocketImpl socket, int optionId, Object value)
+    throws SocketException;
+
+  /**
+   * Returns the current setting of the specified option. The optionId
+   * is one of the defined constants in this interface.
+   *
+   * @param socket the socket object
+   * @param optionId the option identifier
+   *
+   * @return the current value of the option
+   *
+   * @throws SocketException ff an error occurs
+   */
+  static native Object getOption(PlainSocketImpl socket, int optionId)
+    throws SocketException;
+
+  /**
+   * Creates a new socket that is not bound to any local address/port and
+   * is not connected to any remote address/port.
+   *
+   * @param socket the socket object
+   *
+   * @throws IOException if something goes wrong while creating the socket
+   */
+  static native void create(PlainSocketImpl socket) throws IOException;
+
+  /**
+   * Connects to the remote address and port specified as arguments.
+   *
+   * @param socket the socket object
+   * @param addr the remote address to connect to
+   * @param port the remote port to connect to
+   *
+   * @throws IOException if an error occurs
+   */
+  static native void connect(PlainSocketImpl socket, InetAddress addr,
+                             int port) throws IOException;
+
+  /**
+   * Binds to the specified port on the specified addr.  Note that this addr
+   * must represent a local IP address.  **** How bind to INADDR_ANY? ****
+   *
+   * @param socket the socket object
+   * @param addr the address to bind to
+   * @param port the port number to bind to
+   *
+   * @exception IOException If an error occurs
+   */
+  static native void bind(PlainSocketImpl socket, InetAddress addr, int port)
+    throws IOException;
+
+  /**
+   * Starts listening for connections on a socket. The queueLen parameter
+   * is how many pending connections will queue up waiting to be serviced
+   * before being accepted.  If the queue of pending requests exceeds this
+   * number, additional connections will be refused.
+   *
+   * @param socket the socket object
+   * @param queueLen the length of the pending connection queue
+   * 
+   * @exception IOException if an error occurs
+   */
+  static native void listen(PlainSocketImpl socket, int queueLen)
+    throws IOException;
+
+  /**
+   * Accepts a new connection on this socket.
+   *
+   * @param socket the socket object
+   * @param impl the socket object to accept this connection.
+   */
+  static native void accept(PlainSocketImpl socket, SocketImpl impl)
+    throws IOException;
+
+  /**
+   * Returns the number of bytes that the caller can read from this socket
+   * without blocking. 
+   *
+   * @param socket the socket object
+   *
+   * @return the number of readable bytes before blocking
+   *
+   * @throws IOException If an error occurs
+   */
+  static native int available(PlainSocketImpl socket) throws IOException;
+
+  /**
+   * Closes the socket.  This will cause any InputStream or OutputStream
+   * objects for this Socket to be closed as well.
+   *
+   * <p>
+   * Note that if the SO_LINGER option is set on this socket, then the
+   * operation could block.
+   * </p>
+   *
+   * @param socket the socket object
+   *
+   * @throws IOException if an error occurs
+   */
+  static native void close(PlainSocketImpl socket) throws IOException;
+
+  /**
+   * Internal method used by SocketInputStream for reading data from
+   * the connection.  Reads up to len bytes of data into the buffer
+   * buf starting at offset bytes into the buffer.
+   *
+   * @param socket the socket object
+   *
+   * @return the actual number of bytes read or -1 if end of stream.
+   *
+   * @throws IOException if an error occurs
+   */
+  static native int read(PlainSocketImpl socket, byte[] buf, int offset,
+                         int len) throws IOException;
+
+  /**
+   * Internal method used by SocketInputStream for reading data from
+   * the connection.  Reads and returns one byte of data.
+   *
+   * @param socket the socket object
+   *
+   * @return read byte or -1 if end of stream.
+   *
+   * @throws IOException if an error occurs
+   */
+  static int read(PlainSocketImpl socket) throws IOException
+  {
+    byte[] buf = new byte[1];
+    if (read(socket, buf, 0, 1) > 0)
+      return buf[0] & 0xFF;
+    else
+      return -1;
+  }
+
+  /**
+   * Internal method used by SocketOuputStream for writing data to
+   * the connection. Writes up to len bytes of data from the buffer
+   * <code>buf</code> starting at <cod>offset</code> bytes into the buffer.
+   *
+   * @param socket the socket object
+   * @param buf the buffer to write to the stream
+   * @param offset the start offset in the buffer
+   * @param len the number of bytes to write
+   *
+   * @throws IOException if an error occurs
+   */
+  static native void write(PlainSocketImpl socket, byte[] buf, int offset,
+                           int len) throws IOException;
+
+  /**
+   * Internal method used by SocketOuputStream for writing data to
+   * the connection. Writes exactly one byte to the socket.
+   *
+   * @param socket the socket object
+   * @param data the byte to write to the socket
+   *
+   * @throws IOException if an error occurs
+   */
+  static void write(PlainSocketImpl socket, int data)
+    throws IOException
+  {
+    write(socket, new byte[]{ (byte) data }, 0, 1);
+  }
+
+  /**
+   * Sets the input stream for this socket to the end of the stream. Any
+   * attempts to read more bytes from the stream will return an EOF.
+   *
+   * @param socket the socket object
+   *
+   * @throws IOException if I/O errors occur
+   */
+  static native void shutdownInput(PlainSocketImpl socket) throws IOException;
+
+  /**
+   * Disables the output stream for this socket. Any attempt to write more
+   * data to the socket will throw an IOException.
+   *
+   * @param socket the socket object
+   *
+   * @throws IOException if I/O errors occur
+   */
+  static native void shutdownOutput(PlainSocketImpl socket) throws IOException;
+
+  /**
+   * Connects to the remote socket address with a specified timeout.
+   *
+   * @param socket the socket object
+   * @param address the remote address to connect to
+   * @param timeout the timeout to use for this connect, 0 means infinite.
+   *
+   * @throws IOException if an error occurs
+   */
+  static synchronized void connect(PlainSocketImpl socket,
+                                      SocketAddress address, int timeout)
+    throws IOException
+  {
+    InetSocketAddress sockAddr = (InetSocketAddress) address;
+    InetAddress addr = sockAddr.getAddress();
+
+    if (addr == null)
+      throw new UnknownHostException(sockAddr.getHostName());
+
+    int port = sockAddr.getPort();
+
+    if (timeout < 0)
+      throw new IllegalArgumentException("negative timeout");
+
+    Object oldTimeoutObj = null;
+    try
+      {
+        oldTimeoutObj = getOption(socket, SocketOptions.SO_TIMEOUT);
+        setOption(socket, SocketOptions.SO_TIMEOUT, new Integer(timeout));
+        connect(socket, addr, port);
+      }
+    finally
+      {
+        if (oldTimeoutObj != null)
+          setOption(socket, SocketOptions.SO_TIMEOUT, oldTimeoutObj);
+      }
+  }
+
+  /**
+   * Send one byte of urgent data over the socket.
+   *
+   * @param socket the socket object
+   * @param data the byte to send
+   */
+  static void sendUrgendData(PlainSocketImpl socket, int data)
+  {
+    throw new InternalError ("PlainSocketImpl::sendUrgentData not implemented");
+  }
+}
index efc3dc47716ca74323385dc2762574e9ba6dfab7..e7b42586cc42ade2e3456a3d8e8d740f03bd841e 100644 (file)
@@ -256,6 +256,7 @@ build_os = @build_os@
 build_subdir = @build_subdir@
 build_vendor = @build_vendor@
 datadir = @datadir@
+dbexecdir = @dbexecdir@
 exec_prefix = @exec_prefix@
 extra_ldflags_libjava = @extra_ldflags_libjava@
 gxx_include_dir = @gxx_include_dir@
index 550314378e1da82ed74747a3b005ba32bfc58e99..7a2a10a4febcbe9cf81cff3c9e650776bf6d084f 100644 (file)
@@ -255,6 +255,7 @@ build_os = @build_os@
 build_subdir = @build_subdir@
 build_vendor = @build_vendor@
 datadir = @datadir@
+dbexecdir = @dbexecdir@
 exec_prefix = @exec_prefix@
 extra_ldflags_libjava = @extra_ldflags_libjava@
 gxx_include_dir = @gxx_include_dir@
diff --git a/libjava/java/nio/charset/spi/CharsetProvider.java b/libjava/java/nio/charset/spi/CharsetProvider.java
new file mode 100644 (file)
index 0000000..e15153f
--- /dev/null
@@ -0,0 +1,96 @@
+/* CharsetProvider.java -- charset service provider interface
+   Copyright (C) 2002, 2006 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.nio.charset.spi;
+
+import java.nio.charset.Charset;
+import java.util.Iterator;
+
+
+/**
+ * This class allows an implementor to provide additional character sets. The
+ * subclass must have a nullary constructor, and be attached to charset
+ * implementation classes. These extensions are loaded via the context class
+ * loader. To provide the charset extension, all files named
+ * <code>META-INF/services/java.nio.charset.spi.CharsetProvider</code> are
+ * read from the classpath. Each one should be a UTF-8 encoded list of
+ * fully-qualified names of concrete subclasses of this class; whitespace is
+ * ignored, and '#' starts comments. Duplicates are ignored. The
+ * implementations must be accessible to the classloader that requests them.
+ *
+ * @author Eric Blake (ebb9@email.byu.edu)
+ * @see Charset
+ * @since 1.4
+ * @status updated to 1.4
+ */
+public abstract class CharsetProvider
+{
+  /**
+   * Initialize a new charset provider. This performs a security check on
+   * RuntimePermission("charsetProvider").
+   *
+   * @throws SecurityException if building a new set is not allowed
+   */
+  protected CharsetProvider()
+  {
+    // We only do the security check for custom providers, not for the
+    // built in ones.
+    SecurityManager s = System.getSecurityManager();
+    if (s != null &&
+        ! (this instanceof gnu.java.nio.charset.Provider))
+       // GCJ LOCAL - We have the iconv provider in standard.omit
+        // || this instanceof gnu.java.nio.charset.iconv.IconvProvider))
+      s.checkPermission(new RuntimePermission("charsetProvider"));
+  }
+
+  /**
+   * Returns an iterator over the charsets defined by this provider.
+   *
+   * @return the iterator
+   * @see Charset#availableCharsets()
+   */
+  public abstract Iterator charsets();
+
+  /**
+   * Returns the named charset, by canonical name or alias.
+   *
+   * @param name the name of the character
+   *
+   * @return the charset, or null if not supported
+   */
+  public abstract Charset charsetForName(String name);
+} // class CharsetProvider
diff --git a/libjava/java/security/Security.java b/libjava/java/security/Security.java
new file mode 100644 (file)
index 0000000..001d35e
--- /dev/null
@@ -0,0 +1,759 @@
+/* Security.java --- Java base security class implementation
+   Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.security;
+
+import gnu.classpath.SystemProperties;
+
+import gnu.classpath.Configuration;
+// GCJ LOCAL - We don't have VMStackWalker yet.
+// import gnu.classpath.VMStackWalker;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.Vector;
+
+/**
+ * This class centralizes all security properties and common security methods.
+ * One of its primary uses is to manage providers.
+ *
+ * @author Mark Benvenuto (ivymccough@worldnet.att.net)
+ */
+public final class Security
+{
+  private static final String ALG_ALIAS = "Alg.Alias.";
+
+  private static Vector providers = new Vector();
+  private static Properties secprops = new Properties();
+  
+  static
+    {
+      String base = SystemProperties.getProperty("gnu.classpath.home.url");
+      String vendor = SystemProperties.getProperty("gnu.classpath.vm.shortname");
+
+      // Try VM specific security file
+      boolean loaded = loadProviders (base, vendor);
+    
+      // Append classpath standard provider if possible
+      if (!loadProviders (base, "classpath")
+         && !loaded
+         && providers.size() == 0)
+         {
+             if (Configuration.DEBUG)
+                 {
+                     /* No providers found and both security files failed to
+                      * load properly. Give a warning in case of DEBUG is
+                      * enabled. Could be done with java.util.logging later.
+                      */
+                     System.err.println
+                         ("WARNING: could not properly read security provider files:");
+                     System.err.println
+                         ("         " + base + "/security/" + vendor
+                          + ".security");
+                     System.err.println
+                         ("         " + base + "/security/" + "classpath"
+                          + ".security");
+                     System.err.println
+                         ("         Falling back to standard GNU security provider");
+                 }
+             providers.addElement (new gnu.java.security.provider.Gnu());
+         }
+    }
+  // This class can't be instantiated.
+  private Security()
+  {
+  }
+
+  /**
+   * Tries to load the vender specific security providers from the given
+   * base URL. Returns true if the resource could be read and completely
+   * parsed successfully, false otherwise.
+   */
+  private static boolean loadProviders(String baseUrl, String vendor)
+  {
+    if (baseUrl == null || vendor == null)
+      return false;
+
+    boolean result = true;
+    String secfilestr = baseUrl + "/security/" + vendor + ".security";
+    try
+      {
+       InputStream fin = new URL(secfilestr).openStream();
+       secprops.load(fin);
+
+       int i = 1;
+       String name;
+       while ((name = secprops.getProperty("security.provider." + i)) != null)
+         {
+           Exception exception = null;
+           try
+             {
+               providers.addElement(Class.forName(name).newInstance());
+             }
+           catch (ClassNotFoundException x)
+             {
+               exception = x;
+             }
+           catch (InstantiationException x)
+             {
+               exception = x;
+             }
+           catch (IllegalAccessException x)
+             {
+               exception = x;
+             }
+
+           if (exception != null)
+             {
+               System.err.println ("WARNING: Error loading security provider "
+                                   + name + ": " + exception);
+               result = false;
+             }
+           i++;
+         }
+      }
+    catch (IOException ignored)
+      {
+       result = false;
+      }
+
+    return result;
+  }
+
+  /**
+   * Gets a specified property for an algorithm. The algorithm name should be a
+   * standard name. See Appendix A in the Java Cryptography Architecture API
+   * Specification &amp; Reference for information about standard algorithm
+   * names. One possible use is by specialized algorithm parsers, which may map
+   * classes to algorithms which they understand (much like {@link Key} parsers
+   * do).
+   *
+   * @param algName the algorithm name.
+   * @param propName the name of the property to get.
+   * @return the value of the specified property.
+   * @deprecated This method used to return the value of a proprietary property
+   * in the master file of the "SUN" Cryptographic Service Provider in order to
+   * determine how to parse algorithm-specific parameters. Use the new
+   * provider-based and algorithm-independent {@link AlgorithmParameters} and
+   * {@link KeyFactory} engine classes (introduced in the Java 2 platform)
+   * instead.
+   */
+  public static String getAlgorithmProperty(String algName, String propName)
+  {
+    if (algName == null || propName == null)
+      return null;
+
+    String property = String.valueOf(propName) + "." + String.valueOf(algName);
+    Provider p;
+    for (Iterator i = providers.iterator(); i.hasNext(); )
+      {
+        p = (Provider) i.next();
+        for (Iterator j = p.keySet().iterator(); j.hasNext(); )
+          {
+            String key = (String) j.next();
+            if (key.equalsIgnoreCase(property))
+              return p.getProperty(key);
+          }
+      }
+    return null;
+  }
+
+  /**
+   * <p>Adds a new provider, at a specified position. The position is the
+   * preference order in which providers are searched for requested algorithms.
+   * Note that it is not guaranteed that this preference will be respected. The
+   * position is 1-based, that is, <code>1</code> is most preferred, followed by
+   * <code>2</code>, and so on.</p>
+   *
+   * <p>If the given provider is installed at the requested position, the
+   * provider that used to be at that position, and all providers with a
+   * position greater than position, are shifted up one position (towards the
+   * end of the list of installed providers).</p>
+   *
+   * <p>A provider cannot be added if it is already installed.</p>
+   *
+   * <p>First, if there is a security manager, its <code>checkSecurityAccess()
+   * </code> method is called with the string <code>"insertProvider."+provider.
+   * getName()</code> to see if it's ok to add a new provider. If the default
+   * implementation of <code>checkSecurityAccess()</code> is used (i.e., that
+   * method is not overriden), then this will result in a call to the security
+   * manager's <code>checkPermission()</code> method with a
+   * <code>SecurityPermission("insertProvider."+provider.getName())</code>
+   * permission.</p>
+   *
+   * @param provider the provider to be added.
+   * @param position the preference position that the caller would like for
+   * this provider.
+   * @return the actual preference position in which the provider was added, or
+   * <code>-1</code> if the provider was not added because it is already
+   * installed.
+   * @throws SecurityException if a security manager exists and its
+   * {@link SecurityManager#checkSecurityAccess(String)} method denies access
+   * to add a new provider.
+   * @see #getProvider(String)
+   * @see #removeProvider(String)
+   * @see SecurityPermission
+   */
+  public static int insertProviderAt(Provider provider, int position)
+  {
+    SecurityManager sm = System.getSecurityManager();
+    if (sm != null)
+      sm.checkSecurityAccess("insertProvider." + provider.getName());
+
+    position--;
+    int max = providers.size ();
+    for (int i = 0; i < max; i++)
+      {
+       if (((Provider) providers.elementAt(i)).getName().equals(provider.getName()))
+         return -1;
+      }
+
+    if (position < 0)
+      position = 0;
+    if (position > max)
+      position = max;
+
+    providers.insertElementAt(provider, position);
+
+    return position + 1;
+  }
+
+  /**
+   * <p>Adds a provider to the next position available.</p>
+   *
+   * <p>First, if there is a security manager, its <code>checkSecurityAccess()
+   * </code> method is called with the string <code>"insertProvider."+provider.
+   * getName()</code> to see if it's ok to add a new provider. If the default
+   * implementation of <code>checkSecurityAccess()</code> is used (i.e., that
+   * method is not overriden), then this will result in a call to the security
+   * manager's <code>checkPermission()</code> method with a
+   * <code>SecurityPermission("insertProvider."+provider.getName())</code>
+   * permission.</p>
+   *
+   * @param provider the provider to be added.
+   * @return the preference position in which the provider was added, or
+   * <code>-1</code> if the provider was not added because it is already
+   * installed.
+   * @throws SecurityException if a security manager exists and its
+   * {@link SecurityManager#checkSecurityAccess(String)} method denies access
+   * to add a new provider.
+   * @see #getProvider(String)
+   * @see #removeProvider(String)
+   * @see SecurityPermission
+   */
+  public static int addProvider(Provider provider)
+  {
+    return insertProviderAt (provider, providers.size () + 1);
+  }
+
+  /**
+   * <p>Removes the provider with the specified name.</p>
+   *
+   * <p>When the specified provider is removed, all providers located at a
+   * position greater than where the specified provider was are shifted down
+   * one position (towards the head of the list of installed providers).</p>
+   *
+   * <p>This method returns silently if the provider is not installed.</p>
+   *
+   * <p>First, if there is a security manager, its <code>checkSecurityAccess()
+   * </code> method is called with the string <code>"removeProvider."+name</code>
+   * to see if it's ok to remove the provider. If the default implementation of
+   * <code>checkSecurityAccess()</code> is used (i.e., that method is not
+   * overriden), then this will result in a call to the security manager's
+   * <code>checkPermission()</code> method with a <code>SecurityPermission(
+   * "removeProvider."+name)</code> permission.</p>
+   *
+   * @param name the name of the provider to remove.
+   * @throws SecurityException if a security manager exists and its
+   * {@link SecurityManager#checkSecurityAccess(String)} method denies access
+   * to remove the provider.
+   * @see #getProvider(String)
+   * @see #addProvider(Provider)
+   */
+  public static void removeProvider(String name)
+  {
+    SecurityManager sm = System.getSecurityManager();
+    if (sm != null)
+      sm.checkSecurityAccess("removeProvider." + name);
+
+    int max = providers.size ();
+    for (int i = 0; i < max; i++)
+      {
+       if (((Provider) providers.elementAt(i)).getName().equals(name))
+         {
+           providers.remove(i);
+           break;
+         }
+      }
+  }
+
+  /**
+   * Returns an array containing all the installed providers. The order of the
+   * providers in the array is their preference order.
+   *
+   * @return an array of all the installed providers.
+   */
+  public static Provider[] getProviders()
+  {
+    Provider[] array = new Provider[providers.size ()];
+    providers.copyInto (array);
+    return array;
+  }
+
+  /**
+   * Returns the provider installed with the specified name, if any. Returns
+   * <code>null</code> if no provider with the specified name is installed.
+   *
+   * @param name the name of the provider to get.
+   * @return the provider of the specified name.
+   * @see #removeProvider(String)
+   * @see #addProvider(Provider)
+   */
+  public static Provider getProvider(String name)
+  {
+    if (name == null)
+      return null;
+    else
+      {
+        name = name.trim();
+        if (name.length() == 0)
+          return null;
+      }
+    Provider p;
+    int max = providers.size ();
+    for (int i = 0; i < max; i++)
+      {
+       p = (Provider) providers.elementAt(i);
+       if (p.getName().equals(name))
+         return p;
+      }
+    return null;
+  }
+
+  /**
+   * <p>Gets a security property value.</p>
+   *
+   * <p>First, if there is a security manager, its <code>checkPermission()</code>
+   * method is called with a <code>SecurityPermission("getProperty."+key)</code>
+   * permission to see if it's ok to retrieve the specified security property
+   * value.</p>
+   *
+   * @param key the key of the property being retrieved.
+   * @return the value of the security property corresponding to key.
+   * @throws SecurityException if a security manager exists and its
+   * {@link SecurityManager#checkPermission(Permission)} method denies access
+   * to retrieve the specified security property value.
+   * @see #setProperty(String, String)
+   * @see SecurityPermission
+   */
+  public static String getProperty(String key)
+  {
+    // GCJ LOCAL - We don't have VMStackWalker yet.
+    // XXX To prevent infinite recursion when the SecurityManager calls us,
+    // don't do a security check if the caller is trusted (by virtue of having
+    // been loaded by the bootstrap class loader).
+    SecurityManager sm = System.getSecurityManager();
+    // if (sm != null && VMStackWalker.getCallingClassLoader() != null)
+    if (sm != null)
+      sm.checkSecurityAccess("getProperty." + key);
+
+    return secprops.getProperty(key);
+  }
+
+  /**
+   * <p>Sets a security property value.</p>
+   *
+   * <p>First, if there is a security manager, its <code>checkPermission()</code>
+   * method is called with a <code>SecurityPermission("setProperty."+key)</code>
+   * permission to see if it's ok to set the specified security property value.
+   * </p>
+   *
+   * @param key the name of the property to be set.
+   * @param datum the value of the property to be set.
+   * @throws SecurityException if a security manager exists and its
+   * {@link SecurityManager#checkPermission(Permission)} method denies access
+   * to set the specified security property value.
+   * @see #getProperty(String)
+   * @see SecurityPermission
+   */
+  public static void setProperty(String key, String datum)
+  {
+    SecurityManager sm = System.getSecurityManager();
+    if (sm != null)
+      sm.checkSecurityAccess("setProperty." + key);
+
+    if (datum == null)
+      secprops.remove(key);
+    else
+      secprops.put(key, datum);
+  }
+
+  /**
+   * Returns a Set of Strings containing the names of all available algorithms
+   * or types for the specified Java cryptographic service (e.g., Signature,
+   * MessageDigest, Cipher, Mac, KeyStore). Returns an empty Set if there is no
+   * provider that supports the specified service. For a complete list of Java
+   * cryptographic services, please see the Java Cryptography Architecture API
+   * Specification &amp; Reference. Note: the returned set is immutable.
+   *
+   * @param serviceName the name of the Java cryptographic service (e.g.,
+   * Signature, MessageDigest, Cipher, Mac, KeyStore). Note: this parameter is
+   * case-insensitive.
+   * @return a Set of Strings containing the names of all available algorithms
+   * or types for the specified Java cryptographic service or an empty set if
+   * no provider supports the specified service.
+   * @since 1.4
+   */
+  public static Set getAlgorithms(String serviceName)
+  {
+    HashSet result = new HashSet();
+    if (serviceName == null || serviceName.length() == 0)
+      return result;
+
+    serviceName = serviceName.trim();
+    if (serviceName.length() == 0)
+      return result;
+
+    serviceName = serviceName.toUpperCase()+".";
+    Provider[] providers = getProviders();
+    int ndx;
+    for (int i = 0; i < providers.length; i++)
+      for (Enumeration e = providers[i].propertyNames(); e.hasMoreElements(); )
+        {
+          String service = ((String) e.nextElement()).trim();
+          if (service.toUpperCase().startsWith(serviceName))
+            {
+              service = service.substring(serviceName.length()).trim();
+              ndx = service.indexOf(' '); // get rid of attributes
+              if (ndx != -1)
+                service = service.substring(0, ndx);
+              result.add(service);
+            }
+        }
+    return Collections.unmodifiableSet(result);
+  }
+
+  /**
+   * <p>Returns an array containing all installed providers that satisfy the
+   * specified selection criterion, or <code>null</code> if no such providers
+   * have been installed. The returned providers are ordered according to their
+   * preference order.</p>
+   *
+   * <p>A cryptographic service is always associated with a particular
+   * algorithm or type. For example, a digital signature service is always
+   * associated with a particular algorithm (e.g., <i>DSA</i>), and a
+   * CertificateFactory service is always associated with a particular
+   * certificate type (e.g., <i>X.509</i>).</p>
+   *
+   * <p>The selection criterion must be specified in one of the following two
+   * formats:</p>
+   *
+   * <ul>
+   *    <li><p>&lt;crypto_service&gt;.&lt;algorithm_or_type&gt;</p>
+   *    <p>The cryptographic service name must not contain any dots.</p>
+   *    <p>A provider satisfies the specified selection criterion iff the
+   *    provider implements the specified algorithm or type for the specified
+   *    cryptographic service.</p>
+   *    <p>For example, "CertificateFactory.X.509" would be satisfied by any
+   *    provider that supplied a CertificateFactory implementation for X.509
+   *    certificates.</p></li>
+   *
+   *    <li><p>&lt;crypto_service&gt;.&lt;algorithm_or_type&gt; &lt;attribute_name&gt;:&lt;attribute_value&gt;</p>
+   *    <p>The cryptographic service name must not contain any dots. There must
+   *    be one or more space charaters between the the &lt;algorithm_or_type&gt;
+   *    and the &lt;attribute_name&gt;.</p>
+   *    <p>A provider satisfies this selection criterion iff the provider
+   *    implements the specified algorithm or type for the specified
+   *    cryptographic service and its implementation meets the constraint
+   *    expressed by the specified attribute name/value pair.</p>
+   *    <p>For example, "Signature.SHA1withDSA KeySize:1024" would be satisfied
+   *    by any provider that implemented the SHA1withDSA signature algorithm
+   *    with a keysize of 1024 (or larger).</p></li>
+   * </ul>
+   *
+   * <p>See Appendix A in the Java Cryptogaphy Architecture API Specification
+   * &amp; Reference for information about standard cryptographic service names,
+   * standard algorithm names and standard attribute names.</p>
+   *
+   * @param filter the criterion for selecting providers. The filter is case-
+   * insensitive.
+   * @return all the installed providers that satisfy the selection criterion,
+   * or null if no such providers have been installed.
+   * @throws InvalidParameterException if the filter is not in the required
+   * format.
+   * @see #getProviders(Map)
+   */
+  public static Provider[] getProviders(String filter)
+  {
+    if (providers == null || providers.isEmpty())
+      return null;
+
+    if (filter == null || filter.length() == 0)
+      return getProviders();
+
+    HashMap map = new HashMap(1);
+    int i = filter.indexOf(':');
+    if (i == -1) // <service>.<algorithm>
+      map.put(filter, "");
+    else // <service>.<algorithm> <attribute>:<value>
+      map.put(filter.substring(0, i), filter.substring(i+1));
+
+    return getProviders(map);
+  }
+
+ /**
+  * <p>Returns an array containing all installed providers that satisfy the
+  * specified selection criteria, or <code>null</code> if no such providers
+  * have been installed. The returned providers are ordered according to their
+  * preference order.</p>
+  *
+  * <p>The selection criteria are represented by a map. Each map entry
+  * represents a selection criterion. A provider is selected iff it satisfies
+  * all selection criteria. The key for any entry in such a map must be in one
+  * of the following two formats:</p>
+  *
+  * <ul>
+  *    <li><p>&lt;crypto_service&gt;.&lt;algorithm_or_type&gt;</p>
+  *    <p>The cryptographic service name must not contain any dots.</p>
+  *    <p>The value associated with the key must be an empty string.</p>
+  *    <p>A provider satisfies this selection criterion iff the provider
+  *    implements the specified algorithm or type for the specified
+  *    cryptographic service.</p></li>
+  *
+  *    <li><p>&lt;crypto_service&gt;.&lt;algorithm_or_type&gt; &lt;attribute_name&gt;</p>
+  *    <p>The cryptographic service name must not contain any dots. There must
+  *    be one or more space charaters between the &lt;algorithm_or_type&gt; and
+  *    the &lt;attribute_name&gt;.</p>
+  *    <p>The value associated with the key must be a non-empty string. A
+  *    provider satisfies this selection criterion iff the provider implements
+  *    the specified algorithm or type for the specified cryptographic service
+  *    and its implementation meets the constraint expressed by the specified
+  *    attribute name/value pair.</p></li>
+  * </ul>
+  *
+  * <p>See Appendix A in the Java Cryptogaphy Architecture API Specification
+  * &amp; Reference for information about standard cryptographic service names,
+  * standard algorithm names and standard attribute names.</p>
+  *
+  * @param filter the criteria for selecting providers. The filter is case-
+  * insensitive.
+  * @return all the installed providers that satisfy the selection criteria,
+  * or <code>null</code> if no such providers have been installed.
+  * @throws InvalidParameterException if the filter is not in the required
+  * format.
+  * @see #getProviders(String)
+  */
+  public static Provider[] getProviders(Map filter)
+  {
+    if (providers == null || providers.isEmpty())
+      return null;
+
+    if (filter == null)
+      return getProviders();
+
+    Set querries = filter.keySet();
+    if (querries == null || querries.isEmpty())
+      return getProviders();
+
+    LinkedHashSet result = new LinkedHashSet(providers); // assume all
+    int dot, ws;
+    String querry, service, algorithm, attribute, value;
+    LinkedHashSet serviceProviders = new LinkedHashSet(); // preserve insertion order
+    for (Iterator i = querries.iterator(); i.hasNext(); )
+      {
+        querry = (String) i.next();
+        if (querry == null) // all providers
+          continue;
+
+        querry = querry.trim();
+        if (querry.length() == 0) // all providers
+          continue;
+
+        dot = querry.indexOf('.');
+        if (dot == -1) // syntax error
+          throw new InvalidParameterException(
+              "missing dot in '" + String.valueOf(querry)+"'");
+
+        value = (String) filter.get(querry);
+        // deconstruct querry into [service, algorithm, attribute]
+        if (value == null || value.trim().length() == 0) // <service>.<algorithm>
+          {
+            value = null;
+            attribute = null;
+            service = querry.substring(0, dot).trim();
+            algorithm = querry.substring(dot+1).trim();
+          }
+        else // <service>.<algorithm> <attribute>
+          {
+            ws = querry.indexOf(' ');
+            if (ws == -1)
+              throw new InvalidParameterException(
+                  "value (" + String.valueOf(value) +
+                  ") is not empty, but querry (" + String.valueOf(querry) +
+                  ") is missing at least one space character");
+            value = value.trim();
+            attribute = querry.substring(ws+1).trim();
+            // was the dot in the attribute?
+            if (attribute.indexOf('.') != -1)
+              throw new InvalidParameterException(
+                  "attribute_name (" + String.valueOf(attribute) +
+                  ") in querry (" + String.valueOf(querry) + ") contains a dot");
+
+            querry = querry.substring(0, ws).trim();
+            service = querry.substring(0, dot).trim();
+            algorithm = querry.substring(dot+1).trim();
+          }
+
+        // service and algorithm must not be empty
+        if (service.length() == 0)
+          throw new InvalidParameterException(
+              "<crypto_service> in querry (" + String.valueOf(querry) +
+              ") is empty");
+
+        if (algorithm.length() == 0)
+          throw new InvalidParameterException(
+              "<algorithm_or_type> in querry (" + String.valueOf(querry) +
+              ") is empty");
+
+        selectProviders(service, algorithm, attribute, value, result, serviceProviders);
+        result.retainAll(serviceProviders); // eval next retaining found providers
+        if (result.isEmpty()) // no point continuing
+          break;
+      }
+
+    if (result.isEmpty())
+      return null;
+
+    return (Provider[]) result.toArray(new Provider[result.size()]);
+  }
+
+  private static void selectProviders(String svc, String algo, String attr,
+                                      String val, LinkedHashSet providerSet,
+                                      LinkedHashSet result)
+  {
+    result.clear(); // ensure we start with an empty result set
+    for (Iterator i = providerSet.iterator(); i.hasNext(); )
+      {
+        Provider p = (Provider) i.next();
+        if (provides(p, svc, algo, attr, val))
+          result.add(p);
+      }
+  }
+
+  private static boolean provides(Provider p, String svc, String algo,
+                                  String attr, String val)
+  {
+    Iterator it;
+    String serviceDotAlgorithm = null;
+    String key = null;
+    String realVal;
+    boolean found = false;
+    // if <svc>.<algo> <attr> is in the set then so is <svc>.<algo>
+    // but it may be stored under an alias <algo>. resolve
+    outer: for (int r = 0; r < 3; r++) // guard against circularity
+      {
+        serviceDotAlgorithm = (svc+"."+String.valueOf(algo)).trim();
+        for (it = p.keySet().iterator(); it.hasNext(); )
+          {
+            key = (String) it.next();
+            if (key.equalsIgnoreCase(serviceDotAlgorithm)) // eureka
+              {
+                found = true;
+                break outer;
+              }
+            // it may be there but as an alias
+            if (key.equalsIgnoreCase(ALG_ALIAS + serviceDotAlgorithm))
+              {
+                algo = p.getProperty(key);
+                continue outer;
+              }
+            // else continue inner
+          }
+      }
+
+    if (!found)
+      return false;
+
+    // found a candidate for the querry.  do we have an attr to match?
+    if (val == null) // <service>.<algorithm> querry
+      return true;
+
+    // <service>.<algorithm> <attribute>; find the key entry that match
+    String realAttr;
+    int limit = serviceDotAlgorithm.length() + 1;
+    for (it = p.keySet().iterator(); it.hasNext(); )
+      {
+        key = (String) it.next();
+        if (key.length() <= limit)
+          continue;
+
+        if (key.substring(0, limit).equalsIgnoreCase(serviceDotAlgorithm+" "))
+          {
+            realAttr = key.substring(limit).trim();
+            if (! realAttr.equalsIgnoreCase(attr))
+              continue;
+
+            // eveything matches so far.  do the value
+            realVal = p.getProperty(key);
+            if (realVal == null)
+              return false;
+
+            realVal = realVal.trim();
+            // is it a string value?
+            if (val.equalsIgnoreCase(realVal))
+              return true;
+
+            // assume value is a number. cehck for greater-than-or-equal
+            return (new Integer(val).intValue() >= new Integer(realVal).intValue());
+          }
+      }
+
+    return false;
+  }
+}
index 043621ad632e81e4f5d6baa0146c29b42081b58e..05bf299bb555c3af48eca88c68832b3cf7eee6b7 100644 (file)
@@ -876,7 +876,37 @@ classpath/gnu/java/beans/editors/NativeFloatEditor.java \
 classpath/gnu/java/beans/editors/NativeIntEditor.java \
 classpath/gnu/java/beans/editors/NativeLongEditor.java \
 classpath/gnu/java/beans/editors/NativeShortEditor.java \
-classpath/gnu/java/beans/editors/StringEditor.java
+classpath/gnu/java/beans/editors/StringEditor.java \
+classpath/gnu/java/beans/encoder/ArrayPersistenceDelegate.java \
+classpath/gnu/java/beans/encoder/ClassPersistenceDelegate.java \
+classpath/gnu/java/beans/encoder/CollectionPersistenceDelegate.java \
+classpath/gnu/java/beans/encoder/Context.java \
+classpath/gnu/java/beans/encoder/GenericScannerState.java \
+classpath/gnu/java/beans/encoder/IgnoringScannerState.java \
+classpath/gnu/java/beans/encoder/MapPersistenceDelegate.java \
+classpath/gnu/java/beans/encoder/ObjectId.java \
+classpath/gnu/java/beans/encoder/PrimitivePersistenceDelegate.java \
+classpath/gnu/java/beans/encoder/ReportingScannerState.java \
+classpath/gnu/java/beans/encoder/Root.java \
+classpath/gnu/java/beans/encoder/ScanEngine.java \
+classpath/gnu/java/beans/encoder/ScannerState.java \
+classpath/gnu/java/beans/encoder/StAXWriter.java \
+classpath/gnu/java/beans/encoder/Writer.java \
+classpath/gnu/java/beans/encoder/elements/ArrayInstantiation.java \
+classpath/gnu/java/beans/encoder/elements/Array_Get.java \
+classpath/gnu/java/beans/encoder/elements/Array_Set.java \
+classpath/gnu/java/beans/encoder/elements/ClassResolution.java \
+classpath/gnu/java/beans/encoder/elements/Element.java \
+classpath/gnu/java/beans/encoder/elements/List_Get.java \
+classpath/gnu/java/beans/encoder/elements/List_Set.java \
+classpath/gnu/java/beans/encoder/elements/MethodInvocation.java \
+classpath/gnu/java/beans/encoder/elements/NullObject.java \
+classpath/gnu/java/beans/encoder/elements/ObjectInstantiation.java \
+classpath/gnu/java/beans/encoder/elements/ObjectReference.java \
+classpath/gnu/java/beans/encoder/elements/PrimitiveInstantiation.java \
+classpath/gnu/java/beans/encoder/elements/StaticFieldAccess.java \
+classpath/gnu/java/beans/encoder/elements/StaticMethodInvocation.java \
+classpath/gnu/java/beans/encoder/elements/StringReference.java
 
 gnu-java-beans.lo: $(gnu_java_beans_source_files)
        @find classpath/lib/gnu/java/beans -name '*.class' > gnu-java-beans.list
@@ -1707,7 +1737,8 @@ gnu/java/text.list: $(gnu_java_text_source_files)
 
 gnu_java_util_source_files = \
 classpath/gnu/java/util/DoubleEnumeration.java \
-classpath/gnu/java/util/EmptyEnumeration.java
+classpath/gnu/java/util/EmptyEnumeration.java \
+classpath/gnu/java/util/WeakIdentityHashMap.java
 
 gnu_java_util_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_util_source_files)))
 
@@ -1945,7 +1976,6 @@ gnu/regexp.list: $(gnu_regexp_source_files)
 
 
 gnu_xml_source_files = \
-classpath/gnu/xml/aelfred2/ContentHandler2.java \
 classpath/gnu/xml/aelfred2/JAXPFactory.java \
 classpath/gnu/xml/aelfred2/SAXDriver.java \
 classpath/gnu/xml/aelfred2/XmlParser.java \
@@ -2106,6 +2136,8 @@ classpath/gnu/xml/pipeline/WellFormednessFilter.java \
 classpath/gnu/xml/pipeline/XIncludeFilter.java \
 classpath/gnu/xml/pipeline/XsltFilter.java \
 classpath/gnu/xml/stream/AttributeImpl.java \
+classpath/gnu/xml/stream/BufferedReader.java \
+classpath/gnu/xml/stream/CRLFReader.java \
 classpath/gnu/xml/stream/CharactersImpl.java \
 classpath/gnu/xml/stream/CommentImpl.java \
 classpath/gnu/xml/stream/DTDImpl.java \
@@ -2120,9 +2152,13 @@ classpath/gnu/xml/stream/LocationImpl.java \
 classpath/gnu/xml/stream/NamespaceImpl.java \
 classpath/gnu/xml/stream/NotationDeclarationImpl.java \
 classpath/gnu/xml/stream/ProcessingInstructionImpl.java \
+classpath/gnu/xml/stream/SAXParser.java \
+classpath/gnu/xml/stream/SAXParserFactory.java \
 classpath/gnu/xml/stream/StartDocumentImpl.java \
 classpath/gnu/xml/stream/StartElementImpl.java \
 classpath/gnu/xml/stream/StartEntityImpl.java \
+classpath/gnu/xml/stream/UnicodeReader.java \
+classpath/gnu/xml/stream/XIncludeFilter.java \
 classpath/gnu/xml/stream/XMLEventAllocatorImpl.java \
 classpath/gnu/xml/stream/XMLEventFactoryImpl.java \
 classpath/gnu/xml/stream/XMLEventImpl.java \
@@ -2130,6 +2166,7 @@ classpath/gnu/xml/stream/XMLEventReaderImpl.java \
 classpath/gnu/xml/stream/XMLEventWriterImpl.java \
 classpath/gnu/xml/stream/XMLInputFactoryImpl.java \
 classpath/gnu/xml/stream/XMLOutputFactoryImpl.java \
+classpath/gnu/xml/stream/XMLParser.java \
 classpath/gnu/xml/stream/XMLStreamReaderImpl.java \
 classpath/gnu/xml/stream/XMLStreamWriterImpl.java \
 classpath/gnu/xml/transform/AbstractNumberNode.java \
@@ -2158,6 +2195,7 @@ classpath/gnu/xml/transform/Key.java \
 classpath/gnu/xml/transform/KeyFunction.java \
 classpath/gnu/xml/transform/LiteralNode.java \
 classpath/gnu/xml/transform/MessageNode.java \
+classpath/gnu/xml/transform/NamespaceProxy.java \
 classpath/gnu/xml/transform/NodeNumberNode.java \
 classpath/gnu/xml/transform/NumberNode.java \
 classpath/gnu/xml/transform/OtherwiseNode.java \
@@ -2166,6 +2204,7 @@ classpath/gnu/xml/transform/ProcessingInstructionNode.java \
 classpath/gnu/xml/transform/SAXSerializer.java \
 classpath/gnu/xml/transform/SortKey.java \
 classpath/gnu/xml/transform/StreamSerializer.java \
+classpath/gnu/xml/transform/StrippingInstruction.java \
 classpath/gnu/xml/transform/Stylesheet.java \
 classpath/gnu/xml/transform/SystemPropertyFunction.java \
 classpath/gnu/xml/transform/Template.java \
@@ -2811,17 +2850,21 @@ classpath/java/beans/BeanDescriptor.java \
 classpath/java/beans/BeanInfo.java \
 classpath/java/beans/Beans.java \
 classpath/java/beans/Customizer.java \
+classpath/java/beans/DefaultPersistenceDelegate.java \
 classpath/java/beans/DesignMode.java \
+classpath/java/beans/Encoder.java \
 classpath/java/beans/EventHandler.java \
 classpath/java/beans/EventSetDescriptor.java \
 classpath/java/beans/ExceptionListener.java \
 classpath/java/beans/Expression.java \
 classpath/java/beans/FeatureDescriptor.java \
+classpath/java/beans/IndexedPropertyChangeEvent.java \
 classpath/java/beans/IndexedPropertyDescriptor.java \
 classpath/java/beans/IntrospectionException.java \
 classpath/java/beans/Introspector.java \
 classpath/java/beans/MethodDescriptor.java \
 classpath/java/beans/ParameterDescriptor.java \
+classpath/java/beans/PersistenceDelegate.java \
 classpath/java/beans/PropertyChangeEvent.java \
 classpath/java/beans/PropertyChangeListener.java \
 classpath/java/beans/PropertyChangeListenerProxy.java \
@@ -2837,7 +2880,8 @@ classpath/java/beans/VetoableChangeListener.java \
 classpath/java/beans/VetoableChangeListenerProxy.java \
 classpath/java/beans/VetoableChangeSupport.java \
 classpath/java/beans/Visibility.java \
-classpath/java/beans/XMLDecoder.java
+classpath/java/beans/XMLDecoder.java \
+classpath/java/beans/XMLEncoder.java
 
 java_beans_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_beans_source_files)))
 
@@ -3372,9 +3416,9 @@ java/nio/charset.list: $(java_nio_charset_source_files)
 
 
 java_nio_charset_spi_source_files = \
-classpath/java/nio/charset/spi/CharsetProvider.java
+java/nio/charset/spi/CharsetProvider.java
 
-java_nio_charset_spi_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_nio_charset_spi_source_files)))
+java_nio_charset_spi_header_files = $(patsubst %.java,%.h,$(java_nio_charset_spi_source_files))
 
 java/nio/charset/spi.list: $(java_nio_charset_spi_source_files)
        @$(mkinstalldirs) $(dir $@)
@@ -3588,7 +3632,7 @@ classpath/java/security/PublicKey.java \
 classpath/java/security/SecureClassLoader.java \
 classpath/java/security/SecureRandom.java \
 classpath/java/security/SecureRandomSpi.java \
-classpath/java/security/Security.java \
+java/security/Security.java \
 classpath/java/security/SecurityPermission.java \
 classpath/java/security/Signature.java \
 classpath/java/security/SignatureException.java \
@@ -3797,6 +3841,7 @@ classpath/java/text/Annotation.java \
 classpath/java/text/AttributedCharacterIterator.java \
 classpath/java/text/AttributedString.java \
 classpath/java/text/AttributedStringIterator.java \
+classpath/java/text/Bidi.java \
 classpath/java/text/BreakIterator.java \
 classpath/java/text/CharacterIterator.java \
 classpath/java/text/ChoiceFormat.java \
@@ -4209,6 +4254,22 @@ javax-imageio.lo: $(javax_imageio_source_files)
        $(LTGCJCOMPILE) -fjni -findirect-dispatch -c -o javax-imageio.lo @javax-imageio.list
        @rm -f javax-imageio.list
 
+javax_management_source_files = \
+classpath/javax/management/Attribute.java
+
+javax_management_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_source_files)))
+
+javax/management.list: $(javax_management_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       @for file in $(javax_management_source_files); do \
+         if test -f $(srcdir)/$$file; then \
+           echo $(srcdir)/$$file; \
+         else echo $$file; fi; \
+       done > javax/management.list
+
+-include javax/management.deps
+
+
 javax_naming_source_files = \
 classpath/javax/naming/AuthenticationException.java \
 classpath/javax/naming/AuthenticationNotSupportedException.java \
@@ -4540,9 +4601,11 @@ classpath/javax/print/attribute/standard/JobState.java \
 classpath/javax/print/attribute/standard/JobStateReason.java \
 classpath/javax/print/attribute/standard/JobStateReasons.java \
 classpath/javax/print/attribute/standard/Media.java \
+classpath/javax/print/attribute/standard/MediaName.java \
 classpath/javax/print/attribute/standard/MediaPrintableArea.java \
 classpath/javax/print/attribute/standard/MediaSize.java \
 classpath/javax/print/attribute/standard/MediaSizeName.java \
+classpath/javax/print/attribute/standard/MediaTray.java \
 classpath/javax/print/attribute/standard/MultipleDocumentHandling.java \
 classpath/javax/print/attribute/standard/NumberOfDocuments.java \
 classpath/javax/print/attribute/standard/NumberOfInterveningJobs.java \
@@ -4679,10 +4742,15 @@ javax/security/auth/callback.list: $(javax_security_auth_callback_source_files)
 
 
 javax_security_auth_login_source_files = \
+classpath/javax/security/auth/login/AccountException.java \
 classpath/javax/security/auth/login/AccountExpiredException.java \
+classpath/javax/security/auth/login/AccountLockedException.java \
+classpath/javax/security/auth/login/AccountNotFoundException.java \
 classpath/javax/security/auth/login/AppConfigurationEntry.java \
 classpath/javax/security/auth/login/Configuration.java \
+classpath/javax/security/auth/login/CredentialException.java \
 classpath/javax/security/auth/login/CredentialExpiredException.java \
+classpath/javax/security/auth/login/CredentialNotFoundException.java \
 classpath/javax/security/auth/login/FailedLoginException.java \
 classpath/javax/security/auth/login/LoginContext.java \
 classpath/javax/security/auth/login/LoginException.java \
@@ -5263,6 +5331,7 @@ classpath/javax/swing/plaf/basic/BasicEditorPaneUI.java \
 classpath/javax/swing/plaf/basic/BasicFileChooserUI.java \
 classpath/javax/swing/plaf/basic/BasicFormattedTextFieldUI.java \
 classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java \
+classpath/javax/swing/plaf/basic/BasicHTML.java \
 classpath/javax/swing/plaf/basic/BasicIconFactory.java \
 classpath/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java \
 classpath/javax/swing/plaf/basic/BasicInternalFrameUI.java \
@@ -5455,6 +5524,7 @@ classpath/javax/swing/text/DateFormatter.java \
 classpath/javax/swing/text/DefaultCaret.java \
 classpath/javax/swing/text/DefaultEditorKit.java \
 classpath/javax/swing/text/DefaultFormatter.java \
+classpath/javax/swing/text/DefaultFormatterFactory.java \
 classpath/javax/swing/text/DefaultHighlighter.java \
 classpath/javax/swing/text/DefaultStyledDocument.java \
 classpath/javax/swing/text/DefaultTextUI.java \
@@ -5475,8 +5545,10 @@ classpath/javax/swing/text/Keymap.java \
 classpath/javax/swing/text/LabelView.java \
 classpath/javax/swing/text/LayeredHighlighter.java \
 classpath/javax/swing/text/LayoutQueue.java \
+classpath/javax/swing/text/MaskFormatter.java \
 classpath/javax/swing/text/MutableAttributeSet.java \
 classpath/javax/swing/text/NavigationFilter.java \
+classpath/javax/swing/text/NumberFormatter.java \
 classpath/javax/swing/text/ParagraphView.java \
 classpath/javax/swing/text/PasswordView.java \
 classpath/javax/swing/text/PlainDocument.java \
@@ -5494,6 +5566,7 @@ classpath/javax/swing/text/TabExpander.java \
 classpath/javax/swing/text/TabSet.java \
 classpath/javax/swing/text/TabStop.java \
 classpath/javax/swing/text/TabableView.java \
+classpath/javax/swing/text/TableView.java \
 classpath/javax/swing/text/TextAction.java \
 classpath/javax/swing/text/Utilities.java \
 classpath/javax/swing/text/View.java \
@@ -5514,11 +5587,14 @@ javax/swing/text.list: $(javax_swing_text_source_files)
 
 
 javax_swing_text_html_source_files = \
+classpath/javax/swing/text/html/BlockView.java \
 classpath/javax/swing/text/html/CSS.java \
+classpath/javax/swing/text/html/CSSParser.java \
 classpath/javax/swing/text/html/HTML.java \
 classpath/javax/swing/text/html/HTMLDocument.java \
 classpath/javax/swing/text/html/HTMLEditorKit.java \
-classpath/javax/swing/text/html/HTMLFrameHyperlinkEvent.java
+classpath/javax/swing/text/html/HTMLFrameHyperlinkEvent.java \
+classpath/javax/swing/text/html/StyleSheet.java
 
 javax_swing_text_html_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_swing_text_html_source_files)))
 
@@ -6650,6 +6726,7 @@ all_packages_source_files = \
   javax/crypto.list \
   javax/crypto/interfaces.list \
   javax/crypto/spec.list \
+  javax/management.list \
   javax/naming.list \
   javax/naming/directory.list \
   javax/naming/event.list \
@@ -6803,6 +6880,7 @@ ordinary_header_files = \
   $(javax_crypto_header_files) \
   $(javax_crypto_interfaces_header_files) \
   $(javax_crypto_spec_header_files) \
+  $(javax_management_header_files) \
   $(javax_naming_header_files) \
   $(javax_naming_directory_header_files) \
   $(javax_naming_event_header_files) \
index 5eebd79a1f86d3ed2421feb93b77cab0c2ff9736..15b918fe101e87dfa2e4331167ad951838beb9fb 100644 (file)
@@ -244,6 +244,7 @@ build_os = @build_os@
 build_subdir = @build_subdir@
 build_vendor = @build_vendor@
 datadir = @datadir@
+dbexecdir = @dbexecdir@
 exec_prefix = @exec_prefix@
 extra_ldflags_libjava = @extra_ldflags_libjava@
 gxx_include_dir = @gxx_include_dir@