CHANGES SINCE THE PREVIOUS RELEASE This file summarizes changes made since Swing 1.1. Documentation improvements and look-and-feel cosmetic changes are not listed here. For the latest, detailed information about Swing, be sure to check our Web site, The Swing Connection: http://java.sun.com/products/jfc/tsc/ This file has three sections: - HTML Text in Components - Bug Fixes for Swing 1.1.1 - Bug Fixes for Swing 1.1.1 Beta 2 - Bug Fixes for Swing 1.1.1 Beta 1 ======================= HTML Text in Components ======================= Although this release is largely a bug fix update, it adds one new feature of note: many components can now contain HTML text. These components include instances of JButton and JLabel (whose HTML support was added in Swing 1.1.1 Beta 1), JMenuItem, JMenu, JCheckBoxMenuItem, JRadioButtonMenuItem, JTabbedPane, and JToolTip (whose HTML support was added in Swing 1.1.1 Beta 2) -- but not yet JCheckBox or JRadioButton. If the text property of an HTML-supporting component is a string that begins with "", the rest of the string is used to create a lightweight HTML docuemnt and the text is rendered by the full Swing styled-text engine. For example, the following code creates a JLabel that displays multiple lines of text in different fonts and colors: String htmlText = "A JLabel with various text styles
" + "And a new line!
"; JLabel myLabel = new JLabel(htmlText); Look for more information about this feature in The Java Tutorial, in how-to pages such as the label page: http://java.sun.com/docs/books/tutorial/uiswing/components/label.html ================================ Bug Fixes for Swing 1.1.1 ================================ Only a few bugs were fixed after swing-1.1.1beta2. You can find more information about each bug by searching for it on http://developer.java.sun.com/. 4213722 Under 1.2 JViewport could attempt to paint complete view, not just visible part. 4205481 public static final JTree.TREE_MODEL_PROPERTY and INVOKES_STOP_CELL_EDITING_PROPERTY have been changed back to what they were in 1.2, reg test covered by JCK. 4213376 JComboBox is no longer serializable 4199211 JToolBar throws ArrayOutOfBoundsException 4217707 NPE in JFileChooser's set filter method 4215003 The Image created by ImageView was still holding a reference to the ImageView, resulting in large portions of the text document/views not being able to be gc'ed. 4213896 inserting tab with existing component fails to add tab properly 4186905 JTextPane no longer dispatches keyTyped events to a KeyListener. 4228122 JScrollPane hides component below, does not scroll Removed errant fix for bug 4178036, 'JScrollPane within GridBagLayout does not work'. 4199115 Compatibility flaw in text.JTextComponent.FOCUS_ACCELERATOR_KEY in jdk1.2.2 4235020 mistaken @deprecated javadoc for getComponentAtIndex() and createTableCell() Removed the @deprecated javadoc comments in the following classes: javax.swing.JMenuBar.getComponentAtIndex(int) javax.swing.JPopupMenu.getComponentAtIndex(int) javax.swing.text.TableView.createTableCell(javax.swing.text.Element) 423565 JSplitPane cursor would get stuck to resize cursor. 4228045 JDK1.2.2.M WNT_NS4.5 and WNT_IE4.0 NullPointerException.Hashtable.UIDefaults.get The private static UIManager.maybeInitialize() method is now re-entrant. There's no regression test as this bug shows up in exisiting functional tests. ================================ Bug Fixes for Swing 1.1.1 Beta 2 ================================ Here's a list of the more than 100 bugs that were fixed for Swing 1.1.1 Beta 2. You can find more information about each bug by searching for it on http://developer.java.sun.com/. 4128521 Many focus problems when editing JTextFields in JTable. 4199401 DefaultFocusManager interferes with comps that return true to isManagingFocus(). 4173008 Fail to serialize JTextField with highlighted text. 4191596 Keymaps in JTextComponent no longer work for key sequences with no modifiers. 4197656 Multiple carets appear at the same time on JTextComponents. 4197660 Implementation of InputMethodRequests in JTextComponent is incomplete. 4101692 ScrollPaneLayout.removeLayoutComponent does not remove LOWER_RIGHT_CORNER. 4167891 LabelView2D.createFragment will no longer throw a NPE if messaged when the LabelView is not contained in a Container yet. 4180748 LabelView2D.viewToModel(float, float, shape, bias[]) would throw an IllegalArgumentException under certain conditions. 4185836 ParagraphView, in certain situations, would not forward removeUpdate to necessary views. 4207377 CompositeView.modelToView(int, bias, int, bias, shape) doesn't pass modelToView to correct view for Backward bias. 4110232 It was possible for JComponent.paint to get in an infinite loop if the offscreen image had a width/height of 0x0. 4207379 RepaintManager.getOffscreenBuffer now makes sure image size is at least 1x1. 4207383 SwingGraphics could get confused about translation resulting in drawing at the wrong place. 4198051 Signature of DefaultTreeCellEditors constructor was wrong. 4199666 JSplitPane would not layout correctly if the size was <= 0. 4200690 JViewport.scrollRectToVisible would not use backing store! 4203671 Painting in 1.2 inside plug-in was failing as the EventQueue was static, resulting in all applets trying to use the same EventQueue, which is not cool. EventQueue is now accessed via the AppContext, resulting in a per applet EventQueue. 4129409 setTableHeader(null) causes exception. 4170757 Unintentional memory retention in AncestorNotifier. There was a simple error in AncestorNotifier.removeListeners(). 4179898 setSelectedFile should change the current directory. 4191647 JEditorPane text won't display after type switch from html to plain and setText(). 4203305 JEditorPane leak. 4198136 JEditorPane does not work correctly with wrong type of content. 4181905 doPriviledge()s missing from several getResource() calls in Swing 4181936 NullPointerExcetion in ParagraphView when running in a browser. 4202792 One touch expandable buttons in JSplitPane no longer participate in focus traversable. 4201995 JSplitPane now sets itself to be opaque. 4403435 JTree was get confused about expanded state of root after model changed root node. 4205591 JSplitPane did not work correctly in beanbox as JSplitPane did not override isValidateRoot to return true. 4280549 BasicSplitPaneUI.BasicHorizontalLayoutManager and VerticalLayoutManager were not returning correct size for preferredLayoutSize. 4205424 The CSS parser in StyleSheet had problems with rules starting with a '.'. Also had problems when the last declaration of a rule ended with ';', although not correct CSS there are enough style sheets that have this to warrant us allowing it. 4199915 IconView was not throwing an exception, as documented, when modelToView was invoked with an invalid argument. 4202014 HTMLWriter would throw NPE under certain conditions. 4202505 JEditorPane would not scroll to the correct reference when the document was loaded synchronously. 4198822 BasicGraphicsUtils.drawEtchedBorder was off by one pixel. 4202498 ImageView was not thread safe, and could get confused about the size of an image. 4195369 Numbers in lists (ordered/unordered) were being drawn with wrong font. 4209499 PropertiesMetalTheme init problem. Fixed a small bug in Metalworks submitted on swing-feedback. 4200717 Scrolling AutoRepeater too slow. Changed the delay on the autoscroller from 100 millis to 60 millis. This makes scrolling appear faster. The 60 milli number is based of timings of some "real" apps I did. For example, both xemacs on Solaris and Notepad on NT seem to use a delay of about 60 milliseconds. 4185993 SwingSetApplet throws exceptions running with 2 applets. This fix should ensure that MetalBump's Frame is re-inited in the event that the browser pre-maturely disposes of it. 4209928 javax.swing.text.BoxView doesn't propagate allocation properly. 4128110 JScrollPane does not update after setViewportView. JScrollPane.setViewport() and JViewport.setView() now call revalidate() and repaint(). 4197293 Vertical scroll bar in JScrollPane does not "page" correctly. Changed the vertical orientation case in JTable.getScrollableBlockIncrement() to return a value that was a whole number of rows, rather than just the height of the viewport. 4178036 JScrollPane within GridBagLayout does not work. The problem was the JViewport.getMinimumsize() returned ViewportLayout.minimumLayoutSize() which was wired to new Dimension(4, 4). Unlike most layout managers (save BoxLayout) GridBagLayout uses a component's minimum size, this caused undersized GridBagLayouts to shrink their JScrollpane children to a ridiculously small value. GridBagLayout's saving grace has been that most components define preferredSize to be equal to minimumSize, so this problem usually doesn't show up. I've changed JViewport.getMinimumSize() - it now returns its views minimum size, or 4,4 if there is no view. The only effect this SHOULD have is to fix bugs of this ilk however it will cause BoxLayouts that contain JScrollPanes or JViewports to behave slightly differently as JViewports will not be quite as "stretchy" as they used to be. 4186336 JViewPort vs. JViewport. Fixed a few typos in the javadoc for JScrollPane, JScrollBar, JViewport. 4193026 Memory leak default caret prevents text components from being gc'd. 4171461 Setting a selection on one JTextComponent removes the selection from others. 4110482 Proper keyboard navigation must be verified for JTabbedPane. 4171209, 4171211, 4171213 Keyboard Accessibility in Swing 1.1 - JTextPane, JEditorPane, and JTextArea 4198793 MultiTextUI not fully implemented. 4209656 HTMLWriter throws exception when writing. 4204990 MinimalHTMLWriter had problems writing color values. 4204455 Extending selection in JTextField could throw exception. 4207963 Property to disable looking up event queue was not being used. 4210250 PlainView did not always redraw the necessary text when repaint was invoked. 4193062 It was possible for DefaultCaret to not message repaint on the correct region of the text component, resulting in the caret not blinking. 4201204 JTextComponent.DefaultKeymap.getKeyStrokesForAction was not implemented. 4199371 FileChooser attempts to read all drives on startup. 4163841 JFileChooser AcceptAllFileFilter bugs. 4208935 runnit changes for SwingSet jar changes. 4191374 JMenuBar.getSubElements can return an array with null values. 4208018 dispose()'ing JFrame with a menubar causes InvocationTargetException. 4173633 JMenu.getItem returns this if containee is not a MenuElement. 4198809 MotifL&F - JMenuItem, if disabled and disabledIcon is null --> NPE. 4187004 Motif JPopupMenu Border should include title. 4207339 Add HTML label support for MenuItems. 4209065 Add HTML support in JTabbedPane tabs. 4207474 Add HTML label to tool tips. 4171437 Mnemonics behavior not what's expected. 4185024 Heavyweight combo boxes on JDesktop don't work correctly. 4188832 Medium weight submenus hidden by heavyweight Canvas. 4119993 JTable and JList overeager on drag listening for selection. 4207333 Inadvertent API regression in JRootPane. 4197019 Action in JPopupMenu and JMenu handled differently. 4195823 Calling remove(int) on JPopupMenu is bad. 4134043 HTMLEditorKit does not track mouse motion events. 4211052 ComponentOrientation changes to menu items. 4204128 RTFEditorKit (still?) writes debugging info on stdout/stderr. 4208935 Updated SwingSet jar build to include manifest file. Also updated readme on how to run from jar file. 4203862 JLabel disabled text paints edges backwards. 4211425, 4211454 ClassCastExceptions in AbstractAction. 4210461 Now, every L&F has the ability to specify the delimiter used in a MenuItem's accelerator by setting a value in its defaults table. 4211721 InternalFrame dragging is slow. We've now added an option for faster dragging. It is activated through a client property. Added a feature to Metalworks to demo how this works. 4211720 DesktopIcons are always behind internal frames. This was a small fix in the DefaultDesktopManager so that desktop icons are in the same layer as their counterpart frame. A regression test for this will be putback later. 4189791 Buttons get stuck down in internal frames. This bug has caused a lot of complaints. It has to do with the way "click through" was being handled. I've modified how the listeners to the glasspane are handled. This seems to have fixed things up. I actually seems to make click through work better. You can see this problem by repeatedly clicking the "make" button in the SwingSet. 4183291 AccessibleJTree.getAccessibleIndexInParent() is incorrect. 4169215 Accessibility hierarchy (parent/child) wrong in JTree nodes. 4186062 JSlider fires ChangeEvents when nothing has changed. 4199387 JComboBox - Should match preferred height of JTextField. 4201964 JComboBox's arrow button is drawn too wide in Windows Look & Feel. 4200901 JSlider.createStandardLabels(int increnment) hungs program, when increment<=0. 4198838 WinLF tabs in JTabbedPane are too large . 4154572 TitledBorder filling background behind title text. 4212109 getDeepestComponentAt fails for JTabbedPane. 4212562 JInternalFrame stack overflow if content fg/bg==null. 4156316 JMenu.add(Component) throws NullPointerException. 4176063 Serializing components with tooltips throws exception. 4199352 JComponnent leaks Autoscrollers. Resetting the JComponent.autoScrolls property leaks an Autoscroller object because the Autoscroller is also a mouse listener for the component. The fix is to add a package private dispose() method to the package private Autoscroll class that stops its timer and removes the mouse listener. 4201314 Documentation for setAutoscrolls in JComponent unclear. 4209474 Incompatible change in JComboBox.setSelectedItem (breaks plugin control panel). 4212498 Regression: Tabbing out of editable combo boxes doesn't commit item any more. ================================ Bug Fixes for Swing 1.1.1 Beta 1 ================================ Here's a list of the more than 200 bugs that were fixed for Swing 1.1.1 Beta 1, which was released on January 28th. You can find more information about each bug by searching for it on http://developer.java.sun.com/. 4170786 javax/accessibility/AccessibleResourceBundle not being built on Solaris. 4171588 basic_ja.properties is now encoded in unicode. 4171983 JPasswordFields getPassword could return the wrong string. 4168561 Motif look and feel caret will now properly erase itself. 4163591 DefaultTreeCellRenderer's getDefaultXXXIcons where returning the wrong thing. 4167396 Changing font of JTree will now force recalculating sizes. 4169679 DefaultTreeCellRenderer's paint didn't check for null color (1.2 exception). 4172220 The JTree showing the Elements of the Document in Notepad/ Stylepad will now update when a new document is created, or opened. 4172434 Client side maps now supported for images. 4174543 JTree no longer throws exception after being serialized. Also implemented StyleSheet.getDeclaration, which previously had no implementation. 4174954 JComponent will now revalidate when setVisible is invoked with a different value. Also: Fixed bug in rectangleIsObscured that could result in wrong value being returned. The result of which could cause a previous version of the offscreen image to show through. 4177411 JViewport was causing visual garbage with nested scrollpanes. 4177725, 4177715 JTree was using wrong property name when firing property change events for setModel and setInvokesStopCellEditing. 4149666 DefaultEditorKit.read will now map \r to \n. This is needed for Macs which represent end of line as \r. 4168298 Lists were not using the type attribute correctly, which resulted in not drawing correct type. 4170605 An extra bullet for lists was displayed if a comment was embedded in a list. Also: Improved CSS support. Fixed problem that was causing make to fail on windows for swing-1.1 Added support for style and link tags. Added support for writing out map/area tags. Improved CSS support to be closer to the spec. Moved conversion logic that was in StyleSheet to CSS. Fixed bug where font size, when specified with font tag was wrong. Implemented StyleSheet.MuxingAttributeNames.getAttributeNames. Changed writing out of CSS style to include type=text/css. Fixed bug where getAttributeSet when invoked on LabelFragment could return wrong AttributeSet. Fixed bug that was causing input attributes to contain the wrong value under certain conditions. Fixed bug where MUNGE_FILES were not being compiled under windows. Fixed bug that was causing deadlock. Fixed bug that was causing exception when inserting HTML via the InsertHTMLTextAction class at offset of 0. 4161044 Unable to see flashing caret in JTextField with windows LAF. Highlight will not highlight where caret will be drawn if selection is not empty. 4161030 JTextField, for windows, will only select all of its text when gaining focus if that last time it lost focus was not temporary. Previously it would always select all the text when gaining focus. 4165339 JPasswordField.modelToView now considers horizontal alignment so that selection functions correctly for centered or right aligned password fields. 4158291 Text would scroll to wrong places in JTextField when deleting and text did not completely fit in bounds. 4128483 Input attributes would not correctly update if document changed. 4180658 JViewport will now validate its component (acutally the parent validateRoot) if scrollRectToVisible is invoked and the viewport's view is not currently valid. Fixed bug that could result in ElementSpec having wrong Direction when inserting HTML into an existing document. Added HTML action for inserting HR. Fixes bug in VariableHeightLayoutCache.getVisibleChildCount that would result in wrong value being returned. 4100143 There are no longer empty image directories for the swing demos under windows. 4150996 Demos have the same directory structure (and the same files) under windows and solaris now. 4185513 src.zip, for 1.1 builds, no longer has preprocessor statements in it. 4185513 When StyledEditorKit is updating the input attributes it will only get a character Element once (previously it might have done it twice). Also: Fixed bug that was causing style attributes to not work when using the style attribute on a character level HTML tag. Changed major portions of HTMLWriter to produce better HTML. Removed unused variable in method in StyleSheet. Changed DefaultEditorKit to only update end of line property if document was empty. 4154267 LabelView will paint background if background attribute is defined. Also: Fixed bug in JTree that was causing editing to stop when any property changed on the tree. Added support for determining what end of line string is in HTML documents. Added methods (package private) to HTMLDocument for inserting arbitrary HTML. Fixed bug that could cause selection listeners added to JTree to not be notified. Added EmptyAttributeSet.equals, and tweaked SimpleAttributeSet.equals to notice if asking equals(this). 4188924 NullPointerException when editing tree. Also: Fixed bug where styles would not be output if document did not contain head tag. Fixed bug where removeStyle was not properly cleaning up styles that may have been in Style. Also fixed bug that was causing imported/linked styles to be written out with document. Tweaked javadoc in DefaultTreeCellRenderer. Added support for specifying that JDialog/JInternalFrame/JFrame should cause a System.exit when closed. The define for this (in WindowConstants) is currently commented out, but can be used by specifying the integer value directly. Also fixed bug that could cause close operation specified in internal frame to have no effect. 4188955 When typing text into a JTextArea that caused a newline to be created due to wrapping, the JTextArea would not properly repaint itself. 4186163 Unserializing a StyleContext could throw a NPE. Updated javadoc in TreeSelectionModel/DefaultTreeSelectionModel to reflect expected behavior. 4165393 Regarding incorrect ACTIVE state. 4170868 On-the-spot pre-editing causes exception in HTML document. 4170871 The position of the candidate list window is wrong. Change to merge character attributes in the Styled document (HTMLDocument and DefaultStyledDocument) with composed text element for more wysiwyg on-the-spot editing. 4166242 HTML updates should update bidi structure. 4164887 JDK1.2FCS-E: HTMLDocument api doc was not created properly. 4172050 In solaris, highlight string make caret invisible in JTextComponent. 4170915 PlainDocument should use superclasses createLeafElement method instead of calling new directly so subclasses can change Element type. Some work toward 4171509, HTMLEditorKit support of conversion of StyleConstants attributes to/from CSS attributes. 4174856 Custom caret is not redrawn in JTextPane. This actually is part of finishing 4172050. Fix regression in html support that resulted in null pointer exceptions being thrown. Fixed a problem in the html package that caused the following exception whenever a paragraph with nothing but a newline was encountered. javax.swing.text.StateInvariantError: infinite loop in formatting The above exception is generated when a paragraph is asked to format to a zero or negative size (which can never be satisfied). The html package was erroneously causing such a situation. The fix does not fix the problem reported by QA on the Netscape browser, which also produces this message. That problem is still being investigated. 4168158 Constructor GapContent(int i) throws NPE when i = 1. 4174891 JEditorPane ignores new lines in
 tag.

4166962 JEditorPane can't display non-Latin1 character in 
 region
	Substantial progress toward 4171509 (HTMLEditorKit should
	support StyleConstants).  This is now handled properly in the
	in-memory model, however more work is yet required to make file
	I/O also cause attributes that have a StyleConstants mapping to
	be stored in the model as CSS attributes or saved as html
	tag/attribute or html style attribute.  The fix for 4171509
	involved a fair amount of work, and therefore likely has some
	bugs associated with it that can be filed seperately.  I
	included a hacked version to Stylepad in the evaluation which
	uses the html support to provide the stylepad functionality,
	and uses html as the I/O format.  It functions as a very simple
	html editor.  Added suggested change from swing-feedback to
	DefaultCaret to not blink while users are actively changing the
	text.

4176571 WordApplet in Netscape on Windows NT throws
	javax.swing.text.StateInvariantError.

4158124 Should JTextComponent.copy use getToolkit (vs.
	Toolkit.getDefaultToolkit())?

4170050 Unintentional memory retention in CompositeView.

4156303 CompositeView.loadChildren doesn't remove old child views.

4165774 com.sun.java.swing.text.html.HTML.Attribute.allAttributes[]
	does not contain FACE.

4136083 HTMLWriter fails to write out alignment.

4178097 JTextPane throws IllegalArgumentException when PgUp.

4148697 Empty JTextArea - IllegalArgumentException thrown - releasing
	'page down' key.

4168917 Background color in HTML body does not fill page in small pages.

4147392 JEditorPane.setHighlighter(null) throws nullPointerException.

4131271 DefaultEditorKit.BeginLineAction/EndLineAction should set
	MagicCaretPosition.

4131267 DefaultEditorKit needs a "selection-off" capability (for the
	ESCAPE key).

4138304 JTextField dosen't update focus border at Motif L&F. Updated
	the javadoc for some views, and started making the DocumentEvent
	forwarding updating of the view hierarchy easier for composite
	view implementations.  Fixed BasicTextAreaUI so that it looks
	for the correct property names (the wrap-related names were
	changed).

4181804 DefaultCaret.equals() not implemented.

4180803 HTML viewer:  and  tags don't display Courier.

4179239 JEditorPane uses wrong editor kit for default.

4175754 Untidy syntax in BoxLayout.java.

4123386 swing.text.ComponentView.modelToView(int, Shape) doesn't throw
	BadLocationExcept.

4155127 setFont() has no visual effect on JTextField; repaint() has to
	be invoked.

4164239 BoxLayout sizes Components wrong if minimumSize is larger than
	preferredSize.

4166782 Swing1.1 PERF: BasicTextUI erases background twice.

4176211 Undo/redo for the input method composed text is incorrect in
	JTextComponent.

4108577 Disabled text fields allow selection.

4134280 No specification of document notification protocol.

4171509 HTMLEditorKit should support StyleConstants.  This is a fixup
	to the previous fix.  It turns out that newly constructed
	elements were using a copy of the AttributeSet they were given
	rather than creating a set from the associated AttributeContext
	like they were supposed to.  This meant the converting sets
	provided by the html StyleSheet weren't being installed into
	the html elements.  It also means that attribute compression
	that was supposed to be taking place wasn't!!!

4178193 Baseline is different between composed text and backing store
	in LabelView.  Also: Fixed HTML paragraph to render the css box
	attributes.  The insets were considering these attributes, but
	they weren't being rendered.  Fixed spurious
	NullPointerExceptions being generated by BoxView after the
	DocumentEvent handling rewrite.  Some fixes to HTML table
	editing. It now works (but doesn't necessarily repaint
	properly) unless the table has multi-row or multi-column cells,
	or a caption.  More work is needed on this.  Fixed minor
	javadoc error in Document.

4173018 replaceSelection fails if JTextField is not editable.

4183255 Calling setText on styled text components swaps out the
	document model.  This was easy to fix by simply leaving the old
	model and calling remove() for the entire model.  However,
	doing this exposed a bug in the model that left it corrupted if
	the entire content was removed.  Fixing that meant fixing
	ElementBuffer.create() to do a better job.

4181934 AccessControlException generated in ImageView within browsers
	Hardcoded refresh rate values that were trying to be fetched by
	calling System.getProperty().  Fixed calculation of source URL
	for the image.  It should have been using the getBase() method
	on the associated document for it's calculation of the source
	URL.

4173008 Fail to serialize JTextField with highlighted text.
	Also: Added support for displaying html in the ComponentUI
	implementations.  This is currently package private to the
	basic package so that it adds no new api.  It is enabled by
	setting the text of the component to a string that starts with
	.  Initially, only BasicLabelUI and BasicButtonUI have
	been converted to use it.  We now have multi-line styled labels
	(There must be an RFE laying around that can now be closed :-)
	You can add HMTL strings to JLabel and JButton and interesting
	things will happen.  Fixed up BasicHTML support to load the
	EditorKit implementation when first accessed, and changed to
	not effect default StyleSheet Fixed View.preferenceChanged to
	use the proper child View in the default implementation.  This
	is needed by the asynchronous layout view currently in
	experimental status.  Performance results are quite promising.
	Layout for large views is computed incrementally and
	asynchronously (able to adapt to size changes before the job is
	done, etc).  Substantially improved the View javadoc
	specification.  Changed BoxView to not throw away layout
	information when the number of children changes.  This makes it
	possible to repaint while changing the view structure to
	reflect a changed model.  BoxView still needs more work to
	actually guarantee it repaints everything needed.
	Substantially reduced the number of Rectangles created when
	computing child view allocations.  CompositeView now holds a
	rectangle it reuses when communicating with a child view.
	CompositeView also avoids calling Shape.getBounds() (which
	allocates a new Rectangle) if the Shape can be narrowed to a
	Rectangle to extract it's bounds.  Fixed concurrency holes that
	appeared in BasicTextUI apparently with the addition of the
	i18n position bias.  Improved the javadoc to reduce the chance
	of this happening again, and to warn developers that use the
	getRootView method that they must arrange for their own
	concurrency protection.

4191780 Programmatic selection in JTextPane causes NPE in
	BoxView.childAllocation().

4193508 javax.swing.text.CompositeView not threadsafe.

4166778 Typo in inner class JEditorPaneAccesssibleHypertextSupport.

4172586 AccessibleJTableHeader.getAccessibleStateSet works.
        
4172235 Basic class depends on Windows class.

4172751 IntrospectionException trying to load swingall.jar.

4161565 Maximized Internal Frames don't resize.

4176733 REGRESSION: JDesktopPane setVisible/setSize need before adding
	JInternalFrame.

4177469 JPopupMenu wrong bound property fix.

4115273 Double click close to check isClosable() on internalFrame.

4228140 Minimize menu to work when isMaximizable isn't checked.
	
4165234	Serialization error: made desktopManager transient.

4172083 Need to disable rootpane check for JInternalFrame in
	EnableSerializationFocusListener.

4118140, 4115273
	Minimize on control menu not working. Double click closes a
	nonclosable motif internal frame. Fix for CloseAction NPE when
	there are no JInternal.  JFrame doesn't check for null
	desktopPane.

4172083 Need to disable rootpane check in EnableSerializationFocus for
	JInternalFrame's JDesktopPane.

4165234 Made desktopManager transient.
        
4127970 JPopupMenu.setDefaultLightWeightPopupEnabled(false) doesn't work.

4160735 AncestorNotifier.propertyChange() throws NullPointerException.

4167902 AbstractAction.putValue(...) implementation is incorrect.                       
4169490 JMenu's method remove(JMenuItem mi) throws NPE.

4171254 JMenu.setEnabled doesn't work.

4168483 Medium weight menu popup problem (workaround).

4146684 Closing a window by a lightweight menu causes error.

4113572 Mixed components in JToolBar don't align well.

4176981 Menus are too wide.

4177696 setSelectionModel() of JMenuBar: Property change listener
	doesn't get notified.

4177688 setMargin() of JMenuBar: Property change listener doesn't get
	notified.

4177452 setAccelerator doesn't fire property change event.

4177424 Exception in JMenu.setModel.

4174983 JMenu doesn't show Icon on inserting subclass of AbstractAction
	(last time...).

4089005 Swing add/remove Listeners do not accept null.

4110669 Named property changes don't work with JComponents. Fix to
	comment.

4178391 NPE in RemoveAction. KeyEvent.VK_KP_* -> SwingUtilities.VK_KP_*

4169490 JMenu's method remove(JMenuItem mi) throws NPE.
	Fixes to listener registry for Action GC.

4183227 PERFORMANCE: AbstractActions.

4183360 PERFORMANCE: JMenuBar creates too many Component[] objects.

4186484 ClassCastException in AbstractAction.

4186500 Localize VK_KP knowledge to KeyStroke.

4179541 JMenu installs its UIs twice!

4186626 JCheckBoxMenuItem installs its UI twice.

4186627 JRadioButtonMenuItem installs its UI twice.

4146598 JMenu delay property misleading.

4186925 Make AbstractAction.ArrayTable serializable.

4186809 borderPainted of JMenuBar is incorrectly marked as bound.

4187573 NPE in BasicDesktopPaneUI.

4189288 JInternalFrame Title panes turn black.

4190357 Popup sub-menus aren't dismissed.

4190759 Disappearing Actions syndrome.

4188027 Regression: Swing MenuDragMouseEvents aren't working in 1.1.7
	and 1.2 RC1.

4126109 Setting defaultButton to null causes NPE.

4158813 Workaround for AWT#4135218 ("..." in OptionPane).

4171856 setDefaultButton() broken under JDialog.

4178562  incorrectly activates button with focus.

4135809 setBorder doesn't work on ScrollPane's containing JTables.

4153446 JDialog.setLocationRelativeTo sometimes fails after setLocation
	call.

4166149 JTabbedPane preferredSize incorrect with multiple tab runs.

4164301 JFrame with JXXX member cannot be deserialized.

4164084 Default button doesn't activate if combobox has focus.

4182204 TitleBorder.getBorderInsets(Component,Insets) broken if
        border not instanceof AbstractBorder.

4169763 Fixed recursion in JFileChooser.

4181146 setCurrentDirectory not entered in ComboBox if root but
	not in FileSystemView.getRoots().
        
4158821 ToolBars create unnecessary frames.

4166167 Floating JToolbar can be maximized.

4177032 Inconsistent bound property name, borderPainted.

4177320 Placement of JComboBox in JToolBar.  Added defaults for
	setAlignmentX and setAlignmentY to JComboBox.  Also cleaned up
	constructors in JComboBox.

4166246 Metal Button size in JToolBar was not restored after switch
	back from Windows l&f.  This turned out to be 2 bugs in 1:
	MetalToolBarUI ignoring the insets on the button borders, and
	ButtonUI setting the border on the buttons after the toolbar
	sets them during a L&F switch (which caused additional problems
	with rollover borders and L&F switching).

4183337 WindowsLookAndFeel painting of JSeparator edges is not correct.
	Fixed painting for Windows and Motif separators and popup menu
	separators.  Also fixed bug where Windows and Motif separators
	were not using background and foreground colors correctly.

4179006 DefaultListModel description references JListDataModel.
	Fixed a javadoc typo.

4179162 Bound property, value on JScrollBar doesn't notify its property
	listener.

4179141 Bound property, maximumSize[sic] on JScrollBar doesn't notify
	its property listener.  The maximum and value JScrollBar
	properties were incorrectly marked as bound in their
	@beaninfo.

4178533 JScrollPane SCROLLBAR_ALWAYS options do not work. 

4178544 JScrollPane SCROLLBAR_NEVER options do not work correctly.
	The fix installed some time ago to enable SCROLLBAR_AS_NEEDED
	to do the right thing if Scrollable.getScrollableTracksViewportWidth()
	and/or Scrollable.getScrollableTracksViewportWidth() was true
	broke these simple cases.

4181977 DefaultBoundedRangeModel(..) constructor doesn't throw
	IllegalArgumentException.

4183413 JComponent.setForeground,setBackground repaint needlessly.
	Removed some dead clipping code from JViewport.setViewPosition().
	The original code did force view positions to always be > 0 in
	x,y which clearly wasn't all the code was intended to do (the
	rest was dead).  This wasn't ever a documented feature of
	JViewport and JScrollPane and the scrollbars enforce
	constraints like this properly when it matters.  Fixed a JList
	class javadoc error - the cell renderer example was
	incomplete.  Fixed JComponent.setForeground() typo and adjusted
	the logic to account for another corner case.

4127960 AbstractListModel.fireContentsChanged ignores source arg.

4128942 Setting JList model to null causes JVM to hang.  Throw an
	IllegalArgumentException in this case.  The setSelectionModel()
	method already does this.

4097718 DefaultBoundedRangeModel.setRangeProperties(...) works
	incorrectly.  Use longs in one place to avoid overflow problems.

4179719 JSplitPane component may not show if its minimum size is 0.

4182564 Mouse clicks on the non-continuous JSplitPane divider make it
	move.

4174850 ProgressMonitorInputStream error.

4132946 OK button on ProgressMonitor progress dialog.

4160137 Timer.setInitialDelay does not reset the timer.

4163364 JSplitPane does not check if components visible when
	determining min/max location.

4184808 JSplitPane.setOrientation() needs beaninfo.

4177030, 4177026, 4177022, 4177283, 4179213, 4179185, 4179199,
4179180, 4179184, 4179197, 4179219
	Fixes for unfired or misnamed bound PropertyChanged events.

4177884 Fixed PropertyChanged event firing.

4181204 Return number of errors on exit.

4157427 SwingUtilities.computeIntersection fixed to handle case where
	rectangles don't intersect.

4157446 Modified isEventDispatchThread to use EventQueue.isDispatchThread
	with 1.2 AWT.

4181976 Added logging and flash support to drawImage methods where it
	wasn't implemented.

4168619 Fixed memory leak which prevented JComponents from being GC'd.

4182587 Removed redundant INTERNAL_FRAME_CLOSING event posting from
	JInternalFrame.dispose().

4180820 Fixed SwingGraphics.setXORMode so it no longer scrambles
	graphics translation values.  Cleaned up SwingGraphics so its
	naming follows JLS recommendations (no API change).

4148450 Overrode Container.findComponentAt in JRootPane so it ignores
	glassPanes when searching.  Previously an enabled glassPane
	would cause any drag&drop processing to ignore child components
	beneath the glass pane.  Drag&drop fix is 1.2-specific.

4184807 Modified variable initialization so loading RepaintManager
	doesn't cause java.awt.Toolkit to be initialized (needed for 
	automated testing).

4185824 Cleaned up uninstallUI so everything it installs is removed.

4184807 Used Class.getProtectionDomain as the 1.2 API test method,
	instead of a Toolkit API to avoid loading the Toolkit
        unnecessarily.

4187686 Eliminated synchronizing on class objects in favor of a per-
	class private static Object.  This is necessary because 1.1.X
	has a "will not fix" bug where class object locking can
	conflict with the classloader's locking, causing occasional
	deadlocks.  The 30 places we either synchronized using a class
	object or entered a synchronized static method (which does the
	same thing) were caught by Metamata Audit.  APIChangesTest and
	supporting files, pulled over from the JCK.  This allows us to
	verify we don't have any unknown API changes during our build.

4187686 Removed synchronized attribute from characterSets accessor
	methods, both because 1.1.X VMs have problems with deadlocking
	when class objects are synchronized, and because Hashtable is
	already threadsafe.

4191140 Sped up listener notification a bit by caching loop test.

4188850 Fixed case where java.security.manager is defined when running
	1.2, which caused a SecurityException accessing the EventQueue.

4189352 Set child's font and foreground color before calling its paint
	method.

4193032 Sped up UIManager.getLAFState by caching the LAFState of the
	current thread (most accesses are via either main in the
	beginning or the EventDispatchThread after the main frame
	shows).  This was suggested by an IBM engineer -- it doesn't
	speed up SwingMarks much because that test doesn't create that
	many different JComponents, but apps like SwingSet will see a
	bigger improvement.

4129394 JTable doesn't repaint correctly when removing rows from data model.

4127939 JTable.tableRowsDeleted() is incorrect.  (Make sure that lines
	are clipped correctly in the edge cases.)

4128135 Deleting last row doesn't change selection.

4128385 JTable: getselectedRow() and getSelectedColumn().

4181151 JTable: JTable:selectRow call clearSelection(); getSelectedRow
	still returns index.  Also fixed some javadoc in TableColumn
	explaining the effect of having a null editor.  Also fixed
	javadoc in ListSelectionModel explaining that
	removeselectionInterval also causes changes to
	anchorSelectionIndex.

4106574 Proper keyboad naviagtion must be verified on Jtable for Windows L&F. 
	Nearly all commands are now supported. (This is an extra 17 bindings). 

4185144 Win L&F uses wrong ResourceBundle.

4179116 getSystemLookAndFeel doesn't work on Mac.
        
4178458 Javax_swing classes do not respond to both sets of arrow keys.
	Adds bindings for numeric keypad arrow keys, fixing this bug
	and probably others.
        
4189562 All L&Fs are allowed to have an initialize() and uninitialize()
	method.  initialize() should get called before anything else
	happens when a L&F is being instantiated.  uninitialize()
	should get called called as the last operation when a L&F is
	being unloaded.  Auxiliary L&Fs now have these two methods
	called at the appropriate times.

4135833 Popup height wrong if first item is null or empty string.

4139900 Empty combo boxes have incorrect size.

4157329 Editable combo box not informed of font change.

4166593 Combo boxes don't fire action events properly.

4167394 Font size changes don't update combo boxes.

4167850 The RemoveAllItems() bug.

4171464 ComboBox shouldn't be throwing InternalErrors.

4171819 Windows combo boxes don't have the right border.

4174876 Tool tips don't work with combo boxes.

4180054 DefaultComboBoxModel fires too many contentsChanged events.

4201917 Shift-click in table with no selection causes exception.

4170418 Single click does not work in check boxes (Boolean table
	columns) in JTable.

4144067 JTable handling of phantom mouse events faulty when dialogs
	present.

4115930 JCheckBox in JTable: checkbox doesn't alaways respond to the
	first mouse click.

4202966 Wrong coordinates in events retargetted to subcomponents of
	JInternalFrame.

4202954 Deals with ArrowButton's response to mouse button events
	that are not generated by the left mouse button.

4174867 JEditorPane ignores pixel value of width attribute in 
	tag.  The pixel specification is now handled (tranlated to
	css).  The percentage values are still ignored, but that is a
	separate bugid.

4181842 HTML viewer: width attribute not supported in 
tag. Actually the css width and height were being ignored for all block level elements. It is now used to adjust the views requirements if specified. Fixed ImageView to not assume it is being hosted by a JTextComponent so that it works properly in JLabel and JButton. 4139102 Timer will not barf on a null ActionListener in the constuctor now. 4140983 Metal split pane divider was not completely redrawing its background. 4165874 JSplitPane will now work if a MouseListener has been added to the divider. 4197328 JSplitPane would throw exception on serializing in 1.2. 4194021 Serializing JSplitPane could cause NPE to be thrown. 4139349 Clarified documentation for HTMLEditor.read() and fixed implementation to insert new HTML into body (as one would expect). 4199472 There is now a way to specify the root node has changed (there was previously no way to do this) with TreeModelListener. 4203287 BasicTreeUI was not removing a listener it installed in uninstallUI. 4199523 It was possible for FixedHeightLayoutCache to throw an NPE when collapsing a node and the selection model was null. 4202896, 4202899 VariableHeightLayoutCache had some rather lame try/catch blocks in it. Workaround for bug 4155532, BasicSplitPaneUI now validates immediately after a resize. 4184412 HTML TableView doesn't support editing. The table view has been fixed to support editing when it contains cells that span multiple rows and/or columns. Because it now supports editing, the reader has also been updated to broadcast partial table results so that display can be asynchronous. To enable usage of views that layout asynchronously (such as the upcoming AsyncBoxView example) the restriction of using a special view for table cells has been removed. There is also better support for child views that are not table rows (such as captions, column groups, etc). Also: Substantial improvements to the handling of HTML tables. HTML tables now load asynchronously, although it requires a custom EditorKit implementation that extends HTMLEditorKit. 4170603 JEditorPane displays table elements with "rowspan" incorrectly. The table now uses bit fields to mark areas occupied by multi-column, multi-row, and erroneous table cells. The ProxyCell is no longer used. This gives better control over marking the table cell overflow into other grid points of the table. 4174849 JEditorPane ignores caption HTML tag while document model has correct element. There is better support for child views that are not table rows (such as captions, column groups, etc). Captions are displayed using ParagraphView. 4174873 JEditorPane ignores CELLPADDING attribute in tag. The HTML CELLPADDING attribute is now converted to the CSS padding attributes on TD and TH element views. 4202664 Complex HTML pages with nested tables layout too wide. Distribution of space for multi-column and multi-row cells has been substantially improved. There was also an error in the old calculations. 4179938 PERFORMANCE: JDesktopPane's "outline" drag mode doesn't include resizing. 4187974 PERFORMANCE: Fly-weight UI classes talk to defaults table too often. 4188895 JTableHeader font not correctly set. 4197752 Bulletproof references to popupMenu. 4200837 The fake end element in an HTMLDocument is now of the right structure. 4200839 Inserting pre, in certain cases, was creating an unnecessary newline. 4200841 Selection wasn't adjusting correctly when using html insert actions. 4200843 ListView/TableView/BlockView weren't obtaining its for a change event. 4200845 Actions to style text provided by StyledEditorKit could change too many attributes. 4200846 Inserting a new structure (using ElementBuffer) at offset 0 could cause some elements of length 0 to remain after removal. 4200847 Under certain circumstances JTree would ask the renderer for the size of a node that was being removed during the remove notification. 4191601 Overrode Container.remove() to pass the remove invocation on to the content pane. This avoids a common cause of object leakage in client apps. 4197719 Avoid NPE caused by AWT bug. 4195235 javax.swing.text.ComponentView not thread-safe. The methods getMinimumSize(), getPreferredSize(), getMaximumSize(), getAlignmentX(), getAlignmentY() access the component tree lock and are therefore deadlock opportunities. These values are now cached by the wrapping component that detects invalidation. 4195232 javax.swing.text.html.ImageView not thread-safe. 4169406 HTMLEditorKit.write would not honor offsets passed in when writing text. 4189236 DefaultCaret would cause NullPointException after serialization. 4190537 Disabled trees would not show the expand/collapse icons. 4191142 Paint could throw NullPointException as getClipBounds returns null under certain circumstances in 1.2. Fixes bug where expand controls in tree would be painted for root, or roots children even if not explicitly set to. Fixed bug where length of DocumentEvent for style changes on paragraph was wrong. Fixed bug where insertint into DefaultStyledDocument would create unnecessary Elements under certain conditions. Inserting into DefaultStyledDocument will know allow inserted text to join with fake end Element. Fixed bug that was causing bias, in DefaultCaret, to be set incorrectly when deleting text. Removed a couple of unused variables in methods in DefaultCaret. Fixed bug that could cause NullPointerException to be thrown if TabStop.equals(null) was invoked.